This 4-day instructor-led course is aimed at developers who are already experienced with either the Java or C language and are looking to cross-skill to C#6/Visual Studio 2017.
In addition to the language elements themselves, the course also covers some of the common technologies within the .NET4.7.1 Framework that will enable delegates to make to use the language effectively.
The course is presented as a mixture of lectures and hands-on exercises. Practical sessions follow all the main topics, designed to reinforce the points covered.
Delegates will be experienced C or Java developers and therefore will have a strong existing knowledge of object oriented programming concepts.
Introduction to the Microsoft world
- The .NET Framework
- The Common Language Runtime
- Patterns subsumed into the language
- Visual Studio 2015
- Strong naming
- The GAC
Differences between Java/C++ and C#
- Differences C to Java
- The same in Java and C#
- The bulk of the differences between Java and C# are minor. All of these are handled as short 'bullet point' lab preceded by demos of some of the differences and their significance. Greater time is given to the more significant differences.
Collections and Generics
• The generic collections – List and Dictionary
Delegates, Lambdas and LINQ
- Full explanation of what delegates, lambdas and LINQ are
- The various C# language features that act as LINQ enablers;
- LINQ to Objects
- Grouping; Joins; LINQ to XML
- This is the ‘Hibernate’ of the .NET world ie the way that .NET typically connects to relational databases
- Introduction to both Nunit and MSTest
- Mock objects using Moq
Introduction to the .NET4 Task Parallel Library
- Data Parallelism
- Task Parallelism
- Blocking and non-Blocking Collections
- C# has the above Task mechanism built into the language to enable the code structure of asynchronous code to look almost identical to the synchronous equivalent
- The topics listed here are typically only of significance for those doing WebForms or WinForms programming
- Consuming events
- Producing events