.NET Best Practices and Design Patterns

4 days


Gain the skills needed to solve real-world software development problems, and deliver fast, reliable applications. In this training course, you will identify and solve common design and architecture problems, apply best practices and design patterns to .NET application development, write code that is more maintainable, flexible and resilient, and apply design patterns for application reuse and flexibility.


Programmers, system architects and anyone developing .NET applications. Programming experience at the level of Course 419, "C# Programming," or Course 503, "Visual Basic Programming for .NET," is assumed.

Hands-On Training

  • You gain experience implementing .NET best practices and design patterns. Exercises, completed in VB or C#, include:
  • Reconciling diverse processing problems with the Strategy pattern
  • Simplifying a complex system with the Facade pattern
  • Exploiting Microsoft Entity Framework for data access and updates
  • Creating a Business Domain Object Model
  • Building automated test cases
  • Structuring a testable user interface with the Model View Controller pattern
  • Capturing and reusing tests within Visual Studio

Skills Gained

You Will Learn How To

  • Implement proven methods to build adaptable, reliable and efficient .NET Web and smart client applications
  • Solve complex programming problems with industry-standard design patterns
  • Deliver bug-free code using test-driven development and Visual Studio 2008
  • Create layered architectures for reusability and avoiding functional overlap
  • Apply best practices for improved class design
  • Simplify and automate repetitive tasks


Important Course Information Important Course Information Requirements: Requirements:

  • Programming experience at the level of:
    • Course 419, C# Programming, or
    • Course 503, Visual Basic Programming for .NET
  • You should have experience:
    • Working with Visual Studio
    • Using object-oriented concepts
    • Building .NET applications in Visual Basic, C#, or C++

Programming experience at the level of:

  • Course 419, C# Programming, or
  • Course 503, Visual Basic Programming for .NET

Course 419 Course 419 , C# Programming, or

Course 503 Course 503 , Visual Basic Programming for .NET

You should have experience:

  • Working with Visual Studio
  • Using object-oriented concepts
  • Building .NET applications in Visual Basic, C#, or C++

Building .NET applications in Visual Basic, C#, or C++ Software: Software:

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

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

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
  • 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

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. It's a cost effective option.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.

Upcoming Dates

  • GREEN This class is Guaranteed To Run.
  • SPVC - Self-Paced Virtual Class.
  • Click a Date to Enroll.
Course Location Days Cost Date
Onsite4 2000 £2000 2019-06-17
London3 1500 £1500 2019-06-26
London3 1695 £1695 2019-11-13