Monthly Archives: December 2011

System Architecture – UI Patterns, Repositories, Service Layers – What and how much?

Over the past couple of months, my co-workers and I have been watching a video series on Software Craftsmanship, called Clean Coders, by “Uncle” Bob Martin.

The last video we watched was on System Architecture. In this video Bob Martin talked about how presentation patterns like MVC and MVP are part of “delivery mechanisms” of a system architecture and the that business logic should reside in “Interactors” — a higher level controller like class. The group I watched the video with related these interactors to services in a service layer. At a recent usergroup meeting I attended, about UI Presentation Patterns (MVC, MVP, MVVM) the speaker said you should favor light controllers (or presenters) and heavier models (models as in — Db Layer, Repos, Service Layers etc.) — pretty much same thing as Bob said.

That said, I wanted to know how this applied to a project I’m working on which uses a UI Presentation Pattern Framework called WebformsMVP (blogged about this previously here). Inparticular, I wanted to know:
What is the consensus for system architecture with MVP?
  • Light Presenters with mainly just calls to service layer?
  • Heavier Services with business logic and calls to Repositories?
  • Light Repositories with calls to the database?
So I reached out to the WebFormsMVP GoogleGroup and asked these questions there. Below is a response I got back from one of the users, Alan McBee.
Uncle Bob is right. Light Presenters are best. Following SOLID, I say that the primary (or Single Responsibility) for Presenters are to provide the interaction between the state of the domain model in whatever form that happens to be (whether you use Repository, or some other business layer, or even just LINQ2SQL, just use your best judgment), and the state of the user interface which provides the Views. Continue reading

Getting Naked

Posted in Career on .

After returning from Iraq, I decided I wanted to get back into software development, so I began listening to previous shows from .NET Rocks! and Hanselminutes to get caught up on what I had missed over the last three years.

One show that I provided valuable insight for me was show 614 Developing your career at Ordev! on .NET Rocks!

In this show, Michael ‘Doc’ Norton a dev/consultant with LeanDog, provided a synopses of a presentation he did at Ordev about how, as professionals, we can advance ourselves in the software industry. One of the things he mentioned was ”Getting Naked” as one of the essential things you can do to jump start your career as a developer. Getting Naked…huh…what?! More on this in a little bit.

Among other things we can do as professionals to advance our career, Doc talked about getting noticed, getting together, and getting our mojo on.  I took this as valuable advice, so over the past year I’ve been working on all these, in one way or another. I’ve been taking time to learn Silverlight, MVC, Rails, and TDD (mojo) and most recently, by signing up for CodeMav, wich is a social networking site to consolidate your profiles from other developer oriented social networking sites to create a definitive developer identity. Although, this is actually more about “Getting Together”, for me this was like “Getting Naked”.

Why? What was Doc actually talking about, “Getting Naked”?

Basically, Doc was saying that you should’nt be afraid to expose your vulnerabilities (weaknesses…things you don’t know). So for me, getting connected on CodeMav was “putting myself out there” since the site aggregates all your activity from other sites, such as Stack Overflow, SpeakerRate, Slideshare, BitBucket, Github, and LinkedIn. Now everyone can see what I’ve been doing as a developer (at least on those sites anyway) — which is really the point right?? — show the world what I do as a developer.

I don’t know about you, but for me that’s kind of scary. I mean, if your a seasoned professional, then its all good. But, if your just starting out (in my case – starting again), then the thought of someone being able to see your activity as a developer and make some kind of assessment of you without knowing you, can be somewhat intimidating, especially when you don’t have many contributions as a beginner. I guess this is the reality of social media; this happens on sites like LinkedIn all the time. So if you think about it that way then, as Doc referred to it, you’ve already opened the Kimono — just take it off.

So there it is — I’m naked.