CS314: Advanced C# 5 Programming with Visual Studio 2012

Start Date Time Days Price GTR Availability
October 23, 2017 11:00 (EST) 5 $4,500.00 Register

Please note all classes scheduled will be running:

  • 8:00AM – 4:00PM PST
  • 9:00AM – 5:00PM MST


Course Description
The Advanced C# Programming course provides students with the knowledge and skills needed to develop applications using .NET Framework technologies with C# and Visual Studio. Students start with an accelerated language review, followed by core features of the Foundation Class Libraries (FCL), CLR memory management, events and delegates, async tasks, and dependency injection techniques. The class then covers development topics such as working with different System.IO classes, parsing XML data, and creating Windows Services. Finally, the course covers serializing data, exchanging data using WCF services, security classes, and transaction management.

This course is valuable for developers who are interested in enhancing their existing C# programming skills.
It is highly recommended that students take the C# Programming course before taking this course or have at least 6 months of hands-on programming experience with C# and feel comfortable working with C# syntax.

Before taking this course, students should successfully complete the following course or have equivalent experience:
CS214: C#5 Programming with Visual Studio 2012
CS210: C#4 Programming with Visual Studio 2010


  • Learn best practices
  • Review Object-oriented principles
  • Learn how to build classes with custom events and delegates
  • Understand how Func<T, TResult> and Action<T> can be used
  • Understand the role of dependency injection
  • Learn more about how the CLR manages memory
  • Write asynchronous code with async and await
  • Learn how to selectively compile code
  • Drill into .NET XML parsing APIs
  • Build distributed applications using Windows Communication Foundation (WCF)
  • Apply transaction management technique


Accelerated C# Concepts
Object Oriented Programming
Type Conversions
Operator Overloading
Using Attributes

Best Practices
Exception Management
String Manipulation
Thread Synchronization
Generics and Constraints

CLR Memory Management
The Common Type System
Understanding CLR Generations
The role of IDisposable
Using the CLR Profiler

Foundation Class Library Features
System.IO Classes
Using System.Net Classes
Pattern Matching with RegEx
Dynamic Code Inspection/Invocation with Reflection

Conditional Compilation
Defining Debug Symbols
Conditional Compilation using the Conditional Attribute

Events and Delegates
What are Events, Delegates and Event Handlers?
Working with Delegates and Events
Creating Custom EventArgs Classes
Using Lambda Expressions
Using Func<T,TResult>
The async and wait keywords

Using Dependency Injection
What is Dependency Injection (DI)?
What is an IoC container?
The Role of Interfaces
Dependency Injection Techniques
Using an Ioc Container for DI

Monitoring, Debugging and Tracing
Using the Debugger Class
Tracing Operations
Performance Counters

Working with XML Data
Using System.Xml Classes
Using XML APIs
Monitoring XML files using Windows Services and the FileSystemWatcher

Serializing Data
Binary serialization
XML Serialization

.NET Security and Cryptography
Symmetric and Asymmetric Encryption Techniques
WindowsPrincipal and GenericPrincipal

Exposing Data with WCF
Web Services Architecture
Creating and Consuming a WCF Service
Self-Hosted Services
Modifying WCF Bindings
Debugging Services

Working with Transactions
Getting Started with Transactions
ADO.NET Transactions
Using TransactionScope