First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Course CSH101 - .Net and C# Programming - A Comprehensive Introduction

Duration: 5 Days

Intended Audience

The course is aimed at Programmers who need a rapid and intensive introduction to application development using C# and the .NET framework. Students are expected to have some programming experience e.g. in C, Java or C++, or VB.


The course covers the architecture and design of the .Net Framework and how C# fits into this framework. It explores the syntax and structure of the C# programming language and provides a thorough coverage of object oriented programming techniques which includes how to best make use of inheritance, polymorphism, composition and aggregation in the design and implementation of C# applications. The course also covers creation of Windows Forms based application and introduces WPF, the Windows Presentation Framework. In addition the course provides an introduction to the design, implementation and deployment of custom .NET components as well as introducing the use of LINQ to query databases and other data sources.


  • Introduction to C# and UML and .NET
    • Development and evolution of C# and .NET
    • Overview of Object Oriented concepts
    • Overview of UML
    • .NET Common Language Infrastructure (CLI)
    • .NET Managed Code Philosophy
    • Common Intermediate Language (CIL) and metadata
  • C# - Foundations
    • Data types and control constructs
      • Implicit vs. explicit variables
      • Value types vs. reference types
      • Unicode - Characters and Strings
    • Methods - Defining them and calling them
      • Specifying the Main method
      • Mechanisms for passing arguments and returning values
      • Scope and lifetime of variables
      • Named methods vs. symbolic methods
      • Exception handling
      • Garabage collection and resource recovery
    • Using .NET library classes
      • Namespaces - purpose, usage and syntax
      • I/O using the Console and stream classes
      • Standard and Generic collection classes - an overview
  • C# Classes
    • Defining a Class
      • Realising attributes with methods and properties
      • Constructors and initialisation
      • Method and constructor overloading
      • Inheritance and Polymorphism
    • Class instance - Object
      • Allocating memory with new
      • Passing initialisation values to constructors
      • Value allocation vs. reference allocation
      • Boxing and unboxing
      • Accessing properties and invoking methods
  • Class Relationships, Collections of Classes and Interfaces
    • Aggregation and Composition
      • References and how to manipulate them
      • Physical equivalence vs. logical equivalence
      • Deep copying vs. shallow copying
      • Inheritance and Polymorphism
      • Collection Library Classes
      • Generics
    • Interfaces
      • Specifying an interface
      • Implemeting an interface
      • Interface Polymorphism
      • Events and Delegates
      • Synergy between collection classes, generics and interfaces
  • Component Implementation
    • Component oriented aspects of .NET
      • Manifests and assemblies
      • Deploying applications and components
      • Understanding the .NET assembly metamodel
    • Component Implementation
      • Creation and invocation of custom components
      • Extending System.ComponentModel.Component
      • Accessing legacy COM/DCOM components
  • Introduction to Enhanced Application Development
  • Multitier application fundamentals
    • Generating user interfaces
    • File I/O and serialisation
    • Database access via LINQ
    • Overview of WPF and XAML
    • Overview of WCF
  • Advanced Techniques - An overview
    • Automating documentation with XML
    • Implementing an IEnumerable<T> interface