update to .NET6
continuous-integration/drone/push Build is failing Details

pull/1/head
Marc CHEVALDONNE 2 years ago
parent ae3cedca54
commit a773557095

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>MorpionGame</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>MorpionGame</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>MorpionGame</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>MorpionGame</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,7 @@
marc.chevaldonne.free.fr
Module : MorpionGameWpf.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonn<EFBFBD>
Creation date : 2014-05-07
======================================================================== -->

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>MorpionGame</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>MorpionGame</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,7 @@
marc.chevaldonne.free.fr
Module : MorpionGameWpf.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonn<EFBFBD>
Creation date : 2014-05-07
======================================================================== -->
@ -117,7 +117,7 @@
<ItemGroup>
<ProjectReference Include="..\giMorpionCore\giMorpionCore.csproj">
<Project>{19f22a39-2e54-40c1-8f5d-fb1ae39dd78b}</Project>
<Name>giMorpionCore %281. Morpion\v3_solutionAvecDélégués\giMorpionCore%29</Name>
<Name>giMorpionCore %281. Morpion\v3_solutionAvecD<EFBFBD>l<EFBFBD>gu<EFBFBD>s\giMorpionCore%29</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>MorpionGame</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>MorpionGame</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,7 @@
marc.chevaldonne.free.fr
Module : MorpionGameWpf.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonn<EFBFBD>
Creation date : 2014-05-07
======================================================================== -->

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>MorpionGame</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>MorpionGame</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,7 @@
marc.chevaldonne.free.fr
Module : MorpionGameWpf.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonn<EFBFBD>
Creation date : 2014-05-07
======================================================================== -->
@ -119,7 +119,7 @@
<ItemGroup>
<ProjectReference Include="..\giMorpionCore\giMorpionCore.csproj">
<Project>{38830db6-08c8-4f3d-889e-ee59f6be63d8}</Project>
<Name>giMorpionCore %281. Morpion\v5_solutionAvecPatternStandardDesEvénements\giMorpionCore%29</Name>
<Name>giMorpionCore %281. Morpion\v5_solutionAvecPatternStandardDesEv<EFBFBD>nements\giMorpionCore%29</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>MusiqueEnConsole</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>MusiqueEnConsole</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -1 +1,66 @@
{}
{
"theme.AnnouncementBar.closeButtonAriaLabel": "Fermer",
"theme.BackToTopButton.buttonAriaLabel": "Retour au début de la page",
"theme.CodeBlock.copied": "Copié",
"theme.CodeBlock.copy": "Copier",
"theme.CodeBlock.copyButtonAriaLabel": "Copier le code",
"theme.CodeBlock.wordWrapToggle": "Activer/désactiver le retour à la ligne",
"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": "Plier/Déplier la catégorie '{label}' de la barre latérale",
"theme.ErrorPageContent.title": "Cette page a planté.",
"theme.ErrorPageContent.tryAgain": "Réessayer",
"theme.NotFound.p1": "Nous n'avons pas trouvé ce que vous recherchez.",
"theme.NotFound.p2": "Veuillez contacter le propriétaire du site qui vous a lié à l'URL d'origine et leur faire savoir que leur lien est cassé.",
"theme.NotFound.title": "Page introuvable",
"theme.TOCCollapsible.toggleButtonLabel": "Sur cette page",
"theme.admonition.caution": "attention",
"theme.admonition.danger": "danger",
"theme.admonition.info": "info",
"theme.admonition.note": "remarque",
"theme.admonition.tip": "astuce",
"theme.blog.archive.description": "Archive",
"theme.blog.archive.title": "Archive",
"theme.blog.paginator.navAriaLabel": "Pagination de la liste des articles du blog",
"theme.blog.paginator.newerEntries": "Nouvelles entrées",
"theme.blog.paginator.olderEntries": "Anciennes entrées",
"theme.blog.post.paginator.navAriaLabel": "Pagination des articles du blog",
"theme.blog.post.paginator.newerPost": "Article plus récent",
"theme.blog.post.paginator.olderPost": "Article plus ancien",
"theme.blog.post.plurals": "Un article|{count} articles",
"theme.blog.post.readMore": "Lire plus",
"theme.blog.post.readMoreLabel": "En savoir plus sur {title}",
"theme.blog.post.readingTime.plurals": "Une minute de lecture|{readingTime} minutes de lecture",
"theme.blog.sidebar.navAriaLabel": "Navigation article de blog récent",
"theme.blog.tagTitle": "{nPosts} tagués avec « {tagName} »",
"theme.colorToggle.ariaLabel": "Basculer entre le mode sombre et clair (actuellement {mode})",
"theme.colorToggle.ariaLabel.mode.dark": "mode sombre",
"theme.colorToggle.ariaLabel.mode.light": "mode clair",
"theme.common.editThisPage": "Éditer cette page",
"theme.common.headingLinkTitle": "Lien direct vers le titre",
"theme.common.skipToMainContent": "Aller au contenu principal",
"theme.docs.DocCard.categoryDescription": "{count} éléments",
"theme.docs.breadcrumbs.home": "Page d'accueil",
"theme.docs.breadcrumbs.navAriaLabel": "Fil d'Ariane",
"theme.docs.paginator.navAriaLabel": "Pagination des documents",
"theme.docs.paginator.next": "Suivant",
"theme.docs.paginator.previous": "Précédent",
"theme.docs.sidebar.collapseButtonAriaLabel": "Réduire le menu latéral",
"theme.docs.sidebar.collapseButtonTitle": "Réduire le menu latéral",
"theme.docs.sidebar.expandButtonAriaLabel": "Déplier le menu latéral",
"theme.docs.sidebar.expandButtonTitle": "Déplier le menu latéral",
"theme.docs.tagDocListPageTitle": "{nDocsTagged} avec \"{tagName}\"",
"theme.docs.tagDocListPageTitle.nDocsTagged": "Un document tagué|{count} documents tagués",
"theme.docs.versionBadge.label": "Version: {versionLabel}",
"theme.docs.versions.latestVersionLinkLabel": "dernière version",
"theme.docs.versions.latestVersionSuggestionLabel": "Pour une documentation à jour, consultez la {latestVersionLink} ({versionLabel}).",
"theme.docs.versions.unmaintainedVersionLabel": "Ceci est la documentation de {siteTitle} {versionLabel}, qui n'est plus activement maintenue.",
"theme.docs.versions.unreleasedVersionLabel": "Ceci est la documentation de la prochaine version {versionLabel} de {siteTitle}.",
"theme.lastUpdated.atDate": " le {date}",
"theme.lastUpdated.byUser": " par {user}",
"theme.lastUpdated.lastUpdatedAtBy": "Dernière mise à jour{atDate}{byUser}",
"theme.navbar.mobileLanguageDropdown.label": "Langues",
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": "← Retour au menu principal",
"theme.navbar.mobileVersionsDropdown.label": "Versions",
"theme.tags.tagsListLabel": "Tags :",
"theme.tags.tagsPageLink": "Voir tous les tags",
"theme.tags.tagsPageTitle": "Tags"
}

@ -3,7 +3,7 @@
"items": [
{
"title": "This Page is alive!",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/first-blog-post"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/first-blog-post"
}
]
}

@ -1,19 +1,19 @@
{
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/first-blog-post",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/first-blog-post",
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/blog/2022-09-06-first-blog-post.md",
"source": "@site/blog/2022-09-06-first-blog-post.md",
"title": "This Page is alive!",
"description": "Here is the beginning of this page, giving you access to information about C# .NET, Entity Framework, xUnit, etc.",
"date": "2022-09-06T00:00:00.000Z",
"formattedDate": "September 6, 2022",
"formattedDate": "6 septembre 2022",
"tags": [
{
"label": "welcome",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome"
},
{
"label": "docusaurus",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus"
}
],
"readingTime": 0.105,

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md",
"sourceDirName": "Entity-Framework/Fundamentals",
"slug": "/Entity-Framework/Fundamentals/ConnectionStrings",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Fundamentals/ConnectionStrings.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "1. Fundamentals",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals"
},
"next": {
"title": "1.2. Testing In Memory",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md",
"sourceDirName": "Entity-Framework/Fundamentals",
"slug": "/Entity-Framework/Fundamentals/TestingInMemory",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Fundamentals/TestingInMemory.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "1.1. Connection Strings",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings"
},
"next": {
"title": "2. Model",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/intro.md",
"sourceDirName": "Entity-Framework",
"slug": "/Entity-Framework/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/intro.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "Entity Framework Core",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core"
},
"next": {
"title": "1. Fundamentals",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.7. Value Generation",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration"
},
"next": {
"title": "2.9. Data Seeding",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/DataSeeding.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/DataSeeding",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/DataSeeding.md",
"tags": [],
@ -20,6 +20,6 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.8. Data Seeding Before Entity Framework 2.1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_dataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.1. Naming conventions (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions"
},
"next": {
"title": "2.3. Fluent API (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_FluentAPI.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.2. Data Annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
},
"next": {
"title": "2.4. Keys with conventions (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_KeysConvention",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_KeysConvention.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.3. Fluent API (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI"
},
"next": {
"title": "2.5. Keys with data annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.4. Keys with conventions (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention"
},
"next": {
"title": "2.6. Keys with Fluent API",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.5. Keys with data annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
},
"next": {
"title": "2.7. Value Generation",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_namingConventions",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_namingConventions.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2. Model",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model"
},
"next": {
"title": "2.2. Data Annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/Entity-Framework/Model/ValueGeneration.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/ValueGeneration",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/ValueGeneration.md",
"tags": [],
@ -20,10 +20,10 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.6. Keys with Fluent API",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
},
"next": {
"title": "2.8. Data Seeding Before Entity Framework 2.1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
}
}

@ -6,7 +6,7 @@
"source": "@site/docs/intro.md",
"sourceDirName": ".",
"slug": "/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/intro.md",
"tags": [],
@ -18,6 +18,6 @@
"sidebar": "tutorialSidebar",
"next": {
"title": "Entity Framework Core",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core"
}
}

@ -12,7 +12,7 @@
{
"type": "link",
"label": "mchSamples C# .NET",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro",
"docId": "intro"
},
{
@ -24,7 +24,7 @@
{
"type": "link",
"label": "Introduction",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro",
"docId": "Entity-Framework/intro"
},
{
@ -36,17 +36,17 @@
{
"type": "link",
"label": "1.1. Connection Strings",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"docId": "Entity-Framework/Fundamentals/ConnectionStrings"
},
{
"type": "link",
"label": "1.2. Testing In Memory",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory",
"docId": "Entity-Framework/Fundamentals/TestingInMemory"
}
],
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals"
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals"
},
{
"type": "category",
@ -57,62 +57,62 @@
{
"type": "link",
"label": "2.1. Naming conventions (Entity Framework Code First)",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions",
"docId": "Entity-Framework/Model/EF_CF_namingConventions"
},
{
"type": "link",
"label": "2.2. Data Annotations (Entity Framework Code First)",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"docId": "Entity-Framework/Model/EF_CF_dataAnnotations"
},
{
"type": "link",
"label": "2.3. Fluent API (Entity Framework Code First)",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"docId": "Entity-Framework/Model/EF_CF_FluentAPI"
},
{
"type": "link",
"label": "2.4. Keys with conventions (Entity Framework Code First)",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"docId": "Entity-Framework/Model/EF_CF_KeysConvention"
},
{
"type": "link",
"label": "2.5. Keys with data annotations (Entity Framework Code First)",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"docId": "Entity-Framework/Model/EF_CF_KeysDataAnnotations"
},
{
"type": "link",
"label": "2.6. Keys with Fluent API",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"docId": "Entity-Framework/Model/EF_CF_Keys_FluentAPI"
},
{
"type": "link",
"label": "2.7. Value Generation",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration",
"docId": "Entity-Framework/Model/ValueGeneration"
},
{
"type": "link",
"label": "2.8. Data Seeding Before Entity Framework 2.1",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"docId": "Entity-Framework/Model/DataSeedingBeforeEF2_1"
},
{
"type": "link",
"label": "2.9. Data Seeding",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding",
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding",
"docId": "Entity-Framework/Model/DataSeeding"
}
],
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model"
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model"
}
],
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core"
"href": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core"
}
]
},

