Course Outline
Transitioning from Language Proficiency to Solution Design
- Advanced C# features and their impact on design.
- Inferring design intent from legacy code.
Requirements Analysis and Domain Modelling
- Defining use cases, user stories and acceptance criteria.
- Establishing domain models and a ubiquitous language.
Software Design Principles
- 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 in existing codebases.
Architectural Styles and Technical Decision-Making
- Comparing layered, hexagonal and clean architecture.
- Creating Architecture Decision Records and analysing trade-offs.
Structuring the Solution
- Organising solutions and projects for large-scale codebases.
- Choosing between modular monoliths and service-oriented boundaries.
Modern C# for Maintainable Code
- Utilising pattern matching, records and nullable reference types.
- Leveraging generics, LINQ and functional composition.
Exception Handling, Logging and Observability
- Defining exception strategies and error contracts.
- Implementing structured logging, correlation and health checks.
Reflection, Attributes and Metaprogramming
- Attribute-driven design and practical reflection use cases.
- Source generators and compile-time code generation.
ASP.NET Core Fundamentals
- Hosting models, dependency injection and configuration.
- Request pipelines, middleware and filters.
Designing REST APIs
- Resource modelling and HTTP semantics.
- Versioning, validation and error response handling.
- Defining API contracts with OpenAPI.
Securing .NET Applications
- Implementing authentication and authorization via OpenID Connect.
- Policy-based authorization and secrets management.
Threat Modelling and Secure Design
- STRIDE modelling and defining trust boundaries.
- Conducting secure design reviews prior to implementation.
Data Access with Entity Framework Core
- Modelling entities and their relationships.
- Managing DbContext lifetime and migration strategies.
Query Performance and Data Architecture
- Loading strategies and avoiding eager loading pitfalls.
- Transactions, concurrency tokens and bypassing EF when necessary.
Concurrency and Asynchronous Programming
- Tasks, the TPL and common async/await pitfalls.
- Synchronization, cancellation and thread safety.
Performance Optimization
- Profiling and benchmarking using BenchmarkDotNet.
- Memory management, allocations and garbage collection.
- Caching strategies and load testing.
Testing Strategy Across Layers
- Defining boundaries for unit, integration and end-to-end testing.
- Testable architecture and the use of test doubles.
Deployment and Operational Readiness
- Containers, configuration and CI/CD pipelines.
- Production diagnostics and release safety.
Capstone: Design Review and Implementation
- Architectural review of a case study application.
- Implementing and refactoring a specific feature slice.
Requirements
- Proficiency in C# programming
- Practical understanding of object-oriented programming
- Fundamental knowledge of SQL and relational databases
Target Audience
- .NET Developers
- Software Engineers and Technical Leads
- Developers transitioning into application design roles
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 6500 € + VAT*
Contact us for an exact quote and to hear our latest promotions
Testimonials (4)
It was 1-on-1 so the training was specialized to my specific needs. Shane highlighted elements of WPF/C# that could potentially be beneficial to my development projects.
Warren Nolan - Northrop Grumman
Course - Programming in WPF
Trainer knowledge, involvement, and rapport
Adam Kuklewski - GE Medical Systems Polska
Course - Technical Architecture and Patterns
The explanations and interactivity of the trainer, he really brought the subject well; and even-though I was probably not experienced enough, I did learn a lot from it!
Pieter Bruynseels - Spot Buy Center BV
Course - Design Patterns
Nice and friendly. Very knowledgeable. Would recommend Shane to others.