Course duration: 2 Days
Cost: £895 + VAT
Overview
This course is intended for developers who are solid C# programmers, experienced at navigating Visual Studio and are comfortable with the topics of the Introductory Language course..
This 2 day workshop concentrates on the more advanced features of the C# programming, leveraging it to address programming problems. It is a packed course and presented as a mixture of lectures and hands-on exercises. Practical sessions follow topics, designed to reinforce the points covered.
Prerequisites
Delegates must have solid C# programming skills, Visual Studio skills and be familiar with the concepts covered in the “Introduction to Microsoft C#4 Programming” Language course particularly the rationale behind Generic types & the role of delegates.
On completion
At the end of this course, you will be able to:
Use all C# language features up to and including C#4 features
Working with files and data
Fully understand the role of generics, delegates and particularly the increasing prevalence of generic delegates in the .NET Framework Class Library
Appreciate the role of .NET metadata, use the types of the System Reflection namespace and develop custom attribute classes
Use LINQ (Language Integrated Query); understand some of its flavours (LINQ to Objects / SQL / Dataset / XML) and its extension capabilities
Understand the available choices and implications when writing multi-threaded applications.
Appreciate and use language constructs that enable Parallel processing options that utilise the power of modern multi-core processors.
Course Outline
Module 1: A quick tour around advanced new features in Visual Studio 2010
Window and Editor features
Consume-First mode
Search
Dependency graphs
UML
Call Hierarchy
(Thread visualization views)
Module 2: Working with Files
Streams, Readers and Writers
File and Directory classes
Compression
FileSystemWatcher
Module 3: Working with Data
DataReaders
DataSets
Module 4: Language Features
Flagged Enums
Inheritance versioning
More on generics
Func
Module 5: Getting started with LINQ
LINQ and the relationship to C#
Module 6: More LINQ
Aggregation
Grouping
Joins
LINQ to Xml
LINQ to Relational
Architectural usage of LINQ
Module 7: Going Further with LINQ
Extension points
Expression trees
A LINQ provider
Module 8: Attributes, metadata & reflection
Role of metadata; Attributes; Using Reflection; Writing Custom Attributes
Module 9: COM Interop and dynamic types
PInvoke
Run-time Callable Wrappers
COM Callable Wrappers
Primary Interop Assemblies and deploying without them
Module 10: Code Contracts
An introduction to Code Contracts
Module 11: Asynchronous Programming – 1
Thread class
ThreadPool class
ASync Delegates
Background worker
Manual and Auto Reset events
Synchronization
Module 12: The Task Parallel Library
Parallel Programming in the .NET Framework; Task based programming; The Task Parallel Library (TPL)
Introduction to Parallel LINQ (PLINQ);Data Structures for Parallel Programming
Concurrent Collection Classes
Thread visualization. In Visual Studio 2010
Recommended follow-on courses
“Building Effective ASP.NET 4.0 Web Apps using Visual Studio 2010”
“Enterprise Architecture for Microsoft .NET 4.0”