May 28, 2010
I believe any experienced .NET developer and .NET architect should be able to relate to this question. At some point in our career we found ourselves in the same situation, wondering where to start and how to move forward
It is through hard work, learning from the masters, reading articles, magazines, blogs, that you slowly but surely develop confidence in building scalable, robust .NET applications. And at the end, it will feel 'natural' and you just know what it takes to design and architect large business applications according to commonly used patterns and best practices.
My suggestion to learning to apply patterns and practices in your own work is to do in baby steps. For example:
1) Build the simplest possible app (Web, Windows, WPF, etc), using 1-table database and 1-page screen.
2) Add logging, possibly using the Singleton and Observer pattern (study the Design Pattern Framework).
3) Refactor data access and begin to use DAO and Factory patterns (study the Design Pattern Framework).
4) Implement a clean Service Layer using the Facade pattern (study the Desing Pattern Framework).
5) Move business objects from the database to the UI and back using the Active Record pattern (study the Desing Pattern Framework)..
6) Etc. etc.
The key here is starting small and building out the application while refining the architecture by separating it into 3- or n-tiers.
Yes, it will take time, but at the end you will know what works and what not.
Anyhow, I hope this reply is useful to other .NET developers as well.