Entity, Boundary, Interactor C# Sample App with ASP.NET MVC UI

1,482 views
Skip to first unread message

Patrick Roza

unread,
Dec 15, 2013, 11:39:55 AM12/15/13
to clean-code...@googlegroups.com
Hi Clean Coders Community,

I've been enjoying the clean coders series a lot and have seen many other videos and also have read books by Uncle Bob.

I find the EBI pattern and Clean Architecture very interesting, and have been considering for a while now on how to implement this,
especially with C#, ASP.NET MVC, and WPF MVVM in mind.

I noticed that others also seem to run into the same questions as I do, and felt like it would be good to get a sample project going to explore the wonders of EBI / Clean Architecture etc.

I've started the project on GitHub, and while it is far from done or usable, I wanted to share it already early and perhaps already get some preliminary feedback;

The readme contains my thoughts, intentions, and also some points of interest; mainly covering some uncertainties and other questions.

I hope you like it and would love to hear feedback, thoughts and ideas :)

-- Go Clean, Go Well..

Patrick Roza

unread,
Dec 16, 2013, 8:31:10 AM12/16/13
to clean-code...@googlegroups.com
The project has evolved a bit since my initial post;
  • Reduced the Interactor output ports to single; Issues with input now throw exceptions instead, which the Controllers (/ViewModels in MVVM) can catch and act accordingly
    • To me this seems like a better approach than to add multiple output ports, one for success, one for another form of response etc.
      While different results can still be conveyed through the reponse model, I believe the exceptions are the way to go whenever the response is different than 'Success'.
  • Merged the Controllers and Presenters for now, seems to make the most sense in ASP.NET MVC currently due to several helpers being available in the Controller mostly
  • A UI.Desktop project was added in the form of a WPF MVVM application
  • The desktop application has the ListUsers and ShowUser use cases implemented and working
The desktop application to me seems the most interesting because most examples out there are about the web instead, also it is most valuable to me as primarily a desktop programmer. (Still the most intruiging part about EBI I find is the flexibility to plug in a different UI, be it Web, Desktop, Console, etc)

It also raises the most questions for me; 
  • How on earth am I going to update my UI when updated data comes in, say from a REST service?
  • How does it scale when there is constant translation of object models at the boundaries?

Op zondag 15 december 2013 17:39:55 UTC+1 schreef Patrick Roza:
Reply all
Reply to author
Forward
0 new messages