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.
Course Outline
Introduction to the Modern .NET Platform
- Overview of the .NET 8 runtime, SDK, and unified platform
- Comparison of .NET Framework, .NET Core, and the evolution of .NET 8+
- Project structure, target frameworks, and basics of multi-targeting
- Setting up the development environment and necessary tooling
Modern C# and Future-Oriented Language Practices
- Records, init-only setters, and immutability patterns
- Enhancements in pattern matching and switch expressions
- Nullable reference types and compiler-driven safety features
- Best practices for async/await and memory-efficient streaming
- Generic math, static abstracts in interfaces, and performance-oriented APIs
- Preparing codebases for C# 12/13 features on .NET 8
ASP.NET Core Fundamentals and Application Bootstrap
- Host builder, middleware pipeline, and request lifecycle
- Decision criteria for Minimal APIs versus controller-based APIs
- Configuration providers, environment-specific settings, and secrets management
- Static files, routing, and endpoint conventions
- Dependency injection container configuration and service lifetimes
REST API Design and Implementation
- REST maturity model, resource modeling, and URI design
- HTTP methods, status codes, and content negotiation
- Request validation, model binding, and FluentValidation integration
- Versioning strategies for public and internal APIs
- Documentation using OpenAPI and Swagger UI
- Integration testing of APIs with TestServer and WebApplicationFactory
Enterprise Dependency Injection and Inversion of Control
- Constructor injection, service lifetimes, and managing captive dependencies
- Decorator and factory patterns using the built-in container
- Integration with Scrutor and other third-party DI libraries
- Modular service registration and feature-based organization
- Addressing cross-cutting concerns via middleware and filters
Logging, Configuration, and Centralized Error Handling
- Structured logging using Microsoft.Extensions.Logging and Serilog
- Log levels, scopes, enrichment, and sink configuration
- Exception middleware and global error handling pipelines
- 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
- Building blocks of domain-driven design in .NET
- CQRS and mediator patterns with MediatR
- Repository and unit-of-work patterns with EF Core
- Vertical slice architecture for feature cohesion
- Evaluating trade-offs between monoliths, modular monoliths, and microservices
Security for Web Applications and APIs
- Authentication schemes: JWT, OAuth2, OpenID Connect, and cookie-based flows
- Authorization policies, claims-based access, and resource-based guards
- HTTPS enforcement, HSTS, and secure header middleware
- Input sanitization, output encoding, and OWASP Top 10 mitigation
- Rate limiting, CORS policies, and anti-forgery token handling
- Secret management using Azure Key Vault and environment-driven rotation
Code Quality, Maintainability, and Best Practices
- Coding standards, EditorConfig, and dotnet format
- Static analysis with Roslyn analyzers and SonarQube integration
- Unit testing with xUnit, mocking with Moq or NSubstitute
- Integration and contract testing within CI pipelines
- Refactoring techniques for long-lived legacy modules
- Documentation, API contracts, and knowledge-sharing practices
Modernization Strategy: Assessing Legacy .NET Framework Code
- Portfolio analysis: classifying apps 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 Windows-specific APIs and WCF migration
- Creating a risk-based prioritization migration roadmap
Progressive Migration and Coexistence Techniques
- Strangler Fig pattern: incrementally 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 in the same infrastructure
- Containerizing modern components while keeping legacy systems 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 post-training modernization planning guidance
Requirements
- Experience with C# programming and object-oriented design principles
- Familiarity with web development fundamentals (HTTP, HTML, CSS, JavaScript)
- Basic understanding of relational databases and SQL
- Prior exposure to .NET Framework or ASP.NET is beneficial but not mandatory
Audience
- .NET developers and architects preparing to modernize legacy .NET Framework applications
- Software engineers transitioning into enterprise .NET development roles
- Technical leads responsible for platform migration and coexistence planning
- DevOps and infrastructure staff supporting .NET application lifecycles
21 Hours
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