This course teaches developers the programming skills that are required for developers to create Windows applications using the C# language. Students will review the basics of C# program structure, language syntax, and implementation details, and then consolidate their knowledge as they build an application that incorporates several features of the .NET 6.0. This course covers content that was in retired Microsoft Course 20483 - Programming in C#.


* Actual course outline may vary depending on offering center. Contact your sales representative for more information.

Learning Objectives

At course completion you should be able to:
Describe the core syntax and features of C#.
Create methods, handle exceptions, and describe the monitoring requirements of large-scale applications.
Implement the basic structure and essential elements of a typical desktop application.
Create classes, define and implement interfaces, and create and use generic collections.
Use inheritance to create a class hierarchy and to extend a .NET class.
Read and write data by using file input/output and streams, and serialize and deserialize data in different formats.
Create and use an entity data model for accessing a database and use LINQ to query data.
Access and query remote data by using the types in the System.Net namespace and WCF Data Services.
Build a graphical user interface by using XAML.
Improve the throughput and response time of applications by using tasks and asynchronous operations.
Integrate unmanaged libraries and dynamic components into a C# application.
Examine the metadata of types by using reflection, create and use custom attributes, generate code at runtime, and manage assembly versions.
Encrypt and decrypt data by using symmetric and asymmetric encryption.

  • Module 1: C# Syntax

  • Lesson 1: Writing Applications in C# and .NET
    Lesson 2: Types of Data and Expressions
    Lesson 3: C# Language Constructs

  • Module 2: C# Language Concepts

  • Lesson 1: Methods
    Lesson 2: Method Overloading
    Lesson 3: Exception Handling
    Lesson 4: Monitoring

  • Module 3: C# Structures, Collections and Events

  • Lesson 1: Structs
    Lesson 2: Enums
    Lesson 3: Built-in Collections
    Lesson 4: Events

  • Module 4: C# Classes

  • Lesson 1: Creating Classes
    Lesson 2: Interfaces
    Lesson 3: Understanding Generics in C#

  • Module 5: C# Inheritance

  • Lesson 1: Hierarchies of Classes
    Lesson 2: Polymorphism
    Lesson 3: Extending Classes

  • Module 6: Input and Output

  • Lesson 1: File I/O
    Lesson 2: Serialization and Deserialization
    Lesson 3: Streams

  • Module 7: Database Access

  • Lesson 1: Entity Framework
    Lesson 2: LINQ

  • Module 8: Using the Network

  • Lesson 1: Web Services
    Lesson 2: REST and OData
    Lesson 3: ASP.NET Core MVC

  • Module 9: Graphical User Interfaces

  • Lesson 1: Using UI Frameworks
    Lesson 2: Data binding
    Lesson 3: Styling the UI

  • Module 10: Application Performance

  • Lesson 1: Multitasking
    Lesson 2: Asynchronous Calls
    Lesson 3: Dealing with Conflicts

  • Module 11: C# Interop

  • Lesson 1: Dynamic Objects
    Lesson 2: Managing Resources

  • Module 12: Designing for Reuse

  • Lesson 1: Metadata
    Lesson 2: Attributes
    Lesson 3: Generating Code
    Lesson 4: Assemblies


This course is intended for experienced developers who already have programming experience in C, C++, JavaScript, Objective-C, Microsoft Visual Basic, or Java and understand the concepts of object-oriented programming. This course is not designed for students who are new to programming; it is targeted at professional developers with at least one month of experience programming in an object-oriented environment. If you want to learn to take full advantage of the C# language, then this is the course for you.




The 55337 course uses C# as the language to facilitate an introduction to programming. Course 55339 focuses on the C# language itself, making it an excellent follow-on course.


Length: 5.0 days (40 hours)


Not Your Location? Change

Course Schedule:

To request a custom delivery, please chat with an expert.