Get the definitive guide on designing applications on the Microsoft application platform—straight from the Microsoft patterns & practices team. Learn how to choose the most appropriate architecture and the best implementation technologies that the Microsoft application platform offers applications developers. Get critical design recommendations and guidelines organized by application type—from Web, mobile, and rich Internet applications to Office Business Applications. You’ll also get links to additional technical resources that can help with your application development.
There is an old joke, told amongst mischievous developers, that in order to be considered an architect you just need to answer every technical question with “it depends”—Q: What’s the best way to implement authentication and authorization in my solution? —A: It depends; Q: How should I implement my data access layer?—A: It depends; Q: Which technology should I use for my solution’s UI?—A: It depends. Q: How can I make my application scalable?—A: It depends. You get the general idea.
The truth is, of course, that it really does depend. Ultimately, every solution is different and there are many factors, both technical and non-technical, that can significantly affect the architecture and design of a solution at both the small and the large scales. The role of the developer and solution architect is to balance the (frequently contradictory) requirements and constraints imposed by the business, the end user, the organization’s IT environment and management infrastructure, the economic environment, and of course the technologies and tools that are used to build the solution.