Advanced Microsoft C# 4.0 Programming

Request info

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 and Lambda expressions

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”

SELECT wp_posts.*, wp_p2p.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_p2p WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'start_date' AND CAST(wp_postmeta.meta_value AS DATE) >= '2025-04-24' ) ) AND ((wp_posts.post_type = 'schedule' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled'))) AND (wp_p2p.p2p_type = 'schedule_to_courses' AND wp_posts.ID = wp_p2p.p2p_from AND wp_p2p.p2p_to IN (SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (906) AND ((wp_posts.post_type = 'courses' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled'))) ORDER BY wp_posts.post_date DESC )) GROUP BY wp_posts.ID ORDER BY CAST(wp_postmeta.meta_value AS DATE) ASC