0345 4506120

.NET Best Practices and Design Patterns

Course Details

Name .NET Best Practices and Design Patterns
Description
URL
Location:
Virtual Classroom
Start Date:
Working Days:
Price:
£1689.50 +vat
Availability:
Exam:
Residential:
Course ID:
512929

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

Virtual

Description:

Online AnyWare™ immerses you in a dynamic online training environment where you access and participate in an actual classroom. You interact with both your instructor and your peers—just as if you were together with them in the classroom—as you master the essential knowledge and skills in today's most important IT and management topics.

With AnyWare Online Training, you can...

  • Access your course from any Internet-accessible location
  • Gain scheduling flexibility—choosing from a wide selection of course dates
  • Immerse yourself in an actual classroom experience
  • Benefit from AnyWare's unique real-time interactivity
  • Achieve the same results that you expect from an instructor-led classroom course

Frequently Asked Questions

What are the technological requirements for participating in a live, online course delivered via Online AnyWare?

To participate fully in a virtual AnyWare course, you will need the following:

  • An audio-enabled computer
  • A minimum screen resolution of 1024 x 768
  • An Intel Pentium® 4 computer, or equivalent, with a 2.5 GHz or faster processor; or an Intel Mac
  • A minimum of 1 GB of RAM
  • A reliable high-speed Internet connection, either via cable modem, DSL or corporate LAN (a wired Internet connection is strongly recommended)
  • Internet Explorer 7 or higher; or Mozilla Firefox 2 or higher
  • Support for Java and ActiveX within your browser with the latest version of Java installed
  • Adobe Flash version 8 or higher
  • Access to www.logmein.com
  • Ability to install the LogMeIn ActiveX control, which may require local administrative privileges
  • AnyWare will support a dual-monitor setup, which allows concurrent access to the classroom and the computer used for the hands-on exercises. This setup may enhance your training experience; however, it is not a requirement for full participation in any of our courses.

Do I need to install any special software?

None! All you need is a high-speed, flash-enabled Internet browser—Internet Explorer 7 or higher, Mozilla Firefox 2 or higher, or Safari.

Can I participate in a course via Online AnyWare using any type of operating system?

You can participate in a class on a PC or Mac. However, the hands-on exercise material in Course 2320 and Course 984 is not compatible with the Mac operating system at this time. Please contact our AnyWare support team if you are planning to participate in either of these courses using a Mac operating system.

Do I need my own microphone, earphones and/or headset?

Prior to the course, we will provide a microphone-enabled headset for you to use during the course. The headset is yours to keep after the course.

Is the virtual classroom experience really the same quality when it's delivered over the Internet?

Absolutely! Online AnyWare is designed to provide you with the same experience you would receive in the classroom. You connect to an actual classroom where you participate online in live, instructor-led training that is facilitated either at one of our Education Centres or on site at a client's location. As an online participant, you engage with the instructor and interact with your classmates just as if you were in the actual classroom. And you perform all of the same hands-on exercises, so the knowledge you learn and the skills you gain are no different than if you were taking the course as an in-class participant.

Why is Online AnyWare so much more effective than off-the-shelf, self-paced e-learning programmes?

The most important benefit of live, instructor-led training is the ability to interact with your instructor and fellow classmates. It is through such interaction that real learning takes place. Courses taken via AnyWare offer the same benefits. In fact, over half the time spent in courses is dedicated to interactive activities—where real learning happens! You'll have your specific questions answered on the spot, receive immediate clarification of anything that is confusing, perform hands-on exercises by remotely accessing an in-class PC, and share your experiences in real time with your fellow classmates. Most importantly, you'll receive expert advice on how best to apply what you learn to your own projects.

How is the classroom experience actually delivered?

Adobe Connect is the foundation technology for our AnyWare training delivery solution used to deliver our IT and management courses. You'll acquire new skills in a safe environment—your computer's files and applications are never engaged, so there is no risk of damage. A hard copy of the course materials and a microphone-enabled headset will be shipped to you prior to the course.

Using your Internet browser, you remotely access a dedicated in-class PC so that you can participate in hands-on exercises and develop new skills just as if you were in the actual classroom where your instructor is coaching in real time.

How do I connect to the classroom?

One week prior to the class start date, you will receive a "Getting Ready" e-mail with a URL and your login credentials. We'll ask you to complete a three-step validation process prior to the class start date to test your system, two-way audio connection, and Internet connection to the classroom and to your dedicated, in-class PC on which you'll be performing your hands-on exercises.

A few days before your class starts, you'll also receive a call from one of our customer service representatives who will answer any questions you may have. When it's time for the course to begin, just log in—from anywhere—and join your classmates, live in the classroom. During your course, our AnyWare support technicians are available to assist you as needed. It's that easy!

What are the course hours?

Start and end times vary for each individual course. Please confirm the start and end times during registration, as your course may be delivered from a different time zone than your own. On the first day of class, plan to log in to your classroom 30 minutes prior to the start of the class.

Our Customers Include