Course Outline
Introduction to the Modern .NET Platform for Government
- .NET 8 runtime, SDK, and unified platform overview for government
- Comparison of .NET Framework, .NET Core, and the evolution to .NET 8+ for government applications
- Project structure, target frameworks, and multi-targeting basics for government projects
- Setting up the development environment and tooling for government use
Modern C# and Future-Oriented Language Practices for Government
- Records, init-only setters, and immutability patterns in C# for government applications
- Pattern matching enhancements and switch expressions for efficient code in government systems
- Nullable reference types and compiler-driven safety to enhance reliability in government software
- Async/await best practices and memory-efficient streaming for optimal performance in government services
- Generic math, static abstracts in interfaces, and performance-oriented APIs for government solutions
- Preparing codebases for C# 12/13 features on .NET 8 to future-proof government applications
ASP.NET Core Fundamentals and Application Bootstrap for Government
- Host builder, middleware pipeline, and request lifecycle management for government web applications
- Minimal APIs vs controller-based APIs: decision criteria for government projects
- Configuration providers, environment-specific settings, and secrets management for secure government operations
- Static files, routing, and endpoint conventions to streamline government services
- Dependency injection container configuration and service lifetimes for robust government applications
REST API Design and Implementation for Government
- REST maturity model, resource modeling, and URI design for government APIs
- HTTP methods, status codes, and content negotiation to ensure interoperability in government systems
- Request validation, model binding, and FluentValidation integration for secure and reliable government services
- Versioning strategies for public and internal APIs to support long-term maintenance in government projects
- Documentation with OpenAPI and Swagger UI to enhance transparency in government API development
- Integration testing APIs with TestServer and WebApplicationFactory to ensure quality in government applications
Enterprise Dependency Injection and Inversion of Control for Government
- Constructor injection, service lifetimes, and captive dependencies for robust government applications
- Decorator and factory patterns with the built-in container for efficient government software design
- Scrutor and third-party DI library integration to enhance flexibility in government projects
- Modular service registration and feature-based organization for scalable government solutions
- Cross-cutting concerns via middleware and filters to improve maintainability in government applications
Logging, Configuration, and Centralized Error Handling for Government
- Structured logging with Microsoft.Extensions.Logging and Serilog for comprehensive monitoring in government systems
- Log levels, scopes, enrichment, and sink configuration to ensure detailed tracking in government operations
- Exception middleware and global error handling pipelines for reliable government services
- ProblemDetails and RFC 7807-compliant error responses to enhance user experience in government applications
- Health checks, telemetry, and observability hooks to support proactive maintenance in government systems
- Correlation IDs and distributed tracing preparation for end-to-end visibility in government services
Software Architecture for Enterprise .NET Solutions for Government
- Layered, hexagonal, and clean architecture principles for robust government software design
- Domain-driven design building blocks in .NET for effective government application development
- CQRS and mediator patterns with MediatR to optimize data management in government systems
- Repository and unit-of-work patterns with EF Core for efficient data access in government applications
- Vertical slice architecture for feature cohesion in government projects
- Evaluating monolith, modular monolith, and microservices trade-offs for optimal government software architecture
Security for Web Applications and APIs for Government
- Authentication schemes: JWT, OAuth2, OpenID Connect, and cookie-based flows to secure government applications
- Authorization policies, claims-based access, and resource-based guards for fine-grained security in government systems
- HTTPS enforcement, HSTS, and secure header middleware to protect government data
- Input sanitization, output encoding, and OWASP Top 10 mitigation strategies to enhance security in government web applications
- Rate limiting, CORS policies, and anti-forgery token handling to prevent abuse of government services
- Secret management with Azure Key Vault and environment-driven rotation for secure government operations
Code Quality, Maintainability, and Best Practices for Government
- Coding standards, EditorConfig, and dotnet format to ensure consistency in government codebases
- Static analysis with Roslyn analyzers and SonarQube integration to maintain high-quality government software
- Unit testing with xUnit, mocking with Moq or NSubstitute to verify functionality in government applications
- Integration and contract testing in CI pipelines for reliable government systems
- Refactoring techniques for long-lived legacy modules to improve maintainability in government projects
- Documentation, API contracts, and knowledge-sharing practices to enhance collaboration in government development teams
Modernization Strategy: Assessing Legacy .NET Framework Code for Government
- Portfolio analysis: classify apps by criticality, complexity, and business value for informed modernization decisions in government
- .NET Upgrade Assistant and compatibility analyzer usage to streamline the transition of government applications
- Identifying deprecated APIs, platform-specific dependencies, and third-party gaps to address potential issues in government systems
- Windows-specific APIs and WCF migration considerations for smooth transitions in government projects
- Creating a migration roadmap with risk-based prioritization to ensure successful modernization of government applications
Progressive Migration and Coexistence Techniques for Government
- Strangler Fig pattern: incrementally replacing legacy subsystems to minimize disruption in government operations
- API-first migration: exposing .NET Framework domains via REST facades to modernize government services
- Message-based bridging with RabbitMQ, Azure Service Bus, or Kafka for seamless integration in government systems
- Shared database coexistence and schema versioning strategies to support hybrid environments in government projects
- Running .NET Framework and .NET 8 side-by-side in the same infrastructure to facilitate gradual modernization in government applications
- Containerizing modern components while leaving legacy on IIS to optimize resource utilization in government IT infrastructure
Hands-On Migration Lab and Review for Government
- Applying the Upgrade Assistant to a representative legacy project to facilitate modernization in government
- Refactoring a Web Forms or WCF service into ASP.NET Core APIs to enhance performance and security in government systems
- Implementing DI, logging, and centralized error handling in the migrated solution to ensure reliability in government applications
- Adding authentication and authorization to the new API surface to secure government services
- Verifying coexistence through end-to-end integration testing to validate modernization efforts in government projects
- Review, Q&A, and post-training modernization planning guidance to support ongoing improvement in government IT initiatives
Requirements
- Demonstrated experience with C# programming and object-oriented design principles
- Familiarity with web development concepts, including HTTP, HTML, CSS, and foundational JavaScript knowledge
- Basic understanding of relational databases and SQL queries
- Prior exposure to .NET Framework or ASP.NET is beneficial but not mandatory
Audience
- .NET developers and architects preparing to modernize legacy applications for government use
- Software engineers transitioning into enterprise .NET development roles
- Technical leads responsible for platform migration and coexistence planning in government environments
- DevOps and infrastructure staff supporting the lifecycle of .NET applications within public sector organizations
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