Get in Touch
 Duration 35 hours

Course Outline

Transitioning from Language Proficiency to Solution Architecture

  • Exploring advanced C# features and their impact on design decisions.
  • Inferring design intent from legacy or existing codebases.

Requirements Analysis and Domain Modeling

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

Core Software Design Principles

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

Design Patterns Tailored for .NET

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

Architecture Styles and Strategic Decision-Making

  • Comparing layered, hexagonal, and clean architecture approaches.
  • Drafting architecture decision records and conducting trade-off analyses.

Structuring the Solution Blueprint

  • Organizing solutions and projects for scalable codebases.
  • Evaluating modular monoliths against service-oriented boundaries.

Leveraging Modern C# for Maintainability

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

Exception Handling, Logging, and Observability

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

Reflection, Attributes, and Metaprogramming

  • Exploring attribute-driven designs and practical reflection scenarios.
  • Using source generators and compile-time code generation methods.

ASP.NET Core Core Competencies

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

Architecting REST APIs

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

Hardening .NET Applications

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

Threat Modeling and Secure Design Practices

  • Applying STRIDE modeling and identifying trust boundaries.
  • Conducting secure design reviews prior to development.

Data Access via Entity Framework Core

  • Modeling entity relationships and structures.
  • Managing DbContext lifecycles and migration strategies.

Query Optimization and Data Architecture

  • Selecting loading strategies and avoiding eager loading pitfalls.
  • Handling transactions, concurrency tokens, and direct database access when necessary.

Concurrency and Asynchronous Programming

  • Mastering Tasks, the TPL, and common async/await challenges.
  • Ensuring synchronization, cancellation handling, and thread safety.

Performance Tuning

  • Profiling and benchmarking using BenchmarkDotNet.
  • Analyzing memory usage, allocations, and garbage collection.
  • Implementing caching strategies and conducting load tests.

Multi-Layer Testing Strategies

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

Deployment and Operational Preparedness

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

Capstone: Design Review and Practical Implementation

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

Requirements

  • Practical experience with C# programming
  • Proficient understanding of object-oriented programming concepts
  • Fundamental knowledge 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 (4)

Upcoming Courses

Related Categories