Get in Touch
 Duration 35 hours

Course Outline

Bridging Language Proficiency and Solution Architecture

  • Exploring advanced C# features and their impact on design.
  • Reverse-engineering design intent from legacy codebases.

Requirements Analysis and Domain Modeling

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

Core Software Design Principles

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

Applicable Design Patterns in .NET

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

Architectural Styles and Technical Decision Frameworks

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

Structuring Large-Scale Solutions

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

Modern C# for Code Maintainability

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

Exception Management, Logging, and Observability

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

Reflection, Attributes, and Metaprogramming

  • Utilizing attribute-driven design and reflection scenarios.
  • Employing source generators and compile-time code generation.

ASP.NET Core Core Concepts

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

REST API Design Practices

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

.NET Application Security

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

Threat Modeling and Secure Architecture

  • Applying STRIDE modeling and defining trust boundaries.
  • Conducting secure design reviews prior to coding.

Data Access via Entity Framework Core

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

Query Performance and Data Architecture

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

Concurrency and Asynchronous Patterns

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

Performance Optimization Techniques

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

Multi-Layer Testing Strategies

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

Deployment and Operational Excellence

  • Configuring containers, settings, and CI/CD pipelines.
  • Ensuring production diagnostics and release safety protocols.

Capstone: Design Review and Practical Implementation

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

Requirements

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

Target Audience

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

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories