.NET Development & Visual Studio // CS310

Advanced C# Programming

Enhance Your C# Programming Skills with This Advanced Class. This instructor-led class provides students with the knowledge and skills to develop applications utilizing .NET Framework 4 technologies with C# and Visual Studio 2010.

Course Description

In this class, students start with an accelerated language review, followed by core features of the Foundation Class Libraries (FCL), CLR memory management, and dependency injection techniques. The class then covers various development topics using delegates and events, working with different System.IO classes and parsing XML data. Finally, the course covers exchanging data using WCF services, serializing data, security classes and transaction.

Audience

This course is valuable for developers who are interested in enhancing their existing C# programming skills.

Prerequisites

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

What You Will Learn

Object-oriented principles
The role interfaces play in .NET
The role of classes, objects, namespaces, and assemblies
.NET Base Class Libraries
Components of the .NET framework
Data access with ADO.NET
Working with Multiple Threads
LINQ and Lambdas
ASP.NET and Silverlight Application Fundamentals

Course Outline

1. Accelerated C# Concepts

  • Common Type System
  • Object Oriented Programming
    • Abstraction
    • Polymorphism
    • Inheritance
    • Encapsulation
  • Operator Overloading
  • Using Attributes

2. Best-Practices

  • Exception Management
  • String Manipulation
  • Thread Synchronization
  • Generics and Constraints

3. Foundation Class Library Classes

  • Send E-mail
  • Using System.Net Classes
  • Pattern Matching with RegEx
  • Using the StringReader/StringWriter Classes
  • Dynamic Code Inspection with Reflection

4. C# Language Syntax

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

5. Conditional Compilation

  • Defining Debug Symbols
  • Conditional Compilation using the Conditional Attribute

6. Events and Delegates

  • What are Events, Delegates and Event Handlers?
  • Creating Delegates and Events
  • Raising and Handling Events
  • Creating Custom EventArgs Classes
  • Using the EventHandler Delegate
  • Anonymous Methods and Delegate Inference
  • Using Lambda Expressions
  • Using Func<T,TResult>
  • Working with the Expression Type

7. Using Dependency Injection

  • What is Dependency Injection?
  • What is an IoC container?
  • The Role of Interfaces
  • Constructor Injection
  • Setter Injection
  • Using an Ioc Container for DI

8. Monitoring, Debugging and Instrumentation

  • Using the Debugger Class
  • Tracing Operations
  • Performance Counters

9. Serializing Data

  • Binary serialization
  • XML Serialization

10. Working with XML Data

  • Using System.Xml Classes
  • Using XML APIs
  • Monitoring XML files using Windows Services and the FileSystemWatcher

11. .NET Security

  • Understanding Code Access Security (CAS)
  • Symmetric and Asymmetric Encryption Techniques
  • WindowsPrincipal and GenericPrincipal

12. Exposing Data with WCF

  • Web Services Architecture
  • Creating and Consuming a WCF Service
  • Self-Hosted Services
  • Modifying WCF Bindings
  • Instance Management
  • Debugging Services

13. Working with Transactions

  • Getting Started with Transactions
  • ADO.NET Transactions
  • Using TransactionScope
  • WCF Transactions