Get in Touch
 Duration 35 hours

Course Outline

Bridging Language Proficiency with Solution Design

  • Advanced C# features and their impact on software design.
  • Inferring 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 within .NET solutions.
  • Managing coupling, cohesion and dependency direction.

Design Patterns for .NET Applications

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

Architectural Styles and Technical Decision-Making

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

Planning the Solution Structure

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

Modern C# for Sustainable Codebases

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

Exception Handling, Logging and Observability

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

Reflection, Attributes and Metaprogramming

  • Attribute-driven design and practical reflection use cases.
  • Source generators and compile-time code generation techniques.

ASP.NET Core Essentials

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

Designing RESTful APIs

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

Securing .NET Applications

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

Threat Modeling and Secure Design Practices

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

Data Access via Entity Framework Core

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

Query Performance and Data Architecture

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

Concurrency and Asynchronous Programming

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

Performance Optimization Strategies

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

Cross-Layer Testing Strategy

  • Defining boundaries for unit, integration and end-to-end testing.
  • Architecting for testability and utilizing test doubles.

Deployment and Operational Readiness

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

Capstone Project: Design Review and Implementation

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

Requirements

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

Intended Audience

  • .NET developers
  • Software engineers and technical leads
  • Developers transitioning into application architecture or design roles

Number of participants


Price per participant (excl. VAT)

Testimonials (4)

Upcoming Courses

Related Categories