Sam Gentile posted an entry to his blog that really has me thinking. I understand his position to be that most of the books, blogs, docs, etc... on .NET have developers creating client/server applications, and that the Java community truly “thinks enterprise“ from the beginning while many of us just want to get the latest server control that we can drop on a page. As a case in point, he highlights the fact that many of the architecture articles on MSDN are rated pretty low, meaning that Visual Studio developers on the whole don't care much about architectural topics.
I'm not trying to criticize Sam, he may well have an excellent point. For me, however, this is kind of a big surprise. I honestly haven't run into many developers recently who don't logically separate an application into at least three logical tiers, often more. This may just be a result of the fact that I mostly work with enterprise developers and architects that naturally have a predisposition to design in separate logical tiers. So, I'm really curious, do most developers just know that we need to be splitting our business logic out from the UI, or is this a surprise? Have most of you at least looked at the UIP app block, and do you know why you would want to use it?
There are a couple of other interesting bits that Sam has got me thinking about, and I'm considering blogging about:
1. When, and why, would you want to use Enterprise Services in an application architecture, and
2. Even if you do logically design separate tiers for UI and business logic, when the application is deployed it may or may not live on the same physical tier. Most often, we write code that optimizes the application to perform on the targeted physical configuration. How do we make the tradeoff around whether or not to optimize the design?
If you think either or both of these things are worthwhile discussion topics, just let me know. Of course, if you think I'm completely off my rocker, let me know that also. If nobody likes talking about this stuff, maybe I'll try my hand at drawing cartoons like Rory does :)