@ -1,6 +1,6 @@
{
"type": "mdx",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/markdown-page",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/markdown-page",
"source": "@site/src/pages/markdown-page.md",
"title": "Markdown page example",
"description": "You don't need React to write simple standalone pages.",

@ -9,15 +9,15 @@
"badge": false,
"noIndex": false,
"className": "docs-version-current",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs",
"tagsPath": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/tags",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs",
"tagsPath": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/tags",
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs",
"editUrlLocalized": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/i18n/en/docusaurus-plugin-content-docs/current",
"editUrlLocalized": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/i18n/fr/docusaurus-plugin-content-docs/current",
"isLast": true,
"routePriority": -1,
"sidebarFilePath": "/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/sidebars.js",
"contentPath": "/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/docs",
"contentPathLocalized": "/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/i18n/en/docusaurus-plugin-content-docs/current",
"contentPathLocalized": "/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/i18n/fr/docusaurus-plugin-content-docs/current",
"docs": [
{
"unversionedId": "Entity-Framework/Fundamentals/ConnectionStrings",
@ -27,7 +27,7 @@
"source": "@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md",
"sourceDirName": "Entity-Framework/Fundamentals",
"slug": "/Entity-Framework/Fundamentals/ConnectionStrings",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Fundamentals/ConnectionStrings.md",
"tags": [],
@ -41,11 +41,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "1. Fundamentals",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals"
},
"next": {
"title": "1.2. Testing In Memory",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory"
}
},
{
@ -56,7 +56,7 @@
"source": "@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md",
"sourceDirName": "Entity-Framework/Fundamentals",
"slug": "/Entity-Framework/Fundamentals/TestingInMemory",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Fundamentals/TestingInMemory.md",
"tags": [],
@ -70,11 +70,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "1.1. Connection Strings",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings"
},
"next": {
"title": "2. Model",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model"
}
},
{
@ -85,7 +85,7 @@
"source": "@site/docs/Entity-Framework/intro.md",
"sourceDirName": "Entity-Framework",
"slug": "/Entity-Framework/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/intro.md",
"tags": [],
@ -99,11 +99,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "Entity Framework Core",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core"
},
"next": {
"title": "1. Fundamentals",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals"
}
},
{
@ -114,7 +114,7 @@
"source": "@site/docs/Entity-Framework/Model/DataSeeding.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/DataSeeding",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/DataSeeding.md",
"tags": [],
@ -128,7 +128,7 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.8. Data Seeding Before Entity Framework 2.1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
}
},
{
@ -139,7 +139,7 @@
"source": "@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md",
"tags": [],
@ -153,11 +153,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.7. Value Generation",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration"
},
"next": {
"title": "2.9. Data Seeding",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding"
}
},
{
@ -168,7 +168,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_dataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md",
"tags": [],
@ -182,11 +182,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.1. Naming conventions (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions"
},
"next": {
"title": "2.3. Fluent API (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI"
}
},
{
@ -197,7 +197,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_FluentAPI.md",
"tags": [],
@ -211,11 +211,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.2. Data Annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
},
"next": {
"title": "2.4. Keys with conventions (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention"
}
},
{
@ -226,7 +226,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md",
"tags": [],
@ -240,11 +240,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.5. Keys with data annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
},
"next": {
"title": "2.7. Value Generation",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration"
}
},
{
@ -255,7 +255,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_KeysConvention",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_KeysConvention.md",
"tags": [],
@ -269,11 +269,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.3. Fluent API (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI"
},
"next": {
"title": "2.5. Keys with data annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations"
}
},
{
@ -284,7 +284,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md",
"tags": [],
@ -298,11 +298,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.4. Keys with conventions (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention"
},
"next": {
"title": "2.6. Keys with Fluent API",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
}
},
{
@ -313,7 +313,7 @@
"source": "@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/EF_CF_namingConventions",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/EF_CF_namingConventions.md",
"tags": [],
@ -327,11 +327,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2. Model",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model"
},
"next": {
"title": "2.2. Data Annotations (Entity Framework Code First)",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations"
}
},
{
@ -342,7 +342,7 @@
"source": "@site/docs/Entity-Framework/Model/ValueGeneration.md",
"sourceDirName": "Entity-Framework/Model",
"slug": "/Entity-Framework/Model/ValueGeneration",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/Entity-Framework/Model/ValueGeneration.md",
"tags": [],
@ -356,11 +356,11 @@
"sidebar": "tutorialSidebar",
"previous": {
"title": "2.6. Keys with Fluent API",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI"
},
"next": {
"title": "2.8. Data Seeding Before Entity Framework 2.1",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1"
}
},
{
@ -371,7 +371,7 @@
"source": "@site/docs/intro.md",
"sourceDirName": ".",
"slug": "/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro",
"draft": false,
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/intro.md",
"tags": [],
@ -383,7 +383,7 @@
"sidebar": "tutorialSidebar",
"next": {
"title": "Entity Framework Core",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core"
}
}
],
@ -426,7 +426,7 @@
"type": "generated-index",
"description": "Dans cette partie, je donnerai quelques notions pour se connecter à une base à l'aide de chaîne de connection (connection strings), comment utiliser des providers de tests.... Il s'agira en conséquence d'exemples simples manquants d'explications sur certains points, car ils seront présentés plus tard.",
"slug": "/category/1-fundamentals",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals"
}
},
{
@ -485,7 +485,7 @@
"type": "generated-index",
"description": "Ce chapitre s'attardera sur le lien entre le modèle et la base de données. En effet, avec EF, l'accès aux données se fait via le modèle, c'est-à-dire l'ensemble de vos classes (qui seront reliées à des tables créées plus ou moins automatiquement) ainsi qu'un contexte (DbContext) qui représentera une session de connexion avec votre (ou vos) base(s) de données. Je présenterai en conséquence tout d'abord comment écrire des classes pour votre modèle, puis comment écrire les différentes relations classiques (aggrégation, one to one, one to many, many to many, mais aussi les dictionnaires), comment gérer les héritages entre classes du modèle dans la base de données, etc.",
"slug": "/category/2-model",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model"
}
}
],
@ -493,7 +493,7 @@
"type": "generated-index",
"description": "5 minutes to learn the most important Docusaurus concepts.",
"slug": "/category/entity-framework-core",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core"
}
}
]
@ -509,21 +509,21 @@
{
"id": "first-blog-post",
"metadata": {
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/first-blog-post",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/first-blog-post",
"editUrl": "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/blog/2022-09-06-first-blog-post.md",
"source": "@site/blog/2022-09-06-first-blog-post.md",
"title": "This Page is alive!",
"description": "Here is the beginning of this page, giving you access to information about C# .NET, Entity Framework, xUnit, etc.",
"date": "2022-09-06T00:00:00.000Z",
"formattedDate": "September 6, 2022",
"formattedDate": "6 septembre 2022",
"tags": [
{
"label": "welcome",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome"
},
{
"label": "docusaurus",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus"
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus"
}
],
"readingTime": 0.105,
@ -558,7 +558,7 @@
"first-blog-post"
],
"metadata": {
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog",
"page": 1,
"postsPerPage": 10,
"totalPages": 1,
@ -569,19 +569,19 @@
}
],
"blogTags": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome": {
"label": "welcome",
"items": [
"first-blog-post"
],
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome",
"pages": [
{
"items": [
"first-blog-post"
],
"metadata": {
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome",
"page": 1,
"postsPerPage": 10,
"totalPages": 1,
@ -592,19 +592,19 @@
}
]
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus": {
"label": "docusaurus",
"items": [
"first-blog-post"
],
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus",
"pages": [
{
"items": [
"first-blog-post"
],
"metadata": {
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus",
"page": 1,
"postsPerPage": 10,
"totalPages": 1,
@ -616,19 +616,19 @@
]
}
},
"blogTagsListPath": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags"
"blogTagsListPath": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags"
}
},
"docusaurus-plugin-content-pages": {
"default": [
{
"type": "jsx",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/",
"source": "@site/src/pages/index.js"
},
{
"type": "mdx",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/markdown-page",
"permalink": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/markdown-page",
"source": "@site/src/pages/markdown-page.md",
"title": "Markdown page example",
"description": "You don't need React to write simple standalone pages.",

@ -7,7 +7,7 @@ export default {
"title": "C# .NET samples",
"tagline": "Best samples ever",
"url": "https://codefirst.iut.uca.fr",
"baseUrl": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/",
"baseUrl": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/",
"onBrokenLinks": "throw",
"onBrokenMarkdownLinks": "warn",
"favicon": "img/favicon.ico",

@ -1,93 +1,93 @@
{
"docusaurus-plugin-content-docs": {
"default": {
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs",
"versions": [
{
"name": "current",
"label": "Next",
"isLast": true,
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs",
"mainDocId": "intro",
"docs": [
{
"id": "Entity-Framework/Fundamentals/ConnectionStrings",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Fundamentals/TestingInMemory",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/intro",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/DataSeeding",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/DataSeedingBeforeEF2_1",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/EF_CF_dataAnnotations",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/EF_CF_FluentAPI",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/EF_CF_KeysConvention",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/EF_CF_namingConventions",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions",
"sidebar": "tutorialSidebar"
},
{
"id": "Entity-Framework/Model/ValueGeneration",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration",
"sidebar": "tutorialSidebar"
},
{
"id": "intro",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro",
"sidebar": "tutorialSidebar"
},
{
"id": "/category/entity-framework-core",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core",
"sidebar": "tutorialSidebar"
},
{
"id": "/category/1-fundamentals",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals",
"sidebar": "tutorialSidebar"
},
{
"id": "/category/2-model",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model",
"sidebar": "tutorialSidebar"
}
],
@ -95,7 +95,7 @@
"sidebars": {
"tutorialSidebar": {
"link": {
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro",
"path": "/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro",
"label": "intro"
}
}

@ -15,37 +15,37 @@ export default {
'__comp---theme-doc-item-178-a40': [() => import(/* webpackChunkName: '__comp---theme-doc-item-178-a40' */ '@theme/DocItem'), '@theme/DocItem', require.resolveWeak('@theme/DocItem')],
'__comp---theme-doc-page-1-be-9be': [() => import(/* webpackChunkName: '__comp---theme-doc-page-1-be-9be' */ '@theme/DocPage'), '@theme/DocPage', require.resolveWeak('@theme/DocPage')],
'__comp---theme-mdx-page-1-f-3-b90': [() => import(/* webpackChunkName: '__comp---theme-mdx-page-1-f-3-b90' */ '@theme/MDXPage'), '@theme/MDXPage', require.resolveWeak('@theme/MDXPage')],
'allContent---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debug-content-246-33c': [() => import(/* webpackChunkName: 'allContent---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debug-content-246-33c' */ '~debug/default/docusaurus-debug-all-content-673.json'), '~debug/default/docusaurus-debug-all-content-673.json', require.resolveWeak('~debug/default/docusaurus-debug-all-content-673.json')],
'archive---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-archivea-5-b-f21': [() => import(/* webpackChunkName: 'archive---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-archivea-5-b-f21' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-archive-123.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-archive-123.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-archive-123.json')],
'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-1-fundamentalsc-1-a-a56': [() => import(/* webpackChunkName: 'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-1-fundamentalsc-1-a-a56' */ '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-1-fundamentals-285.json'), '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-1-fundamentals-285.json', require.resolveWeak('~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-1-fundamentals-285.json')],
'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-2-model-82-e-ada': [() => import(/* webpackChunkName: 'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-2-model-82-e-ada' */ '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-2-model-fd7.json'), '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-2-model-fd7.json', require.resolveWeak('~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-2-model-fd7.json')],
'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-entity-framework-core-8-e-1-b0d': [() => import(/* webpackChunkName: 'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-entity-framework-core-8-e-1-b0d' */ '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-entity-framework-core-c1b.json'), '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-entity-framework-core-c1b.json', require.resolveWeak('~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-coredocs-tutorialsidebar-category-entity-framework-core-c1b.json')],
'config---documentation-mch-samples-net-docusaurus-mchsamples-net-core-5-e-9-c93': [() => import(/* webpackChunkName: 'config---documentation-mch-samples-net-docusaurus-mchsamples-net-core-5-e-9-c93' */ '@generated/docusaurus.config'), '@generated/docusaurus.config', require.resolveWeak('@generated/docusaurus.config')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-17-d-15d': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-17-d-15d' */ '@site/blog/2022-09-06-first-blog-post.md?truncated=true'), '@site/blog/2022-09-06-first-blog-post.md?truncated=true', require.resolveWeak('@site/blog/2022-09-06-first-blog-post.md?truncated=true')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-first-blog-post-47-a-5e0': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-first-blog-post-47-a-5e0' */ '@site/blog/2022-09-06-first-blog-post.md'), '@site/blog/2022-09-06-first-blog-post.md', require.resolveWeak('@site/blog/2022-09-06-first-blog-post.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-fundamentals-connection-strings-723-aa9': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-fundamentals-connection-strings-723-aa9' */ '@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md'), '@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md', require.resolveWeak('@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-fundamentals-testing-in-memory-614-b2e': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-fundamentals-testing-in-memory-614-b2e' */ '@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md'), '@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md', require.resolveWeak('@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-intro-553-232': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-intro-553-232' */ '@site/docs/Entity-Framework/intro.md'), '@site/docs/Entity-Framework/intro.md', require.resolveWeak('@site/docs/Entity-Framework/intro.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-data-seeding-before-ef-2-171-b-54f': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-data-seeding-before-ef-2-171-b-54f' */ '@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md'), '@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md', require.resolveWeak('@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-data-seedingf-1-e-dfa': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-data-seedingf-1-e-dfa' */ '@site/docs/Entity-Framework/Model/DataSeeding.md'), '@site/docs/Entity-Framework/Model/DataSeeding.md', require.resolveWeak('@site/docs/Entity-Framework/Model/DataSeeding.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-data-annotations-1-a-4-d1f': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-data-annotations-1-a-4-d1f' */ '@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md'), '@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-fluent-api-5-ee-ed5': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-fluent-api-5-ee-ed5' */ '@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md'), '@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-conventionc-32-28d': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-conventionc-32-28d' */ '@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md'), '@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-data-annotations-821-d3f': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-data-annotations-821-d3f' */ '@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md'), '@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-fluent-api-7-b-6-a82': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-fluent-api-7-b-6-a82' */ '@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md'), '@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-naming-conventionsb-56-aef': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-naming-conventionsb-56-aef' */ '@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md'), '@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-value-generation-6-af-21a': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-value-generation-6-af-21a' */ '@site/docs/Entity-Framework/Model/ValueGeneration.md'), '@site/docs/Entity-Framework/Model/ValueGeneration.md', require.resolveWeak('@site/docs/Entity-Framework/Model/ValueGeneration.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-intro-0-e-3-4af': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-intro-0-e-3-4af' */ '@site/docs/intro.md'), '@site/docs/intro.md', require.resolveWeak('@site/docs/intro.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-page-393-a13': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-page-393-a13' */ '@site/src/pages/markdown-page.md'), '@site/src/pages/markdown-page.md', require.resolveWeak('@site/src/pages/markdown-page.md')],
'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurusd-58-591': [() => import(/* webpackChunkName: 'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurusd-58-591' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-3cf-list.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-3cf-list.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-3cf-list.json')],
'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-47-f-c8e': [() => import(/* webpackChunkName: 'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-47-f-c8e' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-fbc-list.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-fbc-list.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-fbc-list.json')],
'metadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogec-0-3e2': [() => import(/* webpackChunkName: 'metadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogec-0-3e2' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-8d7.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-8d7.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-8d7.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docsd-1-c-d2b': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docsd-1-c-d2b' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-pagee-05-e1f': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-pagee-05-e1f' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json')],
'sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595': [() => import(/* webpackChunkName: 'sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595' */ '~blog/default/blog-post-list-prop-default.json'), '~blog/default/blog-post-list-prop-default.json', require.resolveWeak('~blog/default/blog-post-list-prop-default.json')],
'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-888-781': [() => import(/* webpackChunkName: 'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-888-781' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-3cf.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-3cf.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-3cf.json')],
'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcomeb-2-a-a00': [() => import(/* webpackChunkName: 'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcomeb-2-a-a00' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-fbc.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-fbc.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-fbc.json')],
'tags---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-5-e-4-5f5': [() => import(/* webpackChunkName: 'tags---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-5-e-4-5f5' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-tags-0eb.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-tags-0eb.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-tags-0eb.json')],
'versionMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-935-0e7': [() => import(/* webpackChunkName: 'versionMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-935-0e7' */ '~docs/default/version-current-metadata-prop-751.json'), '~docs/default/version-current-metadata-prop-751.json', require.resolveWeak('~docs/default/version-current-metadata-prop-751.json')],};
'allContent---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debug-content-246-e3b': [() => import(/* webpackChunkName: 'allContent---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debug-content-246-e3b' */ '~debug/default/docusaurus-debug-all-content-673.json'), '~debug/default/docusaurus-debug-all-content-673.json', require.resolveWeak('~debug/default/docusaurus-debug-all-content-673.json')],
'archive---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-archive-455-c22': [() => import(/* webpackChunkName: 'archive---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-archive-455-c22' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-archive-b17.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-archive-b17.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-archive-b17.json')],
'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-1-fundamentalsfa-3-3db': [() => import(/* webpackChunkName: 'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-1-fundamentalsfa-3-3db' */ '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-1-fundamentals-21f.json'), '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-1-fundamentals-21f.json', require.resolveWeak('~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-1-fundamentals-21f.json')],
'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-2-modeldbb-4f2': [() => import(/* webpackChunkName: 'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-2-modeldbb-4f2' */ '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-2-model-c16.json'), '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-2-model-c16.json', require.resolveWeak('~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-2-model-c16.json')],
'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-entity-framework-coree-65-e4a': [() => import(/* webpackChunkName: 'categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-entity-framework-coree-65-e4a' */ '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-entity-framework-core-cc9.json'), '~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-entity-framework-core-cc9.json', require.resolveWeak('~docs/default/category-documentationmchsamples-netdocusaurusmchsamples-net-corefrdocs-tutorialsidebar-category-entity-framework-core-cc9.json')],
'config---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-5-e-9-9f0': [() => import(/* webpackChunkName: 'config---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-5-e-9-9f0' */ '@generated/docusaurus.config'), '@generated/docusaurus.config', require.resolveWeak('@generated/docusaurus.config')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-17-d-017': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-17-d-017' */ '@site/blog/2022-09-06-first-blog-post.md?truncated=true'), '@site/blog/2022-09-06-first-blog-post.md?truncated=true', require.resolveWeak('@site/blog/2022-09-06-first-blog-post.md?truncated=true')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-first-blog-post-47-a-660': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-first-blog-post-47-a-660' */ '@site/blog/2022-09-06-first-blog-post.md'), '@site/blog/2022-09-06-first-blog-post.md', require.resolveWeak('@site/blog/2022-09-06-first-blog-post.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-fundamentals-connection-strings-723-a67': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-fundamentals-connection-strings-723-a67' */ '@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md'), '@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md', require.resolveWeak('@site/docs/Entity-Framework/Fundamentals/ConnectionStrings.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-fundamentals-testing-in-memory-614-a3f': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-fundamentals-testing-in-memory-614-a3f' */ '@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md'), '@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md', require.resolveWeak('@site/docs/Entity-Framework/Fundamentals/TestingInMemory.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-intro-553-141': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-intro-553-141' */ '@site/docs/Entity-Framework/intro.md'), '@site/docs/Entity-Framework/intro.md', require.resolveWeak('@site/docs/Entity-Framework/intro.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-data-seeding-before-ef-2-171-b-807': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-data-seeding-before-ef-2-171-b-807' */ '@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md'), '@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md', require.resolveWeak('@site/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-data-seedingf-1-e-ca2': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-data-seedingf-1-e-ca2' */ '@site/docs/Entity-Framework/Model/DataSeeding.md'), '@site/docs/Entity-Framework/Model/DataSeeding.md', require.resolveWeak('@site/docs/Entity-Framework/Model/DataSeeding.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-data-annotations-1-a-4-5f3': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-data-annotations-1-a-4-5f3' */ '@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md'), '@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_dataAnnotations.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-fluent-api-5-ee-b65': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-fluent-api-5-ee-b65' */ '@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md'), '@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_FluentAPI.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-conventionc-32-7e4': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-conventionc-32-7e4' */ '@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md'), '@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_KeysConvention.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-data-annotations-821-cbb': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-data-annotations-821-cbb' */ '@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md'), '@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-fluent-api-7-b-6-c9c': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-fluent-api-7-b-6-c9c' */ '@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md'), '@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-naming-conventionsb-56-219': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-naming-conventionsb-56-219' */ '@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md'), '@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md', require.resolveWeak('@site/docs/Entity-Framework/Model/EF_CF_namingConventions.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-value-generation-6-af-b52': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-value-generation-6-af-b52' */ '@site/docs/Entity-Framework/Model/ValueGeneration.md'), '@site/docs/Entity-Framework/Model/ValueGeneration.md', require.resolveWeak('@site/docs/Entity-Framework/Model/ValueGeneration.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-intro-0-e-3-e14': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-intro-0-e-3-e14' */ '@site/docs/intro.md'), '@site/docs/intro.md', require.resolveWeak('@site/docs/intro.md')],
'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-page-393-e94': [() => import(/* webpackChunkName: 'content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-page-393-e94' */ '@site/src/pages/markdown-page.md'), '@site/src/pages/markdown-page.md', require.resolveWeak('@site/src/pages/markdown-page.md')],
'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-6-cd-9ca': [() => import(/* webpackChunkName: 'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-6-cd-9ca' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-cea-list.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-cea-list.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-cea-list.json')],
'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcomecf-9-b4c': [() => import(/* webpackChunkName: 'listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcomecf-9-b4c' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcome-3e7-list.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcome-3e7-list.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcome-3e7-list.json')],
'metadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-47-b-fb3': [() => import(/* webpackChunkName: 'metadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-47-b-fb3' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-f72.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-f72.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-f72.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docsd-1-c-cd8': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docsd-1-c-cd8' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json')],
'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-pagee-05-453': [() => import(/* webpackChunkName: 'plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-pagee-05-453' */ '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json'), '/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json', require.resolveWeak('/Users/marcchevaldonne/Documents/temp/demos2022/mchsamples-.net-core/Documentation/docusaurus/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json')],
'sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a': [() => import(/* webpackChunkName: 'sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a' */ '~blog/default/blog-post-list-prop-default.json'), '~blog/default/blog-post-list-prop-default.json', require.resolveWeak('~blog/default/blog-post-list-prop-default.json')],
'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-744-4ba': [() => import(/* webpackChunkName: 'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-744-4ba' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-cea.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-cea.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-cea.json')],
'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcomeed-1-9d7': [() => import(/* webpackChunkName: 'tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcomeed-1-9d7' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcome-3e7.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcome-3e7.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcome-3e7.json')],
'tags---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-83-f-46e': [() => import(/* webpackChunkName: 'tags---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-83-f-46e' */ '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-tags-bf9.json'), '~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-tags-bf9.json', require.resolveWeak('~blog/default/documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-tags-bf9.json')],
'versionMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-935-a8e': [() => import(/* webpackChunkName: 'versionMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-935-a8e' */ '~docs/default/version-current-metadata-prop-751.json'), '~docs/default/version-current-metadata-prop-751.json', require.resolveWeak('~docs/default/version-current-metadata-prop-751.json')],};

@ -3,180 +3,180 @@ import ComponentCreator from '@docusaurus/ComponentCreator';
export default [
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug', '253'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug', '6d3'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/config',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/config', '85f'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/config',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/config', 'bef'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/content',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/content', 'ae4'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/content',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/content', 'f12'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/globalData',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/globalData', '0fd'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/globalData',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/globalData', '7d9'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/metadata',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/metadata', '00a'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/metadata',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/metadata', 'c9b'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/registry',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/registry', 'c92'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/registry',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/registry', '2ba'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/routes',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/routes', 'd2f'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/routes',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/routes', '3e4'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog', 'b24'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog', '4c7'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/archive',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/archive', 'a3f'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/archive',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/archive', 'aa3'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/first-blog-post',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/first-blog-post', '52c'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/first-blog-post',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/first-blog-post', '34c'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags', '9e2'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags', 'a5e'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus', 'e93'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus', '46a'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome', '8f9'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome', '972'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/markdown-page',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/markdown-page', 'ec8'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/markdown-page',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/markdown-page', '137'),
exact: true
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs', '1ce'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs', 'a8f'),
routes: [
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals', 'e1c'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals', 'b65'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model', '2a7'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model', '178'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core', '300'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core', '7e9'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings', '870'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings', '359'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory', '240'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory', '6d2'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro', '700'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro', '285'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding', '5dc'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding', '456'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1', '362'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1', '548'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations', '416'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations', '742'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI', '4c2'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI', 'e82'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI', '5b5'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI', 'f02'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention', '8dc'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention', 'b92'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations', '1cd'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations', '2d1'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions', 'e42'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions', '70c'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration', 'e72'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration', '87c'),
exact: true,
sidebar: "tutorialSidebar"
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro', '406'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro', 'cb8'),
exact: true,
sidebar: "tutorialSidebar"
}
]
},
{
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/', '39b'),
path: '/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/',
component: ComponentCreator('/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/', '5a2'),
exact: true
},
{

@ -1,194 +1,194 @@
{
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug-253": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug-6d3": {
"__comp": "__comp---theme-debug-config-23-a-2ff",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
}
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/config-85f": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/config-bef": {
"__comp": "__comp---theme-debug-config-23-a-2ff",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
}
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/content-ae4": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/content-f12": {
"__comp": "__comp---theme-debug-contentba-8-ce7",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
},
"allContent": "allContent---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debug-content-246-33c"
"allContent": "allContent---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debug-content-246-e3b"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/globalData-0fd": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/globalData-7d9": {
"__comp": "__comp---theme-debug-global-dataede-0fa",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
}
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/metadata-00a": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/metadata-c9b": {
"__comp": "__comp---theme-debug-site-metadata-68-e-3d4",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
}
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/registry-c92": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/registry-2ba": {
"__comp": "__comp---theme-debug-registry-679-501",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
}
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/__docusaurus/debug/routes-d2f": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/__docusaurus/debug/routes-3e4": {
"__comp": "__comp---theme-debug-routes-946-699",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docusaurus-debugdff-b54"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docusaurus-debugdff-665"
}
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog-b24": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog-4c7": {
"__comp": "__comp---theme-blog-list-pagea-6-a-7ba",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4"
},
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595",
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a",
"items": [
{
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-17-d-15d"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-17-d-017"
}
],
"metadata": "metadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogec-0-3e2"
"metadata": "metadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-47-b-fb3"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/archive-a3f": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/archive-aa3": {
"__comp": "__comp---theme-blog-archive-page-9-e-4-1d8",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4"
},
"archive": "archive---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-archivea-5-b-f21"
"archive": "archive---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-archive-455-c22"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/first-blog-post-52c": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/first-blog-post-34c": {
"__comp": "__comp---theme-blog-post-pageccc-cab",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4"
},
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-first-blog-post-47-a-5e0"
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-first-blog-post-47-a-660"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags-9e2": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags-a5e": {
"__comp": "__comp---theme-blog-tags-list-page-01-a-d0b",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4"
},
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595",
"tags": "tags---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-5-e-4-5f5"
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a",
"tags": "tags---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-83-f-46e"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/docusaurus-e93": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/docusaurus-46a": {
"__comp": "__comp---theme-blog-tags-posts-page-687-b6c",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4"
},
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595",
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a",
"items": [
{
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-17-d-15d"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-17-d-017"
}
],
"tag": "tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurus-888-781",
"listMetadata": "listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-docusaurusd-58-591"
"tag": "tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-744-4ba",
"listMetadata": "listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-docusaurus-6-cd-9ca"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/blog/tags/welcome-8f9": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/blog/tags/welcome-972": {
"__comp": "__comp---theme-blog-tags-posts-page-687-b6c",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blogf-91-577"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blogf-91-7f4"
},
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-814-595",
"sidebar": "sidebar---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-814-59a",
"items": [
{
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-17-d-15d"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-17-d-017"
}
],
"tag": "tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcomeb-2-a-a00",
"listMetadata": "listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-blog-tags-welcome-47-f-c8e"
"tag": "tag---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcomeed-1-9d7",
"listMetadata": "listMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-blog-tags-welcomecf-9-b4c"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/markdown-page-ec8": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/markdown-page-137": {
"__comp": "__comp---theme-mdx-page-1-f-3-b90",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-pagee-05-e1f"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-pagee-05-453"
},
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-page-393-a13"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-page-393-e94"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs-1ce": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs-a8f": {
"__comp": "__comp---theme-doc-page-1-be-9be",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docsd-1-c-d2b"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docsd-1-c-cd8"
},
"versionMetadata": "versionMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-935-0e7"
"versionMetadata": "versionMetadata---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-935-a8e"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/1-fundamentals-e1c": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/1-fundamentals-b65": {
"__comp": "__comp---theme-doc-category-generated-index-page-14-e-640",
"categoryGeneratedIndex": "categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-1-fundamentalsc-1-a-a56"
"categoryGeneratedIndex": "categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-1-fundamentalsfa-3-3db"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/2-model-2a7": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/2-model-178": {
"__comp": "__comp---theme-doc-category-generated-index-page-14-e-640",
"categoryGeneratedIndex": "categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-2-model-82-e-ada"
"categoryGeneratedIndex": "categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-2-modeldbb-4f2"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/category/entity-framework-core-300": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/category/entity-framework-core-7e9": {
"__comp": "__comp---theme-doc-category-generated-index-page-14-e-640",
"categoryGeneratedIndex": "categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-category-entity-framework-core-8-e-1-b0d"
"categoryGeneratedIndex": "categoryGeneratedIndex---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-category-entity-framework-coree-65-e4a"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/ConnectionStrings-870": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/ConnectionStrings-359": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-fundamentals-connection-strings-723-aa9"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-fundamentals-connection-strings-723-a67"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Fundamentals/TestingInMemory-240": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Fundamentals/TestingInMemory-6d2": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-fundamentals-testing-in-memory-614-b2e"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-fundamentals-testing-in-memory-614-a3f"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/intro-700": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/intro-285": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-intro-553-232"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-intro-553-141"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeeding-5dc": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeeding-456": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-data-seedingf-1-e-dfa"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-data-seedingf-1-e-ca2"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1-362": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/DataSeedingBeforeEF2_1-548": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-data-seeding-before-ef-2-171-b-54f"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-data-seeding-before-ef-2-171-b-807"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_dataAnnotations-416": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_dataAnnotations-742": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-data-annotations-1-a-4-d1f"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-data-annotations-1-a-4-5f3"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_FluentAPI-4c2": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_FluentAPI-e82": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-fluent-api-5-ee-ed5"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-fluent-api-5-ee-b65"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI-5b5": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_Keys_FluentAPI-f02": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-fluent-api-7-b-6-a82"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-fluent-api-7-b-6-c9c"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysConvention-8dc": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysConvention-b92": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-conventionc-32-28d"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-conventionc-32-7e4"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations-1cd": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_KeysDataAnnotations-2d1": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-keys-data-annotations-821-d3f"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-keys-data-annotations-821-cbb"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/EF_CF_namingConventions-e42": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/EF_CF_namingConventions-70c": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-ef-cf-naming-conventionsb-56-aef"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-ef-cf-naming-conventionsb-56-219"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/Entity-Framework/Model/ValueGeneration-e72": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/Entity-Framework/Model/ValueGeneration-87c": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-entity-framework-model-value-generation-6-af-21a"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-entity-framework-model-value-generation-6-af-b52"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/docs/intro-406": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/docs/intro-cb8": {
"__comp": "__comp---theme-doc-item-178-a40",
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-docs-intro-0-e-3-4af"
"content": "content---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-docs-intro-0-e-3-e14"
},
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/-39b": {
"/documentation/mchSamples_.NET/docusaurus/mchsamples-.net-core/fr/-5a2": {
"__comp": "__comp---site-src-pages-index-jsc-4-f-f99",
"__context": {
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-markdown-pagee-05-e1f"
"plugin": "plugin---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-markdown-pagee-05-453"
},
"config": "config---documentation-mch-samples-net-docusaurus-mchsamples-net-core-5-e-9-c93"
"config": "config---documentation-mch-samples-net-docusaurus-mchsamples-net-core-fr-5-e-9-9f0"
}
}

@ -25,6 +25,15 @@ const config = {
i18n: {
defaultLocale: 'en',
locales: ['en'],
//locales: ['en','fr'],
// localeConfigs: {
// en: {
// htmlLang: 'en-GB',
// },
// fr: {
// direction: 'rtl'
// }
// }
},
presets: [
@ -75,6 +84,10 @@ const config = {
label: 'Code#0',
position: 'right',
},
// {
// type: 'localeDropdown',
// position: 'left',
// }
],
},
footer: {

@ -122,336 +122,336 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "p00_LISEZ_MOI", "p00_LISEZ_
README.md = README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_001_Main", "ex_003_001_Main\ex_003_001_Main.csproj", "{360482DE-7012-447B-9896-A10A591082FF}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_001_Main", "p02_Fondamentaux\ex_003_001_Main\ex_003_001_Main.csproj", "{360482DE-7012-447B-9896-A10A591082FF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_002_Main_HelloWorld", "ex_003_002_Main_HelloWorld\ex_003_002_Main_HelloWorld.csproj", "{CA54BDC1-6877-45FB-8A07-8AA9FA069EE0}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_002_Main_HelloWorld", "p02_Fondamentaux\ex_003_002_Main_HelloWorld\ex_003_002_Main_HelloWorld.csproj", "{CA54BDC1-6877-45FB-8A07-8AA9FA069EE0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_003_Main_arguments", "ex_003_003_Main_arguments\ex_003_003_Main_arguments.csproj", "{7C6A23F5-1C25-490B-BF4D-B678586F116E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_003_Main_arguments", "p02_Fondamentaux\ex_003_003_Main_arguments\ex_003_003_Main_arguments.csproj", "{7C6A23F5-1C25-490B-BF4D-B678586F116E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_004_Console", "ex_003_004_Console\ex_003_004_Console.csproj", "{B245640F-AB45-45EB-A5F3-43D9D2962013}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_003_004_Console", "p02_Fondamentaux\ex_003_004_Console\ex_003_004_Console.csproj", "{B245640F-AB45-45EB-A5F3-43D9D2962013}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_001_TypesNumeriques", "ex_004_001_TypesNumeriques\ex_004_001_TypesNumeriques.csproj", "{EFC7D45D-C112-4196-83D5-4B5E93A2A60D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_001_TypesNumeriques", "p02_Fondamentaux\ex_004_001_TypesNumeriques\ex_004_001_TypesNumeriques.csproj", "{EFC7D45D-C112-4196-83D5-4B5E93A2A60D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_002_Math", "ex_004_002_Math\ex_004_002_Math.csproj", "{B11AF664-B79F-45E1-8ACA-D2F5A9F5BF5C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_002_Math", "p02_Fondamentaux\ex_004_002_Math\ex_004_002_Math.csproj", "{B11AF664-B79F-45E1-8ACA-D2F5A9F5BF5C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_003_Random", "ex_004_003_Random\ex_004_003_Random.csproj", "{AA7D5274-320F-417C-89C9-807E09B5D754}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_003_Random", "p02_Fondamentaux\ex_004_003_Random\ex_004_003_Random.csproj", "{AA7D5274-320F-417C-89C9-807E09B5D754}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_004_TypeBool", "ex_004_004_TypeBool\ex_004_004_TypeBool.csproj", "{08E324B9-B7E8-4347-B4BF-6F469FE6B9B1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_004_TypeBool", "p02_Fondamentaux\ex_004_004_TypeBool\ex_004_004_TypeBool.csproj", "{08E324B9-B7E8-4347-B4BF-6F469FE6B9B1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_005_TypeChar", "ex_004_005_TypeChar\ex_004_005_TypeChar.csproj", "{665FF767-C7B0-49CA-B44C-BDC1F4313171}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_005_TypeChar", "p02_Fondamentaux\ex_004_005_TypeChar\ex_004_005_TypeChar.csproj", "{665FF767-C7B0-49CA-B44C-BDC1F4313171}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_006_TimeSpan_et_DateTime", "ex_004_006_TimeSpan_et_DateTime\ex_004_006_TimeSpan_et_DateTime.csproj", "{65933596-A9C7-4D11-8177-D046051BBEEE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_006_TimeSpan_et_DateTime", "p02_Fondamentaux\ex_004_006_TimeSpan_et_DateTime\ex_004_006_TimeSpan_et_DateTime.csproj", "{65933596-A9C7-4D11-8177-D046051BBEEE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_007_DureeDeVie", "ex_004_007_DureeDeVie\ex_004_007_DureeDeVie.csproj", "{5CDD3EF9-8034-414E-99E1-9FC5704C9A10}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_007_DureeDeVie", "p02_Fondamentaux\ex_004_007_DureeDeVie\ex_004_007_DureeDeVie.csproj", "{5CDD3EF9-8034-414E-99E1-9FC5704C9A10}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_008_var", "ex_004_008_var\ex_004_008_var.csproj", "{4F06B30B-BCA7-4D5A-AF60-A7AA55BCF2A4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_008_var", "p02_Fondamentaux\ex_004_008_var\ex_004_008_var.csproj", "{4F06B30B-BCA7-4D5A-AF60-A7AA55BCF2A4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_005_001_tableaux", "ex_005_001_tableaux\ex_005_001_tableaux.csproj", "{BDD3FA1B-1784-46CB-82C9-3EB07FAC99E0}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_005_001_tableaux", "p02_Fondamentaux\ex_005_001_tableaux\ex_005_001_tableaux.csproj", "{BDD3FA1B-1784-46CB-82C9-3EB07FAC99E0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_005_002_copie_de_tableaux", "ex_005_002_copie_de_tableaux\ex_005_002_copie_de_tableaux.csproj", "{20CD4933-F192-444B-8009-C13DAD778177}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_005_002_copie_de_tableaux", "p02_Fondamentaux\ex_005_002_copie_de_tableaux\ex_005_002_copie_de_tableaux.csproj", "{20CD4933-F192-444B-8009-C13DAD778177}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_005_003_tableaux_multiDimensions", "ex_005_003_tableaux_multiDimensions\ex_005_003_tableaux_multiDimensions.csproj", "{CCE9B327-DB78-4522-A836-B3025D54F504}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_005_003_tableaux_multiDimensions", "p02_Fondamentaux\ex_005_003_tableaux_multiDimensions\ex_005_003_tableaux_multiDimensions.csproj", "{CCE9B327-DB78-4522-A836-B3025D54F504}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_006_001_string", "ex_006_001_string\ex_006_001_string.csproj", "{5533D4E6-4D98-4560-96BB-01FDA446DABE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_006_001_string", "p02_Fondamentaux\ex_006_001_string\ex_006_001_string.csproj", "{5533D4E6-4D98-4560-96BB-01FDA446DABE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_006_002_StringBuilder", "ex_006_002_StringBuilder\ex_006_002_StringBuilder.csproj", "{ECA80F84-D9DB-4F74-90DF-5A335294710D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_006_002_StringBuilder", "p02_Fondamentaux\ex_006_002_StringBuilder\ex_006_002_StringBuilder.csproj", "{ECA80F84-D9DB-4F74-90DF-5A335294710D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_007_001_enum", "ex_007_001_enum\ex_007_001_enum.csproj", "{B864ACCF-B54B-4D6D-AC12-5C382435FACA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_007_001_enum", "p02_Fondamentaux\ex_007_001_enum\ex_007_001_enum.csproj", "{B864ACCF-B54B-4D6D-AC12-5C382435FACA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_001_if_else", "ex_008_001_if_else\ex_008_001_if_else.csproj", "{D51BC19B-8E64-4A2F-815F-6216D733BA0E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_001_if_else", "p02_Fondamentaux\ex_008_001_if_else\ex_008_001_if_else.csproj", "{D51BC19B-8E64-4A2F-815F-6216D733BA0E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_002_switch", "ex_008_002_switch\ex_008_002_switch.csproj", "{77CB4EC3-2FB5-420D-8A3A-2EE36249D3B9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_002_switch", "p02_Fondamentaux\ex_008_002_switch\ex_008_002_switch.csproj", "{77CB4EC3-2FB5-420D-8A3A-2EE36249D3B9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_003_ternary_operator", "ex_008_003_ternary_operator\ex_008_003_ternary_operator.csproj", "{BD4267AB-5A5B-4F71-BF4C-80ADF3F77AE5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_003_ternary_operator", "p02_Fondamentaux\ex_008_003_ternary_operator\ex_008_003_ternary_operator.csproj", "{BD4267AB-5A5B-4F71-BF4C-80ADF3F77AE5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_004_null_operators", "ex_008_004_null_operators\ex_008_004_null_operators.csproj", "{703FA2B2-C9FC-4ED8-852C-6198ABB37AA9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_004_null_operators", "p02_Fondamentaux\ex_008_004_null_operators\ex_008_004_null_operators.csproj", "{703FA2B2-C9FC-4ED8-852C-6198ABB37AA9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_009_001_bouclesIteratives", "ex_009_001_bouclesIteratives\ex_009_001_bouclesIteratives.csproj", "{39839E89-7F1E-44FA-B65F-4229D3C60BBA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_009_001_bouclesIteratives", "p02_Fondamentaux\ex_009_001_bouclesIteratives\ex_009_001_bouclesIteratives.csproj", "{39839E89-7F1E-44FA-B65F-4229D3C60BBA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_010_001_methodParametersAndModifiers", "ex_010_001_methodParametersAndModifiers\ex_010_001_methodParametersAndModifiers.csproj", "{E047CD31-22D5-4363-A68A-0C1816DB0460}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_010_001_methodParametersAndModifiers", "p02_Fondamentaux\ex_010_001_methodParametersAndModifiers\ex_010_001_methodParametersAndModifiers.csproj", "{E047CD31-22D5-4363-A68A-0C1816DB0460}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_010_002_optionalParameters", "ex_010_002_optionalParameters\ex_010_002_optionalParameters.csproj", "{10F1EC44-A5C4-4A14-BCCB-E4B7A5C6F94B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_010_002_optionalParameters", "p02_Fondamentaux\ex_010_002_optionalParameters\ex_010_002_optionalParameters.csproj", "{10F1EC44-A5C4-4A14-BCCB-E4B7A5C6F94B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_010_003_interets_des_optionalparameters", "ex_010_003_interets_des_optionalparameters\ex_010_003_interets_des_optionalparameters.csproj", "{A32BA29C-7671-43F4-A787-A049DFCDFCF3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_010_003_interets_des_optionalparameters", "p02_Fondamentaux\ex_010_003_interets_des_optionalparameters\ex_010_003_interets_des_optionalparameters.csproj", "{A32BA29C-7671-43F4-A787-A049DFCDFCF3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_012_001_nullableTypes", "ex_012_001_nullableTypes\ex_012_001_nullableTypes.csproj", "{24579534-E9EE-4420-A6D5-CE1911A0F8D2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_012_001_nullableTypes", "p02_Fondamentaux\ex_012_001_nullableTypes\ex_012_001_nullableTypes.csproj", "{24579534-E9EE-4420-A6D5-CE1911A0F8D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_013_001_FormattingParsingNumEtBool", "ex_013_001_FormattingParsingNumEtBool\ex_013_001_FormattingParsingNumEtBool.csproj", "{0B41EA6F-A4EC-4DFC-AAF7-EAFC47B88F32}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_013_001_FormattingParsingNumEtBool", "p02_Fondamentaux\ex_013_001_FormattingParsingNumEtBool\ex_013_001_FormattingParsingNumEtBool.csproj", "{0B41EA6F-A4EC-4DFC-AAF7-EAFC47B88F32}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_013_002_FormattingParsingDateTime", "ex_013_002_FormattingParsingDateTime\ex_013_002_FormattingParsingDateTime.csproj", "{865B8EEC-F470-432B-9C0E-652A287289AA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_013_002_FormattingParsingDateTime", "p02_Fondamentaux\ex_013_002_FormattingParsingDateTime\ex_013_002_FormattingParsingDateTime.csproj", "{865B8EEC-F470-432B-9C0E-652A287289AA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_001_namespace_et_nomDUneClasse", "ex_014_001_namespace_et_nomDUneClasse\ex_014_001_namespace_et_nomDUneClasse.csproj", "{0257E9A6-8D3E-453A-A79B-3C28146D3FE1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_001_namespace_et_nomDUneClasse", "p03_POO\ex_014_001_namespace_et_nomDUneClasse\ex_014_001_namespace_et_nomDUneClasse.csproj", "{0257E9A6-8D3E-453A-A79B-3C28146D3FE1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_002_typesImbriques", "ex_014_002_typesImbriques\ex_014_002_typesImbriques.csproj", "{482968A6-6585-4E1B-8A59-1DC3985AC106}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_002_typesImbriques", "p03_POO\ex_014_002_typesImbriques\ex_014_002_typesImbriques.csproj", "{482968A6-6585-4E1B-8A59-1DC3985AC106}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_003_ClasseChampInitialiseurs", "ex_014_003_ClasseChampInitialiseurs\ex_014_003_ClasseChampInitialiseurs.csproj", "{5274BE21-4107-4628-8615-5B2D78ECF358}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_003_ClasseChampInitialiseurs", "p03_POO\ex_014_003_ClasseChampInitialiseurs\ex_014_003_ClasseChampInitialiseurs.csproj", "{5274BE21-4107-4628-8615-5B2D78ECF358}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_004_constructeurs", "ex_014_004_constructeurs\ex_014_004_constructeurs.csproj", "{491D53A3-5569-4771-94E0-05932865EB7B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_004_constructeurs", "p03_POO\ex_014_004_constructeurs\ex_014_004_constructeurs.csproj", "{491D53A3-5569-4771-94E0-05932865EB7B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_005_methodes", "ex_014_005_methodes\ex_014_005_methodes.csproj", "{80BCF13B-48B0-4370-8727-5A8CCADCA605}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_005_methodes", "p03_POO\ex_014_005_methodes\ex_014_005_methodes.csproj", "{80BCF13B-48B0-4370-8727-5A8CCADCA605}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_006_object_ToString", "ex_014_006_object_ToString\ex_014_006_object_ToString.csproj", "{EBFF5E6C-2EFF-467A-B256-FB65D48F8BB7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_006_object_ToString", "p03_POO\ex_014_006_object_ToString\ex_014_006_object_ToString.csproj", "{EBFF5E6C-2EFF-467A-B256-FB65D48F8BB7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_007_expression_bodied_methods", "ex_014_007_expression_bodied_methods\ex_014_007_expression_bodied_methods.csproj", "{74C82E57-BF1B-4FA7-ADE2-3A000175F8DA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_007_expression_bodied_methods", "p03_POO\ex_014_007_expression_bodied_methods\ex_014_007_expression_bodied_methods.csproj", "{74C82E57-BF1B-4FA7-ADE2-3A000175F8DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_001_static", "ex_015_001_static\ex_015_001_static.csproj", "{C5D637FC-FBA3-4A19-9736-EBEFB5C0DE14}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_001_static", "p03_POO\ex_015_001_static\ex_015_001_static.csproj", "{C5D637FC-FBA3-4A19-9736-EBEFB5C0DE14}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_002_ordreAppelStatic", "ex_015_002_ordreAppelStatic\ex_015_002_ordreAppelStatic.csproj", "{8E39C50A-9286-41B3-916D-2792F843DFDF}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_002_ordreAppelStatic", "p03_POO\ex_015_002_ordreAppelStatic\ex_015_002_ordreAppelStatic.csproj", "{8E39C50A-9286-41B3-916D-2792F843DFDF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_003_singleton", "ex_015_003_singleton\ex_015_003_singleton.csproj", "{B32776CB-6ABE-43B4-B876-476FED4CB6D3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_003_singleton", "p03_POO\ex_015_003_singleton\ex_015_003_singleton.csproj", "{B32776CB-6ABE-43B4-B876-476FED4CB6D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_004_using_static", "ex_015_004_using_static\ex_015_004_using_static.csproj", "{B2EC7A3B-6D5A-4045-8960-0515A6900D53}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_015_004_using_static", "p03_POO\ex_015_004_using_static\ex_015_004_using_static.csproj", "{B2EC7A3B-6D5A-4045-8960-0515A6900D53}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_001_getters_setters_methods", "ex_016_001_getters_setters_methods\ex_016_001_getters_setters_methods.csproj", "{9CD6A2E0-B737-49A3-A234-E0282726B0BA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_001_getters_setters_methods", "p03_POO\ex_016_001_getters_setters_methods\ex_016_001_getters_setters_methods.csproj", "{9CD6A2E0-B737-49A3-A234-E0282726B0BA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_002_properties", "ex_016_002_properties\ex_016_002_properties.csproj", "{0D2B997B-85F8-4336-B988-89D55771BBBD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_002_properties", "p03_POO\ex_016_002_properties\ex_016_002_properties.csproj", "{0D2B997B-85F8-4336-B988-89D55771BBBD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_003_indexers", "ex_016_003_indexers\ex_016_003_indexers.csproj", "{0F9617BD-1761-432F-BE18-0904D0C9D9F6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_003_indexers", "p03_POO\ex_016_003_indexers\ex_016_003_indexers.csproj", "{0F9617BD-1761-432F-BE18-0904D0C9D9F6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_004_readonly", "ex_016_004_readonly\ex_016_004_readonly.csproj", "{0CD585D3-5C8C-43C1-9A24-BDA83D976A38}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_004_readonly", "p03_POO\ex_016_004_readonly\ex_016_004_readonly.csproj", "{0CD585D3-5C8C-43C1-9A24-BDA83D976A38}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_005_partial", "ex_016_005_partial\ex_016_005_partial.csproj", "{08A58CE2-A1D4-4D56-88B7-340C28D7F60D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_005_partial", "p03_POO\ex_016_005_partial\ex_016_005_partial.csproj", "{08A58CE2-A1D4-4D56-88B7-340C28D7F60D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_001_heritage_syntaxe", "ex_017_001_heritage_syntaxe\ex_017_001_heritage_syntaxe.csproj", "{2A5F25F6-C5A9-4F13-9BBD-F0FAA8DAFD80}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_001_heritage_syntaxe", "p03_POO\ex_017_001_heritage_syntaxe\ex_017_001_heritage_syntaxe.csproj", "{2A5F25F6-C5A9-4F13-9BBD-F0FAA8DAFD80}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_002_redefinitionDeMethodes", "ex_017_002_redefinitionDeMethodes\ex_017_002_redefinitionDeMethodes.csproj", "{3CE2964C-20D8-4513-B156-5DCAF8D8DF38}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_002_redefinitionDeMethodes", "p03_POO\ex_017_002_redefinitionDeMethodes\ex_017_002_redefinitionDeMethodes.csproj", "{3CE2964C-20D8-4513-B156-5DCAF8D8DF38}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_003_initialiseurs_constructeurs", "ex_017_003_initialiseurs_constructeurs\ex_017_003_initialiseurs_constructeurs.csproj", "{790D3E7D-040A-4740-A7A9-E0DD45C0CFAF}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_003_initialiseurs_constructeurs", "p03_POO\ex_017_003_initialiseurs_constructeurs\ex_017_003_initialiseurs_constructeurs.csproj", "{790D3E7D-040A-4740-A7A9-E0DD45C0CFAF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_004_casting", "ex_017_004_casting\ex_017_004_casting.csproj", "{9D97BCA1-1ED9-49FF-A035-7F54859C4EA4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_017_004_casting", "p03_POO\ex_017_004_casting\ex_017_004_casting.csproj", "{9D97BCA1-1ED9-49FF-A035-7F54859C4EA4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_018_001_polymorphisme", "ex_018_001_polymorphisme\ex_018_001_polymorphisme.csproj", "{DDF21D56-C374-47DE-B200-F7F3B8ADD3D3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_018_001_polymorphisme", "p03_POO\ex_018_001_polymorphisme\ex_018_001_polymorphisme.csproj", "{DDF21D56-C374-47DE-B200-F7F3B8ADD3D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_018_002_abstract", "ex_018_002_abstract\ex_018_002_abstract.csproj", "{5DE1331B-CD3F-478D-A947-9E7B90705F2F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_018_002_abstract", "p03_POO\ex_018_002_abstract\ex_018_002_abstract.csproj", "{5DE1331B-CD3F-478D-A947-9E7B90705F2F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_019_001_interfaces", "ex_019_001_interfaces\ex_019_001_interfaces.csproj", "{95B9A703-B6E9-4402-8D8E-9D8A3C9799D2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_019_001_interfaces", "p03_POO\ex_019_001_interfaces\ex_019_001_interfaces.csproj", "{95B9A703-B6E9-4402-8D8E-9D8A3C9799D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_020_001_structures", "ex_020_001_structures\ex_020_001_structures.csproj", "{CCC7EC33-6053-4EA8-B157-29676446AAF7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_020_001_structures", "p03_POO\ex_020_001_structures\ex_020_001_structures.csproj", "{CCC7EC33-6053-4EA8-B157-29676446AAF7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_021_001_patternComposite", "ex_021_001_patternComposite\ex_021_001_patternComposite.csproj", "{0B465767-C5FE-4381-8083-D8F27AAB0430}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_021_001_patternComposite", "p03_POO\ex_021_001_patternComposite\ex_021_001_patternComposite.csproj", "{0B465767-C5FE-4381-8083-D8F27AAB0430}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_021_002_patternStrategy", "ex_021_002_patternStrategy\ex_021_002_patternStrategy.csproj", "{A9AA7FDB-ACF5-4B66-A8F7-C2B7090430D3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_021_002_patternStrategy", "p03_POO\ex_021_002_patternStrategy\ex_021_002_patternStrategy.csproj", "{A9AA7FDB-ACF5-4B66-A8F7-C2B7090430D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_001_Generics_def_du_pb", "ex_022_001_Generics_def_du_pb\ex_022_001_Generics_def_du_pb.csproj", "{23EF1497-AA33-4509-B37C-9EA6F8104C3C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_001_Generics_def_du_pb", "p04_AdvancedCSharp\ex_022_001_Generics_def_du_pb\ex_022_001_Generics_def_du_pb.csproj", "{23EF1497-AA33-4509-B37C-9EA6F8104C3C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_002_Generics_EtPourquoiPasObject", "ex_022_002_Generics_EtPourquoiPasObject\ex_022_002_Generics_EtPourquoiPasObject.csproj", "{F13FF2AE-433E-4D63-8675-A096D6D4D148}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_002_Generics_EtPourquoiPasObject", "p04_AdvancedCSharp\ex_022_002_Generics_EtPourquoiPasObject\ex_022_002_Generics_EtPourquoiPasObject.csproj", "{F13FF2AE-433E-4D63-8675-A096D6D4D148}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_003_Generics_syntaxe", "ex_022_003_Generics_syntaxe\ex_022_003_Generics_syntaxe.csproj", "{D9A73A20-23A9-47DF-B292-30F4A4150A1C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_003_Generics_syntaxe", "p04_AdvancedCSharp\ex_022_003_Generics_syntaxe\ex_022_003_Generics_syntaxe.csproj", "{D9A73A20-23A9-47DF-B292-30F4A4150A1C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_004_Generics_default", "ex_022_004_Generics_default\ex_022_004_Generics_default.csproj", "{A5A11201-D639-4EED-BB94-EE003D67FE05}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_004_Generics_default", "p04_AdvancedCSharp\ex_022_004_Generics_default\ex_022_004_Generics_default.csproj", "{A5A11201-D639-4EED-BB94-EE003D67FE05}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_005_Generics_constraints", "ex_022_005_Generics_constraints\ex_022_005_Generics_constraints.csproj", "{E4E9106F-185A-498C-ABA7-FF8ABBA7A266}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_005_Generics_constraints", "p04_AdvancedCSharp\ex_022_005_Generics_constraints\ex_022_005_Generics_constraints.csproj", "{E4E9106F-185A-498C-ABA7-FF8ABBA7A266}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_006_Generics_constraints2", "ex_022_006_Generics_constraints2\ex_022_006_Generics_constraints2.csproj", "{EAD89342-88D7-48D5-994A-A45990363090}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_006_Generics_constraints2", "p04_AdvancedCSharp\ex_022_006_Generics_constraints2\ex_022_006_Generics_constraints2.csproj", "{EAD89342-88D7-48D5-994A-A45990363090}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_007_Generics_subclassing", "ex_022_007_Generics_subclassing\ex_022_007_Generics_subclassing.csproj", "{A4B0AFB0-1318-407E-B906-8DFA64BA37F2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_007_Generics_subclassing", "p04_AdvancedCSharp\ex_022_007_Generics_subclassing\ex_022_007_Generics_subclassing.csproj", "{A4B0AFB0-1318-407E-B906-8DFA64BA37F2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_008_CovarianceClasses", "ex_022_008_CovarianceClasses\ex_022_008_CovarianceClasses.csproj", "{64E236E9-F05F-4A25-87F7-50E954E32003}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_008_CovarianceClasses", "p04_AdvancedCSharp\ex_022_008_CovarianceClasses\ex_022_008_CovarianceClasses.csproj", "{64E236E9-F05F-4A25-87F7-50E954E32003}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_009_CovarianceInterfaces", "ex_022_009_CovarianceInterfaces\ex_022_009_CovarianceInterfaces.csproj", "{BE8DF8F8-4323-437B-AE5F-ECB902194F7A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_022_009_CovarianceInterfaces", "p04_AdvancedCSharp\ex_022_009_CovarianceInterfaces\ex_022_009_CovarianceInterfaces.csproj", "{BE8DF8F8-4323-437B-AE5F-ECB902194F7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_001_IEnumerator_ex1", "ex_023_001_IEnumerator_ex1\ex_023_001_IEnumerator_ex1.csproj", "{29F1BFD5-B754-4424-8B5B-BABF37EE43B0}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_001_IEnumerator_ex1", "p04_AdvancedCSharp\ex_023_001_IEnumerator_ex1\ex_023_001_IEnumerator_ex1.csproj", "{29F1BFD5-B754-4424-8B5B-BABF37EE43B0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_002_IEnumerator_ex2", "ex_023_002_IEnumerator_ex2\ex_023_002_IEnumerator_ex2.csproj", "{469D70E7-24C6-4D17-ADCA-7759CB1C0EED}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_002_IEnumerator_ex2", "p04_AdvancedCSharp\ex_023_002_IEnumerator_ex2\ex_023_002_IEnumerator_ex2.csproj", "{469D70E7-24C6-4D17-ADCA-7759CB1C0EED}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_003_IEnumerator_ex3", "ex_023_003_IEnumerator_ex3\ex_023_003_IEnumerator_ex3.csproj", "{35E3A411-9528-4402-956E-C953D5783455}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_003_IEnumerator_ex3", "p04_AdvancedCSharp\ex_023_003_IEnumerator_ex3\ex_023_003_IEnumerator_ex3.csproj", "{35E3A411-9528-4402-956E-C953D5783455}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_004_ArrayClass", "ex_023_004_ArrayClass\ex_023_004_ArrayClass.csproj", "{67C64D99-A8CB-4712-9C4A-A05FCB1B092C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_004_ArrayClass", "p04_AdvancedCSharp\ex_023_004_ArrayClass\ex_023_004_ArrayClass.csproj", "{67C64D99-A8CB-4712-9C4A-A05FCB1B092C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_005_Queue", "ex_023_005_Queue\ex_023_005_Queue.csproj", "{D2AB90AD-58B2-4483-A0D6-B4C941C7A153}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_005_Queue", "p04_AdvancedCSharp\ex_023_005_Queue\ex_023_005_Queue.csproj", "{D2AB90AD-58B2-4483-A0D6-B4C941C7A153}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_006_Stack", "ex_023_006_Stack\ex_023_006_Stack.csproj", "{51B9A0EA-7753-432C-B882-8E7607ACBC2E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_006_Stack", "p04_AdvancedCSharp\ex_023_006_Stack\ex_023_006_Stack.csproj", "{51B9A0EA-7753-432C-B882-8E7607ACBC2E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_007_LinkedList", "ex_023_007_LinkedList\ex_023_007_LinkedList.csproj", "{11C2BCB1-2960-4CF3-9856-38C9094734EC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_007_LinkedList", "p04_AdvancedCSharp\ex_023_007_LinkedList\ex_023_007_LinkedList.csproj", "{11C2BCB1-2960-4CF3-9856-38C9094734EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_008_List", "ex_023_008_List\ex_023_008_List.csproj", "{F455C829-3553-440C-886A-7DAFFEE1F30F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_008_List", "p04_AdvancedCSharp\ex_023_008_List\ex_023_008_List.csproj", "{F455C829-3553-440C-886A-7DAFFEE1F30F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_010_EqualityProtocoleOnReferences", "ex_023_010_EqualityProtocoleOnReferences\ex_023_010_EqualityProtocoleOnReferences.csproj", "{3C448D8C-EF93-407C-B95F-80EA2E807973}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_010_EqualityProtocoleOnReferences", "p04_AdvancedCSharp\ex_023_010_EqualityProtocoleOnReferences\ex_023_010_EqualityProtocoleOnReferences.csproj", "{3C448D8C-EF93-407C-B95F-80EA2E807973}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_011_EqualityProtocoleOnValues", "ex_023_011_EqualityProtocoleOnValues\ex_023_011_EqualityProtocoleOnValues.csproj", "{0D343D42-4F08-4A6C-A718-E6A269B18E82}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_011_EqualityProtocoleOnValues", "p04_AdvancedCSharp\ex_023_011_EqualityProtocoleOnValues\ex_023_011_EqualityProtocoleOnValues.csproj", "{0D343D42-4F08-4A6C-A718-E6A269B18E82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_012_EqualityComparer", "ex_023_012_EqualityComparer\ex_023_012_EqualityComparer.csproj", "{AC8D34C4-FE95-4F69-AD86-D57D0CC4F2B3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_012_EqualityComparer", "p04_AdvancedCSharp\ex_023_012_EqualityComparer\ex_023_012_EqualityComparer.csproj", "{AC8D34C4-FE95-4F69-AD86-D57D0CC4F2B3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_013_OrderComparisonProtocole", "ex_023_013_OrderComparisonProtocole\ex_023_013_OrderComparisonProtocole.csproj", "{F68DB263-E30F-471B-A04D-493092B0F149}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_013_OrderComparisonProtocole", "p04_AdvancedCSharp\ex_023_013_OrderComparisonProtocole\ex_023_013_OrderComparisonProtocole.csproj", "{F68DB263-E30F-471B-A04D-493092B0F149}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_014_Dictionary", "ex_023_014_Dictionary\ex_023_014_Dictionary.csproj", "{1428D1E9-3A01-4166-9FD7-385EE1492BC2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_014_Dictionary", "p04_AdvancedCSharp\ex_023_014_Dictionary\ex_023_014_Dictionary.csproj", "{1428D1E9-3A01-4166-9FD7-385EE1492BC2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_015_DictionaryCustomType", "ex_023_015_DictionaryCustomType\ex_023_015_DictionaryCustomType.csproj", "{68FF702C-D5EB-4756-8629-DAD3F29B9F6D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_015_DictionaryCustomType", "p04_AdvancedCSharp\ex_023_015_DictionaryCustomType\ex_023_015_DictionaryCustomType.csproj", "{68FF702C-D5EB-4756-8629-DAD3F29B9F6D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_016_ReadOnlyCollection", "ex_023_016_ReadOnlyCollection\ex_023_016_ReadOnlyCollection.csproj", "{521995C4-249A-459D-810F-08183005162D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_016_ReadOnlyCollection", "p04_AdvancedCSharp\ex_023_016_ReadOnlyCollection\ex_023_016_ReadOnlyCollection.csproj", "{521995C4-249A-459D-810F-08183005162D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_017_Deep_Read_only_collections_dll", "ex_023_017_Deep_Read_only_collections_dll\ex_023_017_Deep_Read_only_collections_dll.csproj", "{56636BBE-D8D6-4BA8-B69A-6A85FB9B7E76}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_017_Deep_Read_only_collections_dll", "p04_AdvancedCSharp\ex_023_017_Deep_Read_only_collections_dll\ex_023_017_Deep_Read_only_collections_dll.csproj", "{56636BBE-D8D6-4BA8-B69A-6A85FB9B7E76}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_017_Deep_Read_only_collections_exe", "ex_023_017_Deep_Read_only_collections_exe\ex_023_017_Deep_Read_only_collections_exe.csproj", "{DE50F46D-94C7-4E46-92BF-B86D4A794DF8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_017_Deep_Read_only_collections_exe", "p04_AdvancedCSharp\ex_023_017_Deep_Read_only_collections_exe\ex_023_017_Deep_Read_only_collections_exe.csproj", "{DE50F46D-94C7-4E46-92BF-B86D4A794DF8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_018_ReadOnlyDictionaries", "ex_023_018_ReadOnlyDictionaries\ex_023_018_ReadOnlyDictionaries.csproj", "{E0C3EFB5-CC33-481B-BFA9-0B7349F34BA8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_018_ReadOnlyDictionaries", "p04_AdvancedCSharp\ex_023_018_ReadOnlyDictionaries\ex_023_018_ReadOnlyDictionaries.csproj", "{E0C3EFB5-CC33-481B-BFA9-0B7349F34BA8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_019_ReadOnlyDictionary_and_values_dll", "ex_023_019_ReadOnlyDictionary_and_values_dll\ex_023_019_ReadOnlyDictionary_and_values_dll.csproj", "{5CE5529D-28E7-4AFB-BB89-39B6170D7E71}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_019_ReadOnlyDictionary_and_values_dll", "p04_AdvancedCSharp\ex_023_019_ReadOnlyDictionary_and_values_dll\ex_023_019_ReadOnlyDictionary_and_values_dll.csproj", "{5CE5529D-28E7-4AFB-BB89-39B6170D7E71}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_019_ReadOnlyDictionary_and_values_exe", "ex_023_019_ReadOnlyDictionary_and_values_exe\ex_023_019_ReadOnlyDictionary_and_values_exe.csproj", "{E07F7449-2857-4A2F-9727-370E8CA589B3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_019_ReadOnlyDictionary_and_values_exe", "p04_AdvancedCSharp\ex_023_019_ReadOnlyDictionary_and_values_exe\ex_023_019_ReadOnlyDictionary_and_values_exe.csproj", "{E07F7449-2857-4A2F-9727-370E8CA589B3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_009_Tuple", "ex_004_009_Tuple\ex_004_009_Tuple.csproj", "{4A13F822-34F5-450A-84EA-395518D6FCBE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_009_Tuple", "p02_Fondamentaux\ex_004_009_Tuple\ex_004_009_Tuple.csproj", "{4A13F822-34F5-450A-84EA-395518D6FCBE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_010_GuidStruct", "ex_004_010_GuidStruct\ex_004_010_GuidStruct.csproj", "{4162E8E6-E68C-4410-8960-CB7509344CDC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_004_010_GuidStruct", "p02_Fondamentaux\ex_004_010_GuidStruct\ex_004_010_GuidStruct.csproj", "{4162E8E6-E68C-4410-8960-CB7509344CDC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_001_exceptions_Contexte", "ex_024_001_exceptions_Contexte\ex_024_001_exceptions_Contexte.csproj", "{CAE9708C-1F30-4CAC-BE9E-C89426FC49D3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_001_exceptions_Contexte", "p05_More_dotNet\ex_024_001_exceptions_Contexte\ex_024_001_exceptions_Contexte.csproj", "{CAE9708C-1F30-4CAC-BE9E-C89426FC49D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_002_parse", "ex_024_002_parse\ex_024_002_parse.csproj", "{80E1E9FB-F440-4D2B-A2B3-86EE0A7CCDC8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_002_parse", "p05_More_dotNet\ex_024_002_parse\ex_024_002_parse.csproj", "{80E1E9FB-F440-4D2B-A2B3-86EE0A7CCDC8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_003_exceptions", "ex_024_003_exceptions\ex_024_003_exceptions.csproj", "{6CFD567B-71CF-4BB3-A43A-B85A9FCC709E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_003_exceptions", "p05_More_dotNet\ex_024_003_exceptions\ex_024_003_exceptions.csproj", "{6CFD567B-71CF-4BB3-A43A-B85A9FCC709E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_004_propagation_exceptions", "ex_024_004_propagation_exceptions\ex_024_004_propagation_exceptions.csproj", "{E43ADD51-9624-49C4-86A0-A14DEC0C21EC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_004_propagation_exceptions", "p05_More_dotNet\ex_024_004_propagation_exceptions\ex_024_004_propagation_exceptions.csproj", "{E43ADD51-9624-49C4-86A0-A14DEC0C21EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_005_exceptions_personnalisees", "ex_024_005_exceptions_personnalisees\ex_024_005_exceptions_personnalisees.csproj", "{B0C6FD78-E94E-4501-BDB3-2D1F25B01C87}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_024_005_exceptions_personnalisees", "p05_More_dotNet\ex_024_005_exceptions_personnalisees\ex_024_005_exceptions_personnalisees.csproj", "{B0C6FD78-E94E-4501-BDB3-2D1F25B01C87}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_025_001_DebugTrace", "ex_025_001_DebugTrace\ex_025_001_DebugTrace.csproj", "{592C8D57-106E-4411-9B5D-1B3068A4EE69}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_025_001_DebugTrace", "p05_More_dotNet\ex_025_001_DebugTrace\ex_025_001_DebugTrace.csproj", "{592C8D57-106E-4411-9B5D-1B3068A4EE69}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_001_intro_avec_interfaces", "ex_028_001_intro_avec_interfaces\ex_028_001_intro_avec_interfaces.csproj", "{E1FE4501-FC86-49DE-8890-920A8F79CF10}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_001_intro_avec_interfaces", "p06_MoreAdvancedCSharp\ex_028_001_intro_avec_interfaces\ex_028_001_intro_avec_interfaces.csproj", "{E1FE4501-FC86-49DE-8890-920A8F79CF10}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_002_intro_avec_delegate", "ex_028_002_intro_avec_delegate\ex_028_002_intro_avec_delegate.csproj", "{860EF37D-6F5A-4132-9035-27D7A912405D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_002_intro_avec_delegate", "p06_MoreAdvancedCSharp\ex_028_002_intro_avec_delegate\ex_028_002_intro_avec_delegate.csproj", "{860EF37D-6F5A-4132-9035-27D7A912405D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_003_interface_as_parameter", "ex_028_003_interface_as_parameter\ex_028_003_interface_as_parameter.csproj", "{D9E9655D-EB1A-4A1C-A1BE-D7D46CAFCA4E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_003_interface_as_parameter", "p06_MoreAdvancedCSharp\ex_028_003_interface_as_parameter\ex_028_003_interface_as_parameter.csproj", "{D9E9655D-EB1A-4A1C-A1BE-D7D46CAFCA4E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_004_delegate_as_parameter", "ex_028_004_delegate_as_parameter\ex_028_004_delegate_as_parameter.csproj", "{16922F06-99AA-46B0-9C8F-D5590AEA0418}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_004_delegate_as_parameter", "p06_MoreAdvancedCSharp\ex_028_004_delegate_as_parameter\ex_028_004_delegate_as_parameter.csproj", "{16922F06-99AA-46B0-9C8F-D5590AEA0418}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_005_nested_delegate", "ex_028_005_nested_delegate\ex_028_005_nested_delegate.csproj", "{CF76B21D-37E9-4CE5-8206-226A0C31BBC6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_005_nested_delegate", "p06_MoreAdvancedCSharp\ex_028_005_nested_delegate\ex_028_005_nested_delegate.csproj", "{CF76B21D-37E9-4CE5-8206-226A0C31BBC6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_006_Strategy_et_interface", "ex_028_006_Strategy_et_interface\ex_028_006_Strategy_et_interface.csproj", "{4449391F-34DB-443F-AA45-445868296BCD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_006_Strategy_et_interface", "p06_MoreAdvancedCSharp\ex_028_006_Strategy_et_interface\ex_028_006_Strategy_et_interface.csproj", "{4449391F-34DB-443F-AA45-445868296BCD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_007_delegate_versus_Strategy", "ex_028_007_delegate_versus_Strategy\ex_028_007_delegate_versus_Strategy.csproj", "{7C10B07B-5388-455F-B47F-DD4614E56A96}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_007_delegate_versus_Strategy", "p06_MoreAdvancedCSharp\ex_028_007_delegate_versus_Strategy\ex_028_007_delegate_versus_Strategy.csproj", "{7C10B07B-5388-455F-B47F-DD4614E56A96}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_008_multicast_et_interfaces", "ex_028_008_multicast_et_interfaces\ex_028_008_multicast_et_interfaces.csproj", "{8D7A4D64-14CB-48FE-AC05-C9C08A1691C8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_008_multicast_et_interfaces", "p06_MoreAdvancedCSharp\ex_028_008_multicast_et_interfaces\ex_028_008_multicast_et_interfaces.csproj", "{8D7A4D64-14CB-48FE-AC05-C9C08A1691C8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_009_multicast_delegate", "ex_028_009_multicast_delegate\ex_028_009_multicast_delegate.csproj", "{D144F474-66D2-4199-93B1-4E06C9046ECF}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_009_multicast_delegate", "p06_MoreAdvancedCSharp\ex_028_009_multicast_delegate\ex_028_009_multicast_delegate.csproj", "{D144F474-66D2-4199-93B1-4E06C9046ECF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_010_multicast_delegate_return_value", "ex_028_010_multicast_delegate_return_value\ex_028_010_multicast_delegate_return_value.csproj", "{67611503-9030-4428-BCB5-FA74BD30F230}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_010_multicast_delegate_return_value", "p06_MoreAdvancedCSharp\ex_028_010_multicast_delegate_return_value\ex_028_010_multicast_delegate_return_value.csproj", "{67611503-9030-4428-BCB5-FA74BD30F230}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_011_Broadcaster_Subscriber", "ex_028_011_Broadcaster_Subscriber\ex_028_011_Broadcaster_Subscriber.csproj", "{C4214DCE-5CE5-486D-AD39-5A7811E639FA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_011_Broadcaster_Subscriber", "p06_MoreAdvancedCSharp\ex_028_011_Broadcaster_Subscriber\ex_028_011_Broadcaster_Subscriber.csproj", "{C4214DCE-5CE5-486D-AD39-5A7811E639FA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_012_delegate_Broadcaster_Subscriber", "ex_028_012_delegate_Broadcaster_Subscriber\ex_028_012_delegate_Broadcaster_Subscriber.csproj", "{5D705FC8-FC86-493E-8752-E11A46D78766}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_012_delegate_Broadcaster_Subscriber", "p06_MoreAdvancedCSharp\ex_028_012_delegate_Broadcaster_Subscriber\ex_028_012_delegate_Broadcaster_Subscriber.csproj", "{5D705FC8-FC86-493E-8752-E11A46D78766}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_029_001_event_Broadcaster_Subscriber", "ex_029_001_event_Broadcaster_Subscriber\ex_029_001_event_Broadcaster_Subscriber.csproj", "{75B7A9D3-E526-481F-AC75-C92546F74223}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_029_001_event_Broadcaster_Subscriber", "p06_MoreAdvancedCSharp\ex_029_001_event_Broadcaster_Subscriber\ex_029_001_event_Broadcaster_Subscriber.csproj", "{75B7A9D3-E526-481F-AC75-C92546F74223}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_029_002_event_standard_pattern", "ex_029_002_event_standard_pattern\ex_029_002_event_standard_pattern.csproj", "{4362B7DC-77E5-4DA5-BC47-615E00EB0BFB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_029_002_event_standard_pattern", "p06_MoreAdvancedCSharp\ex_029_002_event_standard_pattern\ex_029_002_event_standard_pattern.csproj", "{4362B7DC-77E5-4DA5-BC47-615E00EB0BFB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_030_001_anonymousMethods", "ex_030_001_anonymousMethods\ex_030_001_anonymousMethods.csproj", "{88D27654-2609-4F41-9039-AEE7DE03DBB2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_030_001_anonymousMethods", "p06_MoreAdvancedCSharp\ex_030_001_anonymousMethods\ex_030_001_anonymousMethods.csproj", "{88D27654-2609-4F41-9039-AEE7DE03DBB2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_030_002_lambdaExpressions", "ex_030_002_lambdaExpressions\ex_030_002_lambdaExpressions.csproj", "{62F46F99-6BAD-49A1-A27C-DC8C33EC1B63}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_030_002_lambdaExpressions", "p06_MoreAdvancedCSharp\ex_030_002_lambdaExpressions\ex_030_002_lambdaExpressions.csproj", "{62F46F99-6BAD-49A1-A27C-DC8C33EC1B63}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_030_003_lambdaExpressions", "ex_030_003_lambdaExpressions\ex_030_003_lambdaExpressions.csproj", "{35137873-02E9-4D2D-BA9F-5FA4C8B3EA18}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_030_003_lambdaExpressions", "p06_MoreAdvancedCSharp\ex_030_003_lambdaExpressions\ex_030_003_lambdaExpressions.csproj", "{35137873-02E9-4D2D-BA9F-5FA4C8B3EA18}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_001_decouverteDeLINQ", "ex_031_001_decouverteDeLINQ\ex_031_001_decouverteDeLINQ.csproj", "{74732A62-AE6F-45B2-8DB8-48C9C0C5DB38}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_001_decouverteDeLINQ", "p06_MoreAdvancedCSharp\ex_031_001_decouverteDeLINQ\ex_031_001_decouverteDeLINQ.csproj", "{74732A62-AE6F-45B2-8DB8-48C9C0C5DB38}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_002_extensionMethods", "ex_031_002_extensionMethods\ex_031_002_extensionMethods.csproj", "{33EB12C1-CDCD-451D-BA22-B55D67AE0494}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_002_extensionMethods", "p06_MoreAdvancedCSharp\ex_031_002_extensionMethods\ex_031_002_extensionMethods.csproj", "{33EB12C1-CDCD-451D-BA22-B55D67AE0494}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_003_anonymousTypes", "ex_031_003_anonymousTypes\ex_031_003_anonymousTypes.csproj", "{C38253F3-E8AB-4BEB-8177-CEBD00580D95}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_003_anonymousTypes", "p06_MoreAdvancedCSharp\ex_031_003_anonymousTypes\ex_031_003_anonymousTypes.csproj", "{C38253F3-E8AB-4BEB-8177-CEBD00580D95}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_004_LINQ_intro", "ex_031_004_LINQ_intro\ex_031_004_LINQ_intro.csproj", "{02D89568-AD7E-4912-B405-8C9C8D98D1B9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_004_LINQ_intro", "p06_MoreAdvancedCSharp\ex_031_004_LINQ_intro\ex_031_004_LINQ_intro.csproj", "{02D89568-AD7E-4912-B405-8C9C8D98D1B9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_005_LINQ_deferredExecution", "ex_031_005_LINQ_deferredExecution\ex_031_005_LINQ_deferredExecution.csproj", "{1E7C08C3-7B01-456F-853D-3F44BE123A30}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_005_LINQ_deferredExecution", "p06_MoreAdvancedCSharp\ex_031_005_LINQ_deferredExecution\ex_031_005_LINQ_deferredExecution.csproj", "{1E7C08C3-7B01-456F-853D-3F44BE123A30}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_006_LINQ_filtering", "ex_031_006_LINQ_filtering\ex_031_006_LINQ_filtering.csproj", "{0066D6D8-3168-40A9-BE84-FFDE87C994FB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_006_LINQ_filtering", "p06_MoreAdvancedCSharp\ex_031_006_LINQ_filtering\ex_031_006_LINQ_filtering.csproj", "{0066D6D8-3168-40A9-BE84-FFDE87C994FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_007_LINQ_ordering", "ex_031_007_LINQ_ordering\ex_031_007_LINQ_ordering.csproj", "{BBBAA630-01FD-41B8-ACBC-2D1EBBB3C3BB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_007_LINQ_ordering", "p06_MoreAdvancedCSharp\ex_031_007_LINQ_ordering\ex_031_007_LINQ_ordering.csproj", "{BBBAA630-01FD-41B8-ACBC-2D1EBBB3C3BB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_008_LINQ_projecting", "ex_031_008_LINQ_projecting\ex_031_008_LINQ_projecting.csproj", "{14C2BEEF-2D71-4889-A8FA-10D6BC2EEB3C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_008_LINQ_projecting", "p06_MoreAdvancedCSharp\ex_031_008_LINQ_projecting\ex_031_008_LINQ_projecting.csproj", "{14C2BEEF-2D71-4889-A8FA-10D6BC2EEB3C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_009_LINQ_element_operators", "ex_031_009_LINQ_element_operators\ex_031_009_LINQ_element_operators.csproj", "{7A32E0E6-922E-4B39-9154-5CDDF3ADF92F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_009_LINQ_element_operators", "p06_MoreAdvancedCSharp\ex_031_009_LINQ_element_operators\ex_031_009_LINQ_element_operators.csproj", "{7A32E0E6-922E-4B39-9154-5CDDF3ADF92F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_010_LINQ_aggregation_methods", "ex_031_010_LINQ_aggregation_methods\ex_031_010_LINQ_aggregation_methods.csproj", "{BC57553A-36E4-4C96-9A91-BB0F414CE913}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_010_LINQ_aggregation_methods", "p06_MoreAdvancedCSharp\ex_031_010_LINQ_aggregation_methods\ex_031_010_LINQ_aggregation_methods.csproj", "{BC57553A-36E4-4C96-9A91-BB0F414CE913}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_011_LINQ_grouping", "ex_031_011_LINQ_grouping\ex_031_011_LINQ_grouping.csproj", "{F9053FBF-92AE-452E-A320-8BC6D8FFA82F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_011_LINQ_grouping", "p06_MoreAdvancedCSharp\ex_031_011_LINQ_grouping\ex_031_011_LINQ_grouping.csproj", "{F9053FBF-92AE-452E-A320-8BC6D8FFA82F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_012_LINQ_joining", "ex_031_012_LINQ_joining\ex_031_012_LINQ_joining.csproj", "{F1649450-FF48-4BFB-85F2-645C1395BE27}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_012_LINQ_joining", "p06_MoreAdvancedCSharp\ex_031_012_LINQ_joining\ex_031_012_LINQ_joining.csproj", "{F1649450-FF48-4BFB-85F2-645C1395BE27}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_013_LINQ_set_operators", "ex_031_013_LINQ_set_operators\ex_031_013_LINQ_set_operators.csproj", "{996BE956-BAEF-4456-A65C-DF26B0F684D3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_013_LINQ_set_operators", "p06_MoreAdvancedCSharp\ex_031_013_LINQ_set_operators\ex_031_013_LINQ_set_operators.csproj", "{996BE956-BAEF-4456-A65C-DF26B0F684D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_014_LINQ_quantifiers", "ex_031_014_LINQ_quantifiers\ex_031_014_LINQ_quantifiers.csproj", "{5CA57F33-BA6C-47F9-8E68-1D4342033692}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_014_LINQ_quantifiers", "p06_MoreAdvancedCSharp\ex_031_014_LINQ_quantifiers\ex_031_014_LINQ_quantifiers.csproj", "{5CA57F33-BA6C-47F9-8E68-1D4342033692}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_015_LINQ_generation_methods", "ex_031_015_LINQ_generation_methods\ex_031_015_LINQ_generation_methods.csproj", "{FE2064B3-CE28-46EF-87EB-909DDD2132D2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_015_LINQ_generation_methods", "p06_MoreAdvancedCSharp\ex_031_015_LINQ_generation_methods\ex_031_015_LINQ_generation_methods.csproj", "{FE2064B3-CE28-46EF-87EB-909DDD2132D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_016_LINQ_conversion_methods", "ex_031_016_LINQ_conversion_methods\ex_031_016_LINQ_conversion_methods.csproj", "{4CC79E1F-C018-4C33-BFED-F5A381159604}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_031_016_LINQ_conversion_methods", "p06_MoreAdvancedCSharp\ex_031_016_LINQ_conversion_methods\ex_031_016_LINQ_conversion_methods.csproj", "{4CC79E1F-C018-4C33-BFED-F5A381159604}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_001_File_and_Directory_management", "ex_037_001_File_and_Directory_management\ex_037_001_File_and_Directory_management.csproj", "{8058B47F-0090-47E8-B43D-9F0CFFE166C2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_001_File_and_Directory_management", "p07_Persistance\ex_037_001_File_and_Directory_management\ex_037_001_File_and_Directory_management.csproj", "{8058B47F-0090-47E8-B43D-9F0CFFE166C2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_002_FileStream", "ex_037_002_FileStream\ex_037_002_FileStream.csproj", "{B03A3D96-1710-4325-9702-5CA310EC4366}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_002_FileStream", "p07_Persistance\ex_037_002_FileStream\ex_037_002_FileStream.csproj", "{B03A3D96-1710-4325-9702-5CA310EC4366}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_003_TextReader_TextWriter", "ex_037_003_TextReader_TextWriter\ex_037_003_TextReader_TextWriter.csproj", "{E39A98ED-E4D8-4BC9-B32A-B333AD7432B1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_003_TextReader_TextWriter", "p07_Persistance\ex_037_003_TextReader_TextWriter\ex_037_003_TextReader_TextWriter.csproj", "{E39A98ED-E4D8-4BC9-B32A-B333AD7432B1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_004_BinaryReader_BinaryWriter", "ex_037_004_BinaryReader_BinaryWriter\ex_037_004_BinaryReader_BinaryWriter.csproj", "{791AA0D4-8337-46E0-A8EF-BB302E77DFE0}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_004_BinaryReader_BinaryWriter", "p07_Persistance\ex_037_004_BinaryReader_BinaryWriter\ex_037_004_BinaryReader_BinaryWriter.csproj", "{791AA0D4-8337-46E0-A8EF-BB302E77DFE0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_005_XmlReader_XmlWriter", "ex_037_005_XmlReader_XmlWriter\ex_037_005_XmlReader_XmlWriter.csproj", "{61BE6E0A-0B73-4641-8D51-A2030768864C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_037_005_XmlReader_XmlWriter", "p07_Persistance\ex_037_005_XmlReader_XmlWriter\ex_037_005_XmlReader_XmlWriter.csproj", "{61BE6E0A-0B73-4641-8D51-A2030768864C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_001_DataContractSerializer_bases", "ex_038_001_DataContractSerializer_bases\ex_038_001_DataContractSerializer_bases.csproj", "{FAD11603-C2B6-4284-890A-474961D60A81}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_001_DataContractSerializer_bases", "p07_Persistance\ex_038_001_DataContractSerializer_bases\ex_038_001_DataContractSerializer_bases.csproj", "{FAD11603-C2B6-4284-890A-474961D60A81}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_002_DataContract_subclassing", "ex_038_002_DataContract_subclassing\ex_038_002_DataContract_subclassing.csproj", "{6B68103E-9175-4837-88D5-AB407EBF2DA6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_002_DataContract_subclassing", "p07_Persistance\ex_038_002_DataContract_subclassing\ex_038_002_DataContract_subclassing.csproj", "{6B68103E-9175-4837-88D5-AB407EBF2DA6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_003_DataContract_ObjectReferences", "ex_038_003_DataContract_ObjectReferences\ex_038_003_DataContract_ObjectReferences.csproj", "{806B2217-480A-4050-80F2-8302D103E4F7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_003_DataContract_ObjectReferences", "p07_Persistance\ex_038_003_DataContract_ObjectReferences\ex_038_003_DataContract_ObjectReferences.csproj", "{806B2217-480A-4050-80F2-8302D103E4F7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_004_DataContract_Collections", "ex_038_004_DataContract_Collections\ex_038_004_DataContract_Collections.csproj", "{E66BCDF7-2118-487A-A6D4-4E6174C7858A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_004_DataContract_Collections", "p07_Persistance\ex_038_004_DataContract_Collections\ex_038_004_DataContract_Collections.csproj", "{E66BCDF7-2118-487A-A6D4-4E6174C7858A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_005_DataContract_Hooks", "ex_038_005_DataContract_Hooks\ex_038_005_DataContract_Hooks.csproj", "{D5215973-F1F5-4879-9A23-B5FCE0F190C5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_005_DataContract_Hooks", "p07_Persistance\ex_038_005_DataContract_Hooks\ex_038_005_DataContract_Hooks.csproj", "{D5215973-F1F5-4879-9A23-B5FCE0F190C5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_013_Predicate", "ex_028_013_Predicate\ex_028_013_Predicate.csproj", "{0EAAE361-CFE0-48EE-B7D5-80A3C108E8D9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_013_Predicate", "p06_MoreAdvancedCSharp\ex_028_013_Predicate\ex_028_013_Predicate.csproj", "{0EAAE361-CFE0-48EE-B7D5-80A3C108E8D9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_014_Func", "ex_028_014_Func\ex_028_014_Func.csproj", "{EF43D646-1A72-430F-B3F2-9C57BC0C270E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_014_Func", "p06_MoreAdvancedCSharp\ex_028_014_Func\ex_028_014_Func.csproj", "{EF43D646-1A72-430F-B3F2-9C57BC0C270E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_015_Action", "ex_028_015_Action\ex_028_015_Action.csproj", "{C90A0BA2-8ECE-4FA5-8DD2-F49056E4A754}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_028_015_Action", "p06_MoreAdvancedCSharp\ex_028_015_Action\ex_028_015_Action.csproj", "{C90A0BA2-8ECE-4FA5-8DD2-F49056E4A754}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_009_HashSet_and_SortedSet", "ex_023_009_HashSet_and_SortedSet\ex_023_009_HashSet_and_SortedSet.csproj", "{B3F7E752-C5A0-410D-A3E8-60BBE305DF70}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_023_009_HashSet_and_SortedSet", "p04_AdvancedCSharp\ex_023_009_HashSet_and_SortedSet\ex_023_009_HashSet_and_SortedSet.csproj", "{B3F7E752-C5A0-410D-A3E8-60BBE305DF70}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_006_Binary_Serializable", "ex_038_006_Binary_Serializable\ex_038_006_Binary_Serializable.csproj", "{13B8650E-44E0-41AD-9CEB-E7B302CD7DF9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_006_Binary_Serializable", "p07_Persistance\ex_038_006_Binary_Serializable\ex_038_006_Binary_Serializable.csproj", "{13B8650E-44E0-41AD-9CEB-E7B302CD7DF9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_007_XmlSerializer", "ex_038_007_XmlSerializer\ex_038_007_XmlSerializer.csproj", "{599F4A1A-53FA-45A9-9FBF-08EFECF165BB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_007_XmlSerializer", "p07_Persistance\ex_038_007_XmlSerializer\ex_038_007_XmlSerializer.csproj", "{599F4A1A-53FA-45A9-9FBF-08EFECF165BB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_008_IXmlSerializable", "ex_038_008_IXmlSerializable\ex_038_008_IXmlSerializable.csproj", "{4B279C76-DC8D-432B-A5E1-600601F05DD4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_038_008_IXmlSerializable", "p07_Persistance\ex_038_008_IXmlSerializable\ex_038_008_IXmlSerializable.csproj", "{4B279C76-DC8D-432B-A5E1-600601F05DD4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_039_001_XDOM_bases", "ex_039_001_XDOM_bases\ex_039_001_XDOM_bases.csproj", "{CF1AE501-3518-45CC-94AA-D6DE047EA022}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_039_001_XDOM_bases", "p07_Persistance\ex_039_001_XDOM_bases\ex_039_001_XDOM_bases.csproj", "{CF1AE501-3518-45CC-94AA-D6DE047EA022}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_039_002_LINQ_to_XML", "ex_039_002_LINQ_to_XML\ex_039_002_LINQ_to_XML.csproj", "{26400B99-2FB6-4B5F-BE2B-D15124F2B51D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_039_002_LINQ_to_XML", "p07_Persistance\ex_039_002_LINQ_to_XML\ex_039_002_LINQ_to_XML.csproj", "{26400B99-2FB6-4B5F-BE2B-D15124F2B51D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_040_001_LINQ_to_Json", "ex_040_001_LINQ_to_Json\ex_040_001_LINQ_to_Json.csproj", "{B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_040_001_LINQ_to_Json", "p07_Persistance\ex_040_001_LINQ_to_Json\ex_040_001_LINQ_to_Json.csproj", "{B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_010_EF_CF_Many_to_Many", "ex_042_010_EF_CF_Many_to_Many\ex_042_010_EF_CF_Many_to_Many.csproj", "{C6EF99F3-959D-4096-8ABE-140596DD14BD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_010_EF_CF_Many_to_Many", "p07_Persistance\ex_042_010_EF_CF_Many_to_Many\ex_042_010_EF_CF_Many_to_Many.csproj", "{C6EF99F3-959D-4096-8ABE-140596DD14BD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_012_EF_CF_Dictionary", "ex_042_012_EF_CF_Dictionary\ex_042_012_EF_CF_Dictionary.csproj", "{D9BE7F40-ADCE-415B-AF36-8D9B40B6DB7F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_012_EF_CF_Dictionary", "p07_Persistance\ex_042_012_EF_CF_Dictionary\ex_042_012_EF_CF_Dictionary.csproj", "{D9BE7F40-ADCE-415B-AF36-8D9B40B6DB7F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_013_EF_CF_TPT_Inheritance", "ex_042_013_EF_CF_TPT_Inheritance\ex_042_013_EF_CF_TPT_Inheritance.csproj", "{504AB98B-3C2D-493B-BA70-6D67734732D5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_013_EF_CF_TPT_Inheritance", "p07_Persistance\ex_042_013_EF_CF_TPT_Inheritance\ex_042_013_EF_CF_TPT_Inheritance.csproj", "{504AB98B-3C2D-493B-BA70-6D67734732D5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_014_EF_CF_TPH_Inheritance", "ex_042_014_EF_CF_TPH_Inheritance\ex_042_014_EF_CF_TPH_Inheritance.csproj", "{C5E45E2A-FCA3-4DCB-9681-C0FDEA282A99}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_014_EF_CF_TPH_Inheritance", "p07_Persistance\ex_042_014_EF_CF_TPH_Inheritance\ex_042_014_EF_CF_TPH_Inheritance.csproj", "{C5E45E2A-FCA3-4DCB-9681-C0FDEA282A99}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_015_EF_CF_TPC_Inheritance", "ex_042_015_EF_CF_TPC_Inheritance\ex_042_015_EF_CF_TPC_Inheritance.csproj", "{F067E7D9-AA60-4825-B8C4-F4A5C9D6D7B2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_015_EF_CF_TPC_Inheritance", "p07_Persistance\ex_042_015_EF_CF_TPC_Inheritance\ex_042_015_EF_CF_TPC_Inheritance.csproj", "{F067E7D9-AA60-4825-B8C4-F4A5C9D6D7B2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_016_EF_current_original_database_val", "ex_042_016_EF_current_original_database_val\ex_042_016_EF_current_original_database_val.csproj", "{807E7B86-579E-490A-A39A-4D16E47227CE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_016_EF_current_original_database_val", "p07_Persistance\ex_042_016_EF_current_original_database_val\ex_042_016_EF_current_original_database_val.csproj", "{807E7B86-579E-490A-A39A-4D16E47227CE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_017_EF_concurrency_problematic", "ex_042_017_EF_concurrency_problematic\ex_042_017_EF_concurrency_problematic.csproj", "{2689FFD2-D8A6-489A-B46E-B6F72F6CB685}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_017_EF_concurrency_problematic", "p07_Persistance\ex_042_017_EF_concurrency_problematic\ex_042_017_EF_concurrency_problematic.csproj", "{2689FFD2-D8A6-489A-B46E-B6F72F6CB685}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_018_EF_concurrency_databaseWins", "ex_042_018_EF_concurrency_databaseWins\ex_042_018_EF_concurrency_databaseWins.csproj", "{9CBAF690-C1F4-4B4D-9B6C-E4B2D93D6E25}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_018_EF_concurrency_databaseWins", "p07_Persistance\ex_042_018_EF_concurrency_databaseWins\ex_042_018_EF_concurrency_databaseWins.csproj", "{9CBAF690-C1F4-4B4D-9B6C-E4B2D93D6E25}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_019_EF_concurrency_clientWins", "ex_042_019_EF_concurrency_clientWins\ex_042_019_EF_concurrency_clientWins.csproj", "{D94D2B80-E47F-4C5A-88ED-E966D721C597}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_019_EF_concurrency_clientWins", "p07_Persistance\ex_042_019_EF_concurrency_clientWins\ex_042_019_EF_concurrency_clientWins.csproj", "{D94D2B80-E47F-4C5A-88ED-E966D721C597}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_020_EF_concurrency_customDbProp", "ex_042_020_EF_concurrency_customDbProp\ex_042_020_EF_concurrency_customDbProp.csproj", "{30E1796C-8FDA-42B6-BC30-C3F83664BC70}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_020_EF_concurrency_customDbProp", "p07_Persistance\ex_042_020_EF_concurrency_customDbProp\ex_042_020_EF_concurrency_customDbProp.csproj", "{30E1796C-8FDA-42B6-BC30-C3F83664BC70}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_021_EF_concurrency_customObjects", "ex_042_021_EF_concurrency_customObjects\ex_042_021_EF_concurrency_customObjects.csproj", "{FF4A8FD0-7E2D-469D-B080-4C885CBBE227}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_021_EF_concurrency_customObjects", "p07_Persistance\ex_042_021_EF_concurrency_customObjects\ex_042_021_EF_concurrency_customObjects.csproj", "{FF4A8FD0-7E2D-469D-B080-4C885CBBE227}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_005_pattern_matching", "ex_008_005_pattern_matching\ex_008_005_pattern_matching.csproj", "{D1C02BFB-DA1E-4E9C-8236-BF5CC3C23F06}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_008_005_pattern_matching", "p02_Fondamentaux\ex_008_005_pattern_matching\ex_008_005_pattern_matching.csproj", "{D1C02BFB-DA1E-4E9C-8236-BF5CC3C23F06}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_008_deconstruction", "ex_014_008_deconstruction\ex_014_008_deconstruction.csproj", "{33CE1C87-3C57-48B8-A96E-FBF048BE65B8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_014_008_deconstruction", "p03_POO\ex_014_008_deconstruction\ex_014_008_deconstruction.csproj", "{33CE1C87-3C57-48B8-A96E-FBF048BE65B8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_006_local_functions", "ex_016_006_local_functions\ex_016_006_local_functions.csproj", "{C67D6972-67D5-4AB8-84FA-CF7F8C7BD3E6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_016_006_local_functions", "p03_POO\ex_016_006_local_functions\ex_016_006_local_functions.csproj", "{C67D6972-67D5-4AB8-84FA-CF7F8C7BD3E6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "chap036_Reflection", "chap036_Reflection", "{CC07C89A-B410-4112-8686-A297FC0D34A8}"
ProjectSection(SolutionItems) = preProject
ex_036_001_Reflection\README.md = ex_036_001_Reflection\README.md
p06_MoreAdvancedCSharp\ex_036_001_Reflection\README.md = p06_MoreAdvancedCSharp\ex_036_001_Reflection\README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{3DE71730-143F-4835-A6B3-E501910EA94C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_036_001_Mammifere", "ex_036_001_Reflection\Solution\MammifereDll\ex_036_001_Mammifere.csproj", "{08D87D16-A9ED-42BC-8AF5-31AF9999AEF2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_036_001_Mammifere", "p06_MoreAdvancedCSharp\ex_036_001_Reflection\Solution\MammifereDll\ex_036_001_Mammifere.csproj", "{08D87D16-A9ED-42BC-8AF5-31AF9999AEF2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_036_001_ChatChienOiseau", "ex_036_001_Reflection\Solution\ChatChienOiseauDll\ex_036_001_ChatChienOiseau.csproj", "{FAA3150B-7230-4578-8CC0-775EDE947E7D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_036_001_ChatChienOiseau", "p06_MoreAdvancedCSharp\ex_036_001_Reflection\Solution\ChatChienOiseauDll\ex_036_001_ChatChienOiseau.csproj", "{FAA3150B-7230-4578-8CC0-775EDE947E7D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_036_001_Reflection", "ex_036_001_Reflection\Solution\Applications\ex_036_001_Reflection.csproj", "{3F4AF8F0-63C2-4226-BA8C-3D9992EB59C5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_036_001_Reflection", "p06_MoreAdvancedCSharp\ex_036_001_Reflection\Solution\Applications\ex_036_001_Reflection.csproj", "{3F4AF8F0-63C2-4226-BA8C-3D9992EB59C5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "p09_Concurrency_Asynchrony", "p09_Concurrency_Asynchrony", "{BDF03223-D979-47B4-A693-6559EBE17452}"
EndProject
@ -463,57 +463,57 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "chap051_Tâches", "chap051_
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "chap052_Fonctions_Asynchrones", "chap052_Fonctions_Asynchrones", "{7FDA2D7D-5385-485D-B8B5-60727583D6ED}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_001_CreatingAThread", "ex_050_001_CreatingAThread\ex_050_001_CreatingAThread.csproj", "{2EF54F59-E378-4484-AD57-E59F56574A8B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_001_CreatingAThread", "p09_Concurrency_Asynchrony\ex_050_001_CreatingAThread\ex_050_001_CreatingAThread.csproj", "{2EF54F59-E378-4484-AD57-E59F56574A8B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_002_attendre_un_thread", "ex_050_002_attendre_un_thread\ex_050_002_attendre_un_thread.csproj", "{B862E8C4-1FDA-4BAB-88AA-8A34079EDC03}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_002_attendre_un_thread", "p09_Concurrency_Asynchrony\ex_050_002_attendre_un_thread\ex_050_002_attendre_un_thread.csproj", "{B862E8C4-1FDA-4BAB-88AA-8A34079EDC03}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_004_cadenas_et_sécurité", "ex_050_004_cadenas_et_sécurité\ex_050_004_cadenas_et_sécurité.csproj", "{D4BCD689-EFE5-47BC-8464-118474E9BD70}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_004_cadenas_et_sécurité", "p09_Concurrency_Asynchrony\ex_050_004_cadenas_et_sécurité\ex_050_004_cadenas_et_sécurité.csproj", "{D4BCD689-EFE5-47BC-8464-118474E9BD70}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_003_Variables_locales_et_partagées_entre_threads", "ex_050_003_Variables_locales_et_partagées_entre_threads\ex_050_003_Variables_locales_et_partagées_entre_threads.csproj", "{13480CAD-7241-453C-A373-A8D026A1075F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_003_Variables_locales_et_partagées_entre_threads", "p09_Concurrency_Asynchrony\ex_050_003_Variables_locales_et_partagées_entre_threads\ex_050_003_Variables_locales_et_partagées_entre_threads.csproj", "{13480CAD-7241-453C-A373-A8D026A1075F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_005_passage_de_paramètre", "ex_050_005_passage_de_paramètre\ex_050_005_passage_de_paramètre.csproj", "{E2524F75-0989-46CB-B7B3-4F10388E3B90}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_005_passage_de_paramètre", "p09_Concurrency_Asynchrony\ex_050_005_passage_de_paramètre\ex_050_005_passage_de_paramètre.csproj", "{E2524F75-0989-46CB-B7B3-4F10388E3B90}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_006_gestion_des_exceptions", "ex_050_006_gestion_des_exceptions\ex_050_006_gestion_des_exceptions.csproj", "{799A6DE0-81C5-4FFC-8541-8B2B1C5BE525}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_006_gestion_des_exceptions", "p09_Concurrency_Asynchrony\ex_050_006_gestion_des_exceptions\ex_050_006_gestion_des_exceptions.csproj", "{799A6DE0-81C5-4FFC-8541-8B2B1C5BE525}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_007_Foreground_vs_Background", "ex_050_007_Foreground_vs_Background\ex_050_007_Foreground_vs_Background.csproj", "{3290AAEB-342A-43EB-9421-70E924938470}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_007_Foreground_vs_Background", "p09_Concurrency_Asynchrony\ex_050_007_Foreground_vs_Background\ex_050_007_Foreground_vs_Background.csproj", "{3290AAEB-342A-43EB-9421-70E924938470}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_008_Priorité", "ex_050_008_Priorité\ex_050_008_Priorité.csproj", "{F97F0481-0715-4C22-A33B-355DCB925CB5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_008_Priorité", "p09_Concurrency_Asynchrony\ex_050_008_Priorité\ex_050_008_Priorité.csproj", "{F97F0481-0715-4C22-A33B-355DCB925CB5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_009_notifications_entre_threads", "ex_050_009_signalisation\ex_050_009_notifications_entre_threads.csproj", "{826067E7-2B1E-4D0D-8961-F34777B35EF3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_009_notifications_entre_threads", "p09_Concurrency_Asynchrony\ex_050_009_signalisation\ex_050_009_notifications_entre_threads.csproj", "{826067E7-2B1E-4D0D-8961-F34777B35EF3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_011_ThreadPool", "ex_050_011_ThreadPool\ex_050_011_ThreadPool.csproj", "{9932461D-5B8B-419B-9DD4-48EB2D787193}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_050_011_ThreadPool", "p09_Concurrency_Asynchrony\ex_050_011_ThreadPool\ex_050_011_ThreadPool.csproj", "{9932461D-5B8B-419B-9DD4-48EB2D787193}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_001_Démarrer_une_tâche", "ex_051_001_Démarrer_une_tâche\ex_051_001_Démarrer_une_tâche.csproj", "{9A05B53E-2920-40E0-A077-8BE62F708853}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_001_Démarrer_une_tâche", "p09_Concurrency_Asynchrony\ex_051_001_Démarrer_une_tâche\ex_051_001_Démarrer_une_tâche.csproj", "{9A05B53E-2920-40E0-A077-8BE62F708853}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_002_valeur_de_retour", "ex_051_002_valeur_de_retour\ex_051_002_valeur_de_retour.csproj", "{487644AF-31ED-4047-83B6-C7FA4C3DE487}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_002_valeur_de_retour", "p09_Concurrency_Asynchrony\ex_051_002_valeur_de_retour\ex_051_002_valeur_de_retour.csproj", "{487644AF-31ED-4047-83B6-C7FA4C3DE487}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_003_gestion_exceptions", "ex_051_003_gestion_exceptions\ex_051_003_gestion_exceptions.csproj", "{E6F93D0F-690A-483A-B6D2-10D4AE87B277}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_003_gestion_exceptions", "p09_Concurrency_Asynchrony\ex_051_003_gestion_exceptions\ex_051_003_gestion_exceptions.csproj", "{E6F93D0F-690A-483A-B6D2-10D4AE87B277}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_004_poursuite_continuations", "ex_051_004_poursuite_continuations\ex_051_004_poursuite_continuations.csproj", "{084D8EC1-52E5-4089-8885-B395AA08CBCE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_004_poursuite_continuations", "p09_Concurrency_Asynchrony\ex_051_004_poursuite_continuations\ex_051_004_poursuite_continuations.csproj", "{084D8EC1-52E5-4089-8885-B395AA08CBCE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_005_TaskCompletionSource", "ex_051_005_TaskCompletionSource\ex_051_005_TaskCompletionSource.csproj", "{DE27FDF7-9897-46FF-9224-8518BA7EF9A3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_005_TaskCompletionSource", "p09_Concurrency_Asynchrony\ex_051_005_TaskCompletionSource\ex_051_005_TaskCompletionSource.csproj", "{DE27FDF7-9897-46FF-9224-8518BA7EF9A3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_006_TaskDelay", "ex_051_006_TaskDelay\ex_051_006_TaskDelay.csproj", "{94183470-4199-4B94-AA49-8C6E5F1631FD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_051_006_TaskDelay", "p09_Concurrency_Asynchrony\ex_051_006_TaskDelay\ex_051_006_TaskDelay.csproj", "{94183470-4199-4B94-AA49-8C6E5F1631FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_001_problématique", "ex_052_001_problématique\ex_052_001_problématique.csproj", "{25DAC275-3CCC-4B80-8E02-8186E08C75B5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_001_problématique", "p09_Concurrency_Asynchrony\ex_052_001_problématique\ex_052_001_problématique.csproj", "{25DAC275-3CCC-4B80-8E02-8186E08C75B5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_002_problématique_2", "ex_052_002_problématique_2\ex_052_002_problématique_2.csproj", "{D218C29A-99BA-4CCC-9EDB-5E752CDF3358}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_002_problématique_2", "p09_Concurrency_Asynchrony\ex_052_002_problématique_2\ex_052_002_problématique_2.csproj", "{D218C29A-99BA-4CCC-9EDB-5E752CDF3358}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_003_problématique_3", "ex_052_003_problématique_3\ex_052_003_problématique_3.csproj", "{A47E4219-04A2-40F5-9854-E8C52C86E584}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_003_problématique_3", "p09_Concurrency_Asynchrony\ex_052_003_problématique_3\ex_052_003_problématique_3.csproj", "{A47E4219-04A2-40F5-9854-E8C52C86E584}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_004_problématique_4", "ex_052_004_problématique_4\ex_052_004_problématique_4.csproj", "{F97AEBCB-1EB8-4051-8A0E-3CEF901563DE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_004_problématique_4", "p09_Concurrency_Asynchrony\ex_052_004_problématique_4\ex_052_004_problématique_4.csproj", "{F97AEBCB-1EB8-4051-8A0E-3CEF901563DE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_005_problématique_5", "ex_052_005_problématique_5\ex_052_005_problématique_5.csproj", "{FCF76081-776E-4C3E-A434-E697D57C3D2A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_052_005_problématique_5", "p09_Concurrency_Asynchrony\ex_052_005_problématique_5\ex_052_005_problématique_5.csproj", "{FCF76081-776E-4C3E-A434-E697D57C3D2A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "p12_autres...", "p12_autres...", "{C4385771-4731-42DA-8889-2087828D5FCE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HtmlDecode", "HtmlDecode\HtmlDecode.csproj", "{AAD4491F-7CF7-4581-8AF5-FBB0CEA6EA23}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_011_EF_CF_Many_to_Many_FluentAPI", "ex_042_011_EF_CF_Many_to_Many_FluentAPI\ex_042_011_EF_CF_Many_to_Many_FluentAPI.csproj", "{4F8FDCA9-D98C-4137-BD14-C255506209B0}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_011_EF_CF_Many_to_Many_FluentAPI", "p07_Persistance\ex_042_011_EF_CF_Many_to_Many_FluentAPI\ex_042_011_EF_CF_Many_to_Many_FluentAPI.csproj", "{4F8FDCA9-D98C-4137-BD14-C255506209B0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_012_EF_CF_Many_to_Many_procurators", "ex_042_012_EF_CF_Many_to_Many_procurators\ex_042_012_EF_CF_Many_to_Many_procurators.csproj", "{A14CDD6E-3E6E-4E7A-9277-3F00C0F658FD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_012_EF_CF_Many_to_Many_procurators", "p07_Persistance\ex_042_012_EF_CF_Many_to_Many_procurators\ex_042_012_EF_CF_Many_to_Many_procurators.csproj", "{A14CDD6E-3E6E-4E7A-9277-3F00C0F658FD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ex_050_010_Threading_en_UWP", "ex_050_010_Threading_en_UWP\ex_050_010_Threading_en_UWP.csproj", "{0D922BCD-7C0F-43FF-A015-F547716B8284}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ex_050_010_Threading_en_UWP", "p09_Concurrency_Asynchrony\ex_050_010_Threading_en_UWP\ex_050_010_Threading_en_UWP.csproj", "{0D922BCD-7C0F-43FF-A015-F547716B8284}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "chap041_EF_Fundamentals", "chap041_EF_Fundamentals", "{56C5A51B-16E9-4F93-9C32-8F91710391E8}"
EndProject

File diff suppressed because it is too large Load Diff

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>HtmlDecode</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>HtmlDecode</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion>6.0.6</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>

@ -1,31 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-21
//
// ========================================================================
// le point d'entrée d'une application Console est la fonction Main (statique) d'une classe quelconque
// que Visual Studio nomme par défaut Program, et qu'il place automatiquement dans l'espace de noms
// portant le même nom que le projet. Vous pouvez changer le nom de la classe et l'espace de noms.
namespace ex_003_001_Main
{
class Program
{
/// <summary>
/// En C#, tous les objets dérivent de la classe object, et tout est objet.
/// En conséquence, la fonction Main doit être dans une classe (ici la classe Program).
/// La fonction Main est le point d'entrée du programme. Elle est statique pour pouvoir
/// être appelée sans que Program soit instancié. Ce n'est pas important si ceci n'est pas
/// encore clair pour vous, à ce moment-là du cours.
/// </summary>
static void Main()
{
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_003_001_Main</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_003_001_Main</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,27 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-21
//
// ========================================================================
//Ici, nous avons besoin de using System; car la classe Console est dans l'espace de noms System.
using System;
using static System.Console;
//Ce programme affiche "Coucou le monde !" dans la console.
namespace ex_003_002_Main_HelloWorld
{
class Program
{
//aucun argument
static void Main()
{
WriteLine("Coucou le monde !");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_003_002_Main_HelloWorld</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_003_002_Main_HelloWorld</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,41 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-21
//
// ========================================================================
using System;
using static System.Console;
namespace ex_003_003_Main_arguments
{
class Program
{
//les arguments sont passés dans un tableau de chaîne de caractères
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
WriteLine("Coucou le monde !");
//on peut en savoir le nombre en utilisant la propriété Length
//ici, {0} sera remplacé par la valeur de args.Length
WriteLine($"Vous avez passé {args.Length} argument(s).");
WriteLine("Voici les arguments que vous avez passés :");
//foreach permet de parcourir les éléments de ce tableau d'arguments
foreach (string arg in args)
{
// \t permet d'insérer une tabulation
//ici, {0} sera remplacé par la valeur de arg
WriteLine($"\t{arg}");
}
}
}
}

@ -1,8 +0,0 @@
{
"profiles": {
"ex_003_003_Main_arguments": {
"commandName": "Project",
"commandLineArgs": "I love C# and .NET Core"
}
}
}

@ -1,19 +0,0 @@
## How to change the arguments passed to the Main method?
##### Method 1:
- Access the properties of the project (right click on the Project file -> Properties).
- Access the debug tab
- You can now change the application arguments!
##### Method 2:
- Change the launchSettings.json file in Properties under the project file
- to (for instance):
``` json
{
"profiles": {
"ex_003_003_Main_arguments": {
"commandName": "Project",
"commandLineArgs": "I love C# and .NET Core"
}
}
}
```

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_003_003_Main_arguments</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_003_003_Main_arguments</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,103 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-21
//
// ========================================================================
using System;
using static System.Console;
using static System.Text.Encoding;
namespace ex_003_004_Console
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = UTF8;
WriteLine("Voici un exemple d'utilisation de la console");
//utilisation de Write, qui écrit dans la Console, mais ne va pas à la ligne
Write("Avec Write, je ne vais pas à la ligne, ");
//WriteLine, écrit dans la Console, puis va à la ligne
WriteLine("mais avec Write Line, si.");
//toutes les variables peuvent être transformées en chaîne de caractères,
//car chaque type possède une méthode ToString() qui le transforme en chaîne de caractères.
//Dans le cas des types que vous créerez vous-même, vous devrez écrire cette méthode ToString,
//car la méthode par défaut ne vous conviendra pas souvent.
//Dans le cas des types .NET, vous pouvez l'utiliser directement, car elle toujours réécrite.
//Lorsque vous voulez afficher une variable dans la Console à l'aide de Write ou WriteLine,
//vous pouvez appeler explicitement ce ToString, ou ne rien faire, dans ce cas, ToString est appelée
//de manière implicite.
WriteLine("Je peux aussi écrire le contenu de variables : ");
int a = 2;
//les deux lignes suivantes font exactement la même chose (la première est juste plus simple)
WriteLine(a);
WriteLine(a.ToString());
int b = 3;
int c = a + b;
//dans la ligne suivante, le compilateur fait a.ToString() + " + " b.ToString() + " = " + c.ToString()
//car il commence par le premier + : a + " + "
//Lorsque le compilateur cherche à ajouter un entier à une chaîne de caractères, il transforme l'entier en chaîne de caractères
//puis concatène les deux.
//Il obtient donc la chaîne de caractères "2 + ", puis passe à la seconde opération : une chaîne de caractères + un entier
//Il transforme donc l'entier en chaîne de caractères et les concatène, etc...
WriteLine(a + " + " + b + " = " + c);
//Autre manière plus simple de l'écrire, et plus efficace, en utilisant un string.Format implicite
//(qui sera présenté plus tard)
WriteLine("{0} + {1} = {2}", a, b, c);
//ou encore depuis C#6 :
WriteLine($"{a} + {b} = {c}");
//à partir de ce que vous avez vu dans l'exemple précédent, essayez de déterminer le résultat des affichages suivants :
WriteLine("petit truc marrant :");
WriteLine(a + b + " = Somme");
WriteLine("Somme = " + a + b);
//le premier donne "5 = Somme" et le deuxième donne "Somme = 23"
//Dans le premier cas, le compilateur s'occupe du premier + : a + b
//a et b sont deux entiers, il ajoute donc deux entiers : 2 + 3 = 5
//puis il ajoute un entier (5) et une chaîne de caractères " = Somme"
//Il transforme donc l'entier en chaîne de caractères puis les concatène : "5 = Somme"
//Dans le deuxième cas, il ajoute d'abord une chaîne de caractères "Somme = " et un entier a
//Il transforme donc l'entier en chaîne de caractères et les concatène, soit "Somme = " + "2" = "Somme = 2"
//Il ajoute ensuite une chaîne de caractères "Somme = 2" et un entier b
//Il transforme donc l'entier en chaîne de caractères "3" et les concatène : "Somme = 2" + "3" = "Somme = 23"
WriteLine("Ecrivez du texte puis appuyez sur Entrée");
//pour lire le texte entré par l'utilisateur
string s = ReadLine(); //lit jusqu'à l'appui sur ENTREE
WriteLine($"Vous avez écrit : {s}");
//attend l'appui sur une touche
ReadKey(true);
//on peut changer la couleur de fond
BackgroundColor = ConsoleColor.DarkBlue;
//on peut changer la couleur du texte
ForegroundColor = ConsoleColor.Yellow;
WriteLine("sympa mais vite illisible :)");
//on peut faire des beep
Beep();
//on peut obtenir des informations sur la Console, comme sa taille par exemple
WriteLine($"La fenêtre Console mesure {WindowHeight} caractères de haut et {WindowWidth} caractères de large");
//On peut effacfer le contenu de la Console avec Clear
WriteLine("Appuyez sur une touche pour effacer le contenu de la Console");
ReadKey(true);
Clear();
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_003_004_Console</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_003_004_Console</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,79 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
// Mise à jour : 2017-10-03
//
// ========================================================================
using static System.Console;
using static System.Text.Encoding;
namespace ex_004_001_TypesNumeriques
{
class Program
{
/// <summary>
/// Dans cet exemple, plusieurs variables de différents types sont présentées. Notez qu'un constante
/// de type float nécessite un f pour être différenciée d'un double
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
OutputEncoding = UTF8;
//types entiers
byte b; //variable codée sur un octet (n'importe quelle valeur entre 0 et 255)
sbyte sb; //variable codée sur un octet mais signée (n'importe quelle valeur entre -128 et 127)
short sh; //entier signé sur 16 bits. de -32768 à 32767 (automatiquement converti en int pendant une opération arithmétique)
ushort ush; //idem short, mais non signé : de 0 à 65535
int i; //entier codé sur 32 bits.
i = 10;
uint ui; //entier non signé codé sur 32 bits.
long l; //entier signé codé sur 64 bits.
l = 10L;
ulong ul; //entier non signé codé sur 64 bits.
//types réels
float f; //codé sur 32 bits
f = 4.5f;
double d; //codé sur 64 bits
d = 4.5;
decimal dec; //codé sur 128 bits, spécialement créé pour les applications financières. Plus précis mais 10 fois plus lent.
dec = 1.2m;
//le qualificatif const permet de garantir qu'une "variable" ne sera pas modifiée
const int ci = 3;
//membres des types numériques
WriteLine($"int.MinValue = {int.MinValue}");
WriteLine($"int.MaxValue = {int.MaxValue}");
WriteLine($"float.MinValue = {float.MinValue}");
WriteLine($"float.MaxValue = {float.MaxValue}");
WriteLine($"float.Epsilon = {float.Epsilon}");
WriteLine($"float.NegativeInfinity = {float.NegativeInfinity}");
WriteLine($"float.PositiveInfinity = {float.PositiveInfinity}");
//valeurs par défaut :
//numerique : 0
//Depuis C# 7.0, il y a eu quelques améliorations dans l'écriture des constantes numériques :
// - on peut maintenant utiliser l'underscore _ pour améliorer la lisibilité des grands nombres :
d = 123_456_789;
WriteLine(d);
// - on peut également l'utiliser sur les valeurs en hexadécimal :
d = 0x7_5B_CD_15;
WriteLine(d);
// - et également sur les nombres en binaire, ce qui peut éviter d'avoir à apprendre le nombre en hexadécimal :)
d = 0b111_0101_1011_1100_1101_0001_0101;
WriteLine(d);
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_001_TypesNumeriques</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_001_TypesNumeriques</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,99 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_002_Math
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//constantes de la classe Math :
WriteLine($"CONSTANTES DE LA CLASSE MATH");
//epsilon
WriteLine($"E(e) : {Math.E}");
//PI
WriteLine($"Pi : {Math.PI}");
WriteLine();
//méthodes pour arrondir
WriteLine($"METHODES POUR ARRONDIR");
//arrondir
WriteLine($"Arrondir 1,9876 à 2 chiffres après la virgule : {Math.Round(1.9876, 2)}");
//tronquer
WriteLine($"Partie entière de 1,9876 : {Math.Truncate(1.9876)}");
//plus grand entier inférieur
WriteLine($"Plus grand entier inférieur de 1,9876 : {Math.Floor(1.9876)}");
//plus petit entier supérieur
WriteLine($"Plus petit entier supérieur de 1,9876 : {Math.Ceiling(1.9876)}");
WriteLine();
//calcul de maximums et minimums
WriteLine($"maximum entre 6 et 4 : {Math.Max(6, 4)}");
WriteLine($"minimum entre 6 et 4 : {Math.Min(6, 4)}");
WriteLine($"maximum entre 6, 4 et 5 : {Math.Max(Math.Max(6, 4), 5)}"); //on peut faire mieux avec LINQ et les collections
WriteLine();
//signes et valeurs absolues
WriteLine($"valeur absolue de -4,567 : {Math.Abs(-4.567)}");
WriteLine($"signe de -4.567 : {Math.Sign(-4.567)}");
WriteLine();
//racines carrées, puissances, exponentielles et logarithmes
WriteLine($"Racine carrée de 625 : {Math.Sqrt(625)}");
WriteLine($"8 à la puissance 3 : {Math.Pow(8, 3)}");
WriteLine($"exponentielle de 1 (Exp(1)) : {Math.Exp(1)}");
WriteLine($"logarithme népérien de e (ln(e)) : {Math.Log(Math.E)}");
WriteLine($"logarithme décimal de 10 (log(10)) : {Math.Log10(10)}");
WriteLine();
//trigonométrie
WriteLine($"sin(pi/2) : {Math.Sin(Math.PI / 2)}");
WriteLine($"cos(pi/2) : {Math.Cos(Math.PI / 2)}");
WriteLine($"tan(pi/2) : {Math.Tan(Math.PI / 2)}");
//il existe aussi : le sinus hyperbolique (Sinh), le cosinus hyperbolique (Cosh), la tangente hyperbolique (Tanh)
// arcsinus (Asin), arccosinus (Acos) et arctan (Atan)
WriteLine();
//autres exemples :
WriteLine($"exp(e) = {Math.Exp(Math.E)}");
WriteLine($"ln(exp(1)) = {Math.Log(Math.Exp(1))}");
WriteLine($"sqrt(|cos(1)|) = {Math.Sqrt(Math.Abs(Math.Cos(1)))}");
WriteLine();
//L'assemblage System.Numerics.dll introduit également deux nouvelles classes :
// BigInteger : un très grand entier sans perte de précision
// Complex : une structure représentant un nombre complexe
System.Numerics.BigInteger carlos = System.Numerics.BigInteger.Pow(2, 200);
WriteLine($"2 à la puissance 200 :\n{carlos}");
System.Numerics.Complex complex = new System.Numerics.Complex(2, 3);
System.Numerics.Complex complex2 = new System.Numerics.Complex(-5, 2);
WriteLine($"Partie réelle de complex : {complex.Real} / partie imaginaire de complex : {complex.Imaginary}");
//les opérateurs sont réécrits pour les nombres complexes
System.Numerics.Complex complex3 = complex + complex2;
WriteLine($"(2 + 3i) + (-5 + 2i) = ({complex3.Real} + {complex3.Imaginary}i)");
complex3 = System.Numerics.Complex.Conjugate(complex);
WriteLine($"conjugué de (2 + 3i) = ({complex3.Real} + {complex3.Imaginary}i)");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_002_Math</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_002_Math</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,47 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_003_Random
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//juste pour que la fenêtre soit plus large et que le texte soit en conséquence plus lisible
WindowWidth += 5;
//Random crée une suite de nombre aléatoires en fonction d'une graine (seed)
Random rdm1 = new Random(); //utilise l'heure actuelle pour créer le seed automatiquement
//si vous relancez plusieurs fois le programme, le nombre va changer car l'heure varie.
WriteLine($"rdm1 : {rdm1.Next(20)} {rdm1.Next(20)} {rdm1.Next(20)} {rdm1.Next(20)} {rdm1.Next(20)}");
WriteLine();
//utilise le seed donné en paramètre
//la suite de nombres est donc toujours la même
//si vous relancez plusieurs fois le programme, vous aurez toujours la même suite de nombres.
//ce peut être utile pour recréer les mêmes conditions lors d'un debug
Random rdm2 = new Random(102394753);
WriteLine($"rdm2 : {rdm2.Next(20)} {rdm2.Next(20)} {rdm2.Next(20)} {rdm2.Next(20)} {rdm2.Next(20)}");
//différentes façons d'utiliser la classe Random
WriteLine($"rdm1.Next() retourne un nombre entier aléatoire non négatif :\n{rdm1.Next()}\n");
WriteLine($"rdm1.Next(20) retourne un nombre entier aléatoire dans l'intervalle [0;20[ :\n{rdm1.Next(20)}\n");
WriteLine($"rdm1.Next(5,20) retourne un nombre entier aléatoire dans l'intervalle [5;20[ :\n{rdm1.Next(5, 20)}\n");
WriteLine($"rdm1.NextDouble() retourne un nombre réel aléatoire dans l'intervalle [0.0;1.0[ :\n{rdm1.NextDouble()}\n");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_003_Random</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_003_Random</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,31 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using static System.Console;
namespace ex_004_004_TypeBool
{
class Program
{
static void Main(string[] args)
{
//type booléen
bool boolean; //true ou false
boolean = true;
WriteLine($"true : {true}");
WriteLine($"false : {false}");
WriteLine($"FalseString : {bool.FalseString}");
WriteLine($"TrueString : {bool.TrueString}");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_004_TypeBool</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_004_TypeBool</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,76 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using static System.Console;
namespace ex_004_005_TypeChar
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//type char
char c; //codé sur 16 bits ( != du C++ ), caractère du système Unicode
c = 'A';
c = '\x41'; //0x41 (ou 65 en décimal) dans Unicode. lettre A
c = (char)65; //idem
c = '\u0041'; //idem
//quelques caractères utiles
c = '\n'; //à la ligne
c = '\t'; //tabulation horizontale
c = '\v'; //tabulation verticale
c = '\\'; //backslash
c = '\''; //single quote
c = '\"'; //double quote
c = '\0'; //null
//quelques membres du type char :
char a = 'A';
char deux = '2';
char virgule = ',';
char blanc = ' ';
//IsDigit : le caractère est-il un chiffre ?
WriteLine($"char.IsDigit('A') ? {char.IsDigit(a)}");
WriteLine($"char.IsDigit('2') ? {char.IsDigit(deux)}");
WriteLine($"char.IsDigit(',') ? {char.IsDigit(virgule)}");
WriteLine($"char.IsDigit(' ') ? {char.IsDigit(blanc)}");
WriteLine();
//IsLetter indique s'il s'agit d'une lettre
WriteLine($"char.IsLetter('A') ? {char.IsLetter(a)}");
WriteLine($"char.IsLetter('2') ? {char.IsLetter(deux)}");
WriteLine($"char.IsLetter(',') ? {char.IsLetter(virgule)}");
WriteLine($"char.IsLetter(' ') ? {char.IsLetter(blanc)}");
//il y a aussi IsLower pour les minuscules, IsUpper pour les majuscules, IsLetterOrDigit pour lettres ou nombres
WriteLine();
//IsPunctuation indique s'il s'agit d'un caractère de ponctuation
WriteLine($"char.IsPunctuation('A') ? {char.IsPunctuation(a)}");
WriteLine($"char.IsPunctuation('2') ? {char.IsPunctuation(deux)}");
WriteLine($"char.IsPunctuation(',') ? {char.IsPunctuation(virgule)}");
WriteLine($"char.IsPunctuation(' ') ? {char.IsPunctuation(blanc)}");
WriteLine();
//IsWhiteSpace indique s'il s'agit d'un blanc
WriteLine($"char.IsWhiteSpace('A') ? {char.IsWhiteSpace(a)}");
WriteLine($"char.IsWhiteSpace('2') ? {char.IsWhiteSpace(deux)}");
WriteLine($"char.IsWhiteSpace(',') ? {char.IsWhiteSpace(virgule)}");
WriteLine($"char.IsWhiteSpace(' ') ? {char.IsWhiteSpace(blanc)}");
WriteLine();
//ToUpper et ToLower convertisse en majuscules ou en minuscules.
WriteLine($"char.ToLower('A') = {char.ToLower('A')}");
WriteLine($"char.ToUpper('a') = {char.ToUpper('a')}");
WriteLine($"char.ToUpper('é') = {char.ToUpper('é')}");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_005_TypeChar</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_005_TypeChar</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,72 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_006_TimeSpan_et_DateTime
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//TimeSpan
//construction d'une durée à partir d'un constructeur
TimeSpan durée_d_un_cours = new TimeSpan(1, 50, 00);
//construction d'une durée à partir d'un nombre de minutes (ou heures, ou secondes...)
TimeSpan retard = TimeSpan.FromMinutes(21.20);
//opération (addition, soustraction) de durées
TimeSpan durée_du_cours_aujourd_hui = durée_d_un_cours + retard;
//durée nulle
TimeSpan durée_nulle = TimeSpan.Zero;
//affichage d'une durée
WriteLine($"Le cours d'aujourd'hui est de {durée_d_un_cours} + {retard} de retard = {durée_du_cours_aujourd_hui}");
WriteLine();
//DateTime
//construction d'un DateTime
DateTime débutDeJazzEnTete2012 = new DateTime(2012, 10, 23, 20, 00, 00);
DateTime finDeJazzEnTete2012 = new DateTime(2012, 10, 27, 23, 59, 00);
//soustraction de DateTime
TimeSpan duréeDeJazzEnTete2012 = finDeJazzEnTete2012.Subtract(débutDeJazzEnTete2012);
//affichage de DateTime
WriteLine($"Le festival jazz en tête a duré : {duréeDeJazzEnTete2012}");
WriteLine($"Le festival jazz en tête a duré : {duréeDeJazzEnTete2012.Days} jours et {duréeDeJazzEnTete2012.Hours} heures");
WriteLine($"Le festival jazz en tête a duré : {duréeDeJazzEnTete2012.Days} jours et {Math.Round(duréeDeJazzEnTete2012.TotalHours - (duréeDeJazzEnTete2012.Days * 24))} heures");
//on peut ajouter ou soustraire du temps à 1 DateTime
DateTime débutDernierConcert = finDeJazzEnTete2012 - TimeSpan.FromHours(4);
//autre solution équivalente
débutDernierConcert = finDeJazzEnTete2012.Subtract(TimeSpan.FromHours(4));
WriteLine($"Le dernier concert de Jazz en Tete commence le : {débutDernierConcert.ToString("dd/MM/yyy")} à {débutDernierConcert.ToString("hh:mm")}");
WriteLine();
//gestion des décalages horaires
DateTime début_de_la_finale_de_l_USOpen = new DateTime(2010, 09, 13, 20, 00, 00, DateTimeKind.Utc);
WriteLine($"La finale commencera : {début_de_la_finale_de_l_USOpen.ToLocalTime().ToString("f")} chez nous");
WriteLine($"La finale commencera : {(début_de_la_finale_de_l_USOpen - TimeSpan.FromHours(4)).ToString("g")} à New York");
WriteLine();
//on peut parser une chaîne de caractères !
string date_réjouissances = "jeudi 29 septembre 2011 13:30";
WriteLine("Convertir jeudi 29 septembre 2011 13:30 en DateTime ? oui bien sûr !");
DateTime réjouissances = DateTime.Parse(date_réjouissances);
WriteLine(réjouissances);
//la date et l'heure actuelles (au moment de l'exécution de la ligne)
//est donnée par :
DateTime maintenant = DateTime.Now;
WriteLine($"Maintenant : {maintenant}");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_006_TimeSpan_et_DateTime</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_006_TimeSpan_et_DateTime</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,41 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
namespace ex_004_007_DureeDeVie
{
class Program
{
static void Main(string[] args)
{
int a = 2;//la pile contient ... a
int b = 3;//la pile contient ... a b
float f = 10;//la pile contient ... a b f
{
int c = a + b; //la pile contient ... a b f c
f /= c; //f est modifié, la pile contient ... a b f c
}//c meurt ici, la pile contient ... a b f
TimeSpan ts = TimeSpan.FromHours(2); //la pile contient ... a b f ts
{
TimeSpan ts2 = ts - TimeSpan.FromHours(1); //la pile contient ... a b f ts ts2
}//ts2 meurt ici, la pile contient ... a b f ts
}//a, b, f, ts meurent ici, la pile contient ...
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_007_DureeDeVie</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_007_DureeDeVie</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,29 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_008_var
{
class Program
{
static void Main(string[] args)
{
//var : mot clé pour déclarer en même temps qu'on initialise une variable
//le type est automatiquement choisi
var var1 = 5; // est équivalent à int var1 = 5;
WriteLine($"le type de var1 est {var1.GetType()}");
var var2 = "coucou"; // est équivalent à string var2 = "coucou";
WriteLine($"le type de var2 est {var2.GetType()}");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_008_var</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_008_var</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,92 +0,0 @@
// ========================================================================
//
// Copyright (C) 2017-2018 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.CSharp7.cs
// Author : Marc Chevaldonné
// Creation date : 2017-09-19
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_009_Tuple
{
partial class Program
{
/// <summary>
/// Le constat sur l'utilisation des Tuples jusqu'à C# 6.0 est le suivant :
/// - l'utilisation des paramètres out (a priori rien à voir avec les Tuples), n'est pas pratique et lourd et ils ne marchent pas avec les méthodes asynchrones
/// - l'utilisation des Tuples est verbeuse et l'allocation est lourde
/// - ceci entraine beaucoup d'écriture de code pour des variables à durée de vie parfois très limitée
///
/// C# 7.0 ajoute donc les types Tuple et des sucres syntaxiques pour améliorer tout ceci ... :
/// </summary>
static void NouveautésCSharp7()
{
//La méthode suivante rend directement trois variables en un "tuple value" : un string, et deux int
//ATTENTION : ceci n'est utilisable que si vous ajoutez le package NuGet System.TupleValue
(string, int, int) NounoursData(Nounours nounours)
{
return (nounours.Nom, nounours.NbPoils, nounours.Naissance.Year);
}
//pour utiliser le résultat de la méthode ci-dessous, vous pouvez tout stocker dans une seule variable var (de type Tuple<string, int, int> ici) :
var test = NounoursData(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
//et accéder aux différentes valeurs avec Item1, Item2, Item3...
WriteLine($"{test.Item1} ; {test.Item2} ; {test.Item3}");
//un des problèmes des Tuples, c'est que Item1, Item2, Item3... ce n'est pas très parlant. On peut donc réécrire la méthode
//de la manière suivante, en donnant un nom aux valeurs de retour :
(string nom, int nbPoils, int annéeDeNaissance) NounoursData2(Nounours nounours)
{
return (nounours.Nom, nounours.NbPoils, nounours.Naissance.Year);
//cette dernière ligne peut aussi s'écrire :
//return (nom: nounours.Nom, nbPoils: nounours.NbPoils, annéeDeNaissance: nounours.Naissance.Year);
//au cas où vous ne calculeriez pas les éléments dans le bon ordre
}
//l'accès aux résultats reste inchangé :
var test2 = NounoursData2(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
//par contre, on n'utilise plus Item1, Item2, Item3, mais les noms utilisés en retour de la méthode (ici nom, nbPoils et annéeDeNaissance)
WriteLine($"{test2.nom} ; {test2.nbPoils} ; {test2.annéeDeNaissance}");
//notez que les noms n'ont pas d'autre intérêt que de simplifier l'utilisation. C'est le type des éléments des Tuples qui permet de comparer deux Tuples.
//DECONSTRUCTION
//La deconstruction est une syntaxe pour diviser un tuple (ou un autre type) en ses différents éléments en de nouvelles variables individuelles
//ci-dessous, au lieu de stocker le retour de la méthode NounoursData précédente dans un Tuple, on le stocker dans une Tuple "déconstruit"
(string nom, int nbPoils, int année) = NounoursData(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
WriteLine($"{nom} ; {nbPoils} ; {année}");
//on peut aussi utiliser var comme d'habitude
(var nom2, var nbPoils2, var année2) = NounoursData(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
WriteLine($"{nom2} ; {nbPoils2} ; {année2}");
//ou bien utiliser var devant le tuple literal
var (nom3, nbPoils3, année3) = NounoursData(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
WriteLine($"{nom3} ; {nbPoils3} ; {année3}");
//ou encore déconstruire dans des variables existantes :
string nom4;
int nbPoils4, année4;
(nom4, nbPoils4, année4) = NounoursData(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
WriteLine($"{nom4} ; {nbPoils4} ; {année4}");
//Notez qu'on peut déconstruire autre chose que des Tuples (cf. ex_
}
}
class Nounours
{
public string Nom { get; set; }
public int NbPoils { get; set; }
public DateTime Naissance { get; set; }
public override string ToString()
{
return $"{Nom} a {NbPoils} poils et est né en {Naissance.Year}";
}
}
}

@ -1,61 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-01
// Updated : 2017-09-19
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_009_Tuple
{
partial class Program
{
/// <summary>
/// la classe Tuple est générique (voir chapitre 22) et permet de stocker plusieurs références ou valeurs de différents types.
/// Tuple est notamment très pratique pour avoir plusieurs retours de méthodes.
/// Tuple possède des propriétés (voir chapitre 16) en lecture seule permettant d'accéder aux différents éléments du Tuple.
/// Par exemple, si on déclare Tuple<string, int, float>, alors Item1 permet d'accéder au string, Item2 à l'int, Item3 au float.
///
/// Les Tuples sont des types "valeur" et leurs éléments sont publics et mutables. Ils implémentent le protocole d'égalité des types "valeur",
/// i.e. 2 Tuples sont égaux (et ont le même hash code) si et seulement si leurs éléments sont égaux deux à deux (et ont le même hashcode).
/// Ceci rend les Tuples très utiles dans de nombreuses situations. Par exemple :
/// - un dictionnaire avec plusieurs clés : utilisez un tuple comme clef
/// - une liste avec plusieurs valeurs à chaque indice : utilisez un tuple
///
/// Depuis, C#7.0, il y a eu de nombreux ajouts aux Tuples (voir le 2ème fichier : Program.CSharp7.cs)
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
//création d'un Tuple
Tuple<string, int, float> tuple = new Tuple<string, int, float>("ObiWan Kenobi", 4, 3.2f);
Tuple<string, int, float> tuple2 = Tuple.Create("ObiWan Kenobi", 4, 3.2f);
WriteLine($"{tuple.Item1} {tuple.Item2} {tuple.Item3}");
WriteLine();
int a = 3;
var result = DoubleEtTriple(a);
WriteLine($"le double et le triple de {a} sont {result.Item1} et {result.Item2}");
NouveautésCSharp7();
}
/// <summary>
/// une méthode qui rend le double et le triple d'un nombre
/// </summary>
/// <param name="a">nombre à doubler et tripler</param>
/// <returns>le double et le triple du nombre</returns>
static Tuple<int, int> DoubleEtTriple(int a)
{
return Tuple.Create(a * 2, a * 3);
}
}
}

@ -1,15 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_009_Tuple</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_009_Tuple</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
</ItemGroup>
</Project>

@ -1,37 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-01
//
// ========================================================================
using System;
using static System.Console;
namespace ex_004_010_GuidStruct
{
class Program
{
/// <summary>
/// la structure (voir chapitre 20) Guid permet de définir des indentifiants presque uniques.
/// Lorsque vous générez un de ces identifiants, il est très fort probable qu'il soit unique au monde.
/// Il y a 2 puissance 128 Guid différents.
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Guid g = Guid.NewGuid();
WriteLine(g);
Guid g2 = new Guid("{9128de4d-1423-4e08-8ca6-a9effbba1f86}");
Guid g3 = new Guid("9128de4d14234e088ca6a9effbba1f86");
WriteLine(g2 == g3);
WriteLine(Guid.Empty);
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_004_010_GuidStruct</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_004_010_GuidStruct</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,115 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using static System.Console;
namespace ex_005_001_tableaux
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
WindowHeight = LargestWindowHeight;
//DECLARATION ET ALLOCATION DYNAMIQUE DE LA MEMOIRE
int[] tab; //tab est une référence. Ici, on sait juste que tab désignera un tableau d'entiers à 1 dimension. Ce n'est pas ici
//qu'on indique la taille. tab étant une référence, il est alloué sur la pile.
tab = new int[3]; //maintenant on alloue la place en mémoire (ici pour 3 entiers) sur le tas.
// Il s'agit donc d'une allocation dynamique
// en une seule fois :
int[] tab2 = new int[3];
//ALLOCATION DYNAMIQUE ET INITIALISATION EN MEME TEMPS
int[] tab3;
tab3 = new int[] { 1, 2, 3, 4, 5 }; //on peut aussi spécifier directement les valeurs du tableau. Pas la peine donc de donner
//la taille du tableau dans ce cas.
//en une seule fois :
int[] tab4 = { 1, 2, 3, 4, 5 };
//INITIALISATION AUTOMATIQUE
int[] tab4b = new int[5];
WriteLine(tab4b[2]); // les types numériques sont initialisés à 0 automatiquement
bool[] tab4c = new bool[100];
WriteLine(tab4c[53]); // les types bool sont initialisés automatiquement à false
//tous les types références (classes et string par exemple sont initialisés à null)
//LIBERATION DE LA MEMOIRE
//la libération est automatique, on n'appelle pas delete.
//ACCES AUX ELEMENTS DU TABLEAU
//les accès aux cellules du tableau se font comme en C/C++
int a = tab4[0]; //a vaut 1
a = tab4[1];//a vaut 2
a = tab4[2];//a vaut 3
a = tab4[3];//a vaut 4
a = tab4[4];//a vaut 5
//CONTROLE DES ACCES EN DEHORS DU TABLEAU
//les accès en dehors du tableau sont contrôlées par le runtime
// et provoque des exceptions IndexOutOfRangeException
try
{
WriteLine(tab4[5]);
}
catch (IndexOutOfRangeException)
{
WriteLine("tab4[5] a provoqué une exception");
}
//TAILLE DU TABLEAU
//la taille d'un tableau est donnée par la propriété Length
WriteLine($"taille du tableau tab4 : {tab4.Length}");
//PARCOURIR LES ELEMENTS D'UN TABLEAU
//avec une boucle for
WriteLine("tab4 : ");
for (int i = 0; i < tab4.Length; i++)
{
WriteLine(tab4[i]);
}
//avec une boucle foreach
foreach (var elt in tab4)
{
WriteLine(elt);
}
//TABLEAU D'OBJECT
//tableaux avec des cellules de types différents
object[] tab5 = new object[3];
tab5[0] = 12; //contient un entier
tab5[1] = 3.4f; //contient un réel
tab5[2] = "arf"; //contient une chaîne de caractères
//pour déterminer ensuite le type :
for (int i = 0; i < tab5.Length; i++)
{
Type type = tab5[i].GetType();
string s = type.Name;
WriteLine(s);
}
//ou pour l'utiliser :
for (int i = 0; i < tab5.Length; i++)
{
if (tab5[i] is int)
{
WriteLine(tab5[i]);
}
}
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_005_001_tableaux</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_005_001_tableaux</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,124 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using static System.Console;
namespace ex_005_002_copie_de_tableaux
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
WindowHeight = LargestWindowHeight;
//COPIE DE TABLEAUX
WriteLine("\nCopie de tableaux");
//1. copie de références
WriteLine("\nCopie de références\n");
//préparation des tableaux
int[] tab6 = { 1, 2, 3 };
int[] tab7 = { 5, 6, 7, 8, 9, 10 };
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab7");
foreach (int i in tab7) Write($"{i} ");
WriteLine();
//recopie des références
WriteLine("tab7 = tab6;");
tab7 = tab6; //attention, on ne copie que les références ! le contenu est donc partagé ! La preuve :
//affichage des tableaux après copie des références
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab7");
foreach (int i in tab7) Write($"{i} ");
WriteLine();
//modification d'une case d'un des tableaux
WriteLine("tab7[1] = 4;");
tab7[1] = 4;
//affichage des contenus après copie modification d'un des deux tableaux
WriteLine("contenu de tab7");
foreach (int i in tab7) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
//2. copie de contenus, méthode 1 : new + CopyTo
WriteLine("\nCopie de contenus, méthode 1\n");
//préparation des tableaux
int[] tab8 = { 5, 6, 7, 8, 9, 10 };
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab8");
foreach (int i in tab8) Write($"{i} ");
WriteLine();
//recopie des contenus
WriteLine("tab8 = new int[tab6.Length];\ntab6.CopyTo(tab8, 0);");
tab8 = new int[tab6.Length]; // on alloue la place de tab6 pour tab8
tab6.CopyTo(tab8, 0); // on recopie le contenu de tab6 dans tab8 (ils ont la même taille à cause de la ligne d'avant, donc tout va bien)
//affichage des résultats
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab8");
foreach (int i in tab8) Write($"{i} ");
WriteLine();
//modification d'un des deux tableaux
WriteLine("tab8[1] = 2;");
tab8[1] = 2;
//affichage des contenus après modification d'un des deux tableaux
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab8");
foreach (int i in tab8) Write($"{i} ");
WriteLine();
//3. copie de contenus, méthode 2 : Clone
WriteLine("\nCopie de contenus, méthode 2\n");
//préparation des tableaux
int[] tab9 = { 5, 6, 7, 8, 9, 10 };
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab9");
foreach (int i in tab9) Write($"{i} ");
WriteLine();
//clonage des tableaux
WriteLine("tab9 = (int[])tab6.Clone();");
tab9 = (int[])tab6.Clone();
//affichage après clonage
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab9");
foreach (int i in tab9) Write($"{i} ");
WriteLine();
//modification d'un des deux tableaux
WriteLine("tab9[1] = 2;");
tab9[1] = 2;
//affichage après modification
WriteLine("contenu de tab6");
foreach (int i in tab6) Write($"{i} ");
WriteLine();
WriteLine("contenu de tab9");
foreach (int i in tab9) Write($"{i} ");
WriteLine();
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_005_002_copie_de_tableaux</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_005_002_copie_de_tableaux</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,70 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using static System.Console;
namespace ex_005_003_tableaux_multiDimensions
{
class Program
{
static void Main(string[] args)
{
//TABLEAUX A PLUSIEURS DIMENSIONS
int[,] mat = new int[2, 3]; //2 lignes et 3 colonnes
int[,] mat2 = { { 1, 2, 3 }, { 4, 5, 6 } };
int[,,] tab10;//3 dimensions
//pour copier, on peut utiliser la méthode Clone
//parcours d'un tableau à plusieurs dimensions
WriteLine("\nTABLEAUX A DEUX DIMENSIONS");
for (int ligne = 0; ligne < mat2.GetLength(0); ligne++)
{
for (int colonne = 0; colonne < mat2.GetLength(1); colonne++)
{
Write($"{mat2[ligne, colonne]} ");
}
WriteLine();
}
//TABLEAUX EPARSES
int[][] jagged = new int[3][];//tableaux à trois lignes de tailles différentes
jagged[0] = new int[2];
jagged[0][0] = 10;
jagged[0][1] = 20;
jagged[1] = new int[4];
jagged[1][0] = 30;
jagged[1][1] = 40;
jagged[1][2] = 50;
jagged[1][3] = 60;
jagged[2] = new int[3];
jagged[2][0] = 70;
jagged[2][1] = 80;
jagged[2][2] = 90;
WriteLine("\nTABLEAUX EPARSES");
for (int ligne = 0; ligne < jagged.GetLength(0); ligne++)
{
for (int colonne = 0; colonne < jagged[ligne].Length; colonne++)
{
Write($"{jagged[ligne][colonne]} ");
}
WriteLine();
}
//initialisation directe
int[][] jagged2 = new int[][]
{
new int[] {10, 20},
new int[] {30, 40, 50, 60},
new int[] {70, 80, 90}
};
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_005_003_tableaux_multiDimensions</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_005_003_tableaux_multiDimensions</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,182 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using static System.Console;
namespace ex_006_001_string
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
WindowHeight = LargestWindowHeight;
WindowWidth += 15;
WriteLine("STRING : Chaîne de caractères immuable");
//construction
WriteLine("CONSTRUCTION");
string s1 = "Bonjour";
//caractères spéciaux avec le caractère d'échappement \
WriteLine("CARACTERES SPECIAUX");
string s2 = "\'coucou1\' \"coucou2\" \\coucou3\\";
WriteLine(s2);
s2 = "nouvelle\nligne";
WriteLine(s2);
s2 = "retour\rcharriot";
WriteLine(s2);
s2 = "horizontal\ttab";
WriteLine(s2);
s2 = "alerte audio \a"; // \a fait un son lorsque le string est affiché
WriteLine(s2);
//verbatim
WriteLine("\n VERBATIM");
string s3 = "\\\\server\\machin\\trucmuche\\home"; // chaîne non verbatim, il faut utiliser le caractère d'échappement pour afficher
// les backslashs
WriteLine(s3);
s3 = @"\\server\machin\truchmuche\home"; // chaîne verbatim, les caractères spéciaux sont traités comme les autres
WriteLine(s3);
//string vide
WriteLine("\n CHAINE DE CARACTERES VIDE");
string s4 = "";
WriteLine($"la chaîne de caractères : \"{s4}\" a une longueur de : {s4.Length} caractère(s)");
//ou
s4 = String.Empty;
WriteLine($"la chaîne de caractères : \"{s4}\" a une longueur de : {s4.Length} caractère(s)");
WriteLine($"s4 == \"\" ? {s4 == ""}");
WriteLine($"s4 == String.Empty ? {s4 == string.Empty}");
WriteLine($"s4.Length == 0 ? {s4.Length == 0}");
//string null (string est reference type)
WriteLine("\n CHAINE DE CARACTERES NULLE");
string s5 = null;
WriteLine($"s5 == \"\" ? {s5 == ""}");
try
{
WriteLine($"s5.Length == 0 ? {s5.Length == 0}");
}
catch
{
WriteLine($"s5.Length == 0 ? False");
}
WriteLine($"string.IsNullOrEmpty(s4) ? {string.IsNullOrEmpty(s4)}");
WriteLine($"string.IsNullOrEmpty(s5) ? {string.IsNullOrEmpty(s5)}");
WriteLine($"string.IsNullOrWhiteSpace(\" \") ? {string.IsNullOrWhiteSpace(" ")}");
//accéder et chercher dans les string
WriteLine($"\n RECHERCHER DANS LES STRING");
string s6 = "barbapapa";
WriteLine(s6);
WriteLine($"3ème caractère : {s6[2]}");
WriteLine($"s6.Contains(\"pa\") ? {s6.Contains("pa")}");
WriteLine($"s6.EndsWith(\"pa\") ? {s6.EndsWith("pa")}");
WriteLine($"s6.StartsWith(\"ba\") ? {s6.StartsWith("ba")}");
WriteLine($"s6.IndexOf(\"ba\") ? {s6.IndexOf("ba")}");
//manipuler les string
WriteLine($"\n MANIPULER LES STRING");
WriteLine($"CONCATENATION DE STRING");
//concatenation de string
string s7 = "Jim" + " " + "Raynor";
WriteLine($"\"Jim\" + \" \" + \"Raynor\" = \"{s7}\"");
//substring
WriteLine($"SUBSTRING");
string s8 = s7.Substring(0, 3);
WriteLine($"\"Jim Raynor\".Substring(0, 3) = {s8}");
s8 = s7.Substring(2, 3);
WriteLine($"\"Jim Raynor\".Substring(2, 3) = {s8}");
s8 = s7.Substring(5);
WriteLine($"\"Jim Raynor\".Substring(5) = {s8}");
//insert, remove, replace, ToUpper, ToLower
WriteLine($"REMOVE");
s8 = s7.Remove(2, 3);
WriteLine($"\"Jim Raynor\".Remove(2, 3) = {s8}");
WriteLine($"INSERT");
s8 = s8.Insert(2, "m R");
WriteLine($"\"Jiaynor\".Insert(2, \"m R\") = {s8}");
WriteLine($"REPLACE");
s8 = "Les chaussettes de l'archiduchesse";
s8 = s8.Replace(" ", "_");
WriteLine($"\"Les chaussettes de l'archiduchesse\".Replace(\" \", \"_\") = {s8}");
WriteLine($"TO UPPER, TO LOWER");
s8 = s8.ToUpper();
WriteLine($"\"Les_chaussettes_de_l'archiduchesse\".ToUpper() = {s8}");
s8 = s8.ToLower();
WriteLine($"\"LES_CHAUSSETTES_DE_L'ARCHIDUCHESSE\".ToLower() = {s8}");
//PadLeft, PadRight
WriteLine("\n PADLEFT, PADRIGHT, TRIM");
s8 = s8.PadLeft(50).PadRight(60, '!');
WriteLine($"\"les_chaussettes_de_l'archiduchesse\".PadLeft(50).PadRight(60, \'!\') = \n{s8}");
//Trim : enlève les blancs (whitespace, tab, new lines...)
s8 = s8.Trim(); //existe aussi avec TrimStart et TrimEnd
WriteLine($"\" les_chaussettes_de_l'archiduchesse!!!!!!!!!!\".Trim() = \n{s8}");
//Split et Join
WriteLine("\n SPLIT ET JOIN");
s8 = "Les chaussettes de l'archiduchesse";
WriteLine($"\"{s8}\" est composé des mots suivants \n(\"Les chaussettes de l'archiduchesse\".Split()): ");
string[] mots = s8.Split();
foreach (string m in mots)
{
WriteLine($"\t- {m}");
}
WriteLine("On peut regrouper les mots précédents (tableau de string : string[] mots;) avec Join");
string s9 = string.Join(" ", mots);
WriteLine($"string.Join(\" \", mots) = {s9}");
//Format
WriteLine("\n STRING.FORMAT");
string format = "Il y a {0} élèves inscrits en {1} année à l'IUT pour l'année scolaire {2}";
WriteLine("Le format : \"{0}\"", format);
string chaineFormatée = string.Format(format, 110, "2ème", "2011-2012");
WriteLine("chaîne formatée avec le format : {0}", chaineFormatée);
WriteLine("on peut aussi tout faire dans le WriteLine, sans préciser string.Format : ");
WriteLine("Il y a {0} élèves inscrits en {1} année à l'IUT pour l'année scolaire {2}", 110, "2ème", "2010-2011");
format = "Nb élèves : {0, -5} Année : {1, -5} Année universitaire : {2, 15}";
WriteLine("format plus élaboré, pour imposer des tailles : \n{0}", format);
WriteLine("Quelques chaînes formatées (avec ou sans string.Format pour voir la différence d'écriture) : ");
chaineFormatée = string.Format(format, 110, "2ème", "2010-2011");
WriteLine(chaineFormatée);
chaineFormatée = "Nb élèves : " + 110.ToString().PadRight(5) + " Année : " + "2ème".PadRight(5) + " Année universitaire : " + "2010-2011".PadLeft(15);
WriteLine(chaineFormatée);
chaineFormatée = "Nb élèves : " + 98.ToString().PadRight(5) + " Année : " + "2ème".PadRight(5) + " Année universitaire : " + "2010-2011".PadLeft(15);
WriteLine(chaineFormatée);
//String Interpolation
WriteLine("\n STRING INTERPOLATION avec $");
WriteLine($"Il y a {135} élèves inscrits en {"1ère"} année à l'IUT pour l'année scolaire {"2016 - 2017"}");
//comparaison de string
WriteLine("\n COMPARAISON DE STRING");
//equality comparison
WriteLine($"\"yaha\" == \"YAHA\" ? " + ("yaha" == "YAHA"));
WriteLine($"\"yaha\".Equals(\"YAHA\") ? " + ("yaha".Equals("YAHA")));
WriteLine($"string.Equals(\"yaha\", \"YAHA\") ? " + string.Equals("yaha", "YAHA"));
WriteLine($"\"yaha\".Equals(\"YAHA\", StringComparison.CurrentCultureIgnoreCase) ? " + ("yaha".Equals("YAHA", StringComparison.CurrentCultureIgnoreCase)));
WriteLine($"string.Equals(\"yaha\", \"YAHA\", StringComparison.CurrentCultureIgnoreCase) ? " + string.Equals("yaha", "YAHA", StringComparison.CurrentCultureIgnoreCase));
WriteLine($"string.Equals(\"éèàô\", \"eeao\") ? " + string.Compare("éèàô", "eeao", StringComparison.CurrentCultureIgnoreCase));
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_006_001_string</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_006_001_string</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,75 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-22
//
// ========================================================================
using System;
using System.Text;
using static System.Console;
namespace ex_006_002_StringBuilder
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
WindowWidth += 15;
WindowHeight = LargestWindowHeight;
Write("STRING BUILDER : version ");
BackgroundColor = ConsoleColor.DarkBlue;
ForegroundColor = ConsoleColor.Yellow;
Write("mutable");
ResetColor();
WriteLine(" de string");
//construction
WriteLine("\n CONSTRUCTION");
WriteLine("à l'aide d'un string : StringBuilder s1 = new StringBuilder(\"Bonjour\");");
StringBuilder s1 = new StringBuilder("Bonjour");
WriteLine(s1.ToString());
WriteLine("à l'aide d'une sous-chaîne d'un string : s1 = new StringBuilder(\"Bonjour\", 0, 3, 3);");
s1 = new StringBuilder("Bonjour", 0, 3, 3);
WriteLine(s1);
//manipuler les string builder
WriteLine("\n MANIPULER LES STRING BUILDER");
//append
WriteLine("APPEND");
StringBuilder s7 = new StringBuilder().Append("Jim").Append(" ").Append("Raynor");
WriteLine($"new StringBuilder().Append(\"Jim\").Append(\" \").Append(\"Raynor\"); contient {s7}");
WriteLine("APPEND FORMAT");
string format = "Il y a {0} élèves inscrits en {1} année à l'IUT pour l'année scolaire {2}";
WriteLine("Le format : {0}", format);
StringBuilder s9 = new StringBuilder().AppendFormat(format, 110, "2ème", "2011-2012");
WriteLine("new StringBuilder().AppendFormat(format, 110, \"2ème\", \"2011-2012\"); vaut :\n{0}", s9);
WriteLine();
//insert, remove, replace
StringBuilder s8 = new StringBuilder("Jim Raynor");
WriteLine("StringBuilder s8 = new StringBuilder(\"Jim Raynor\");");
WriteLine("REMOVE");
s8.Remove(2, 3);
WriteLine("s8.Remove(2, 3) vaut {0}", s8);
WriteLine("INSERT");
s8.Insert(2, "m R");
WriteLine("s8.Insert(2, \"m R\") vaut {0}", s8);
WriteLine("CLEAR");
s8.Clear();
WriteLine("s8.Clear()");
WriteLine("REPLACE");
WriteLine("s8.Append(\"Les chaussettes de l'archiduchesse\");");
s8.Append("Les chaussettes de l'archiduchesse");
s8.Replace(" ", "_");
WriteLine("s8.Replace(\" \", \"_\") vaut {0}", s8);
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_006_002_StringBuilder</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_006_002_StringBuilder</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,108 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_007_001_enum
{
class Program
{
/// <summary>
/// voici une énumération.
/// public n'est pas obligatoire. S'il est indiqué, l'énumération est utilisable en dehors de la classe.
/// </summary>
[Flags]//pas obligatoire mais conseillé pour améliorer le ToString de l'enum dans le cas des combinaisons
public enum MusicType : byte
{
Classic = 1, //00000001
Jazz = 2, //00000010
Pop = 4, //00000100
Rock = 8, //00001000
//on peut rajouter des combinaisons d'enum : ici, PopRock est à la fois Pop et Rock
//il faut pour cela que toutes les valeurs d'enum puissent s'exclure mutuellement
PopRock = Pop | Rock //00001100
}
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//déclaration d'une variable de type MusicType
MusicType mMuzik;
//affectation d'une valeur possible à cette variable
mMuzik = MusicType.Jazz;
WriteLine(mMuzik);
//un exemple d'utilisation
Write("la variable mMuzik est de type : ");
switch (mMuzik)
{
case MusicType.Classic:
WriteLine("Classique"); break;
case MusicType.Jazz:
WriteLine("Jazz"); break;
case MusicType.Pop:
WriteLine("Pop"); break;
case MusicType.Rock:
WriteLine("Rock"); break;
}
WriteLine();
//un enum peut être considéré comme un instance de la classe Enum
//exemple d'utilisation
WriteLine("liste des valeurs de l'énumération");
foreach (string s in Enum.GetNames(typeof(MusicType)))
WriteLine(s);
WriteLine();
//autre utilisation
Write("la variable mMuzik est de type : ");
switch (mMuzik)
{
case MusicType.Classic:
WriteLine(MusicType.Classic.ToString()); break;
case MusicType.Jazz:
WriteLine(MusicType.Jazz.ToString()); break;
case MusicType.Pop:
WriteLine(MusicType.Pop.ToString()); break;
case MusicType.Rock:
WriteLine(MusicType.Rock.ToString()); break;
}
WriteLine();
//combinaison
mMuzik = MusicType.Jazz | MusicType.Rock; // 00001010
WriteLine(mMuzik); //si vous utilisez [Flags], affiche "Jazz, Rock", sinon, affiche "10"
//on veut vérifier que mMuzik est du Jazz :
if ((mMuzik & MusicType.Jazz) != 0) //mMuzik & Jazz = 00001010 & 00000010 = 00000010 != 0 c'est donc du jazz (entre autres)
{
WriteLine("Includes Jazz");
}
//on veut vérifier que mMuzik n'est pas de la Pop :
if ((mMuzik & MusicType.Pop) == 0) //mMuzik & Pop = 00001010 & 00000100 = 00000000 == 0 ce n'est donc pas de la Pop
{
WriteLine("pas pop");
}
//finalement on veut rajouter Pop
mMuzik |= MusicType.Pop; //00001010 | 00000100 = 00001110
if ((mMuzik & MusicType.Pop) != 0) //mMuzik & Pop = 00001110 & 00000100 = 00000100 != 0 c'est donc de la Pop
{
WriteLine("pop");
}
//et enlever Jazz
mMuzik ^= MusicType.Jazz; //00001110 ^ 00000010 = 00001100
if ((mMuzik & MusicType.Jazz) == 0) //mMuzik & Jazz = 00001100 & 00000010 = 00000000 == 0 ce n'est donc plus du jazz
{
WriteLine("pas jazz");
}
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_007_001_enum</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_007_001_enum</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,78 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_008_001_if_else
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
int vitesseMax = 70;
WriteLine($"La vitesse maximum autorisée est de {vitesseMax} km/h");
Random random = new Random();
int vitesse = random.Next(50, 150);
WriteLine($"Vous roulez à {vitesse} km/h");
if (vitesse <= vitesseMax)
{
WriteLine("Vous ne dépassez pas la vitesse maximum");
}
else
{
WriteLine("Vous dépassez la vitesse maximum autorisée");
if (vitesse < vitesseMax + 20)
{
WriteLine("L'amende forfaitaire s'élève à 68 euros");
WriteLine("1 point est retiré du permis de conduire");
}
else if (vitesse < vitesseMax + 50)
{
WriteLine("L'amende forfaitaire s'élève à 135 euros");
if (vitesse < vitesseMax + 30)
{
WriteLine("2 points sont retirés du permis de conduire");
}
else if (vitesse < vitesseMax + 40)
{
WriteLine("3 points sont retirés du permis de conduire");
}
else if (vitesse < vitesseMax + 50)
{
WriteLine("4 points sont retirés du permis de conduire");
}
}
else
{
WriteLine("L'amende fofaitaire s'élève à 1500 euros");
WriteLine("6 points sont retirés du permis de conduire");
}
if (vitesse >= vitesseMax + 30)
{
WriteLine("Jusqu'à 3 ans de suspension de permis de conduire");
if (vitesse >= vitesseMax + 40)
{
if (vitesse >= vitesseMax + 50)
{
WriteLine("Obligation d'accomplir, à ses frais, un stage de sensibilisation à la sécurité routière, confiscation du véhicule dont le prévenu s'est servi pour commettre l'infraction, s'il en est propriétaire.");
}
WriteLine("Une suspension immédiate du permis de conduire s'ajoute aux sanctions ci-dessus");
}
}
}
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_008_001_if_else</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_008_001_if_else</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,77 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_008_002_switch
{
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
Random random = new Random();
int i = random.Next(6);
switch (i)
{
case 0:
WriteLine("i vaut 0"); //1 ou plusieurs instruction puis break; ("obligatoire")
break;
case 1:
case 2:
WriteLine("i vaut 1 ou 2"); // pour que deux case partagent les mêmes instructions,
break; // il faut que le premier soit vide et sans break;
case 3:
WriteLine("goto à la place de break"); //si le case n'est pas vide, je peux quand même rejoindre un autre case,
goto case 4; // à l'aide d'un goto
case 4:
WriteLine("i vaut 3 ou 4");
break;
default:
WriteLine("i vaut autre chose");
break;
}
string[] jours = { "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche" };
string jour = jours[random.Next(jours.Length)];
//le switch fonctionne pour les chaînes de caractères !!!
switch (jour)
{
case "lundi":
WriteLine($"J'aime pas le {jour}");
break;
case "mardi":
WriteLine($"Faut travailler un peu... le {jour}");
break;
case "mercredi":
WriteLine("Ah l'époque où on ne travaillait pas le mercredi !");
break;
case "jeudi":
case "vendredi":
goto case "mardi";
case "samedi":
WriteLine("Vivement le weekend");
break;
case "dimanche":
WriteLine("Je travaillerai demain");
break;
default:
WriteLine("Quel jour on est !!!!????");
break;
}
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_008_002_switch</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_008_002_switch</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,37 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
// Mise à jour : 2017-09-18
//
// ========================================================================
using System;
using static System.Console;
namespace ex_008_003_ternary_operator
{
public class Program
{
public static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//L'opérateur conditionnel (conditional operator), aussi appelé opérateur ternaire (ternary operator),
//est le seul opérateur à prendre trois opérandes.
//Il a la forme suivante : c ? a : b
//où c est la condition,
// a est la valeur de retour si c est true
// b est la valeur de retour si c est false
WriteLine("Rentrez quelque chose, je vous dirai si c'est un nombre ou non :");
string chaine = ReadLine();
bool condition = float.TryParse(chaine, out var nombre);
WriteLine(condition ? $"j'ai reconnu le nombre : {nombre.ToString()}" : "ce que vous avez entré n'est pas un nombre");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_008_003_ternary_operator</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_008_003_ternary_operator</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,74 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_008_004_null_operators
{
public class Program
{
public static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
//C# fournit deux opérateurs pour simplifier le travail avec les nulls
//Null-coalescing operator : ??
//"si l'opérande n'est pas nulle, rends-la moi ; sinon, donne-moi la valeur par défaut que je t'ai renseignée"
WriteLine("NULL-COLAESCING OPERATOR \n");
WriteLine("s est une chaîne de caractères nulle");
WriteLine("J'affiche s ?? \"rien\", c'est-à-dire que si s est null, on affichera la valeur par défaut : rien, sinon on affichera la valeur de s");
string s = null;
string result = s ?? "rien";
WriteLine($"-> {result}");
WriteLine();
WriteLine("rentrez du texte, que je stockerai dans s :");
s = ReadLine();
WriteLine("J'affiche s ?? \"rien\", c'est-à-dire que si s est null, on affichera la valeur par défaut : rien, sinon on affichera la valeur de s");
result = s ?? "rien";
WriteLine($"-> {result}");
WriteLine();
//Elvis Operator ou Null-conditional operator : ?.
//avec cet opérateur, pas besoin de tester si l'opérande est nulle avant d'appeler une méthode ou une propriété :
// si elle n'est pas nulle, fonctionne comme le .
// si elle est nulle, renvoie null (sans lancer l'exception NullReferenceException)
WriteLine("Elvis operator ou Null-Conditional operator \n");
WriteLine("s2 est une chaîne de caractères nulle");
WriteLine("Je veux stocker s2.ToUpper() dans s3, mais puisque s2 est nulle, ça lance une exception :");
string s2 = null;
string s3 = null;
try
{
s3 = s2.ToUpper();
WriteLine(s3 != null ? s3 : "null");
}
catch(NullReferenceException exception)
{
WriteLine(exception);
}
WriteLine();
WriteLine("Maintenant je veux stocker s2?.ToUpper() dans s3. Puisque s2 est nulle, null est stocké dans s3 mais sans lancer d'exception.");
s3 = s2?.ToUpper();
WriteLine(s3 != null ? s3 : "null");
WriteLine();
WriteLine("\nmême chose avec le texte que vous allez rentrer :");
s2 = ReadLine();
s3 = s2?.ToUpper();
WriteLine(s3 != null ? s3 : "null");
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_008_004_null_operators</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_008_004_null_operators</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,149 +0,0 @@
// ========================================================================
//
// Copyright (C) 2017-2018 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2017-09-19
//
// ========================================================================
using System;
using static System.Console;
namespace ex_008_005_pattern_matching
{
class Program
{
static void Main(string[] args)
{
//C# 7.0 introduit le pattern matching, dont l'objectif est de permettre de "tester" si un objet respecte certaines conditions de "forme".
//En C# 7.0, on trouve pour le moment trois types de patterns :
// - constant patterns : qui permettent de tester si un objet est égal à une constante
// - type patterns : qui permettent de tester si un objet est de type T, et si c'est le cas, de le tester dans une nouvelle variable
// - var patterns : qui permettent de pacer un objet dans une nouvelle variable du même type
//Les patterns matching devraient certainement être beaucoup plus utilisés dans les versions futures de C#.
//Pour le moment, on en trouve deux cas d'utilisation majeurs : les expressions "is" et les clauses "case" dans les switch.
//PATTERN MATCHING AND IS-EXPRESSIONS
void DisplayPrice(object price)
{
//constant pattern dans une is-expression avec comparaison à null
if (price is null)
{
WriteLine("Vous avez rentré une valeur nulle");
return;
}
//var pattern dans une is-expression
if (price is var price2)
{
WriteLine($"price2 est de type : {price2.GetType().Name} ; price2 a pour valeur : {price2}");
}
//type pattern dans une is-expression avec comparaison à un type numérique
if (!(price is float p))
{
WriteLine($"price n'est pas du bon type. Type attendu : Single, Type utilisé : {price.GetType().Name}");
return;
}
WriteLine($"Vous avez rentré : {p:0.00} euros");
}
DisplayPrice(null);
DisplayPrice(32.0f);
DisplayPrice("coucou");
DisplayPrice(3);
//var-pattern : on a une copie des variables, donc attention aux types références !
void TestVarPattern(Nounours original)
{
WriteLine("Avant var pattern:");
WriteLine($"original : {original}");
if (original is var copie)
{
copie.Nom = "Chucky";
copie.NbPoils = 4;
}
WriteLine("Après var pattern:");
WriteLine($"original : {original}");
WriteLine($"copie : {copie}");
}
TestVarPattern(new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) });
//PATTERN MATCHING DANS UN SWITCH AVEC DES CASES ET DES CONDITIONS SUPPLEMENTAIRES
Nounours[] nounours =
{
new Nounours { Nom = "Gizmo", NbPoils = 123456789, Naissance = new DateTime(1984, 6, 8) },
new NounoursProf { Nom = "Yoda", NbPoils = 4, Naissance = new DateTime(1980, 5, 21), Matière="How to become a Jedi?" },
new NounoursElève { Nom = "Ewok", NbPoils = 98989898, Naissance = new DateTime(1983, 5, 25), FormationSuivie="How to destroy an AT-ST?" },
new NounoursElève { Nom = "Chucky", NbPoils = 2, Naissance = new DateTime(1988, 11, 9), FormationSuivie="How to become naughty?" },
null
};
void TestPatternMatchingInASwitch(Nounours monNounours)
{
//Il est possible de faire un switch sur n'importe quel type désormais
//La nouvelle gestion du switch fait que maintenant, l'ordre des clauses "case" a de l'importance (dans l'exemple ci-dessous, si on mettait la 2ème avant la 1ère,
//la 1ère ne serait jamais exécutée). Heureusement, le compilateur vous aidera a trouvé les cas qui ne seront jamais exécutés !
switch (monNounours)
{
//type pattern avec une condition (when)
case NounoursElève élève when (élève.Naissance < new DateTime(1985, 1, 1)):
WriteLine($"{élève.Nom} est un vieil élève apprenant : {élève.FormationSuivie}");
break;
//type pattern sans condition
case NounoursElève élève:
WriteLine($"{élève.Nom} est un élève apprenant : {élève.FormationSuivie}");
break;
//type pattern
case NounoursProf prof:
WriteLine($"{prof.Nom} est un prof qui enseigne : {prof.Matière}");
break;
//même s'il y a un autre case plus bas (comme dans cet exemple), le default est toujours évalué en dernier, pour des raisons de compatibilité.
//Pour une meilleure lisibilité, ne faites donc pas comme dans cet exemple : laissez le default à la fin
default:
WriteLine($"{monNounours.Nom} est un Nounours comme un autre, sans histoire particulière...");
break;
//constant pattern
case null:
WriteLine($"Attention, ce Nounours est null ! (nom du paramètre : {nameof(monNounours)})");
break;
}
}
foreach (var n in nounours)
{
TestPatternMatchingInASwitch(n);
}
}
}
class Nounours
{
public string Nom { get; set; }
public int NbPoils { get; set; }
public DateTime Naissance { get; set; }
public override string ToString()
{
return $"{Nom} a {NbPoils} poils et est né en {Naissance.Year}";
}
}
class NounoursProf : Nounours
{
public string Matière { get; set; }
}
class NounoursElève : Nounours
{
public string FormationSuivie { get; set; }
}
}

@ -1,6 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>

@ -1,74 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_009_001_bouclesIteratives
{
class Program
{
static void Main(string[] args)
{
string[] jours = { "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche" };
//BOUCLE WHILE
WriteLine("boucle while");
int i = 0;
while (i < jours.Length)
{
Write($"{jours[i]} ");
i++;
}
WriteLine();
//BOUCLE DO-WHILE
WriteLine("boucle do-while");
int j = 0;
do
{
Write($"{jours[j]} ");
j++;
}
while (j < jours.Length);
WriteLine();
//BOUCLE FOR
WriteLine("boucle for");
for (int k = 0; k < jours.Length; k++)
{
Write($"{jours[k]} ");
}
WriteLine();
//BOUCLE FOREACH
WriteLine("boucle foreach");
foreach (string jour in jours)
{
Write($"{jour} ");
}
WriteLine();
foreach (string jour in jours)
{
if (jour == "Mercredi")
continue; //continue est autorisé : passe directement à l'itération suivante
if (jour == "Samedi")
break; //break est autorisé : arrête la boucle
WriteLine(jour);
}
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_009_001_bouclesIteratives</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_009_001_bouclesIteratives</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,183 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
// Mise à jour : 2017-09-28
//
// ========================================================================
using System;
using static System.Console;
namespace ex_010_001_methodParametersAndModifiers
{
class ExFunct
{
//passage d'arguments par valeur
public int Somme(int a, int b)
{
int result = a + b;
//celui qui appelle cette méthode ne pourra pas voir ces changements
//car a et b sont ici des copies locales des paramètres qu'il a passés
a++;
b++;
return result;
}
//passage d'argument par référence (notez le mot-clé ref)
public int SommeRef(ref int a, ref int b)
{
int result = a + b;
//celui qui appelle cette méthode verra les deux paramètres qu'il a passés
//modifiés par celle-ci, car ils sont passés par référence
a++;
b++;
return result;
}
//passage de tableaux en argument (pas besoin de préciser ref, le tableau en est une)
public int SommeTab(int[] tab)
{
int result = 0;
for (int i = 0; i < tab.Length; i++)
{
//celui qui appelle cette méthode verra les valeurs du tableau passé en paramètre
//modifiées par la méthode, car un tableau est toujours passé par référence
//(un tableau EST un type REFERENCE)
result += tab[i];
tab[i]++;
}
return result;
}
//passage d'argument out : indique que la variable est initialisée par la fonction appelée (notez le mot-clé out)
public void SommeOut(int a, int b, out int result)
{
//celui qui appelle cette méthode peut donner result sans l'initialiser
//le mot-clé out garantit que ce paramètre sera initialisé dans la méthode
result = a + b;
}
//passage d'arguments en nombre indéterminé, en dernier paramètre de la méthode uniquement
public int SommeParams(params int[] ints)
{
//l'utilisateur de la méthode n'a pas besoin de préciser params
//en revanche, il peut passer autant d'arguments de type int qu'il le souhaite.
//À l'intérieur de la méthode, ces arguments sont traités comme un tableau d'entiers,
//mais tous les éléments de ce tableau sont copiés par valeur.
int result = 0;
for (int i = 0; i < ints.Length; i++)
{
result += ints[i];
ints[i]++;
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
ExFunct f = new ExFunct();
int a = 2;
int b = 3;
WriteLine("f.Somme(a, b)");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine($"résultat : {f.Somme(a, b)}"); //passage d'arguments par valeur
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine();
WriteLine("f.SommeRef(ref a, ref b)");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine($"résultat : {f.SommeRef(ref a, ref b)}");//passage d'argument par référence (notez le mot clé ref) --> a est modifié par la fonction
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine();
WriteLine("tableaux");
int[] t = { 1, 2, 3 };
Write("tableau t (avant) : ");
foreach (int i in t) Write($"{i} ");
WriteLine();
f.SommeTab(t); //passage de tableau en argument (pas besoin de ref, car c'est est une).
WriteLine("f.SommeTab(t);");
Write("tableau t (après) : ");
foreach (int i in t) Write($"{i} ");
WriteLine();
WriteLine();
int c;
WriteLine("f.SommeOut(a, b, out c);");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine("c est non assigné");
f.SommeOut(a, b, out c);
WriteLine($"résultat : {c}"); //passage d'argument out. c n'est pas initialisé, et on utilise le mot clé out
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine($"c (après) = {c}");
WriteLine();
//Dans l'exemple ci-dessus de l'utilisation des paramètres out, il est nécessaire de déclarer c avant son utilisation :
//int c;
//f.SommeOut(a, b, out c);
//Depuis C# 7.0, l'utilisation a été simplifiée : vous pouvez maintenant déclarer la variable lors de son utilisation :
//f.SommeOut(a, b, out int c2);
//La portée de la variable est alors le bloc contenant l'instruction prenant le paramètre out en paramètre.
WriteLine("f.SommeOut(a, b, out int c2);");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine("c2 est non assigné et déclaré lors de l'appel de la méthode SommeOut");
f.SommeOut(a, b, out int c2);
WriteLine($"résultat : {c2}"); //passage d'argument out. c2 n'est pas initialisé, et on utilise le mot clé out
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine($"c2 (après) = {c2}");
WriteLine();
//Il est également possible d'utiliser var, tant qu'il n'y a pas de conflit (surcharge de méthodes), ce qui rend l'utilisation encore plus simple
WriteLine("f.SommeOut(a, b, out var c3);");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine("c3 est non assigné et déclaré lors de l'appel de la méthode SommeOut");
f.SommeOut(a, b, out var c3);
WriteLine($"résultat : {c3}"); //passage d'argument out. c3 n'est pas initialisé, et on utilise le mot clé out
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine($"c3 (après) = {c3}");
WriteLine();
//Enfin, il est également possible de préciser qu'on veut ignorer une variable out avec _ (discard variables)
WriteLine("f.SommeOut(a, b, out _);");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine("on ne souhaite pas récupérer le paramètre en out");
f.SommeOut(a, b, out _);
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine();
WriteLine("f.SommeParams(a, b, c)");
WriteLine($"a (avant) = {a}");
WriteLine($"b (avant) = {b}");
WriteLine($"c (avant) = {c}");
//passage d'arguments en nombre indéterminé
WriteLine($"résultat : {f.SommeParams(a, b, c)}");
WriteLine($"a (après) = {a}");
WriteLine($"b (après) = {b}");
WriteLine($"c (après) = {c}");
WriteLine();
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_010_001_methodParametersAndModifiers</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_010_001_methodParametersAndModifiers</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,45 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_010_002_optionalParameters
{
class ExFunct
{
//arguments optionnels (et arguments nommés)
public string SomeString(int x = 1, int y = 2, int z = 3)
{
return string.Format($"x : {x}, y : {y}, z : {z}");
}
}
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
ExFunct f = new ExFunct();
WriteLine("arguments optionnels et arguments nommés");
WriteLine($"SomeString() : {f.SomeString()}");
WriteLine($"SomeString(4) : {f.SomeString(4)}");
WriteLine($"SomeString(4, 5) : {f.SomeString(4, 5)}");
WriteLine($"SomeString(4, 5, 6) : {f.SomeString(4, 5, 6)}");
WriteLine($"SomeString(y:5, z:6) : {f.SomeString(y: 5, z: 6)}");
WriteLine($"SomeString(y:5) : {f.SomeString(y: 5)}");
//WriteLine($"SomeString(y:5, 6) : {f.SomeString(y:5, 6)}");
//ne compile pas (pas d'arguments positionnels après un argument nommé)
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_010_002_optionalParameters</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_010_002_optionalParameters</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,122 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using static System.Console;
//cet exemple montre trois manières différentes de gérer les paramètres par défaut
namespace ex_010_003_interets_des_optionalparameters
{
class C1
{
/// <summary>
/// une méthode qui gère les paramètres remplis avec null :
/// l'utilisateur doit toujours renseigner chaque paramètre
/// </summary>
/// <param name="s1"></param>
/// <param name="s2"></param>
/// <param name="s3"></param>
/// <returns></returns>
public static string Method(string s1, string s2, string s3)
{
if (s1 == null)
{
s1 = "nothing";
}
if (s2 == null)
{
s2 = "nothing";
}
if (s3 == null)
{
s3 = "nothing";
}
return string.Format($"{s1} + {s2} + {s3}");
}
}
class C2
{
/// <summary>
/// la méthode Method possède trois overload afin de gérer des valeurs par défaut
/// Risque de confusion et impossibilité de faire toutes les combinaisons.
/// </summary>
/// <param name="s1"></param>
/// <param name="s2"></param>
/// <param name="s3"></param>
/// <returns></returns>
public static string Method(string s1, string s2, string s3)
{
return string.Format($"{s1} + {s2} + {s3}");
}
public static string Method(string s1, string s2)
{
return string.Format($"{s1} + {s2} + nothing");
}
public static string Method(string s)
{
return string.Format($"{s} + nothing + nothing");
}
}
class C3
{
/// <summary>
/// avec les paramètres optionnels, toutes les combinaisons sont possibles et une seule méthode suffit.
/// Un seul inconvénient : les noms des paramètres font maintenant partis de l'API
/// </summary>
/// <param name="s1"></param>
/// <param name="s2"></param>
/// <param name="s3"></param>
/// <returns></returns>
public static string Method(string s1 = "nothing", string s2 = "nothing", string s3 = "nothing")
{
return string.Format($"{s1} + {s2} + {s3}");
}
}
class Program
{
static void Main(string[] args)
{
OutputEncoding = System.Text.Encoding.UTF8;
WriteLine("Méthode 1 : tous les champs doivent toujours être renseignés");
WriteLine("C1.Method(\"a\", \"b\", \"c\")");
WriteLine(C1.Method("a", "b", "c"));
WriteLine("C1.Method(\"a\", \"b\", null)");
WriteLine(C1.Method("a", "b", null));
WriteLine("C1.Method(\"a\", null, null)");
WriteLine(C1.Method("a", null, null));
WriteLine("C1.Method(null, \"b\", null)");
WriteLine(C1.Method(null, "b", null));
WriteLine();
WriteLine("Méthode 2 : Overloads");
WriteLine("C2.Method(\"a\", \"b\", \"c\")");
WriteLine(C2.Method("a", "b", "c"));
WriteLine("C2.Method(\"a\", \"b\")");
WriteLine(C2.Method("a", "b"));
WriteLine("C2.Method(\"a\")");
WriteLine(C2.Method("a"));
WriteLine();
WriteLine("Méthode 3 : optional parameters and named parameters");
WriteLine("C3.Method(\"a\", \"b\", \"c\")");
WriteLine(C3.Method("a", "b", "c"));
WriteLine("C3.Method(\"a\", \"b\")");
WriteLine(C3.Method("a", "b"));
WriteLine("C3.Method(\"a\")");
WriteLine(C3.Method("a"));
WriteLine("C3.Method(s2:\"b\")");
WriteLine(C3.Method(s2: "b"));
}
}
}

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>ex_010_003_interets_des_optionalparameters</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_010_003_interets_des_optionalparameters</PackageId>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,51 +0,0 @@
// ========================================================================
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Program.cs
// Author : Marc Chevaldonné
// Creation date : 2016-09-23
//
// ========================================================================
using System;
using static System.Console;
namespace ex_012_001_nullableTypes
{
class Program
{
//les types référence peuvent représenter une valeur non-existante (null reference)
//par contre, les valeurs elles, ne le peuvent pas : int i = null n'est pas autorisé
//En C# on peut quand même le faire, à l'aide des nullable types
static void Main(string[] args)
{
int? i = null;
WriteLine("int? i = null");
Write("i == null ? ");
WriteLine(i == null);
WriteLine($"i.HasValue {i.HasValue}");
WriteLine($"i or default : {i.GetValueOrDefault()}");
i = 2;
WriteLine("i = 2");
Write("i == null ? ");
WriteLine(i == null);
WriteLine($"i.HasValue {i.HasValue}");
WriteLine($"i or default : {i.GetValueOrDefault()}");
WriteLine($"i.Value : {i.Value}");
//l'opérateur ?? est le null coalescing operator
int? x = null;
int y = x ?? 5; // y vaut 5 car x est null
int? a = 1;
int? b = 2;
int? z = x ?? a ?? b; // y vaut 1 car a est la première valeur non nulle
int? c = null;
int? w = x ?? c ?? b; // y vaut 2 car b est la première valeur non nulle
}
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save