{"id":931,"date":"2025-01-06T14:11:02","date_gmt":"2025-01-06T14:11:02","guid":{"rendered":"https:\/\/oussamasaidi.com\/?p=931"},"modified":"2025-12-20T11:14:44","modified_gmt":"2025-12-20T11:14:44","slug":"net-9-entity-framework-core-what-is-new","status":"publish","type":"post","link":"https:\/\/oussamasaidi.com\/en\/net-9-entity-framework-core-what-is-new\/","title":{"rendered":"Les Nouveaut\u00e9s d&rsquo;Entity Framework Core avec .NET 9 : Ce Qu&rsquo;il Faut Savoir"},"content":{"rendered":"<p>La sortie de .NET 9 s\u2019accompagne de mises \u00e0 jour significatives dans <strong>Entity Framework Core<\/strong> (EF Core), le c\u00e9l\u00e8bre ORM de Microsoft. Ces nouveaut\u00e9s visent \u00e0 simplifier les sc\u00e9narios complexes et \u00e0 am\u00e9liorer les performances, la compatibilit\u00e9 cloud et l\u2019int\u00e9gration IA. Voici les cinq principales nouveaut\u00e9s qui transformeront vos projets.<\/p>\n\n\n<ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-1-prise-en-charge-des-requetes-graphql\">1. Prise en Charge des Requ\u00eates GraphQL<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-2-mapping-des-types-json\">2. Mapping des Types JSON<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-3-amelioration-des-performances-des-requetes-linq\">3. Am\u00e9lioration des Performances des Requ\u00eates LINQ<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-4-integration-avec-azure-cosmos-db\">4. Int\u00e9gration avec Azure Cosmos DB<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-5-rechargement-des-entites-traquees\">5. Rechargement des Entit\u00e9s Traqu\u00e9es<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-6-amelioration-des-groupby-avec-les-bases-relationnelles\">6. Am\u00e9lioration des GroupBy avec les Bases Relationnelles<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-conclusion\">Conclusion<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-derniers-articles\">Derniers Articles<\/a><\/li><\/ul>\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-1-prise-en-charge-des-requetes-graphql\">1. Prise en Charge des Requ\u00eates GraphQL<\/h2>\n\n\n\n<p>EF Core avec .NET 9 introduit un support natif pour les requ\u00eates GraphQL, permettant aux d\u00e9veloppeurs de cr\u00e9er des APIs modernes directement depuis leur mod\u00e8le EF.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-exemple-de-code\">Exemple de Code :<\/h3>\n\n\n\n<p>Avec le package <strong>HotChocolate<\/strong>, voici comment configurer une requ\u00eate GraphQL avec EF Core :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">builder.Services\n    .AddGraphQLServer()\n    .AddQueryType&lt;Query>();\n\npublic class Query\n{\n    public IQueryable&lt;Product> GetProducts([Service] AppDbContext context) =>\n        context.Products;\n}<\/pre>\n\n\n\n<p>Ce support natif r\u00e9duit consid\u00e9rablement le besoin de configurations suppl\u00e9mentaires pour int\u00e9grer GraphQL \u00e0 vos projets.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-2-mapping-des-types-json\">2. Mapping des Types JSON<\/h2>\n\n\n\n<p>Une fonctionnalit\u00e9 tr\u00e8s attendue : la prise en charge native du mapping des champs JSON directement dans les colonnes de la base de donn\u00e9es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-exemple-de-code\">Exemple de Code :<\/h3>\n\n\n\n<p>Voici un exemple de mapping d&rsquo;une propri\u00e9t\u00e9 JSON dans un mod\u00e8le EF Core :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class Order\n{\n    public int Id { get; set; }\n    public string CustomerName { get; set; }\n    public JsonDocument Details { get; set; }\n}\n\nprotected override void OnModelCreating(ModelBuilder modelBuilder)\n{\n    modelBuilder.Entity&lt;Order>()\n        .Property(o => o.Details)\n        .HasColumnType(\"jsonb\"); \/\/ Pour PostgreSQL\n}\n<\/pre>\n\n\n\n<p>Cette am\u00e9lioration simplifie la gestion des donn\u00e9es semi-structur\u00e9es.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-3-amelioration-des-performances-des-requetes-linq\">3. Am\u00e9lioration des Performances des Requ\u00eates LINQ<\/h2>\n\n\n\n<p>.NET 9 am\u00e9liore l&rsquo;ex\u00e9cution des requ\u00eates LINQ, notamment pour les grandes bases de donn\u00e9es, en introduisant des optimisations au niveau des jointures et des filtres.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-exemple-de-code\">Exemple de Code :<\/h3>\n\n\n\n<p>Avec EF Core, une requ\u00eate complexe s\u2019ex\u00e9cute d\u00e9sormais plus rapidement gr\u00e2ce \u00e0 ces optimisations :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var results = await context.Orders\n    .Where(o => o.TotalAmount > 100)\n    .OrderBy(o => o.OrderDate)\n    .ToListAsync();\n<\/pre>\n\n\n\n<p>Ces am\u00e9liorations garantissent des performances accrues pour vos applications critiques.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-4-integration-avec-azure-cosmos-db\">4. Int\u00e9gration avec Azure Cosmos DB<\/h2>\n\n\n\n<p>EF Core offre d\u00e9sormais un meilleur support pour <strong>Azure Cosmos DB<\/strong>, optimis\u00e9 pour les bases NoSQL. Cela inclut des am\u00e9liorations dans la gestion des partitions et des performances des transactions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-exemple-de-code\">Exemple de Code :<\/h3>\n\n\n\n<p>Voici une configuration simplifi\u00e9e pour utiliser Cosmos DB avec EF Core :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">services.AddDbContext&lt;AppDbContext>(options =>\n    options.UseCosmos(\n        \"https:\/\/&lt;cosmos-db-uri>\",\n        \"&lt;primary-key>\",\n        databaseName: \"MyDatabase\"));\n<\/pre>\n\n\n\n<p>Cette int\u00e9gration rend la mise en \u0153uvre des solutions cloud-native plus efficace.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-5-rechargement-des-entites-traquees\">5. Rechargement des Entit\u00e9s Traqu\u00e9es<\/h2>\n\n\n\n<p>Une autre nouveaut\u00e9 puissante est la possibilit\u00e9 de recharger facilement des entit\u00e9s traqu\u00e9es sans supprimer leur \u00e9tat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-exemple-de-code\">Exemple de Code :<\/h3>\n\n\n\n<p>Rechargez une entit\u00e9 avec la m\u00e9thode suivante :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var entity = await context.Orders.FindAsync(1);\nawait context.Entry(entity).ReloadAsync();\n<\/pre>\n\n\n\n<p>Cette fonctionnalit\u00e9 est utile pour maintenir la synchronisation des donn\u00e9es dans des sc\u00e9narios multi-utilisateurs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-6-amelioration-des-groupby-avec-les-bases-relationnelles\">6. Am\u00e9lioration des GroupBy avec les Bases Relationnelles<\/h2>\n\n\n\n<p>EF Core avec .NET 9 apporte un support avanc\u00e9 pour les regroupements dans les bases relationnelles, rendant les requ\u00eates <code>GroupBy<\/code> plus intuitives et performantes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-exemple-de-code\">Exemple de Code :<\/h3>\n\n\n\n<p>Voici une requ\u00eate <code>GroupBy<\/code> optimis\u00e9e :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var salesSummary = await context.Sales\n    .GroupBy(s => s.Region)\n    .Select(g => new\n    {\n        Region = g.Key,\n        TotalSales = g.Sum(s => s.Amount)\n    })\n    .ToListAsync();\n<\/pre>\n\n\n\n<p>Ces am\u00e9liorations simplifient la cr\u00e9ation de rapports directement depuis la base de donn\u00e9es.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-conclusion\">Conclusion<\/h2>\n\n\n\n<p>Les mises \u00e0 jour d&rsquo;<strong>Entity Framework Core<\/strong> avec .NET 9 offrent des outils puissants pour simplifier le d\u00e9veloppement et am\u00e9liorer les performances. Que ce soit pour int\u00e9grer GraphQL, exploiter des donn\u00e9es JSON ou tirer parti d\u2019Azure Cosmos DB, cette version s\u2019impose comme un choix incontournable pour les d\u00e9veloppeurs modernes.<\/p>\n\n\n\n<p>Adoptez ces nouveaut\u00e9s d\u00e8s aujourd&rsquo;hui pour maximiser l&rsquo;efficacit\u00e9 de vos projets !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-derniers-articles\">Derniers Articles<\/h2>\n\n\n<ul class=\"wp-block-latest-posts__list wp-block-latest-posts\"><li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/oussamasaidi.com\/en\/react-19-and-vite-for-dotnet-developers-build-fast-modern-frontends\/\">React 19 &amp; Vite: Build Fast Frontends for .NET Developers<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/oussamasaidi.com\/en\/https-oussamasaidi-com-restful-api-mastery-best-practices-with-asp-net-core-part-2\/\">RESTful API best practices\u00a0with ASP.NET Core Part 2<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/oussamasaidi.com\/en\/restful-api-mastery-best-practices-with-asp-net-core\/\">RESTful API Best Practices with ASP.NET Core<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/oussamasaidi.com\/en\/net-8-testing-libraries-complete-guide-for-developers\/\">Best .NET 8 Testing Libraries: The Complete Guide for Developers<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/oussamasaidi.com\/en\/securing-sensitive-information-in-net-core\/\">Securing Sensitive Information in .NET Core: A Complete Guide for Developers<\/a><\/li>\n<\/ul>\n\n\n<div class=\"wp-container-6 wp-block-columns alignwide\">\n<div class=\"wp-container-5 wp-elements-e1ba0e3d9d30b7fec5c25e47c471e6ef wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#c0ebf1;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 id=\"patron\" style=\"font-size:40px\"><strong>Vous aimez le contenu&nbsp;?<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Si vous aimez mes articles, pensez \u00e0 m\u2019acheter quelques caf\u00e9s !<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-wide\">\n\n\n\n<div class=\"wp-container-4 is-horizontal is-content-justification-center wp-block-buttons alignfull\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link has-white-color has-text-color has-background no-border-radius\" href=\"https:\/\/www.buymeacoffee.com\/oussamasaiI\" style=\"background-color:#000000\" target=\"_blank\" rel=\"noreferrer noopener\">Achetez-moi un caf\u00e9<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>La sortie de .NET 9 s\u2019accompagne de mises \u00e0 jour significatives dans Entity Framework Core (EF Core), le c\u00e9l\u00e8bre ORM&#8230; <\/p>\n<div class=\"art-el-more\"><a href=\"https:\/\/oussamasaidi.com\/en\/net-9-entity-framework-core-what-is-new\/\" class=\"art-link art-color-link art-w-chevron\">Read more<\/a><\/div>","protected":false},"author":1,"featured_media":937,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[40,68,45,41,56,84,82,83,20],"tags":[],"ppma_author":[286],"class_list":["post-931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-netcore","category-api","category-asp-net","category-c","category-c-2","category-ef-core","category-entity-framework-core","category-entity-framework-core-2","category-technology"],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-06-15.03.46-A-professional-and-modern-banner-image-for-a-WordPress-blog-article-about-the-new-features-of-Entity-Framework-Core-with-.NET-9.-The-design-should-inc.webp","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":660,"url":"https:\/\/oussamasaidi.com\/en\/best-libraries-for-aspnet-core\/","url_meta":{"origin":931,"position":0},"title":"15 meilleures biblioth\u00e8ques pour les d\u00e9veloppeurs ASP.NET Core","author":"Saidi Oussama","date":"November 23, 2022","format":false,"excerpt":"Plusieurs nouveaux d\u00e9veloppeurs font quotidiennement leurs premiers pas dans ASP.Net Core pour leur carri\u00e8re de d\u00e9veloppement Web. Choisir et ma\u00eetriser les meilleures biblioth\u00e8ques qui aident \u00e0 optimiser l'exp\u00e9rience de d\u00e9veloppement est le facteur d\u00e9cisif pour toute technologie. Avec la croissance rapide de .NET Core au cours des derni\u00e8res ann\u00e9es, plusieurs\u2026","rel":"","context":"In &quot;.Net Core&quot;","block_context":{"text":".Net Core","link":"https:\/\/oussamasaidi.com\/en\/category\/netcore\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/pngaaa.com-592393.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/pngaaa.com-592393.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/pngaaa.com-592393.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/pngaaa.com-592393.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/pngaaa.com-592393.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/pngaaa.com-592393.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1086,"url":"https:\/\/oussamasaidi.com\/en\/logging-centralise-avec-opentelemetry-dans-net-core\/","url_meta":{"origin":931,"position":1},"title":"Logging Centralis\u00e9 avec OpenTelemetry dans .NET Core","author":"Saidi Oussama","date":"April 7, 2025","format":false,"excerpt":"Diagramme officiel OpenTelemetry montrant le flux de donn\u00e9es. Source originale. Introduction Dans le monde du d\u00e9veloppement moderne, la gestion des logs est devenue un \u00e9l\u00e9ment critique pour assurer la stabilit\u00e9 et la performance des applications. OpenTelemetry \u00e9merge comme la solution ultime pour impl\u00e9menter une strat\u00e9gie de logging centralis\u00e9e efficace. Ce\u2026","rel":"","context":"In &quot;.Net Core&quot;","block_context":{"text":".Net Core","link":"https:\/\/oussamasaidi.com\/en\/category\/netcore\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ChatGPT-Image-8-avr.-2025-00_36_08.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ChatGPT-Image-8-avr.-2025-00_36_08.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ChatGPT-Image-8-avr.-2025-00_36_08.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ChatGPT-Image-8-avr.-2025-00_36_08.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ChatGPT-Image-8-avr.-2025-00_36_08.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ChatGPT-Image-8-avr.-2025-00_36_08.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1714,"url":"https:\/\/oussamasaidi.com\/en\/https-oussamasaidi-com-restful-api-mastery-best-practices-with-asp-net-core-part-2\/","url_meta":{"origin":931,"position":2},"title":"RESTful API best practices\u00a0with ASP.NET Core Part 2","author":"Saidi Oussama","date":"December 20, 2025","format":false,"excerpt":"Testing, Performance, Security, Microservices & Deployment Introduction: From Solid Foundations to Production Excellence In Part 1 of RESTful API Mastery, we established the architectural and technical foundations required to build reliable, evolvable RESTful APIs with ASP.NET Core. However, a well-designed API only becomes truly valuable when it is tested, observable,\u2026","rel":"","context":"In &quot;.Net Core&quot;","block_context":{"text":".Net Core","link":"https:\/\/oussamasaidi.com\/en\/category\/netcore\/"},"img":{"alt_text":"RESTful API Mastery","src":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/12\/restful-api-mastery-best-practices-with-asp-net-core-2r.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/12\/restful-api-mastery-best-practices-with-asp-net-core-2r.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/12\/restful-api-mastery-best-practices-with-asp-net-core-2r.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/12\/restful-api-mastery-best-practices-with-asp-net-core-2r.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/12\/restful-api-mastery-best-practices-with-asp-net-core-2r.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/12\/restful-api-mastery-best-practices-with-asp-net-core-2r.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1254,"url":"https:\/\/oussamasaidi.com\/en\/how-to-build-an-idempotent-api-with-net-9-ef-core-9-and-polly-v8\/","url_meta":{"origin":931,"position":3},"title":"How to Build an Idempotent API with .NET 9, EF Core 9 and Polly v8","author":"Saidi Oussama","date":"November 6, 2025","format":false,"excerpt":"Introduction Have you ever hit \u201cPay\u201d on a checkout page, the page froze, and you clicked again \u2014 only to be charged twice?That\u2019s exactly what idempotency prevents. In distributed and cloud-native architectures, duplicate requests happen often: client-side retries (mobile poor signal), API Gateway or load-balancer retries, users refreshing a browser\u2026","rel":"","context":"In &quot;.Net Core&quot;","block_context":{"text":".Net Core","link":"https:\/\/oussamasaidi.com\/en\/category\/netcore\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/11\/oussama-saidi-tuto-net-core-rest-api-Idempotent-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/11\/oussama-saidi-tuto-net-core-rest-api-Idempotent-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/11\/oussama-saidi-tuto-net-core-rest-api-Idempotent-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/11\/oussama-saidi-tuto-net-core-rest-api-Idempotent-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/11\/oussama-saidi-tuto-net-core-rest-api-Idempotent-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/11\/oussama-saidi-tuto-net-core-rest-api-Idempotent-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":988,"url":"https:\/\/oussamasaidi.com\/en\/domain-driven-design-clean-architecture-for-dot-net-core\/","url_meta":{"origin":931,"position":4},"title":".Net 8 Domain Driven Design l&rsquo;Architecture Propre et simple","author":"Saidi Oussama","date":"April 4, 2025","format":false,"excerpt":"Introduction Dans le d\u00e9veloppement d'applications .NET Core robustes et maintenables, l'adoption d'une architecture propre (Clean Architecture) combin\u00e9e au Domain Driven Design (DDD) repr\u00e9sente une approche puissante. Ce guide complet vous pr\u00e9sente une impl\u00e9mentation structur\u00e9e, parfaite pour vos projets d'entreprise. Dans cet article Pourquoi Choisir cette Architecture Pour Domain Driven Design\u2026","rel":"","context":"In &quot;.Net Core&quot;","block_context":{"text":".Net Core","link":"https:\/\/oussamasaidi.com\/en\/category\/netcore\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ddd-net-corepng.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ddd-net-corepng.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ddd-net-corepng.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/04\/ddd-net-corepng.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":927,"url":"https:\/\/oussamasaidi.com\/en\/announcing-dotnet-9-whats-new-key-features-you-need-to-know-part-2\/","url_meta":{"origin":931,"position":5},"title":"Les Nouveaut\u00e9s de .NET 9 : Un Aper\u00e7u Complet [Partie 2]","author":"Saidi Oussama","date":"January 6, 2025","format":false,"excerpt":"Si les nouveaut\u00e9s pr\u00e9c\u00e9demment \u00e9voqu\u00e9es sont d\u00e9j\u00e0 impressionnantes, .NET 9 propose \u00e9galement d'autres fonctionnalit\u00e9s tout aussi importantes. Voici un aper\u00e7u des fonctionnalit\u00e9s suppl\u00e9mentaires : 1. Am\u00e9liorations dans les Minimal APIs2. Am\u00e9liorations de l'Interop\u00e9rabilit\u00e93. SignalR Optimis\u00e94. Prise en Charge du Framework MAUI5. Nouveaux Sc\u00e9narios pour les Tests Unitaires6. Gestion Optimis\u00e9e de\u2026","rel":"","context":"In &quot;.Net Core&quot;","block_context":{"text":".Net Core","link":"https:\/\/oussamasaidi.com\/en\/category\/netcore\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/buildanything-dot-net9.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/buildanything-dot-net9.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/buildanything-dot-net9.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/buildanything-dot-net9.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/buildanything-dot-net9.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/oussamasaidi.com\/wp-content\/uploads\/2025\/01\/buildanything-dot-net9.png?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"authors":[{"term_id":286,"user_id":1,"is_guest":0,"slug":"oussama_sa","display_name":"Saidi Oussama","avatar_url":{"url":"https:\/\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/001_001_cv1.jpg","url2x":"https:\/\/oussamasaidi.com\/wp-content\/uploads\/2022\/02\/001_001_cv1.jpg"},"author_category":"1","first_name":"Oussama","last_name":"SAIDI","user_url":"https:\/\/oussamasaidi.com","job_title":"Senior Fullstack .NET Developer","description":"I\u2019m a Senior Fullstack .NET Developer specializing in building scalable, high-performance web applications with .NET, C#, and modern frontend frameworks like React.js. I\u2019m passionate about clean architecture, automated testing, and sharing knowledge through blogs and tutorials."}],"_links":{"self":[{"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/posts\/931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/comments?post=931"}],"version-history":[{"count":7,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/posts\/931\/revisions"}],"predecessor-version":[{"id":949,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/posts\/931\/revisions\/949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/media\/937"}],"wp:attachment":[{"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/media?parent=931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/categories?post=931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/tags?post=931"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/oussamasaidi.com\/en\/wp-json\/wp\/v2\/ppma_author?post=931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}