Get in Touch
 Duration 35 hours

Course Outline

Bridging Language Proficiency and Solution Design

  • Advanced C# features and their impact on design strategy.
  • Inferring design intent from existing codebases.

Requirements Analysis and Domain Modelling

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

Core Principles of Software Design

  • Applying SOLID principles to .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 Strategic Decision-Making

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

Planning the Solution Structure

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

Modern C# for Sustainable Code

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

Exception Handling, Logging, and Observability

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

Reflection, Attributes, and Metaprogramming

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

Foundations of ASP.NET Core

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

Designing RESTful APIs

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

Securing .NET Applications

  • Implementing authentication and authorization via OpenID Connect.
  • Utilizing policy-based authorization and secrets management.

Threat Modelling and Secure Design

  • Applying STRIDE modelling and defining trust boundaries.
  • Conducting secure design reviews prior to implementation.

Data Access via Entity Framework Core

  • Modelling entities and defining relationships.
  • Managing DbContext lifecycles and migration strategies.

Query Performance and Data Architecture

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

Concurrency and Asynchronous Programming

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

Performance Optimization

  • Profiling and benchmarking using BenchmarkDotNet.
  • Managing memory, allocations, and garbage collection.
  • Implementing caching strategies and load testing.

Multi-Layer Testing Strategy

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

Deployment and Operational Readiness

  • Managing containers, configuration, and CI/CD pipelines.
  • Conducting production diagnostics and ensuring release safety.

Capstone: Design Review and Implementation

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

Requirements

  • Proficiency in programming with C#
  • A solid working understanding of object-oriented programming
  • Fundamental knowledge of SQL and relational database structures

Intended Audience

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

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories