I confess I never paid much (due?) attention to design patterns. My friend Andrea, instead, is head over heel in love with such fancy things. By the way, if you feel that the topic somehow catches you, but can hardly make sense of the whole picture, pay a visit here.
So when did I start changing my mind about design patterns? By rule of thumb, it was coincident with the introduction of ObjectDataSource in ASP.NET 2.0. As some of you may know, I didn't spend much time lately consulting and thus facing the risk of being involved in serious multi-tier distributed systems where BLL and DAL are key and essential--no more no less.
No matter the trigger, I found myself in troubles devising first, and designing later, a good and effective BLL and DAL. Speaking to Andrea, I happened to say something like "Where can I find some simple but insightful, thoughtful, and quick-to-learn guidance to start designing a good business layer?" The reply was, "Have you ever looked at enterprise design patterns such as Data Mapper, Data Transfer Object, Table Data Gateway?"
What?
Design patterns don't teach you how to write code and don't change your style or your way of looking at applications and requested features. They simply offer guidance; just the kind of guidance you need when you try to handle and manage a humongous thing and don't know exactly the best position of hands, feet, and head.
I'm still sort of newbie as far as patterns are concerned, but I felt I needed a serious project for me to learn more quickly and effectively. That's why I embraced and hopefully revamped an Andrea's old project--the Northwind Starter Kit (NSK).
NSK is a sample application to illustrate blueprints of a .NET-based layered application architecture. It includes a various presentation front-ends, various DAL based on SQL Server 2000 and Access, and a business layer designed according to various popular design patterns. It's in C#. Take a look, and get back with comments.