Trivial Samples? How about Patterns?

Published 12 February 04 01:33 AM | Joel Semeniuk

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.

Thoughts?

 

Comments

# Paul D. Murphy said on February 12, 2004 04:08 AM:


The yukon PDC bits have a new database called AdvertureWorks (this is no Northwind). Alot of the Yukon samples target that and in a good deal of the Longhorn videos I have seen AdventureWorks.

My guess is that Contoso and AdventureWorks will be back with full SOA architecture when the bits ship.

# Chris Ormerod said on February 12, 2004 06:19 AM:

"right down to row and column levels that might meet healthcare needs"

That line describes exactly what I am about to begin specing out how to do in the next few days / weeks. Does anybody have any pointers for possible ways to attack that problem in an efficient way?

# Udi Dahan - The Software Simplist said on February 12, 2004 07:28 AM:

You mentioned caching - I've recently had some discussion with Ron Jacobs about the caching application block's quickstart, and have put up something on my blog - "Well, if you're so smart, why don't YOU do it" ( http://udidahan.weblogs.us/archives/014305.html ).

Its more of an architectural pattern implementation than a quickstart. The point being to have the client control what gets cached and when, while the server - where the data resides - also holds the cache itself.

The main idea behind the code is to show how to "make room" for the caching code in an architecture.

Another important element is that the client should be insulated from any knowledge about the caching implementation.

I've uploaded it to the GDN user samples as well - should you wish to download it from there.

Finally, I agree that there is much lacking when it comes to the proper use of the technology. Everybody out there is showing how to "work the car" - turn it on, brake pedal, etc..., but its hard to find anyone showing how to drive the car. I'm trying to do my bit to improving that.

# jeff said on February 12, 2004 09:18 AM:

I started www.uberasp.net (and I'm trying to get someone to pickup my book proposal) precisely because there isn't a lot of mid-level information out there. That's a damn shame because there's a lot to learn going from a former script developer to "enterprise architect."

And I agree about the reboots and patches thing. I was pissed on this last one after 3.5 months of up time. No doubt Win2k3 server could go much longer.

# Darrell said on February 12, 2004 09:45 AM:

Scheduled downtime should *not* be counted as "downtime" against the 5-9's agreement in your SLA. Otherwise you couldn't apply patches but once per year, since 5-9's is only a couple of minutes of downtime per year! :)

If you are trying to achieve 5-9's of availability, you should probably have clusters set up where you can bring a machine down for patching while the others in the cluster handle incoming requests. In this way you could cycle through all the patches without any downtime, but man that sucks! I do understand your pain! :)

# TrackBack said on February 12, 2004 10:58 AM:
# Mike said on February 12, 2004 01:13 PM:

"The group talked about ASP.NET"

Actually, what was in Joel's head was...

"The group talked about ADO.NET"

Sorry I missed the pizza. Sounded like good discussion too.

I agree that there are never one-size-fits-all solutions, in particular with passing data between layers.

This Blog

Cool Places

Good Links to Eat

INETA and UG Links

Other Blogs

Syndication