Just got back from our February (brr) .NET User Group session. Tonight, as I’ve mentioned in a previous post, we had a different format – discussion only. Turned out, the discussion needed to be facilitated quite a bit – but otherwise I think it was good. The group talked about ASP.NET (which slowly turned into an application architecture – datasets vs. business object – object relational mapping discussion – hey Joel, what’s new in Yukon), Web Services (which quickly fizzled – we all agreed they were happiness – use them), and Security (hah – there is no such thing, only acceptable degrees of security).
I really wanted to take the time to listen and for those who know me you know how hard it is for me to keep my trap shut. Through my facilitation effort (while I stuffed my face with pizza – “Thanks Microsoft”) I did hear one clear message and that was there are very few good (software) reference architectures (yes, there is the IDC and EDC stuff – but apparently those are not enough for developers) out there that are complex enough to represent the more common business problems most members have. The members suggested that there were lots of very simple (or really bad) examples/samples –none that “really” demonstrated the “real” best practices. Now, I don’t know if I agree quite yet so I’m going to make it my mission to try to find samples I think can be used as set of VERY good reference architectures that bring together the complexities of real enterprise software development – end to end. Looking for reference apps that properly demonstrate security (right down to row and column levels that might meet healthcare needs), dynamic logging and instrumentation and auditing, complex data bound GUI’s, Business Objects/Datasets, client side caching, offline credential validation, complex (Insurance level) data driven business rules, versioned/historic objects/data – and the list goes on.
The message I heard was that MSDN and spin offs such as GDN, ASP.NET, WindowsForms.NET were missing the boat with respect to content consumable by an intermediate/senior developer. Now, I know that MSDN can’t provide for everyone and I believe that they have done a wonderful – actually AMAZING job the last couple of years. Microsoft is reaching and supporting developers better than they have ever done in the past – but is there even more room for improvement? Obviously there seems to be a common theme here because it’s not the first time I’ve heard this. Again, I feel that I don’t have an opinion of this because I have always made very good use of MSDN and other Microsoft provided resources over the years – and have had good success.
Please – if you have time to point out some samples that have been very useful to you, please drop me a note or comment on this post. My intent is to bring together a good set of reference material and stick it in the blog or on the Winnipeg.NET UG site.
Personally, I consume design patterns rather than big complex sample applications. I think that they are far more effective compared with reference solutions and I think that Microsoft is doing a good job getting that message out. I believe that the introductory developer needs to have GREAT samples that they can almost literally copy to get their job done however, the Intermediate-Senior developers SHOULD be learning patterns and how to apply them in different ways (one pattern does not fit all – not all solutions should have the same data access model for example). In fact, I think that there should be more emphasis on patterns in all educational material coming from Microsoft as well. Wish I could have been awake enough to bring this point up in the discussion tonight… oh well, I’ll use this as my soapbox.
Oh yeah, and why does EVERY Windows Automatic update want to restart my servers these days? The only way to achieve 5 “9”’s seems to NOT apply the patches – the downtime accumulated from the restarts “required” by the patches makes it virtually impossible to achieve a very high uptime factor. Ohh that grinds me.