Get in Touch
 Duration 35 hours

Course Outline

Bridging Language Proficiency with Solution Design

  • Exploring advanced C# capabilities and their impact on design choices.
  • Reverse-engineering design intent from legacy or existing codebases.

Analyzing Requirements and Modeling Domains

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

Core Software Design Principles

  • Applying SOLID principles to .NET-based solutions.
  • Managing coupling, cohesion, and dependency flow.

Applying Design Patterns in .NET

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

Architectural Styles and Strategic Decision-Making

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

Structuring Large-Scale Solutions

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

Modern C# for Long-Term Maintainability

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

Robust Exception Handling, 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 utilizing reflection effectively.
  • Employing source generators and compile-time code generation.

Core ASP.NET Core Concepts

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

Crafting RESTful APIs

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

Enhancing .NET Application Security

  • Implementing authentication and authorization via OpenID Connect.
  • Managing policy-based access controls and secret management.

Threat Modeling and Secure Architecture

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

Mastering Data Access with Entity Framework Core

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

Optimizing Query Performance and Data Architecture

  • Selecting loading strategies and avoiding eager loading issues.
  • Handling transactions, concurrency tokens, and raw SQL integration.

Concurrency and Asynchronous Patterns

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

Advanced Performance Tuning

  • Conducting profiling and benchmarking using BenchmarkDotNet.
  • Optimizing memory usage, allocations, and garbage collection.
  • 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 Excellence

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

Capstone Project: Design Review and Execution

  • Conducting an architectural review of a representative case study.
  • Implementing and refactoring a specific feature set.

Requirements

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

Target Audience

  • .NET Developers
  • Software Engineers and Technical Leaders
  • Developers transitioning into application design roles

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories