Course Introduction --- Design and Architecture in .NET
The goal of this course is to help students build effective, high quality applications on the Microsoft platform and the .NET Framework more quickly and with less risk by leveraging tried and trusted architecture and design principles and patterns.
The course provides an overview of the underlying principles and patterns that provide a solid foundation for good application architecture and design. It goes on to provide guidance on identifying and addressing the key design characteristics of the solution and the key quality attributes (such as performance, security, and scalability) and crosscutting concerns (such as caching and logging). The course builds still further and provides guidance that is more specific on the architecture and design of the most common application types, such as Web, rich Internet applications (RIA), rich client, services, and mobile applications.
The course will help students to:
Understand the underlying architecture and design principles and patterns for developing successful solutions on the Microsoft platform.
Identify appropriate strategies and design patterns that will help them design their solution’s layers, components, and services.
Identify and address the key engineering decision points for their solution.
Identify and address the key quality attributes and crosscutting concerns for their solution.
Choose the right technologies for their solution.
Create a candidate baseline architecture for their solution.
Identify patterns & practices solution assets and further guidance that will help them to implement their solution.
Note that while the course is extensive, it is should not be considered a complete and comprehensive treatise on the field of application architecture and design. The course is intended to serve as a practical and convenient overview of and reference to the general principles of architecture and design on the Microsoft platform and the .NET Framework.
In particular, the course does not try to provide a definitive or authoritative solution architecture for any particular scenario. Rather, it provides a concise overview of the principles and patterns that underpin good architecture and design, and highlights and provides recommendations for some of the most important issues you might encounter.
The bulk of the course is technology-agnostic and principled-based, and can be applied to any platform or technology. However, we have added specific Microsoft and .NET Framework technology considerations where we think it helps you to choose amongst available technologies, or to make the most of them in a particular situation.