First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Course CSH102 Advanced C# Programming

Duration: 5 Days

Intended Audience

The course is aimed at Programmers who already know C# and who wish to further develop their C# and .NET programming skills


Areas explored in this course include complex data processing utilising extended features of the Entity Framework (EF) and the creative use of Lambda expressions and extension methods. Advanced data processing techniques, including XML processing, using LINQ are covered in depth. The course also explores the realisation of complex transfer logic via generic Func<T,R> delegates, and techniques for exploiting the power of dynamic enumeration generation using IEnumerable<T> within custom generic classes


  • Intensive overview of C# and .NET
    • Overview of core C# and .NET
    • .NET data access technologies
    • Interfaces
    • Generic and nongeneric collections
  • Useful C# Idioms based on
    • C# language shortcuts and features such as
      • Autoimplemented properties
      • Implied type declaration
      • Object initialisers
      • Anonymous object construction
      • Lambda expressions
      • Extension methods - Count, Reverse, Union, Except ...
    • Delegates
      • Parameterising delegates
      • Func<T,R> generic delegates
  • LINQ in Depth
    • ADO.NET compared with LINQ
      • DataSet objects vs. generic lists
      • SqlDataReader vs. IEnumerable<T>
    • Conecting to and retrieving data from a database
      • ObjectContext
      • Attaching to a database via EntityFramework (EF)
      • Correlating data tables with corresponding entity classes
    • Object Relational Design Tool
      • Mapping entity classes to database tables
      • Capturing inheritance relationships
      • Importing Stored Procedures
    • Updates and Transactions
      • Inserts, updates and deletes
      • Exception and error handling
      • Transaction processing - commits and rollbacks
    • Complex queries
      • aggregation using group
      • Inner, outer and group joins
      • Using the into clause to generate data subsets
      • Anonymous query results
      • Composite vie and nested from clauses
      • Parsing XML documents using LINQ