Interested in a private company training? Request it here.
Not ready to book yet? Request an offer here.
C# is a modern, strongly-typed programming language developed by Microsoft and designed to run on the .NET platform. It is widely used for building a variety of applications, ranging from web and desktop to cloud and mobile solutions. In this introduction, you will learn what makes C# powerful, how it relates to .NET, and which tools you will use as a C# developer.
In this chapter, you will learn the core building blocks of the C# language. These fundamentals form the basis of every C# application and are essential for writing clear, maintainable, and correct code. You will explore how C# represents data, how code is structured, and how decisions and repetition are expressed in the language.
Modern C# development is supported by powerful tools that help you write, understand, and improve code more efficiently. In this chapter, you will explore the features of Visual Studio that assist you during development, from intelligent code completion and debugging to AI-assisted development.
This chapter introduces the core principles of Object-Oriented Programming (OOP) in C#. You will learn how to define classes and create objects from them at runtime. By encapsulating data and behavior, classes help structure code in a clear and maintainable way. You will also be introduced to namespaces as a means of logically grouping related classes.
Gain a professional understanding of structuring .NET applications during the design phase with Visual Studio Solutions and Projects. Using Visual Studio, you will learn how solutions and projects are organized at design time, how code is compiled into assemblies, and how those assemblies are executed by the .NET runtime. This knowledge provides essential context for building, debugging, and scaling real-world .NET applications.
Whenever you instantiate an object from a class, it needs to be constructed. This module discusses how .NET handles this.
From time to time, you need some functionality that is not part of one object, but instead part of a complete class. This allows you to use methods without creating an object, or storing data that is reachable for every object. In .NET we call this static members and classes.
Explore the fundamental concept of inheritance in C# and its pivotal role in the architecture of .NET itself. We will see how we can use Inheritance to extend a class and add functionality to it. To help you a bit with a practical example, we'll create an ASP.NET Core MVC application to illustrate Inheritance.
On top of Inheritance in OO Programming comes the marvel known as Polymorphism. It allows us to add a different implementation for specific types, based on a generic definition of a function. With polymorphism this is an easy feat to accomplish.
Discover how abstract classes and interfaces in C# facilitate clear, flexible designs by establishing contracts for other classes to follow. This overview explores their roles in enforcing consistency and enabling polymorphic behaviors, vital for building scalable, maintainable software architectures.
Every C# program works with data, and that data is represented through types. Whether you are storing numbers, text, or objects, variables are always backed by memory. In this chapter, you will explore how different categories of types are represented in memory, how they behave when passed around in code, and how these choices impact correctness and performance.
Whenever something unexpected happens, like the network going down, we want our programs to handle this behavior in a user-friendly way. With Exceptions we can react fittingly when these problems occur.
When writing reusable code in C#, there are two primary mechanisms to consider: inheritance and generics. Inheritance enables reuse through shared base types, while generics enable reuse by defining type-safe templates with placeholder types. Generics improve type safety, eliminate the need for casting and boxing, and often lead to better runtime performance. In this chapter, you will learn how generics are used throughout .NET, starting with generic collections, and how to create your own generic types and methods. You will also explore how generic constraints allow you to place rules on acceptable type arguments.
One of the more challenging aspects of .NET programming is to be able to store methods in a variable. That is exactly what delegates allow us to do. This concept is used with a lot of .NET concepts, like asynchronous programming, event handling, LINQ, ...
Language Integrated Query (LINQ) provides a powerful and expressive way to query and transform collections in C#. Instead of writing complex loops, LINQ allows you to describe what data you want using a declarative syntax. These queries can be applied to in-memory collections, external data sources, and deferred execution pipelines, making LINQ a core feature of modern .NET development.
Asynchronous programming boosts application efficiency and responsiveness by enabling non-blocking operations and smoother user experiences. The async and await keywords are amongst the most commonly used language constructs in .NET. But surprisingly few people know how they actually work.
Events are based on delegates, allowing your application to react to something happening, like a button click. Because of this events are fundamental in UI development frameworks like WPF, .NET MAUI and Xamarin.
The .NET platform extends far beyond the C# language itself. It provides a rich ecosystem of languages, runtimes, libraries, and tools that work together to support the development of a wide range of applications. In this chapter, you will gain a broader understanding of how C# fits into the .NET ecosystem, how code is compiled and executed, and how third-party libraries are integrated into your applications using NuGet.
This course teaches you how to start programming with Visual Studio, C# and .NET. You will get familiar with the C# language syntax and .NET Object-Oriented Programming concepts, such as classes, objects, inheritance, polymorphism, ... In this course, you'll get a taste of the different types of applications and .NET libraries through examples in WPF, Entity Framework Core and ASP.NET Core.
Once you've finished this training, you can start your journey to learn building things like web applications, desktop or mobile apps, backends, games, IoT, bots, etc. All with C#.
This training targets developers with no or limited C# experience. A basic understanding of programming - in whatever language - is advised.