Course Overview

Advanced .NET will give you the information you need to build modern, distributed applications that are well-designed, responsive, scalable, performant, and robust. You’ll start by learning techniques to make efficient use of threads for handling both compute and I/O bound operations. While threading, memory and exception handling play an important role in application performance and reliability, today’s applications need to be designed from the ground up for testability and maintainability. Advanced .NET will teach you how to refactor dependencies as interfaces so that they can be mocked in unit tests and provided at runtime by a Dependency Injection (aka Inversion of Control) container, which will help insure your app against obsolescence by decoupling it from external dependencies.

You’ll also learn a set of best practices for building RESTful services using ASP.NET Web API with LINQ and Entity Framework, Microsoft’s flagship object-relational mapping (ORM) tool. You’ll learn how to use OWIN and Katana for building host-independent services which incorporate middleware for cross-cutting concerns such as logging or authentication, and how to configure serializers to handle cyclical references.

To prepare you for what’s coming next in the .NET Framework, this course will include coverage of .NET Core 5, Microsoft’s cross-platform, bin-deployable, “cloud optimized” version of .NET. You’ll also learn about new language features of C# 6.0 and the benefits that come with Roslyn, which is Microsoft’s “compiler as a service.” Lastly, you’ll get up to speed on ASP.NET 5, which is Microsoft’s next-generation web platform that unified the MVC and Web API frameworks with a cross-platform runtime and an entirely new project structure that makes it easier for integrating different toolsets and technologies.

Key Learning Areas

  • Improve application performance and scalability for compute and I/O bound operations by utilizing multiple CPUs while conserving system resources.
  • Efficient use of synchronization primitives exposed by the .NET Framework.
  • When to move web services from WCF to ASP.NET Web API
  • Building host-independent web services with ASP.NET Web API using OWIN and Katana.
  • Implement scalable async services that perform asynchronous I/O operations.
  • Using Entity Framework with Web API to perform disconnected updates.
  • Configure Entity Framework for use with N-Tier applications, avoiding common pitfalls.
  • Correctly apply Repository and Unit of Work patterns with Dependency Injection.
  • Validate client data with attributes or a fluent API, handle validation errors with action filters.
  • Leverage Reactive Extensions (Rx) to elegantly handle a large number of events.

Course Outline

  • Threading
    • Compute-Bound Asynchronous Operations
    • I/O-Bound Asynchronous Operations
    • Thread Synchronization
  • Services
    • ASP.NET Web API: Architecture
    • ASP.NET Web API: Hosting, Client, and Async
    • Entity Framework in N-Tier Applications
  • Patterns and Testing
    • Repository and Unit of Work Patterns
    • Dependency Injection
    • Testing and Mocking
  • Various Advanced Topics
    • Web API Security
    • Validation
    • Reactive Extensions (Rx)
  • .NET 5.0
    • What’s New in C# 6 and Roslyn
    • Introduction to ASP.NET 5 (vNext)

Who Benefits

Developers who wish to learn advanced strategies and techniques for building robust, scalable and responsive applications that incorporate recommended patterns and practices for data access, web services, and client portability.

Prerequisites

The expected audience for this course is C# developers with at least 6 months experience.