Get in Touch
 Duration 35 hours

Course Outline

Transitioning from Language Proficiency to Solution Architecture

  • Advanced C# features and their broader architectural implications.
  • Extracting original design intent from legacy or existing codebases.

Requirements Analysis and Domain Modeling

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

Core Software Design Principles

  • Applying SOLID principles specifically within .NET solutions.
  • Managing coupling, cohesion, and the direction of dependencies.

Design Patterns for .NET Environments

  • Selecting appropriate creational, structural, and behavioral patterns.
  • Identifying patterns and common anti-patterns in current code structures.

Architectural Styles and Strategic Decision-Making

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

Structuring the Solution

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

Modern C# for Code Maintainability

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

Exception Handling, Logging, and Observability

  • Establishing exception strategies and defining error contracts.
  • Implementing structured logging, correlation tracking, and health checks.

Reflection, Attributes, and Metaprogramming

  • Applying attribute-driven design and exploring reflection use cases.
  • Using source generators for compile-time code generation.

Foundations 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 applying correct HTTP semantics.
  • Handling versioning, input validation, and structured error responses.
  • Defining API contracts using OpenAPI.

Enhancing .NET Application Security

  • Implementing authentication and authorization via OpenID Connect.
  • Managing policy-based authorization and secure secrets handling.

Threat Modeling and Secure Design Practices

  • Utilizing STRIDE modeling and defining trust boundaries.
  • Conducting secure design reviews prior to implementation.

Data Access via Entity Framework Core

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

Query Optimization and Data Architecture

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

Concurrency and Asynchronous Programming

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

Performance Tuning

  • Profiling and benchmarking using BenchmarkDotNet.
  • Optimizing memory usage, allocations, and garbage collection behavior.
  • Designing caching strategies and conducting load tests.

Comprehensive Testing Strategy

  • Defining boundaries for unit, integration, and end-to-end testing.
  • Building testable architectures and utilizing test doubles.

Deployment and Operational Excellence

  • Working with containers, configuration, and CI/CD pipelines.
  • Ensuring production diagnostics and release safety protocols.

Capstone Project: Design Review and Execution

  • Conducting an architecture review of a case-study application.
  • Implementing and refactoring a specific feature slice.

Requirements

  • Practical programming experience in C#
  • Proficiency in object-oriented programming concepts
  • Familiarity with SQL and relational database structures

Target Audience

  • .NET Developers
  • Software Engineers and Technical Leads
  • Developers transitioning into application design roles

Testimonials (4)

Related Categories