A professor at MIT is quoted as saying, "Design is what you do when you don't [yet] know what you are doing."[1] This is very trueeven for application architects. It seems that so many of us depend on the wisdom of others to design their systems that we fail to learn the fundamentals of system design. As a result, the end product can scale, run efficiently, and be maintained for decades to comecome what may.
IMHO "Too many of the designs I see lack the solid foundations needed to have them last beyond the next strong wind."[2]
Before getting started on a tour of Visual Studio and SQL Server 2005, I feel a need to lay some groundwork. In my previous books[3], it was assumed that the reader had a firm understanding of how SQL Server works, knew how to write T-SQL, and knew how to build a normalized relational database. Since then, I've seen too many questions that could be simply answered by a better understanding of those fundamental tenants. To make it easier for you to understand why one architecture or technique is suggested over another, let's start by providing some foundational material that should help make your choice of architecture and how you build your applications easier. Of course, if you think that you're up to speed on all of these issues, feel free to skip on down.
|