Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Duration 21 hours
Course Outline
Introduction to the Modern .NET Platform
- Overview of the .NET 8 runtime, SDK, and unified platform
- Comparative analysis of .NET Framework, .NET Core, and the evolution of .NET 8+
- Project structure, target frameworks, and fundamentals of multi-targeting
- Configuration of the development environment and tooling
Modern C# and Future-Ready Language Practices
- Utilizing records, init-only setters, and immutability patterns
- Enhanced pattern matching and switch expressions
- Nullable reference types and compiler-enforced safety
- Best practices for async/await and memory-efficient streaming
- Generic math, static abstracts in interfaces, and performance-focused APIs
- Preparing codebases for upcoming C# 12/13 features on .NET 8
ASP.NET Core Fundamentals and Application Setup
- Host builder, middleware pipeline, and request lifecycle
- Decision criteria for choosing between Minimal APIs and controller-based APIs
- Configuration providers, environment-specific settings, and secret management
- Static file handling, routing, and endpoint conventions
- Configuring the dependency injection container and defining service lifetimes
REST API Design and Implementation
- REST maturity model, resource modeling, and URI design principles
- HTTP methods, status codes, and content negotiation
- Request validation, model binding, and integration with FluentValidation
- Versioning strategies for public and internal APIs
- Documentation using OpenAPI and Swagger UI
- Testing APIs via TestServer and WebApplicationFactory
Enterprise Dependency Injection and Inversion of Control
- Constructor injection, service lifetimes, and addressing captive dependencies
- Applying decorator and factory patterns with the built-in container
- Integrating Scrutor and third-party dependency injection libraries
- Modular service registration and feature-based organization
- Handling cross-cutting concerns through middleware and filters
Logging, Configuration, and Centralized Error Handling
- Structured logging using Microsoft.Extensions.Logging and Serilog
- Managing log levels, scopes, enrichment, and sink configuration
- Implementing exception middleware and global error handling pipelines
- Generating ProblemDetails and RFC 7807-compliant error responses
- Health checks, telemetry, and observability hooks
- Correlation IDs and preparation for distributed tracing
Software Architecture for Enterprise .NET Solutions
- Principles of layered, hexagonal, and clean architecture
- Domain-driven design components within .NET
- CQRS and mediator patterns implemented with MediatR
- Repository and unit-of-work patterns using EF Core
- Vertical slice architecture for feature cohesion
- Evaluating trade-offs between monolith, modular monolith, and microservices
Security for Web Applications and APIs
- Authentication schemes: JWT, OAuth2, OpenID Connect, and cookie-based flows
- Authorization policies, claims-based access control, and resource guards
- Enforcing HTTPS, HSTS, and secure header middleware
- Input sanitization, output encoding, and mitigating OWASP Top 10 vulnerabilities
- Rate limiting, CORS policies, and anti-forgery token management
- Secret management via Azure Key Vault and environment-driven rotation
Code Quality, Maintainability, and Best Practices
- Coding standards, EditorConfig, and dotnet format
- Static analysis using Roslyn analyzers and SonarQube integration
- Unit testing with xUnit and mocking using Moq or NSubstitute
- Integration and contract testing within CI pipelines
- Refactoring techniques for long-term legacy modules
- Documentation, API contracts, and knowledge-sharing practices
Modernization Strategy: Assessing Legacy .NET Framework Code
- Portfolio analysis: classifying applications by criticality, complexity, and business value
- Using the .NET Upgrade Assistant and compatibility analyzer
- Identifying deprecated APIs, platform-specific dependencies, and third-party gaps
- Considerations for migrating Windows-specific APIs and WCF
- Developing a migration roadmap based on risk prioritization
Progressive Migration and Coexistence Techniques
- Strangler Fig pattern: gradually replacing legacy subsystems
- API-first migration: exposing .NET Framework domains via REST facades
- Message-based bridging using RabbitMQ, Azure Service Bus, or Kafka
- Shared database coexistence and schema versioning strategies
- Running .NET Framework and .NET 8 side-by-side within the same infrastructure
- Containerizing modern components while retaining legacy on IIS
Hands-On Migration Lab and Review
- Applying the Upgrade Assistant to a representative legacy project
- Refactoring a Web Forms or WCF service into ASP.NET Core APIs
- Implementing DI, logging, and centralized error handling in the migrated solution
- Adding authentication and authorization to the new API surface
- Verifying coexistence through end-to-end integration testing
- Review, Q&A, and guidance for post-training modernization planning
Requirements
- Proficiency in C# programming and object-oriented design principles
- Understanding of web development fundamentals (HTTP, HTML, CSS, and basic JavaScript)
- Foundational knowledge of relational databases and SQL
- Previous experience with .NET Framework or ASP.NET is advantageous but not mandatory
Target Audience
- .NET developers and architects aiming to modernize legacy .NET Framework applications
- Software engineers transitioning into enterprise .NET development roles
- Technical leads overseeing platform migration and coexistence strategies
- DevOps and infrastructure teams supporting the .NET application lifecycle
Testimonials (2)
Interactivity and on-the-fly code solutions
Eduard-Emanuel Zaharia - Kruk Italia
Course - Advanced Blazor
chance to do hands-on and patience of trainer