Course Overview

This class will introduce you to the key technologies available on the .Net platform to design and build end to end solutions. The course will open your eyes to a variety of different technologies to solve your architectural needs, while discussing the pros and cons for each. This is not intended to be a recipe card but a critical look at various technologies and how you may construct your own recipe for your next project.

Key Learning Areas

  • Design Patterns
  • Testing
  • Distributed components
  • Data Access
  • Modern UI development
  • Concurrency

Course Outline

  • Design for Testing
    • Loose Coupling and Inversion of Control
    • Testing
    • Mocking
    • Effective use of IoC containers
  • Essential Design Patterns
    • Learning the key design patterns you can't live with out
    • Understand the full benefits of Design Patterns
    • Learn how to use patterns to simplify your architecture
    • Learn how to use patterns to make your architecture testable
  • Data Access
    • Simplifying data access with an ORM
      • Entity Framework and Code First
    • NoSQL
    • Separating application logic from data access to simplify testing
  • Distributed components
    • Understanding networking
    • SOAP with WCF
    • REST with WebAPI
    • Message queuing, Rabbit MQ/AMQP
  • Modern Web or Smart Client
    • MVC, Angular JS, Web Sockets via SignalR
    • XAML, Databinding, building an MVVM library
  • Concurrency
    • How to create units of work to in run in parallel
    • Efficient use of threads with asynchronous IO
    • Using threads with UI technology to maintain a fluid user experience
    • Safe concurrency
    • Scaling compute

Who Benefits

Developers wishing to learn how to utilize the latest .NET technologies, enabling them to design and build a reliable, maintainable and scalable solutions using the .NET framework.

Prerequisites

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