Get in Touch

Course Outline

Introduction to the Modern .NET Platform

  • .NET 8 runtime, SDK, and unified platform overview.
  • Comparison of the .NET Framework, .NET Core, and .NET 8+ evolution.
  • Project structure, target frameworks, and multi-targeting basics.
  • Setting up the development environment and tooling.

Modern C# and Future-Oriented Language Practices

  • Records, init-only setters, and immutability patterns.
  • Pattern matching enhancements and switch expressions.
  • Nullable reference types and compiler-driven safety.
  • Async/await best practices 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.
  • Minimal APIs versus controller-based APIs: decision criteria.
  • 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 modelling, 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 with OpenAPI and Swagger UI.
  • Integration testing APIs with TestServer and WebApplicationFactory.

Enterprise Dependency Injection and Inversion of Control

  • Constructor injection, service lifetimes, and captive dependencies.
  • Decorator and factory patterns with the built-in container.
  • Scrutor and third-party DI library integration.
  • Modular service registration and feature-based organisation.
  • Cross-cutting concerns via middleware and filters.

Logging, Configuration, and Centralised Error Handling

  • Structured logging with 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 distributed tracing preparation.

Software Architecture for Enterprise .NET Solutions

  • Layered, hexagonal, and clean architecture principles.
  • Domain-driven design building blocks in .NET.
  • CQRS and mediator patterns with MediatR.
  • Repository and unit-of-work patterns with EF Core.
  • Vertical slice architecture for feature cohesion.
  • Evaluating monolith, modular monolith, and microservices trade-offs.

Security for Web Applications and APIs

  • Authentication schemes: JWT, OAuth2, OpenID Connect, and cookie-based flows.
  • Authorisation 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 with 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 in CI pipelines.
  • Refactoring techniques for long-lived legacy modules.
  • Documentation, API contracts, and knowledge-sharing practices.

Modernisation Strategy: Assessing Legacy .NET Framework Code

  • Portfolio analysis: classify apps by criticality, complexity, and business value.
  • .NET Upgrade Assistant and compatibility analyzer usage.
  • Identifying deprecated APIs, platform-specific dependencies, and third-party gaps.
  • Windows-specific APIs and WCF migration considerations.
  • Creating a migration roadmap with risk-based prioritisation.

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 with RabbitMQ, Azure Service Bus, or Kafka.
  • Shared database coexistence and schema versioning strategies.
  • Running the .NET Framework and .NET 8 side-by-side in the same infrastructure.
  • Containerising modern components whilst leaving 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 centralised error handling in the migrated solution.
  • Adding authentication and authorisation to the new API surface.
  • Verifying coexistence through end-to-end integration testing.
  • Review, Q&A, and post-training modernisation planning guidance.

Requirements

  • Experience with C# programming and object-oriented design principles.
  • Familiarity with web development concepts (HTTP, HTML, CSS, JavaScript basics).
  • A basic understanding of relational databases and SQL.
  • Prior exposure to the .NET Framework or ASP.NET is beneficial but not mandatory.

Audience

  • .NET developers and architects preparing to modernise 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

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories