Get in Touch
 Duration 21 hours

Course Outline

Bridging Code and Solution Design

  • Evaluating strategic design choices that must precede coding.
  • Extracting and understanding design intent from legacy codebases.

Analyzing Requirements and Modeling Domains

  • Defining use cases, user stories, and clear acceptance criteria.
  • Constructing domain models and establishing a ubiquitous language.

Core Software Design Principles for .NET

  • Applying SOLID principles to practical, real-world scenarios.
  • Managing coupling, cohesion, and the direction of dependencies.

Practical Application of Design Patterns

  • Choosing appropriate creational, structural, and behavioral patterns.
  • Identifying valid patterns and recognizing anti-patterns in existing code.

Comparing Architecture Styles and Analyzing Trade-offs

  • Comparing layered, hexagonal, and clean architecture approaches.
  • Creating architecture decision records and defining modular boundaries.

Essentials of ASP.NET Core

  • Understanding the hosting model, dependency injection, and configuration management.
  • Navigating the request pipeline, middleware, and filters.

Architecting REST APIs

  • Modeling resources and adhering to correct HTTP semantics.
  • Implementing versioning, input validation, and structured error responses.
  • Defining API contracts and generating documentation using OpenAPI.

Robust API Error Handling and Observability

  • Establishing exception strategies and consistent error response contracts.
  • Implementing structured logging, request correlation, and health checks.

Efficient Data Access via Entity Framework Core

  • Modeling entities, relationships, and value objects effectively.
  • Managing DbContext lifetimes, change tracking, and migration strategies.

Optimizing Query Performance and Data Architecture

  • Selecting optimal loading strategies and avoiding common eager loading pitfalls.
  • Handling transactions, concurrency tokens, and utilizing raw SQL when necessary.

Enhancing .NET Application Security

  • Implementing authentication and authorization using OpenID Connect.
  • Configuring policy-based authorization and managing secrets securely.

Threat Modeling and Secure-by-Design Approaches

  • Applying STRIDE modeling, identifying trust boundaries, and mapping data flows.
  • Addressing OWASP API security risks within the architectural design.

Mastering Concurrency and Asynchronous Programming

  • Working with Tasks, the TPL, and avoiding common async/await issues.
  • Implementing cancellation mechanisms, synchronization, and ensuring thread safety.

Advanced Performance Optimization

  • Conducting profiling and benchmarking using BenchmarkDotNet.
  • Optimizing memory allocations, garbage collection, and caching strategies.

Capstone Project: Architecture Review and Real-World Implementation

  • Conducting a comprehensive design review of a case study application.
  • Implementing and refactoring a specific slice of API functionality.

Requirements

  • Practical programming experience with C#
  • Solid working knowledge of object-oriented programming concepts
  • Fundamental understanding of SQL and relational database systems

Target Audience

  • .NET developers
  • Software engineers and technical leads
  • Developers transitioning into application design roles

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories