0345 4506120

.NET Best Practices and Design Patterns

Course Details

Name .NET Best Practices and Design Patterns
Description
URL
Location:
London - Central
Start Date:
Working Days:
Price:
£1899.00 +vat
Availability:
Exam:
Residential:
Course ID:
483982

Overview

Gain the skills needed to solve real-world software programming problems to quickly deliver reliable applications that realize the quality goals of Agile development. In this training course, you will identify and apply the most modern of design patterns and architectures available for .NET – from lazy singletons to asynchronous adapters. Following a "separation of concerns" approach, write C# code that is much more maintainable, flexible and resilient.

Learning Objectives

You Will Learn How To

  • Solve complex programming problems using design patterns
  • Deliver bug-free code using test-driven development in Visual Studio
  • Create layered architectures for reusability and to eliminate functional duplication
  • Apply the S.O.L.I.D. principles for better class design

Pre-Requisites

  • Requirements

    • Programming experience at the level of:
      • Course, Introduction to C# Programming, or
      • Course, Programming in C# (20483)
    • You should have experience:
      • Working with Visual Studio
      • Using object-oriented concepts
      • Building .NET applications in Visual Basic, C#, or C++
  • Software

    • This course uses Visual Studio 2017, but is useful to those using an earlier version

Course Content

Course Outline

Simplifying Complex Programming with Proven Design Patterns

Applying simple interfaces to intricate algorithms

  • Unifying interfaces from subsystems for ease of use and reusability
  • Implementing the Facade pattern

Varying functionality by programming to interfaces

  • Creating abstractions to enhance application adaptability and flexibility
  • Exploiting the Strategy pattern

Extending object behaviour dynamically

  • Increasing functionality without impacting existing code
  • Composing objects with the Decorator pattern

Achieving reuse and flexibility

  • Eliminating code duplication by outlining an algorithm
  • Employing the Template Method pattern

Interfacing incompatible classes

  • Transforming an interface to add value to existing code
  • Harnessing the Adapter pattern

Applying Test–Driven Development Techniques

Automating unit testing

  • Shortening development cycles with automated tests
  • Eliminating regression errors with reusable tests

Integrating testing and coding

  • Applying the test–first programming practice
  • Generating immediate red–green feedback for increased code quality and shortened feature development cycles
  • Organising, coordinating and running test cases
  • Isolating a class test environment with the Mock–Object pattern for reliable and repeatable testing
  • Tracking the Red–Green–Refactor rhythm for feedback

Refactoring code to improve design

  • Improving design with behaviour preserving refactorings
  • Eliminating code duplication by refactoring to patterns

Architecting a Layered Application

Designing the application architecture

  • Layering architectures for reusability, durability and scalability
  • Decoupling object creation with the Factory pattern
  • Preserving object identity with the Identity Map pattern

Programming application tiers

  • Isolating UI layers with the MVC and MVVM patterns
  • Organising state–rich applications with the State pattern
  • Restructuring database tables without impacting code

Modelling a business area

  • Liberating rich Business Object Models from database structures using the Domain Model pattern
  • Mapping rich Business Objects to database tables with the Data Mapper pattern
  • Collapsing Business Object hierarchies with the Inheritance Mapper pattern
  • Exploiting declarative programming in Microsoft Entity Framework to implement Data Mapping classes

Applying Best Practices

Organising and implementing business logic

  • Managing Persistence Ignorant Entity types with Entity Framework
  • Manipulating groups of Entities with business logic classes

Applying S.O.L.I.D. principles of class design

  • Single Responsibility
  • Open–Closed
  • Liskov Substitution
  • Interface Segregation
  • Dependency Inversion

Automating Repetitive Tasks

Easing data access code

  • Reducing database access code by exploiting Entity Navigation Properties
  • Eliminating database update code with Entity change tracking

Enhancing application code

  • Automating design reviews with FxCop and Code analyser
  • Reducing User Interface code with Data Binding

London - Euston

Description:

This venue, based in Central London, has over 30 fully-equipped classrooms. The classrooms are spread across four floors of Euston House and there are coffee lounges on each floor. 

Registration takes place in the Reception Area on the ground floor and the nearest tube stations are Euston and Euston Square.

Location:

Euston House
24 Eversholt Street
London
NW1 1AD

 

Directions:

From Euston Station
(Northern and Victoria Lines)

Exit into Euston Railway Station. Leave the station through the main doors and turn left immediately. Walk along to stairs leading down to Eversholt Street. Cross the road to Euston House.

For the latest travel information, please visit www.tfl.gov.uk

From Euston Square Underground Station

(Circle, Metropolitan, Hammersmith and City Lines)

Take the exit marked Euston Road (North) and Railway Station. Turn left at the top of the stairs onto Euston Road. Walk past two sets of traffic lights and Euston Railway Station. On the third set of traffic lights turn left into Euston Square. This becomes Eversholt Street. Euston House is on the right past The Royal George Pub.

Parking


All London car parks charge typical city rates.  The closest is the NCP car park at Euston Railway Station.


Our Customers Include