Quotes
- "An architect is the member on the design team who typically receives requirements and massages them into a form that developers find easy to manage. He/she ties together requirements and specifications."
- "The architect is the point of contact between developers and stakeholders, and works side by side with the project manager (or acts as the project manager also). The project manager is responsible for choosing a methodology for developing the project."
Categories
Layers

- Presentation Layer
- Service Layer
- Business Layer
- Data Access Layer
- Note that each layer should only know about the layer directly below it.
- Benefits of layering:
- The UI must be isolated from code, and code must be layered, showing high regard for the separation of concerns (SoC) principle. Not only do properly factored layers have their concerns separated, but proper layering also allows for better testing, and therefore higher quality applications, because you can weed out the early bugs while enjoying a higher prercentage of test coverage. That is, your test cases test more of your code. Moreover, keeping the logic in the appropriate layer also allows for easier presentation layer refactoring, application layer refactoring, and code re-use, all of which are real-world requirements"
- A layered Architecture example can be found here.
These pages contain some excerpts and diagrams adapted from the highly recommended book: Microsoft .NET: Architecting Applications for the Enterprise
A lot of the concepts described here are demonstrated in the sample Northwind Starter Kit application.