Module 1: Basic principles of software design |
|
- Signs of bad software design
- High cohesion and low coupling
- Separation of concerns
- Maintainability and readability
|
Module 2: Object-oriented software design |
|
|
- How to factor out to classes
- Responsibility-driven design
- Interfaces vs. implementation
- Reusability vs. composition vs. aggregation
|
Module 3: Program to an interface; not to an implementation |
|
|
- Dependency injection
- Plug-in
- Tools in Enterprise Library
|
Module 4: Patterns for the business layer |
|
|
- Domain model vs. Table-based model
- Domain-driven design
- .NET Insights: Entity Framework
- .NET Insights: LINQ-to-SQL
|
Module 5: Building blocks of the business layer |
|
|
- Service Layer
- Data-transfer objects
- Application services
|
Module 6: Building blocks of the Data Access Layer |
|
|
- Responsibilities of the DAL
- Architecture of an object-based DAL
- O/RM in action
- DAL and stored procedures
|
Module 7: Patterns for the presentation layer |
|
|
- The original MVC
- Model2: The Web variation of MVC
- .NET Insights: the ASP.NET MVC framework
- MVP: The general-purpose variation of MVC
- Application-driven scenarios: Windows, WPF, Web
|
|
|