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.
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.
Please note: Before attending this class delegates must have a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.
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?
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#
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.
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.
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.
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
This module covers the usage of Nunit and MSTest
Learn what a mocking means and how to use the premier .NET mocking framework - Moq.
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.