This training course allows participants to compare different data access strategies and implement robust transactions using the Unit of Work pattern. Through the use of technologies such as EntityFramework Core, Dapper, and ADO.NET, participants will learn how to structure an effective persistence layer, optimize queries, and monitor execution performance in a .NET environment.
Objectives of the training
Be able to compare and implement data access and transaction management strategies from a .NET application.Targeted audience
Software developers and architects working on .NET projects that require effective data management.Prerequisite
This course requires a solid understanding of the basics of the C# language (principles of object-oriented programming, generic types, custom attributes, lambda expressions) and familiarity with working with Visual Studio, VsCode, or Rider.Trainers
Benefits for Participants
Compare SQL (relational) and NoSQL (non-relational) storage solutions;
Implementing a persistence layer with EntityFramework Core;
Query a relational database with a mini-ORM;
Implement the Unit of Work pattern;
Applying ACID principles with transactions;
Measure database access performance using profiling tools.
Course architecture
The training is structured around various key stages aimed at strengthening data access and transaction control. Each section combines fundamental concepts with targeted practical application, in conjunction with the flagship tools of the .NET ecosystem.
Introduction
This first stage presents the conceptual basics related to database types, non-blocking input/output, transactions, and object-relational mapping.
- The different types of databases (SQL, NoSQL).
- Non-blocking execution of I/O operations.
- The role of a connection pool.
- Transactions and ACID principles.
- Full-text searches.
- Object/database mapping.
Using EntityFramework Core
Here we explore how the repository pattern works, entity definition, relationship mapping, and implementation of the Unit of Work pattern via DbContext.
- Introduction to the repository pattern.
- Domain entities: strong entities and weak entities.
- Mapping entities and their relationships.
- Implementing the Unit of Work pattern with DbContext.
- The different states of an entity.
- Querying with LINQ.
- Migrations.
Practical application: setting up a persistence layer with EntityFramework Core and transaction management.
Mini-ORMs
The limitations of the pattern repository.
Manipulating contextual data with tuples and records.
Implementing the Unit of Work pattern with ADO.
Querying a relational database with Dapper.
Practical application: creating a data-driven application with Dapper and implementing transactions.
Profiling to measure data access performance
You will learn how to measure the performance of data access operations by activating a profiling tool, defining relevant metrics, and automating the collection of measurements.
- Activating a profiler in an application.
- Choosing metrics.
- Archiving information.
- Alerts.
Practical application: profiling data access operations and exporting measurements to Prometheus.
Pedagogical details
Training architecture
Explanation, for each concept, of the problem it aims to solve. Practical application of a concept immediately after it has been presented. Validation of each step by performing unit tests. "Common thread" exercise to obtain a complete application at the end of the course. Multiple-choice questions at the end of each chapter to ensure knowledge acquisition.
Type of training
Private or personalized training
If you have more than 8 people to sign up for a particular course, it can be delivered as a private session right at your offices. Contact us for more details.
Request a quotePrivate or personalized training
If you have more than 8 people to sign up for a particular course, it can be delivered as a private session right at your offices. Contact us for more details.
Request a quote