Get in Touch
 Duration 35 hours

Course Outline

Transitioning from Language Proficiency to Solution Design

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

Design Patterns for .NET Ecosystems

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

Architectural Styles and Decision-Making

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

Structuring the Solution

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

Modern C# for Sustainable Code

  • 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

  • Designing with attributes and applying reflection techniques.
  • Using source generators for compile-time code creation.

ASP.NET Core Essentials

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

Architecting REST APIs

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

Security in .NET Applications

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

Threat Modeling and Secure Architecture

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

Data Access via Entity Framework Core

  • Mapping entities and relationships effectively.
  • Managing DbContext lifecycle and migration strategies.

Query Efficiency and Data Structure

  • Optimizing loading strategies and avoiding eager loading issues.
  • Handling transactions, concurrency tokens, and raw database bypasses.

Concurrency and Asynchronous Development

  • Navigating Tasks, TPL, and common async/await challenges.
  • Implementing synchronization, cancellation, and thread safety measures.

Performance Tuning

  • Using BenchmarkDotNet for profiling and benchmarking.
  • Analyzing memory usage, allocations, and garbage collection impacts.
  • Implementing caching strategies and conducting load tests.

Comprehensive Testing Strategy

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

Deployment and Operational Preparedness

  • Managing containers, configuration, and CI/CD workflows.
  • Ensuring production diagnostics and release stability.

Capstone: Design Assessment and Execution

  • Reviewing the architecture of a sample application.
  • Building and refactoring a specific feature set.

Requirements

  • Proficiency in C# programming
  • Practical understanding of object-oriented principles
  • Fundamental knowledge of SQL and relational databases

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