Plan Szkolenia
Od umiejętności językowych do projektowania rozwiązań
- Zaawansowane funkcje języka C# i ich wpływ na architekturę.
- Rekonstrukcja zamierzeń projektowych z istniejącego kodu.
Analiza wymagań i modelowanie domenowe
- Scenariusze użycia, user stories oraz kryteria akceptacji.
- Modele domenowe i uniwersalny język (ubiquitous language).
Zasady projektowania oprogramowania
- Zastosowanie zasad SOLID w rozwiązaniach .NET.
- Kuplacja, spójność i kierunek zależności.
Wzorce projektowe dla aplikacji .NET
- Dobór wzorców kreacyjnych, strukturalnych i behawioralnych.
- Wzorce i antywzorce w istniejącym kodzie.
Style architektoniczne i podejmowanie decyzji technicznych
- Porównanie architektury warstwowej, heksagonalnej i czystej (Clean Architecture).
- Rejestry decyzji architektonicznych (ADR) i analiza kompromisów.
Planowanie struktury rozwiązania
- Organizacja rozwiązań i projektów dla dużych baz kodu.
- Monolity modułowe w porównaniu z granicami usług (service-oriented boundaries).
Nowoczesne C# dla kodu łatwego w utrzymaniu
- Dopasowywanie wzorców (pattern matching), rekordy (records) i typy referencyjne nullability.
- Typy generyczne, LINQ i kompozycja funkcjonalna.
Obsługa wyjątków, logowanie i obserwowalność
- Strategia obsługi wyjątków i kontrakty błędów.
- Logowanie strukturalne, korelacja i testy stanu zdrowia (health checks).
Refleksja, atrybuty i metaprogramowanie
- Projektowanie oparte na atrybutach i przypadki użycia refleksji.
- Generatory kodu w czasie kompilacji (source generators).
Podstawy ASP.NET Core
- Model hostingu, wstrzykiwanie zależności i konfiguracja.
- Przepływ żądań (request pipeline), middleware i filtry.
Projektowanie interfejsów REST API
- Modelowanie zasobów i semantyka HTTP.
- Wersjonowanie, walidacja i odpowiedzi na błędy.
- Kontrakty API z użyciem OpenAPI.
Zabezpieczanie aplikacji .NET
- Uwierzytelnianie i autoryzacja z użyciem OpenID Connect.
- Autoryzacja oparta na zasadach (policy-based) i zarządzanie sekretami.
Modelowanie zagrożeń i bezpieczne projektowanie
- Modelowanie STRIDE i granice zaufania.
- Przegląd projektowy pod kątem bezpieczeństwa przed implementacją.
Dostęp do danych w Entity Framework Core
- Modelowanie encji i relacji.
- Czas życia kontekstu danych (DbContext) i strategia migracji.
Wydajność zapytań i architektura danych
- Strategie wczytywania danych i pułapki ładowania zaplanowanego (eager loading).
- Transakcje, znaczniki współbieżności i omijanie EF w razie potrzeby.
Współbieżność i programowanie asynchroniczne
- Taski, TPL i pułapki async/await.
- Synchronizacja, anulowanie operacji i bezpieczeństwo wątków.
Optymalizacja wydajności
- Profilowanie i testowanie wydajności z użyciem BenchmarkDotNet.
- Pamięć, alokacje i zbiórka śmieci (garbage collection).
- Strategie cache i testy obciążeniowe.
Strategia testowania na różnych warstwach
- Granice testów jednostkowych, integracyjnych i końcowych (end-to-end).
- Architektura testowalna i podwójniki testowe (test doubles).
Wdrożenie i gotowość operacyjna
- Konteneryzacja, konfiguracja i linie CI/CD.
- Diagnostyka produkcyjna i bezpieczeństwo wydawania wersji.
Projekt końcowy: Przegląd architektury i implementacja
- Przegląd architektoniczny aplikacji wzorcowej.
- Implementacja i refaktoryzacja fragmentu funkcjonalności (feature slice).
Wymagania
- Doświadczenie w programowaniu w języku C#
- Znajomość programowania obiektowego (OOP) w kontekście pracy
- Podstawowa znajomość SQL i baz danych relacyjnych
Grupa docelowa
- Programistów .NET
- Inżynierów oprogramowania i liderów technicznych
- Programistów zainteresowanych rolą projektanta aplikacji
Opinie uczestników (4)
Było to szkolenie individuale, więc było dostosowane do moich konkretnych potrzeb. Shane zaznaczył elementy WPF/C#, które mogłyby być korzystne dla moich projektów rozwojowych.
Warren Nolan - Northrop Grumman
Szkolenie - Programming in WPF
Przetłumaczone przez sztuczną inteligencję
Wiedza trenera, zaangażowanie i relacje
Adam Kuklewski - GE Medical Systems Polska
Szkolenie - Technical Architecture and Patterns
Przetłumaczone przez sztuczną inteligencję
Wyjaśnienia i interaktywność trenera naprawdę dobrze przedstawiły temat; nawet mimo że prawdopodobnie nie byłem wystarczająco doświadczony, nauczyłem się bardzo wiele!
Pieter Bruynseels - Spot Buy Center BV
Szkolenie - Design Patterns
Przetłumaczone przez sztuczną inteligencję
Miły i przyjazny. Bardzo kompetentny. Poleciłbym Shana innym.
Joshua - California State University Bakersfield
Szkolenie - Programming in C# with Visual Studio 2022
Przetłumaczone przez sztuczną inteligencję