Українська
Контрольні питання
Питання для самоперевірки та підготовки до іспиту, згруповані за темами курсу.
Тема 1. Керування версіями Git
- Що таке система керування версіями? Поясніть поняття репозиторію, коміту та індексу (staging area) у Git.
- Опишіть основні команди Git для створення репозиторію, фіксації змін і перегляду історії (init, add, commit, status, log, diff).
- Що таке гілки в Git? Порівняйте злиття (merge) та перебазування (rebase) гілок.
- Як виникають конфлікти злиття і як їх розв’язувати, зокрема засобами Visual Studio 2026?
- Поясніть роботу з віддаленими репозиторіями: clone, fetch, pull, push. Що таке запит на злиття (pull request) у GitHub?
- Для чого призначений файл .gitignore? Які файли проєкту .NET не слід додавати до репозиторію?
Тема 2. Регулярні вирази
- Що таке регулярні вирази? Поясніть класи символів, квантифікатори та якорі.
- Поясніть методи класу Regex: IsMatch, Match, Matches, Replace і Split. Наведіть приклади їх використання.
- Що таке групи захоплення, іменовані групи та зворотні посилання в регулярних виразах?
- Поясніть різницю між жадібними та лінивими квантифікаторами. Для чого використовують параметри RegexOptions?
- Що таке регулярні вирази, згенеровані під час компіляції (атрибут [GeneratedRegex])? Які переваги вони дають?
- Як за допомогою регулярних виразів перевірити правильність введення даних (e-mail, номер телефону, дата)?
Тема 3. Основи Windows Forms
- Опишіть структуру застосунку Windows Forms: клас Form, метод Application.Run, файли конструктора форми (Designer).
- Які основні елементи керування Windows Forms ви знаєте? Поясніть їхні загальні властивості.
- Поясніть модель подій у Windows Forms. Як створити та підключити обробник події?
- Як розміщувати елементи керування на формі за допомогою властивостей Anchor і Dock та контейнерів TableLayoutPanel і FlowLayoutPanel?
- Як використовувати стандартні діалогові вікна Windows Forms (MessageBox, OpenFileDialog, SaveFileDialog, ColorDialog)?
- Як створити головне та контекстне меню, панель інструментів і рядок стану у застосунку Windows Forms?
Тема 4. Графіка GDI+
- Що таке GDI+? Поясніть роль класу Graphics, події Paint і методу Invalidate.
- Для чого призначені класи Pen, Brush і Font? Які види пензлів надає GDI+?
- Як малювати лінії, фігури, текст і зображення засобами класу Graphics?
- Поясніть систему координат GDI+ та перетворення координат (переміщення, масштабування, поворот).
- Чому під час малювання виникає мерехтіння і як його усунути за допомогою подвійної буферизації?
- Як створити зображення в пам’яті за допомогою класу Bitmap, намалювати на ньому та зберегти його у файл?
Тема 5. Асинхронність async/await
- Що таке асинхронне програмування? Поясніть класи Task і Task<T> та ключові слова async і await.
- Чому тривалі операції блокують графічний інтерфейс? Поясніть роль контексту синхронізації та потоку інтерфейсу користувача.
- У чому різниця між асинхронними операціями введення-виведення та обчисленнями в Task.Run?
- Як скасувати асинхронну операцію за допомогою CancellationTokenSource і CancellationToken?
- Як відображати перебіг тривалої операції в інтерфейсі за допомогою IProgress<T>?
- Як обробляти винятки в асинхронних методах? Чому слід уникати методів async void, крім обробників подій?
Тема 6. DI, конфігурація, журналювання
- Що таке впровадження залежностей (dependency injection)? Поясніть роль інтерфейсів IServiceCollection та IServiceProvider.
- Поясніть часи життя сервісів Singleton, Scoped і Transient. Наведіть приклади їх використання.
- Що таке універсальний хост .NET (Generic Host)? Як його використовують у настільних і вебзастосунках?
- Як працює конфігурація застосунку .NET: файл appsettings.json, змінні середовища, секрети користувача, інтерфейс IConfiguration?
- Що таке шаблон параметрів (options pattern)? Як прив’язати розділ конфігурації до класу через IOptions<T>?
- Як вести журнал подій за допомогою ILogger<T>? Поясніть рівні журналювання та постачальників журналу.
Тема 7. SQL та ADO.NET
- Поясніть основні поняття реляційної моделі даних: таблиця, первинний і зовнішній ключ, зв’язки між таблицями, нормалізація.
- Поясніть оператори мови SQL для створення таблиць і зміни даних (CREATE TABLE, INSERT, UPDATE, DELETE).
- Як формувати вибірки даних мовою SQL з використанням SELECT, WHERE, JOIN, GROUP BY та ORDER BY?
- Як створити базу даних PostgreSQL та працювати з нею в JetBrains DataGrip?
- Опишіть архітектуру ADO.NET та класи постачальника Npgsql: NpgsqlConnection, NpgsqlCommand, NpgsqlDataReader.
- Що таке параметризовані запити? Як вони захищають від атак SQL-ін’єкцій?
- Що таке транзакції? Як виконати кілька команд ADO.NET в одній транзакції? Для чого потрібен пул з’єднань?
Тема 8. Entity Framework Core
- Що таке об’єктно-реляційне відображення (ORM)? Порівняйте Entity Framework Core та ADO.NET.
- Поясніть роль класів DbContext і DbSet<T>. Як підключити постачальника Npgsql.EntityFrameworkCore.PostgreSQL?
- Як налаштовується модель даних в EF Core: угоди, атрибути анотацій даних і Fluent API?
- Як описати зв’язки «один до багатьох» і «багато до багатьох» між сутностями в EF Core?
- Що таке міграції бази даних? Поясніть команди dotnet ef migrations add і dotnet ef database update.
- Як формувати запити LINQ to Entities? Поясніть завантаження пов’язаних даних (Include) та відкладене виконання запитів.
- Як працює відстеження змін у EF Core? Поясніть додавання, зміну та видалення сутностей і метод SaveChanges.
Тема 9. Мережні застосунки та сокети
- Поясніть основи мережної взаємодії: стек протоколів TCP/IP, IP-адреси, порти, протоколи TCP і UDP.
- Опишіть класи .NET для роботи з мережею: Socket, TcpListener, TcpClient, NetworkStream.
- Опишіть структуру клієнт-серверного застосунку на основі сокетів TCP.
- Як сервер може одночасно обслуговувати кількох клієнтів за допомогою асинхронних методів?
- Як передавати дані за протоколом UDP за допомогою класу UdpClient? Порівняйте його з TCP.
- Як визначити межі повідомлень у потоці TCP та розробити власний прикладний протокол обміну даними?
Тема 10. Вебсервіси REST
- Що таке архітектурний стиль REST? Поясніть методи HTTP (GET, POST, PUT, DELETE) та коди стану відповіді.
- Як створити вебсервіс на ASP.NET Core Minimal API? Поясніть методи MapGet, MapPost, MapPut і MapDelete.
- Як Minimal API отримує дані з маршруту, рядка запиту та тіла запиту? Для чого використовують Results і TypedResults?
- Як згрупувати кінцеві точки (MapGroup) та перевіряти коректність вхідних даних у Minimal API?
- Як документувати вебсервіс за допомогою OpenAPI та тестувати його запитами з файлів .http у Visual Studio 2026?
- Як використати EF Core у вебсервісі Minimal API через впровадження залежностей?
- Як звертатися до вебсервісу з клієнтського застосунку за допомогою HttpClient, IHttpClientFactory і методів GetFromJsonAsync та PostAsJsonAsync?
Тема 11. Реальний час із SignalR
- Що таке обмін повідомленнями в реальному часі? Порівняйте опитування сервера (polling) та WebSocket.
- Що таке ASP.NET Core SignalR? Поясніть транспорти SignalR і вибір транспорту.
- Що таке хаб (Hub)? Як сервер викликає методи клієнтів через Clients.All, Clients.Caller і Clients.Others?
- Як об’єднувати підключення в групи SignalR і надсилати повідомлення групі?
- Як підключитися до хабу з клієнтського застосунку .NET за допомогою класу HubConnection?
- Що таке строго типізовані хаби? Як обробляти підключення та відключення клієнтів?
Тема 12. Основи WPF
- Опишіть архітектуру WPF. Порівняйте технології WPF і Windows Forms.
- Поясніть синтаксис мови XAML: елементи, атрибути, властивості-елементи та розширення розмітки.
- Опишіть панелі компонування WPF: Grid, StackPanel, WrapPanel, DockPanel і Canvas.
- Поясніть модель вмісту елементів керування WPF (ContentControl, ItemsControl).
- Що таке маршрутизовані події (routed events)? Поясніть бульбашкові та тунельні події.
- Що таке властивості залежностей (dependency properties) і для чого вони потрібні?
Тема 13. Прив’язка даних і MVVM
- Як працює прив’язка даних у WPF? Поясніть режими прив’язки та інтерфейс INotifyPropertyChanged.
- Як відображати колекції даних у WPF за допомогою ObservableCollection<T> та ItemsSource?
- Що таке перетворювачі значень (IValueConverter) і коли їх використовують?
- Що таке ресурси та стилі у WPF? Поясніть тригери властивостей і даних.
- Порівняйте шаблони даних (DataTemplate) та шаблони елементів керування (ControlTemplate).
- Опишіть патерн MVVM: призначення Model, View і ViewModel. Як реалізувати команди через інтерфейс ICommand?
- Як бібліотека CommunityToolkit.Mvvm спрощує реалізацію MVVM (ObservableObject, атрибути [ObservableProperty] і [RelayCommand])?
Тема 14. Анімація та мультимедіа WPF
- Як працює анімація у WPF? Поясніть класи DoubleAnimation і ColorAnimation.
- Що таке розкадрування (Storyboard)? Як запускати анімацію за допомогою тригерів подій?
- Що таке анімація за ключовими кадрами та функції пом’якшення (easing functions)?
- Як застосовувати перетворення RotateTransform, ScaleTransform і TranslateTransform до елементів WPF та анімувати їх?
- Як відтворювати аудіо та відео у застосунку WPF за допомогою MediaElement?
- Опишіть засоби двовимірної графіки WPF: фігури (Shape), геометрії та пензлі.
Тема 15. Кросплатформний .NET MAUI
- Що таке .NET MAUI? Опишіть архітектуру застосунку, структуру єдиного проєкту та цільові платформи.
- Порівняйте сторінки, компонування та елементи керування .NET MAUI з WPF.
- Як організувати навігацію між сторінками в .NET MAUI за допомогою Shell та передавати параметри?
- Як реалізувати прив’язку даних і патерн MVVM у .NET MAUI за допомогою CommunityToolkit.Mvvm?
- Як використовувати сервіси пристрою в .NET MAUI (геолокація, Preferences, файлова система) та запитувати дозволи?
- Як запустити та налагодити застосунок .NET MAUI на Windows і в емуляторі Android?
Тема 16. Штучний інтелект у .NET
- Що таке великі мовні моделі (LLM)? Поясніть поняття промпту, токена та контекстного вікна.
- Що таке бібліотека Microsoft.Extensions.AI? Поясніть абстракцію IChatClient та підключення різних постачальників моделей (OpenAI, Azure OpenAI, Ollama).
- Як сформувати діалог з моделлю за допомогою ChatMessage і ролей (system, user, assistant) та зберігати історію розмови?
- Як отримувати відповідь моделі потоково (GetStreamingResponseAsync) і відображати її в інтерфейсі?
- Що таке виклик функцій (function calling)? Як модель може викликати методи застосунку .NET?
- Що таке векторні подання (embeddings) та IEmbeddingGenerator? Як безпечно зберігати ключі API та контролювати витрати на запити до моделей?