Advanced Microsoft C# 4.0 Programming — A 2-Day Course
Course Synopsis
This course is intended for developers who are solid C# programmers, experienced at navigating Visual Studio and are comfortable with the topics of the C# Introductory Language course.
This 2 day workshop concentrates on the more advanced features of the C# programming, leveraging it to address programming problems. The course is presented as a mixture of lectures and hands-on exercises. Practical sessions follow topics, designed to reinforce the points covered.
Course Objectives
On completion of this course, delegates 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
Intended Audience
This course is for developers who are solid C# programmers, experienced at navigating Visual Studio and are comfortable with the topics of the C# Introductory Language course.
Course 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 and the role of delegates. Students who attend the C# Introductory Language course are expected to have some practice before attending this course.
Publicly scheduled dates, locations, and prices
London — £915 (+VAT)
- 1–2 Dec 2010
- 27–28 Jan 2011
- 28–29 Apr 2011
Manchester — £915 (+VAT)
- 7–8 Dec 2010
Leeds — £915 (+VAT)
- 4–5 Oct 2010
Course Contents
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)
Working with Files
- Streams, Readers and Writers
- File and Directory classes
- Compression
- FileSystemWatcher
Working with Data
- DataReaders
- DataSets
Language Features
- Flagged Enums
- Inheritance versioning
- More on generics
- Func<T> and Lambda expressions
Getting started with LINQ
- LINQ and the relationship to C#
More LINQ
- Aggregation
- Grouping
- Joins
- LINQ to XML
- LINQ to Relational
- Architectural usage of LINQ
Going Further with LINQ
- Extension points
- Expression trees
- A LINQ provider
Attributes, metadata & reflection
- Role of metadata
- Attributes
- Using Reflection
- Writing Custom Attributes
COM Interop and dynamic types
- PInvoke
- Run-time Callable Wrappers
- COM Callable Wrappers
- Primary Interop Assemblies and deploying without them
Code Contracts
- An introduction to Code Contracts
Asynchronous Programming
- Thread class
- ThreadPool class
- ASync Delegates
- Background worker
- Manual and Auto Reset events
- Synchronization
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
