.NET Core has revolutionized the way backend applications are developed: dependency injection, Kestrel web server, advanced configuration management, logging, security, etc. These technologies are at the heart of .NET applications. To use them effectively, you need a solid understanding of the design patterns that structure a backend application.
This training will equip you to design and implement scalable, high-performance architectures using .NET and C#.
You will explore best practices in software design while implementing the key components of a backend application, from data management to securing REST APIs to deployment on Kubernetes.
Each module is based on concrete practical applications, using a progressive and structured approach.
Objectives
Be able to design and develop a complete, modular, and secure backend application with .NET and C#, according to proven software architecture principles.
Is it for you ?
Backend developers and scalable application architects in a .NET environment
Prerequisite
This course requires a solid understanding of the fundamentals of C# programming (principles of object-oriented programming, generic types, custom attributes, lambda expressions). Experience with Visual Studio, VsCode, or Rider is also necessary.
Your benefits
Content
Introduction
- The adoption of a common language (ubiquitous language) for better collaboration.
- Setting objectives.
- Review of S.O.L.I.D., KISS, DRY, and POCO principles for better maintainability.
- The division into software layers.
- The preference for stateless applications.
- Overview of the .NET ecosystem.
See more + / -
Weak coupling with Microsoft.Extensions.DependencyInjection
- Presentation of the Strategy and Factory design patterns.
- The declaration of an IServiceCollection.
- Registering a service.
- Dependency injection.
- Access to properties derived from an IConfiguration.
- Coupling with Microsoft.Extensions.Logging.
- La configuration par custom attributes.
Exchanging messages with the Command pattern
- The command as a representation of user inputs for a use case.
- Routing commands to business components.
- Validation.
- Exception handling.
- Transactional demarcation.
- Implementing a CQRS (command query responsibility segregation) architecture.
Data Access and Transaction Management
- Different types of databases (SQL, NoSQL).
- The CAP theorem.
- Non-blocking execution of I/O operations to improve scalability.
- The role of a connection pool.
- Transactions and ACID principles.
- The Unit of Work pattern.
- Records and tuples for manipulating immutable data.
- The Repository pattern (and its limitations) and its implementation in .NET: EntityFrameworkCore.
- Mini-ORMs as a solution for developing data-driven applications, introduction to Dapper.
Creating a REST API with ASP.NET Mvc
- The Kestrel embedded web server and its event loop.
- Middleware.
- Best practices for designing a REST API.
- API Controllers and request processing.
- Validation.
- Exception handling.
- Testing a REST API.
Creating an MVC web application with ASP.NET MVC
- Introduction to the Model View Controller pattern.
- Defining the model and transmitting it to the views.
- Razor views.
- Ajax and partial views for smoother navigation.
- Validation.
Securing a web application
- Declaring a user repository with ASP.NET Identity.
- Choosing an authentication strategy: cookie or JWT token.
- Coupling with an OpenID Connect server.
- Defining access rules.
- Accessing user identity.
- Revocation strategies.
Continuous integration and continuous delivery
- Review of .NET commands for creating a deliverable.
- The 12 Factor App methodology.
- OCI image creation.
- Deploying an OCI image on a Kubernetes orchestrator.
💡 Useful information
Our training sessions are offered in Montreal or Quebec City, in person or in virtual format. Dates and locations are provided when you select your session below. If you have any questions regarding registration, schedules, the language of instruction, or cancellation policies, please consult our FAQ .
Trainers
Private or personalized training
Do you have several employees interested in the same training course? Whether in person at your offices or remotely in virtual mode, we offer private training courses tailored to your team's needs. Group rates are available. Contact us for more details or request a quote online.
Request a quote