QA-QAEDNF45

Enterprise Development using Microsoft .NET Framework 4.5

Developing other than a very small s/w project involves the integration of many technologies. This course takes you through the important technologies and good practices that form part of the .NET landscape.

Prior knowledge

The course is intended for experienced C# developers. The course runs on .NET4.5 and VS2013. This level would be reached by attending the C# language course (QACS) and applying this knowledge for some months.

Objectives:

This is an enterprise-level type of course suitable for programmers and architects who will be taking architectural types of decisions on .NET projects; decisions such as :

How should the components on different boxes communicate?

Should we use LINQ / LINQToXml?

How do we avoid every programmer needing to be skilled in every discipline (database technology, communications, performance, testing)

If the application is not fast enough, what can I do?

Should I use Unit Tests and what are mock objects anyway?

There are many UI patterns - which one should I choose?

What should I attend to at project initiation to prevent it becoming uncontrollable later?

Course Outline:

C# Refresh

This is such that experienced Java architects would have enough C# awareness to attempt most labs

LINQ to Xml

It is assumed that delegates are familiar with LINQ; however, LINQ to Xml is less well known, especially how to use the VB Literal Xml type from C#

Software Partitioning

This module overviews the options and concentrates on what .NET4 offers, particularly for interworking with Office

Windows Communication Foundation Introduction

This covers the main features of WCF and what you need to do to get started. REST is covered using the Web API.

Multi-Threading

This module overviews the options available up until .NET4 and focuses particularly on the BackgroundWorker.

Objectives:

This is an enterprise-level type of course suitable for programmers and architects who will be taking architectural types of decisions on .NET projects; decisions such as :

How should the components on different boxes communicate?

Should we use LINQ / LINQToXml?

How do we avoid every programmer needing to be skilled in every discipline (database technology, communications, performance, testing)

If the application is not fast enough, what can I do?

Should I use Unit Tests and what are mock objects anyway?

There are many UI patterns - which one should I choose?

What should I attend to at project initiation to prevent it becoming uncontrollable later?

Course Outline:

C# Refresh

This is such that experienced Java architects would have enough C# awareness to attempt most labs

LINQ to Xml

It is assumed that delegates are familiar with LINQ; however, LINQ to Xml is less well known, especially how to use the VB Literal Xml type from C#

Software Partitioning

This module overviews the options and concentrates on what .NET4 offers, particularly for interworking with Office

Windows Communication Foundation Introduction

This covers the main features of WCF and what you need to do to get started. REST is covered using the Web API.

Multi-Threading

This module overviews the options available up until .NET4 and focuses particularly on the BackgroundWorker.

The Task Parallel Library

There are several modules here covering the Parallel class, locking, the Concurrent Collections, Pipelining, Tasks, thread-affinity and Tasks, exceptions in the parallel world and concludes with the C#5 async/await feature.

Entity Framework

Again, this is such an important topic that it is covered over several modules which address the basics, Database-first, Model-first, Code-first, Code-second, applying constraints, inheritance options, stored procedures and concurrency.

UI Patterns

A compare-and-contrast module to understand the benefits and differences between Smart Client, Model-View-Presenter, Model-View-Controller and Model-View-View-Model

Unit Test

This module covers the usage of Nunit and MSTest

Mocking

Learn what a mocking means and how to use the premier .NET mocking framework - Moq.

Code Contracts

Although still not a formal part of the .NET Framework, they are improving and worth at least a look. This is 'Design By Contract'.

Monitoring and Logging

Event logs, performance counters and Log4Net are covered here.

C# Performance recommendations

There are a few areas where one can quite inadvertently code in a way that seriously limits performance. This module takes you through the recommendations and you measure how important they are.