Get in Touch
 Duration 35 hours

Course Outline

Bridging Language Skills and Solution Design

  • Advanced C# features and their impact on design.
  • Extracting design intent from legacy code.

Analyzing Requirements and Modeling the Domain

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

Foundational Software Design Principles

  • Applying SOLID principles to .NET solutions.
  • Managing coupling, cohesion, and dependency flow.

Applying Design Patterns in .NET

  • Selecting appropriate creational, structural, and behavioral patterns.
  • Identifying patterns and anti-patterns within existing codebases.

Architecture Styles and Strategic Decisions

  • Comparing layered, hexagonal, and clean architecture approaches.
  • Creating architecture decision records and analyzing trade-offs.

Structuring the Solution

  • Organizing solutions and projects for large-scale codebases.
  • Choosing between modular monoliths and service-oriented boundaries.

Writing Maintainable Code with Modern C#

  • Leveraging pattern matching, records, and nullable reference types.
  • Utilizing generics, LINQ, and functional composition.

Handling Exceptions, Logging, and Observability

  • Developing exception strategies and error contracts.
  • Implementing structured logging, correlation, and health checks.

Reflection, Attributes, and Metaprogramming

  • Designing with attributes and applying reflection use cases.
  • Using source generators and compile-time code generation.

Core ASP.NET Core Concepts

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

Architecting REST APIs

  • Modeling resources and applying HTTP semantics.
  • Managing versioning, validation, and error responses.
  • Defining API contracts using OpenAPI.

Enhancing .NET Application Security

  • Implementing authentication and authorization via OpenID Connect.
  • Configuring policy-based authorization and secrets management.

Threat Modeling and Secure Design

  • Applying STRIDE modeling and defining trust boundaries.
  • Conducting secure design reviews before implementation begins.

Data Access via Entity Framework Core

  • Modeling entities and their relationships.
  • Managing DbContext lifetimes and migration strategies.

Optimizing Query Performance and Data Architecture

  • Selecting loading strategies and avoiding eager loading pitfalls.
  • Handling transactions, concurrency tokens, and bypassing EF when necessary.

Mastering Concurrency and Asynchronous Programming

  • Working with Tasks, the TPL, and common async/await pitfalls.
  • Implementing synchronization, cancellation, and thread safety.

Performance Tuning

  • Profiling and benchmarking using BenchmarkDotNet.
  • Optimizing memory usage, allocations, and garbage collection.
  • Developing caching strategies and conducting load testing.

Layered Testing Strategies

  • Defining boundaries for unit, integration, and end-to-end testing.
  • Ensuring testable architecture and using test doubles.

Deployment and Operational Readiness

  • Managing containers, configuration, and CI/CD pipelines.
  • Performing production diagnostics and ensuring release safety.

Capstone: Design Review and Implementation

  • Reviewing the architecture of a case-study application.
  • Implementing and refactoring a specific feature slice.

Requirements

  • Proficiency in C# programming
  • Practical understanding of object-oriented concepts
  • Foundational knowledge of SQL and relational database systems

Intended 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