Get in Touch
 Duration 35 hours

Course Outline

Transitioning from Syntax to System Design

  • Advanced C# capabilities and their impact on architectural design.
  • Reverse-engineering design intent from legacy or existing 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 to .NET-based solutions.
  • Managing coupling, cohesion, and the direction of dependencies.

Design Patterns in .NET Ecosystems

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

Architectural Styles and Technical Decision Making

  • Comparing layered, hexagonal, and clean architecture approaches.
  • Utilizing Architecture Decision Records (ADRs) and conducting trade-off analyses.

Structuring the Solution

  • Organizing solutions and projects to accommodate large-scale codebases.
  • Evaluating modular monoliths against service-oriented boundary definitions.

Contemporary C# for Maintainability

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

Exception Handling, Logging, and Observability

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

Reflection, Attributes, and Metaprogramming

  • Designing with attributes and exploring practical reflection use cases.
  • Utilizing source generators and compile-time code generation.

Foundations of ASP.NET Core

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

Architecting REST APIs

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

Fortifying .NET Applications

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

Threat Modeling and Secure Architecture

  • Conducting STRIDE threat modeling and defining trust boundaries.
  • Performing secure design reviews prior to development.

Data Access via Entity Framework Core

  • Mapping entities and defining complex relationships.
  • Managing DbContext lifecycles and formulating migration strategies.

Query Efficiency and Data Architecture

  • Choosing loading strategies and avoiding common eager loading issues.
  • Handling transactions, concurrency tokens, and scenarios requiring bypassing EF.

Concurrency and Asynchronous Patterns

  • Working with Tasks, the TPL, and overcoming async/await complexities.
  • Managing synchronization, cancellation flows, and thread safety.

Performance Tuning

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

Layered Testing Strategies

  • Distinguishing boundaries between unit, integration, and end-to-end tests.
  • Designing for testability and employing test doubles.

Deployment and Operational Preparedness

  • Utilizing containers, managing configuration, and setting up CI/CD pipelines.
  • Implementing production diagnostics and ensuring release safety.

Capstone: Design Critique and Execution

  • Conducting an architectural review of a case-study application.
  • Implementing and refactoring a specific feature slice to demonstrate best practices.

Requirements

  • Practical programming experience with 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

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories