C# Clean Architecture w Praktyce
- Opis
- Program
- Ogłoszenia
- Recenzje
Czy chcesz nauczyć się budować skalowalne, testowalne i łatwe w utrzymaniu aplikacje w C#?
Jeśli tak, to ten kurs jest dla Ciebie! Poznasz zasady Clean Architecture i nauczysz się stosować je w praktyce, tworząc dobrze zaprojektowane aplikacje w .NET.
Co Cię czeka w kursie?
Na początku tego kursu przyjrzymy się fundamentalnym zasadom architektonicznym, które są kluczowe dla zrozumienia decyzji projektowych w nowoczesnych aplikacjach. Skupimy się na:
- Odwróceniu zależności (Dependency Inversion) – jak uniezależnić moduły wysokopoziomowe od niskopoziomowych
- Separacji odpowiedzialności (Separation of Concerns) – jak rozdzielić różne aspekty aplikacji
- Zasadzie pojedynczej odpowiedzialności (Single Responsibility) – jak projektować klasy o jednym, jasno określonym celu
- Zasadzie otwarte-zamknięte (Open-Closed Principle) – jak tworzyć kod otwarty na rozszerzenia, ale zamknięty na modyfikacje
- Zasadzie DRY (Don’t Repeat Yourself) – jak eliminować duplikację kodu
- Ignorowaniu warstwy trwałości (Persistence Ignorance) – jak uniezależnić logikę biznesową od mechanizmów przechowywania danych
Następnie przejdziemy do dogłębnego zrozumienia najczęściej stosowanych stylów architektury aplikacji. Nasze projekty będą oparte na zasadach Clean Architecture – podejścia, które kładzie nacisk na rozdzielenie warstw i niezależność domeny biznesowej.
Dowiesz się:
- Z jakich warstw składa się Clean Architecture i jakie są ich odpowiedzialności
- Jak wygląda komunikacja między warstwami i przepływ zależności
- Jakie są konkretne korzyści z wdrożenia tego podejścia
- Jak w praktyce zorganizować strukturę projektu w Visual Studio zgodnie z tymi zasadami
- W jakich sytuacjach Clean Architecture jest najlepszym wyborem
Zanim przejdziemy do implementacji, nauczysz się, jak poprawnie analizować wymagania biznesowe – fundament każdego udanego projektu programistycznego. Zrozumiesz, jak przekładać wymagania klienta na struktury kodu, które będą elastyczne i gotowe na przyszłe zmiany.
Dlaczego warto?
To 100% praktyki. Wszystkie omawiane koncepcje będziesz stosować w rzeczywistych projektach. Dzięki temu kursowi:
- Nauczysz się pisać czysty, modulowy i testowalny kod
- Zrozumiesz, jak projektować architekturę, która wytrzyma próbę czasu
- Zdobędziesz umiejętności poszukiwane przez pracodawców
- Podniesiesz swoją wartość jako programista .NET
Jeśli chcesz przejść na wyższy poziom programowania w C# i pisać kod, który będzie nie tylko działać, ale również będzie łatwy w utrzymaniu i rozwoju – ten kurs jest właśnie dla Ciebie.
-
1IntroPodgląd 01:53
-
2WstępPodgląd 01:40This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
3Odwróceniu zależności (DI - Dependency Inversion)04:30This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
4Separacja odpowiedzialności (SoC - Separation of Concerns)03:09This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
5Zasada pojedyńczej odpowiedzialności (SRP - Single Responsibility Principle)05:03This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
6Zasada otwarte-zamknięte (OCP - Open-Closed Principle)04:00This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
7Nie Powtarzaj Się (DRY - Don't Repeat Yourself)01:42This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
8Ignorowanie warstwy trwałości (Persistence Ignorance)01:52This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
9Architektura Wszystko w jednym (All-In-One Architecture)Podgląd 03:20This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
10Architektura warstwowa (Layered Architecture)05:44This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
11Czysta architektura (Clean Architecture)02:41This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
12Struktura koncentryczna (Cicular Design)02:06This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
13Warstwy (Layers)03:57This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
14Zalety Czystej Architektury02:39This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
15Praktyczna Organizacja Kodu03:17This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
16Kiedy Stosować Czystą Architekturę01:29This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
17Projektowanie Aplikacji Kursowej - MVPPodgląd 05:13This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
18Tworzymy Rozwiązanie i Dodajemy Strukture Folderów02:33This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
19Dodajemy projekt dla Domeny02:18This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
20Dodajemy pierwszą encje Category03:51This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
21Dodajemy encje Course03:35This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
22Dodajemy encje Order02:14This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
23Dodajemy encje bazową AuditableEntity04:19This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
24Główne Cele04:01This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
25Dodanie projektu Application02:47This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
26Dodajemy Repozytorium Generyczne03:34This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
27Dodajemy Repozytoria Specyficzne04:00This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
28MediateR05:30This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
29Automapper01:54This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
30Dodanie MediatR i AutoMapper02:15This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
31Pobranie listy wszystkich kursów, dodanie pierwszego query - GetCoursesListQuery03:49This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
32Dodanie pierwszego ViewModelu - CourseListVm02:42This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
33Dodanie handlera obsługującego nasze query - GetCoursesListQueryHandler07:25This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
34Dodanie profilu mapowania (Mapping Profile)03:02This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
35Pobieranie szczegółów kursu, dodanie query - GetCourseDetailQuery02:38This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
36Dodanie CourseDetailVm03:36This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
37Dodanie handlera GetCourseDetailQueryHandler04:58This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
38Aktualizacja profilu mapowania01:12This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
39Rejestrowanie w kolekcji usług04:01This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
40CQRS - Segregacja Odpowiedzialności Zapytań i Poleceń02:21This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
41Dodanie CQRS03:37This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
42Organizacja Kodu Oparta na Funkcjach (Features)01:47This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
43Dodanie Features02:33This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
44Dodanie zapytania pobierajacego listę kategorii i handlera do obsługi zapytania08:51This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
45Dodanie zapytania pobierajacego listę kategori z powiazanymi kursami i handlera12:01This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
46Tworzenie nowych encji w aplikacji02:21This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
47Dodanie CreateCourseCommand06:26This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
48Dodanie UpdateCourseCommand06:30This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
49Dodanie DeleteCourseCommand04:46This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
50Walidację naszych danych04:52This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
51Dodanie CreateCourseCommandValidator06:10This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
52Walidacja przychodzących danych w CreateCourseCommandHandler02:08This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
53Dodanie niestandartowych wyjatków08:04This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
54Sprawdzmy czy wystąpiły błędy walidacyjne06:42This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
55Dodanie CreateCategoryCommand03:00This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
56Dodanie BaseResponse03:56This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
57Dodanie CreateCategoryCommandResponse02:58This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
58Dodanie CreateCategoryCommandValidator03:33This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
59Dodanie CreateCategoryCommandHandler09:44This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
60Podsumowanie01:46This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
61Zrozumienie celu projektów infrastrukturalnych06:11This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
62Dodawanie trwałości danych z Entity Framework Core06:05This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
63Dodanie Entity Framework Core03:58This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
64Dodanie DbContext07:24This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
65Dodanie Konfiguracji encji05:06This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
66Dodanie danych początkowych (Seed Data)04:59This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
67Dodanie Base Repository07:37This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
68Dodanie Implementacji specyficznych repozytoriów - CourseRepository04:07This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
69Dodanie CategoryRepository04:18This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
70Dodanie OrderRepository06:03This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
71Rejestracja usług w kolekcji usług ASP.NET Core05:53This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
72Projekt Infrastruktury03:51This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
73Dodanie Obsługi Wysyłania E-maili05:21This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
74Modyfikacja Logiki Aplikacyjnej celem wysyłania meili04:32This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
75Implementacja IEmailService w Projekcie Infrastruktury10:42This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
76Rejestracja Serwisu w Kontenerze DI04:36This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
77Podsumowanie02:31This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
78Wprowadzenie01:58This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
79Tworzenie projektu API03:45This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
80Dodanie projektu API10:23This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
81Dodanie Migracji06:14This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
82Przejście od usługi do MediatR06:49This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
83Implementacja CategoryController z wykorzystaniem MediatR08:15This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
84Implementacja CoursesController z wykorzystaniem MediatR08:44This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
85Optymalizacja zwracanych danych w API: Praktyczne podejście03:20This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
86Zwracanie modeli widoku i odpowiedzi05:21This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
87Dodawanie obsługi zwracania pliku CSV z API16:07This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
88Eksportowanie do Excela - CsvExporter09:25This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
89Udostępnianie funkcjonalności API za pomocą Swagger03:10This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
90Integracja Swagger z naszym API08:47This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
91Podsumowanie01:44This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
92Wprowadzenie01:23This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
93Zrozumienie różnych typów testów05:54This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
94Tworzenie testów jednostkowych02:35This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
95Konfiguracja projektu testów jednostkowych05:34This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
96Tworzenie mocków dla zależności08:51This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
97Testowanie GetCategoriesListQueryHandler08:06This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
98Testowanie CreateCategoryCommandHandler06:59This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
99Testy integracyjne - przygotowanie środowiska testowego06:10This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
100Testowanie operacji odczytu z bazy danych08:13This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
101Testowanie operacji zapisu do bazy danych08:00This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
102Testowanie operacji usuwania04:00This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
Kod źródłowy dostępny na githubie
