English
Object-oriented programming in C# II
You will gain the .NET development skills used in real projects: from desktop and mobile applications to web services and databases. Each topic ends with a working application of your own, so by the end of the course you will have a project portfolio and experience combining a user interface, data, networking, and artificial intelligence in one solution.
This course is the second part of Object-Oriented Programming and covers application development in C# on the .NET platform: Windows Forms and Windows Presentation Foundation desktop applications, database applications (ADO.NET, Entity Framework Core), network applications, ASP.NET Core and SignalR web services, cross-platform .NET MAUI applications, and applications that integrate artificial intelligence models. Students also learn Git version control, regular expressions, asynchronous programming, and dependency injection.
Course syllabus
Developer tools and Windows Forms
- Git code version control
- Regular expressions and text processing in C#
- Windows Forms fundamentals
- Working with graphics using Windows Forms and GDI+
- Asynchronous programming with async/await in graphical user interface applications
- Dependency injection, configuration, and logging in .NET applications
Databases, network applications, and web services
- ADO.NET database access: relational database and SQL fundamentals
- Object-relational mapping with Entity Framework Core
- Programming network applications with Socket
- Creating and consuming REST web services: ASP.NET Core Minimal API, HttpClient, and JSON
- Real-time messaging with ASP.NET Core SignalR
User interface technologies and artificial intelligence
- Application development with Windows Presentation Foundation
- Data binding, styles, templates, and the MVVM pattern in WPF
- Fundamentals of visual component animation and multimedia application development with Windows Presentation Foundation
- Cross-platform application development with .NET MAUI: XAML, navigation, data binding, and device services
- Integrating artificial intelligence models into .NET applications (Microsoft.Extensions.AI)
Required software
| Software | Purpose | Topic |
|---|---|---|
| The environment of the “Object-oriented programming in C# I” course: Visual Studio 2026 with .NET desktop development and the .NET 10 SDK | Development environment | 1 |
| Git for Windows | Version control | 1 |
xUnit v3 templates (dotnet new install xunit.v3.templates) | Unit tests | 2 |
| PostgreSQL 18 (server, psql, pgAdmin 4) | Database management system | 7 |
| JetBrains DataGrip | Working with the database and SQL queries | 7 |
The dotnet-ef tool (dotnet tool install --global dotnet-ef) | Entity Framework Core migrations | 8 |
| The Visual Studio ASP.NET and web development workload | ASP.NET Core web services | 10 |
| The Visual Studio .NET Multi-platform App UI development workload (Android SDK and emulator) | .NET MAUI apps; needs hardware virtualization or an Android phone | 15 |
| Ollama with local models | Local AI models | 16 |
NuGet libraries (Npgsql, Entity Framework Core, SignalR, CommunityToolkit and others) are added to projects in the corresponding topics.
How a course is organized
A course is divided into topics. Each topic corresponds to one lecture and one lab assignment and has four parts:
- Lecture. The theory is split into chapters in reading order, with code examples, diagrams and program output.
- Practice. Worked examples with complete code that show how to do the lab assignment.
- Tasks. 30 variants of the lab assignment, each at three levels of difficulty: 1 – initial, 2 – basic, 3 – advanced. Every task is self-contained, so you can start right away at the level you choose.
- Summary. The topic’s conclusions, self-check questions and useful links.
To prepare for assessment, every course also has Review questions, Review tasks, Useful links and Recommended reading.
How to study
- Open your course and install the development environment named on the course page. The first topic of each course explains how, except “Object-oriented programming in C# II”, which uses the environment from the “Object-oriented programming in C# I” course.
- Read the lecture chapters in order. Type in and run the examples yourself rather than just reading them.
- On the Practice page, first try to solve the problem yourself, then compare your solution with the worked one.
- On the Tasks page, find your variant (your teacher gives you its number) and choose a level of difficulty.
- Check yourself with the questions on the Summary page, and only then move on to the next topic.
- Before the exam, go over the Review questions and solve a few Review tasks.
Navigation
The topics and their chapters are listed in the menu on the left (on a phone, open it with the “Menu” button). The “Next page” button at the bottom of every page follows the course program, and the “On this page” list on the right takes you to a section.
Course materials
- Review questions — 100 questions covering the course topics for self-assessment and exam preparation
- Review tasks — practical tasks organized by topic
- Useful links — documentation and online resources
- Recommended reading — textbooks and guides