Simple read on software architectures
Scott Hanselman gives a great, brief description of a multi-layered software architecture and some reasons to use it. It astounds me how many developers do not use methods like this and often times, haven't never even seen a proper architecture. Most importantly:
Please, do resist the urge to open up a SqlConnection from your next ASP.NET page.
Academically speaking, they hardly touch on this in college. For Senior Project, they mention a three-tiered/layered software architecture when talking about the design documents we have to write, but never really describe it in detail. No classes I've ever seen taught or even mentioned it in any important manner. Thank god I knew what they meant and implemented it in my Senior Project, since none of my team members knew about doing things that way. At first, they didn't want to follow that methodology because it meant a slower upstart, but they definiantly liked it towards the end when it came to formal testing.
The worst thing about it is that often, they don't have a clue what it is. In our final presentations, many teams went up their, showed a diagram with a client, a webserver, and a database server and said they were using a three layer architecture because it was spread out over three machines, each running separate code (HTML, PHP/Perl/ASP, SQL). I just kept writing “hardware architecture does not determine software architecture, code does”. Too bad academics rarely prepares you for real life.