.NET Development & Visual Studio // CS410

C# Design and Application Patterns

Learn how to apply best practices to your C# development and .NET applications. This hand-on course uses real-life analogies that give developers the practical experience needed to succeed in their daily professions.

Course Description

The C# Design and Application Patterns course teaches .NET developers how to apply best practices to their .NET applications. While a thorough understanding of the C# language is key to development success, developers should also understand how to write loosely-coupled code that is based upon proven best practices and patterns. By applying design and application patterns to the development process, more consistent, flexible and maintainable code can be written.

Audience

The C# Design and Application Patterns course teaches .NET developers how to apply best practices to their .NET applications. While a thorough understanding of the C# language is key to development success, developers should also understand how to write loosely-coupled code that is based upon proven best practices and patterns. By applying design and application patterns to the development process, more consistent, flexible and maintainable code can be written.

Prerequisites

Before taking this course, students should have successfully completed the following course or have equivalent experience: 
CS310: Advanced C# Programming 

What You Will Learn

​How to build re-useable code bases 
The importance of building loosely-coupled applications 
The benefits of applying design patterns to development projects 
The role of Generics and Interfaces in design patterns 
The difference between Creational, Structural and Behavioral design patterns 
Best practices for building applications and applying design patterns 
Why Separation of Concerns leads to more testable applications 
How Visual Studio can be used to unit test applications 
How to use MVC and MVVM application patterns

Course Outline

1. Introduction to Design Patterns

  • What are Design Patterns?
  • Why use Design Patterns?
  • Selecting a Design Pattern
  • Key Language Concepts

2. Creational Design Patterns

  • Abstract Factory Pattern
  • Singleton Pattern
  • Builder Pattern
  • Factory Pattern
  • Prototype Pattern

3. Structural Design Patterns

  • Façade Pattern
  • Decorator Pattern
  • Adapter Pattern

4. Behavioral Design Patterns

  • Observer Pattern
  • Chain of Responsibility Pattern
  • Mediator Pattern

5. Application Design Patterns

  • Overview of Application Design Patterns
  • Model-View-Controller (MVC)
    • Understanding the MVC Pattern 
    • Introduction to ASP.NET MVC 
    • The Role of Routing 
    • Creating the Model 
    • Creating a Controller with Actions 
    • Displaying Data with Views
  • Model-View-ViewModel (MVVM) 
  • Introduction to MVVM 
  • The role of the ViewModel
  • Applying MVVM to Silverlight Applications