English
Review questions
Questions for self-check and exam preparation, grouped by course topic.
Topic 1. Git version control
- What is a version control system? Explain the concepts of a repository, a commit, and the index (staging area) in Git.
- Describe the main Git commands for creating a repository, committing changes, and viewing history (init, add, commit, status, log, diff).
- What are branches in Git? Compare merging (merge) and rebasing (rebase) branches.
- How do merge conflicts arise, and how are they resolved, including with Visual Studio 2026?
- Explain working with remote repositories: clone, fetch, pull, push. What is a pull request on GitHub?
- What is the .gitignore file for? Which files of a .NET project should not be added to the repository?
Topic 2. Regular expressions
- What are regular expressions? Explain character classes, quantifiers, and anchors.
- Explain the methods of the Regex class: IsMatch, Match, Matches, Replace, and Split. Give examples of their use.
- What are capturing groups, named groups, and backreferences in regular expressions?
- Explain the difference between greedy and lazy quantifiers. What are RegexOptions used for?
- What are regular expressions generated at compile time (the [GeneratedRegex] attribute)? What advantages do they give?
- How do you validate input data (an email address, a phone number, a date) with regular expressions?
Topic 3. Windows Forms fundamentals
- Describe the structure of a Windows Forms application: the Form class, the Application.Run method, the form designer files (Designer).
- What main Windows Forms controls do you know? Explain their common properties.
- Explain the event model in Windows Forms. How do you create and attach an event handler?
- How do you position controls on a form with the Anchor and Dock properties and the TableLayoutPanel and FlowLayoutPanel containers?
- How do you use the standard Windows Forms dialog boxes (MessageBox, OpenFileDialog, SaveFileDialog, ColorDialog)?
- How do you create a main menu and a context menu, a toolbar, and a status bar in a Windows Forms application?
Topic 4. GDI+ graphics
- What is GDI+? Explain the role of the Graphics class, the Paint event, and the Invalidate method.
- What are the Pen, Brush, and Font classes for? What kinds of brushes does GDI+ provide?
- How do you draw lines, shapes, text, and images with the Graphics class?
- Explain the GDI+ coordinate system and coordinate transformations (translation, scaling, rotation).
- Why does flicker occur during drawing, and how do you eliminate it with double buffering?
- How do you create an image in memory with the Bitmap class, draw on it, and save it to a file?
Topic 5. Asynchrony with async/await
- What is asynchronous programming? Explain the Task and Task<T> classes and the async and await keywords.
- Why do long-running operations block the graphical interface? Explain the role of the synchronization context and the UI thread.
- What is the difference between asynchronous I/O operations and computations in Task.Run?
- How do you cancel an asynchronous operation with CancellationTokenSource and CancellationToken?
- How do you display the progress of a long-running operation in the interface with IProgress<T>?
- How do you handle exceptions in asynchronous methods? Why should async void methods be avoided, except for event handlers?
Topic 6. DI, configuration, logging
- What is dependency injection? Explain the role of the IServiceCollection and IServiceProvider interfaces.
- Explain the Singleton, Scoped, and Transient service lifetimes. Give examples of their use.
- What is the .NET Generic Host? How is it used in desktop and web applications?
- How does .NET application configuration work: the appsettings.json file, environment variables, user secrets, the IConfiguration interface?
- What is the options pattern? How do you bind a configuration section to a class through IOptions<T>?
- How do you log events with ILogger<T>? Explain log levels and logging providers.
Topic 7. SQL and ADO.NET
- Explain the basic concepts of the relational data model: a table, primary and foreign keys, relationships between tables, normalization.
- Explain the SQL statements for creating tables and changing data (CREATE TABLE, INSERT, UPDATE, DELETE).
- How do you build SQL queries with SELECT, WHERE, JOIN, GROUP BY, and ORDER BY?
- How do you create a PostgreSQL database and work with it in JetBrains DataGrip?
- Describe the ADO.NET architecture and the classes of the Npgsql provider: NpgsqlConnection, NpgsqlCommand, NpgsqlDataReader.
- What are parameterized queries? How do they protect against SQL injection attacks?
- What are transactions? How do you execute several ADO.NET commands in one transaction? What is a connection pool for?
Topic 8. Entity Framework Core
- What is object-relational mapping (ORM)? Compare Entity Framework Core and ADO.NET.
- Explain the role of the DbContext and DbSet<T> classes. How do you add the Npgsql.EntityFrameworkCore.PostgreSQL provider?
- How is the data model configured in EF Core: conventions, data annotation attributes, and the Fluent API?
- How do you describe one-to-many and many-to-many relationships between entities in EF Core?
- What are database migrations? Explain the dotnet ef migrations add and dotnet ef database update commands.
- How do you build LINQ to Entities queries? Explain loading related data (Include) and deferred query execution.
- How does change tracking work in EF Core? Explain adding, modifying, and deleting entities and the SaveChanges method.
Topic 9. Networking and sockets
- Explain the basics of network communication: the TCP/IP protocol stack, IP addresses, ports, the TCP and UDP protocols.
- Describe the .NET classes for networking: Socket, TcpListener, TcpClient, NetworkStream.
- Describe the structure of a client-server application based on TCP sockets.
- How can a server serve several clients at the same time using asynchronous methods?
- How do you transfer data over UDP with the UdpClient class? Compare it with TCP.
- How do you define message boundaries in a TCP stream and design your own application data exchange protocol?
Topic 10. REST web services
- What is the REST architectural style? Explain the HTTP methods (GET, POST, PUT, DELETE) and response status codes.
- How do you create a web service with ASP.NET Core Minimal API? Explain the MapGet, MapPost, MapPut, and MapDelete methods.
- How does Minimal API get data from the route, the query string, and the request body? What are Results and TypedResults used for?
- How do you group endpoints (MapGroup) and validate input data in Minimal API?
- How do you document a web service with OpenAPI and test it with requests from .http files in Visual Studio 2026?
- How do you use EF Core in a Minimal API web service through dependency injection?
- How do you call a web service from a client application with HttpClient, IHttpClientFactory, and the GetFromJsonAsync and PostAsJsonAsync methods?
Topic 11. Real time with SignalR
- What is real-time messaging? Compare server polling and WebSocket.
- What is ASP.NET Core SignalR? Explain the SignalR transports and transport selection.
- What is a hub? How does the server call client methods through Clients.All, Clients.Caller, and Clients.Others?
- How do you combine connections into SignalR groups and send messages to a group?
- How do you connect to a hub from a .NET client application with the HubConnection class?
- What are strongly typed hubs? How do you handle client connections and disconnections?
Topic 12. WPF fundamentals
- Describe the WPF architecture. Compare the WPF and Windows Forms technologies.
- Explain the XAML syntax: elements, attributes, property elements, and markup extensions.
- Describe the WPF layout panels: Grid, StackPanel, WrapPanel, DockPanel, and Canvas.
- Explain the content model of WPF controls (ContentControl, ItemsControl).
- What are routed events? Explain bubbling and tunneling events.
- What are dependency properties, and why are they needed?
Topic 13. Data binding and MVVM
- How does data binding work in WPF? Explain the binding modes and the INotifyPropertyChanged interface.
- How do you display data collections in WPF with ObservableCollection<T> and ItemsSource?
- What are value converters (IValueConverter), and when are they used?
- What are resources and styles in WPF? Explain property and data triggers.
- Compare data templates (DataTemplate) and control templates (ControlTemplate).
- Describe the MVVM pattern: the purpose of the Model, View, and ViewModel. How do you implement commands through the ICommand interface?
- How does the CommunityToolkit.Mvvm library simplify implementing MVVM (ObservableObject, the [ObservableProperty] and [RelayCommand] attributes)?
Topic 14. WPF animation and multimedia
- How does animation work in WPF? Explain the DoubleAnimation and ColorAnimation classes.
- What is a storyboard (Storyboard)? How do you start an animation with event triggers?
- What are key-frame animation and easing functions?
- How do you apply the RotateTransform, ScaleTransform, and TranslateTransform transforms to WPF elements and animate them?
- How do you play audio and video in a WPF application with MediaElement?
- Describe the WPF 2D graphics tools: shapes (Shape), geometries, and brushes.
Topic 15. Cross-platform .NET MAUI
- What is .NET MAUI? Describe the application architecture, the structure of the single project, and the target platforms.
- Compare .NET MAUI pages, layouts, and controls with WPF.
- How do you organize navigation between pages in .NET MAUI with Shell and pass parameters?
- How do you implement data binding and the MVVM pattern in .NET MAUI with CommunityToolkit.Mvvm?
- How do you use device services in .NET MAUI (geolocation, Preferences, the file system) and request permissions?
- How do you run and debug a .NET MAUI application on Windows and in the Android emulator?
Topic 16. AI in .NET
- What are large language models (LLMs)? Explain the concepts of a prompt, a token, and a context window.
- What is the Microsoft.Extensions.AI library? Explain the IChatClient abstraction and connecting different model providers (OpenAI, Azure OpenAI, Ollama).
- How do you build a conversation with a model using ChatMessage and roles (system, user, assistant), and how do you store the conversation history?
- How do you receive a model's response as a stream (GetStreamingResponseAsync) and display it in the interface?
- What is function calling? How can a model call methods of a .NET application?
- What are embeddings and IEmbeddingGenerator? How do you store API keys securely and control the cost of requests to models?