Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / task.txt
Created December 6, 2025 10:19
системка перше ДЗ із двох СПР411
Мета: Навчитися розробляти бібліотеку .NET, створювати та публікувати її на NuGet для подальшого використання в інших проєктах.
Частина 1: Розробка бібліотеки
Створення бібліотеки DLL:
- Створіть проєкт типу Class Library на .NET 9/10
- Розробіть клас (будь-який), який реалізує інтерфейс для роботи з чимось (наприклад, котик).
Частина 2: Публікація бібліотеки на NuGet
Підготовка бібліотеки до публікації:
- Оновіть файл проєкту .csproj, щоб додати метаінформацію для NuGet (наприклад, назву пакета, опис, автора, ліцензію тощо).
@sunmeat
sunmeat / Program.cs
Created December 5, 2025 16:29
Program.cs default code ASP.NET Core MVC
namespace mvc
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args); // створює билдер для веб-додатку, автоматично читає appsettings.json, змінні середовища тощо
builder.Services.AddControllersWithViews(); // реєструє сервіси MVC: контролери, представлення (Views), Razor Pages тощо
@sunmeat
sunmeat / HomeController.cs
Created December 5, 2025 16:05
HomeController default code
using System.Diagnostics; // підключає простір імен для роботи з діагностикою (наприклад, Activity)
using Microsoft.AspNetCore.Mvc; // основний простір імен для ASP.NET Core MVC (Controller, IActionResult тощо)
using mvc.Models; // підключає папку Models нашого проєкту, щоб мати доступ до моделей (наприклад, ErrorViewModel)
namespace mvc.Controllers // простір імен контролерів проєкту, зазвичай відповідає структурі папок
{
public class HomeController : Controller // контролер Home, успадковується від базового класу Controller
{
public IActionResult Index() // дія Index — головна сторінка сайту, викликається за адресою /
{
@sunmeat
sunmeat / different files.cs
Last active December 5, 2025 14:01
request processing pipeline example ASP.NET Core
Program.cs:
namespace RequestProcessingPipeline
{
public class Program
{
public static void Main(string[] args) // параметр args обов’язковий для WebApplication.CreateBuilder, інакше не працюватиме конфігурація додатка з appsettings.json, логування тощо
{
// 1. створюємо builder з args (інакше він не знає про appsettings, logging, Kestrel тощо)
var builder = WebApplication.CreateBuilder(args);
@sunmeat
sunmeat / theory.md
Created December 4, 2025 18:48
конспект

9:34 05.12.2011 ASP.NET
Схема розвитку архітектурних застосунків
Документно-орієнтовані застосунки
│ │
CGI → ISAPI

Документно-орієнтовані застосунки – на цьому етапі веб-застосунки були примітивним файловим сервером, який повертав користувачу заздалегідь згенеровану статичну веб-сторінку.

Поява застосунків, що ґрунтуються на інтерфейсах.
Суть роботи CGI полягала в тому, що сервер отримував посилання, яке викликало певний застосунок, потім сервер брав вхідні дані для цього застосунку і генерував на основі цих даних сторінку, які потім повертав клієнту.

@sunmeat
sunmeat / task.md
Last active December 3, 2025 13:49
ASP .Net Core - ДЗ 1

Розробити додаток «Кінопошук». Додаток дозволяє користувачеві ввести у текстове поле назву фільму, і при натисканні на кнопку «Пошук» показує інформацію про фільм: рік випуску, рейтинг, тривалість, режисера, акторський склад, короткий опис фільму. Необхідно використовувати API сайту http://www.omdbapi.com/ для отримання даних.

Приклад запиту: http://www.omdbapi.com/?apikey=ваш_ключ&t=Game of Thrones

Весь проєкт викласти в публічний репозиторій (включно з папкою wwwroot)

@sunmeat
sunmeat / different files.cs
Last active December 3, 2025 13:38
прогноз погоди, статичні файли в папці wwwroot
створити папку wwwroot поряд з Program.cs проєкта
в папці wwwroot - папки css та js
Program.cs:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.UseStaticFiles(); // обробляє статичні файли з wwwroot https://learn.microsoft.com/ru-ru/aspnet/core/fundamentals/static-files?view=aspnetcore-10.0
app.Run(async (context) =>
@sunmeat
sunmeat / Program.cs
Created December 3, 2025 12:53
завантаження та показ картинки в браузері
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
const string imagePath = @"C:\!Files\images\jpg\1.jpg";
// перший маршрут — показати картинку в браузері
app.MapGet("/image", () => Results.File(imagePath, "image/jpeg")); // по другому параметру браузер розуміє, що це зображення, і показує його прямо в вікні
// другий маршрут — завантажити картинку як файл
app.MapGet("/download", () =>
@sunmeat
sunmeat / Program.cs
Created December 3, 2025 12:02
terminal middleware component asp .net core
// CreateBuilder створює новий екземпляр WebApplicationBuilder із попередньо встановленими параметрами.
// до методу CreateBuilder можна передавати аргументи командного рядка, вказані під час запуску додатка.
var builder = WebApplication.CreateBuilder(args);
// метод Build створює екземпляр веб-додатка
var app = builder.Build();
/* окрім створення об’єкта WebApplication, клас WebApplicationBuilder виконує
ще низку завдань, серед яких можна виділити такі:
- налаштування конфігурації додатка
@sunmeat
sunmeat / task.txt
Created December 2, 2025 18:04
SRP practice P45
використовуючи принцип SRP, розбити клас Student на 5+ дрібніших типів (не забуваючи про зв'язки між класами)
class Student
{
public string? FirstName { get; set; }
public string? Surname { get; set; }
public string? Lastname { get; set; }
public string? Country { get; set; }
public string? Region { get; set; }
public string? City { get; set; }