Съдържание и теми, включени в курса
Въведение в модерната .NET платформа
- .NET 8 среда за изпълнение, SDK и преглед на унифицираната платформа
- Сравнение на еволюцията на .NET Framework, .NET Core и .NET 8+
- Структура на проекта, целеви рамки и основи на мулти-таргетиране
- Настройка на среда за разработка и инструменти
Модерен C# и ориентирани към бъдещето езикови практики
- Records, инициализиращи сетъри и модели за неизменяемост
- Подобрения за съвпадение на шаблони и switch изрази
- Типове с допустима null стойност и безопасност, управлявана от компилатора
- Най-добри практики за async/await и ефективно поточно предаване на данни в паметта
- Генерични математики, статични абстракции в интерфейси и ориентирани към производителност API-та
- Подготовка на кодови бази за функции на C# 12/13 върху .NET 8
Основи на ASP.NET Core и стартиране на приложение
- Host builder, конвейер на междинен софтуер и жизнен цикъл на заявка
- Минимални API-та срещу контролер-базирани API-та: критерии за избор
- Доставчици на конфигурация, настройки специфични за средата и управление на тайни
- Статични файлове, маршрутизиране и конвенции за крайни точки
- Конфигурация на контейнер за инжекция на зависимости и жизнен цикъл на услугите
Проектиране и реализация на REST API
- Модел на зрялост на REST, моделиране на ресурси и дизайн на URI
- HTTP методи, кодове на състояние и договаряне на съдържание
- Валидация на заявки, свързване на модел и интеграция с FluentValidation
- Стратегии за версиониране за публични и вътрешни API-та
- Документиране с OpenAPI и Swagger UI
- Интеграционно тестване на API-та с TestServer и WebApplicationFactory
Корпоративна инжекция на зависимости и инверсия на контрола
- Инжекция чрез конструктор, жизнен цикъл на услуги и captive зависимости
- Модели декоратор и фабрика с вградения контейнер
- Scrutor и интеграция с библиотеки за DI от трети страни
- Модулно регистриране на услуги и организация базирана на функции
- Аспекти през middleware и филтри
Логване, конфигурация и централизирано обработване на грешки
- Структурирано логване с Microsoft.Extensions.Logging и Serilog
- Нива на логване, обхвати, обогатяване и конфигурация на изходи (sinks)
- Middleware за изключения и глобални канали за обработка на грешки
- ProblemDetails и отговори за грешки съвместими с RFC 7807
- Проверки на здравето, телеметрия и куки за наблюдаемост
- Идентификатори на корелация и подготовка за разпределено проследяване
Софтуерна архитектура за корпоративни .NET решения
- Принципи на слоева, хексагонална и чиста архитектура
- Строителни блокове на Domain-Driven Design в .NET
- CQRS и mediator модели с MediatR
- Модели на хранилище (Repository) и единица работа (Unit of Work) с EF Core
- Архитектура с вертикални срезове за кохезия на функциите
- Оценка на компромисите между монолит, модулен монолит и микросервизи
Сигурност за уеб приложения и API-та
- Схеми за удостоверяване: JWT, OAuth2, OpenID Connect и базирани на бисквитки потоци
- Политики за оторизация, достъп базиран на изявления и гардове базирани на ресурси
- Прилагане на HTTPS, HSTS и middleware за сигурни хедъри
- Саниране на вход, кодиране на изход и смекчаване на OWASP Топ 10
- Ограничаване на скоростта, CORS политики и обработка на anti-forgery токени
- Управление на тайни с Azure Key Vault и ротация управлявана от средата
Качество на кода, поддръжка и най-добри практики
- Стандарти за кодиране, EditorConfig и dotnet format
- Статичен анализ с Roslyn анализатори и интеграция със SonarQube
- Модулно тестване с xUnit, макетиране с Moq или NSubstitute
- Интеграционно и договорно тестване в CI конвейери
- Техники за рефакториране на дълготрайни наследени модули
- Документиране, договори за API и практики за споделяне на знания
Стратегия за модернизация: оценка на наследен код на .NET Framework
- Анализ на портфолио: класифициране на приложения по критичност, сложност и бизнес стойност
- Използване на .NET Upgrade Assistant и анализатор за съвместимост
- Идентифициране на оттеглени API-та, зависимости специфични за платформата и пропуски на трети страни
- Съображения за API-та специфични за Windows и миграция от WCF
- Създаване на пътна карта за миграция с приоритизация базирана на риска
Постепенна миграция и техники за съвместно съществуване
- Модел Strangler Fig: поетапна замяна на наследени подсистеми
- Миграция с приоритет на API: излагане на домейни от .NET Framework чрез REST фасади
- Мост чрез съобщения с RabbitMQ, Azure Service Bus или Kafka
- Съвместно съществуване на споделена база данни и стратегии за версиониране на схемата
- Едновременно изпълнение на .NET Framework и .NET 8 в една и съща инфраструктура
- Контейнеризиране на модерни компоненти, като наследените остават на IIS
Практическа лаборатория за миграция и преглед
- Прилагане на Upgrade Assistant към представителен наследен проект
- Рефакториране на услуга от Web Forms или WCF в ASP.NET Core API-та
- Реализация на DI, логване и централизирано обработване на грешки в мигрираното решение
- Добавяне на удостоверяване и оторизация към новото API повърхност
- Проверка на съвместното съществуване чрез интеграционно тестване от край до край
- Преглед, въпроси и отговори и насоки за планиране на модернизация след обучението
Изисквания
- Опит с програмиране на C# и принципи на обектно-ориентиран дизайн
- Запознатост с концепции за уеб разработка (основи на HTTP, HTML, CSS, JavaScript)
- Основно разбиране на релационни бази данни и SQL
- Предишен досег до .NET Framework или ASP.NET е полезен, но не е задължителен
Аудитория
- .NET разработчици и архитекти, подготвящи се да модернизират наследени .NET Framework приложения
- Софтуерни инженери, преминаващи към корпоративни роли за .NET разработка
- Технически ръководители, отговорни за миграция на платформа и планиране на съвместно съществуване
- DevOps и инфраструктурен персонал, поддържащ жизнения цикъл на .NET приложения
Отзиви от участници (2)
Интерактивност и решения на кода в реално време
Eduard-Emanuel Zaharia - Kruk Italia
Курс - Advanced Blazor
Машинен превод
възможност за практически умения и търпение на тренера
sheena - Te Manawa Taki Trauma System
Курс - Visual Studio 2022 IDE
Машинен превод