updated .NET Core code samples to 2.2.6

ci
Marc CHEVALDONNE 6 years ago
parent 48e3757308
commit 68e5797543

File diff suppressed because it is too large Load Diff

@ -1,2 +1,8 @@
# mchSamples .NET Core
## Tools to install
Here are all the different Tools to be installed with Visual Studio 2019, in order to be able to use .NET Core 2.2:
* .NET Core 2.2.6: https://dotnet.microsoft.com/download/dotnet-core/2.2
* direct link to SDK: https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.2.301-windows-x64-installer
* direct link to ASP.NET Core & .NET Core installers: https://dotnet.microsoft.com/download/thank-you/dotnet-runtime-2.2.6-windows-hosting-bundle-installer

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

@ -0,0 +1,19 @@
## 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,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
</Project>

@ -33,7 +33,7 @@ namespace ex_014_008_deconstruction
//déconstruction
monNounours.Deconstruct(out string leNom, out int leNbPoils, out DateTime laDateDeNaissance);
WriteLine($"{leNom} a {leNbPoils} et est né en {laDateDeNaissance.Year}");
WriteLine($"{leNom} a {leNbPoils} poils et est né en {laDateDeNaissance.Year}");
//on peut également ignorer certaines variables avec _ (discard)
monNounours.Deconstruct(out string leNom2, out _, out DateTime laDateDeNaissance2);

@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
</Project>

@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
</Project>

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>ex_023_017_Deep_Read_only_collections_dll</AssemblyName>
<PackageId>ex_023_017_Deep_Read_only_collections_dll</PackageId>
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

@ -113,7 +113,7 @@ namespace ex_023_017_Deep_Read_only_collections_exe
nbNounours = monlit.MesNounoursIReadOnlyList.Count;
for (int i = 0; i < nbNounours; i++)
{
WriteLine($"\t{i}/{nbNounours} : {monlit.MesNounoursIReadOnlyList[i]}");
WriteLine($"\t{i+1}/{nbNounours} : {monlit.MesNounoursIReadOnlyList[i]}");
}
}

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>ex_023_019_ReadOnlyDictionary_and_values_dll</AssemblyName>
<PackageId>ex_023_019_ReadOnlyDictionary_and_values_dll</PackageId>
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- ======================================================================
Copyright (C) 2013-2014 MARC CHEVALDONNE
marc.chevaldonne.free.fr
Module : ex_036_001_Reflection.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonné
Creation date : 2014-05-26
======================================================================== -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>ex_036_001_Reflection</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_036_001_Reflection</PackageId>

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- ======================================================================
Copyright (C) 2013-2014 MARC CHEVALDONNE
marc.chevaldonne.free.fr
Module : ex_036_001_ChatChienOiseau.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonné
Creation date : 2014-05-26
======================================================================== -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>ex_036_001_ChatChienOiseau</AssemblyName>
<OutputType>Library</OutputType>
<PackageId>ex_036_001_ChatChienOiseau</PackageId>

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- ======================================================================
Copyright (C) 2013-2014 MARC CHEVALDONNE
marc.chevaldonne.free.fr
Module : ex_036_001_Mammifere.csproj
Author : Marc Chevaldonné
Author : Marc Chevaldonné
Creation date : 2014-05-26
======================================================================== -->
@ -13,7 +13,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>ex_036_001_Mammifere</AssemblyName>
<OutputType>Library</OutputType>
<PackageId>ex_036_001_Mammifere</PackageId>

@ -42,10 +42,15 @@ namespace ex_037_001_File_and_Directory_management
WriteLine($"Le dossier parent est : {parentDir.Name}, le chemin complet est {parentDir.FullName}");
ReadKey();
//récupère le chemin d'un ancêtre
DirectoryInfo ancestorDir = new DirectoryInfo(Path.Combine(currentDir, "..//..//..//..//"));
WriteLine($"Le dossier ancêtre, quatre niveaux au-dessus, est : {ancestorDir.Name}, le chemin complet est {ancestorDir.FullName}");
ReadKey();
//récupère l'ensemble des sous-dossiers de ce dossier
//string[] subDirectories = Directory.GetDirectories(parentDir.FullName);
//depuis C#4, la ligne ci-dessous est plus efficace que la ligne ci-dessous
IEnumerable<string> subDirectories = Directory.EnumerateDirectories(parentDir.FullName);
//string[] subDirectories = Directory.GetDirectories(ancestorDir.FullName);
//depuis C#4, la ligne ci-dessous est plus efficace que la ligne ci-dessus
IEnumerable<string> subDirectories = Directory.EnumerateDirectories(ancestorDir.FullName);
WriteLine("les sous-dossiers de ce dossier sont :");
foreach (string subDir in subDirectories)
{
@ -54,7 +59,7 @@ namespace ex_037_001_File_and_Directory_management
ReadKey();
//vérifie que le dossier ex_037_001_File_and_Directory_management existe
string dossierProjet = Path.Combine(parentDir.FullName, "ex_037_001_File_and_Directory_management");
string dossierProjet = Path.Combine(ancestorDir.FullName, "ex_037_001_File_and_Directory_management");
bool exist = Directory.Exists(dossierProjet);
WriteLine($"le dossier ex_037_001_File_and_Directory_management existe-t-il ? {(exist ? "oui" : "non")}");
ReadKey();

@ -46,7 +46,7 @@ namespace ex_037_002_FileStream
{
OutputEncoding = Encoding.UTF8;
Directory.SetCurrentDirectory(Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).FullName, "ex_037_002_FileStream"));
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//..//ex_037_002_FileStream"));
//Construction d'un FileStream : le plus simple est d'utiliser l'un des trois méthodes suivantes
FileStream fileStream1 = File.OpenRead("fichier.txt"); // en lecture seule
fileStream1.Dispose();

@ -22,7 +22,7 @@ namespace ex_037_003_TextReader_TextWriter
static void Main(string[] args)
{
OutputEncoding = Encoding.UTF8;
Directory.SetCurrentDirectory(Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).FullName, "ex_037_003_TextReader_TextWriter"));
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//..//ex_037_003_TextReader_TextWriter"));
//METHODE 1
//écriture de deux lignes dans un fichier

@ -23,7 +23,7 @@ namespace ex_037_005_XmlReader_XmlWriter
static void Main(string[] args)
{
OutputEncoding = Encoding.UTF8;
Directory.SetCurrentDirectory(Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).FullName, "ex_037_005_XmlReader_XmlWriter", "XML"));
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), "..//..//..//..//ex_037_005_XmlReader_XmlWriter", "XML"));
Nounours nounours = new Nounours()
{

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<nounours nom="Chewbacca">
<naissance>1977-05-27T00:00:00+02:00</naissance>
<naissance>1977-05-27T00:00:00</naissance>
<nb_poils>1234567</nb_poils>
</nounours>

@ -24,8 +24,6 @@ namespace ex_042_001_EF_CodeFirst_conventions
/// - dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),
/// - dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_001_EF_CodeFirst_conventions)
/// - tapez : dotnet restore (pour restaurer les packages .NET Core)
/// note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment
/// la partie frameworks
/// - tapez : dotnet ef migrations add MyFirstMigration
/// note : vous pourrez détruire le dossier Migrations une fois la base créée
/// - tapez : dotnet ef database update
@ -113,7 +111,6 @@ namespace ex_042_001_EF_CodeFirst_conventions
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_001_EF_CodeFirst_conventions)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -26,8 +26,6 @@ namespace ex_042_002_EF_CodeFirst_data_annotations
/// - dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),
/// - dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_001_EF_CodeFirst_conventions)
/// - tapez : dotnet restore (pour restaurer les packages .NET Core)
/// note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment
/// la partie frameworks
/// - tapez : dotnet ef migrations add MyFirstMigration
/// note : vous pourrez détruire le dossier Migrations une fois la base créée
/// - tapez : dotnet ef database update
@ -113,7 +111,6 @@ namespace ex_042_002_EF_CodeFirst_data_annotations
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_002_EF_CodeFirst_data_annotations)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_002_EF_CodeFirst_data_annotations</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_002_EF_CodeFirst_data_annotations</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -106,7 +106,6 @@ namespace ex_042_003_EF_CodeFirst_Fluent_API
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_003_EF_CodeFirst_Fluent_API)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_003_EF_CodeFirst_Fluent_API</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_003_EF_CodeFirst_Fluent_API</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -95,7 +95,6 @@ namespace ex_042_004_EF_CF_InitializationStrategy
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_004_EF_CF_InitializationStrategy)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_004_EF_CF_InitializationStrategy</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_004_EF_CF_InitializationStrategy</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -95,7 +95,6 @@ namespace ex_042_005_EF_CF_Seeding_Data
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_005_EF_CF_Seeding_Data)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_005_EF_CF_Seeding_Data</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_005_EF_CF_Seeding_Data</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -60,7 +60,6 @@ namespace ex_042_006_EF_CF_One_to_One
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_006_EF_CF_One_to_One)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_006_EF_CF_One_to_One</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_006_EF_CF_One_to_One</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -62,7 +62,6 @@ namespace ex_042_007_EF_CF_One_to_One_FluentAPI
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_007_EF_CF_One_to_One_FluentAPI)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_007_EF_CF_One_to_One_FluentAPI</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_007_EF_CF_One_to_One_FluentAPI</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -71,7 +71,6 @@ namespace ex_042_008_EF_CF_One_to_Many
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_008_EF_CF_One_to_Many)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_008_EF_CF_One_to_Many</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_008_EF_CF_One_to_Many</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -73,7 +73,6 @@ namespace ex_042_009_EF_CF_One_to_Many_FluentAPI
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_009_EF_CF_One_to_Many_FluentAPI)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_009_EF_CF_One_to_Many_FluentAPI</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_009_EF_CF_One_to_Many_FluentAPI</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -68,7 +68,6 @@ namespace ex_042_010_EF_CF_Many_to_Many
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_010_EF_CF_Many_to_Many)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_010_EF_CF_Many_to_Many</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_010_EF_CF_Many_to_Many</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -81,7 +81,6 @@ namespace ex_042_011_EF_CF_Many_to_Many_FluentAPI
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_011_EF_CF_Many_to_Many_FluentAPI)");
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
WriteLine(" note : si vous cherchez à refaire la même chose dans votre projet, assurez-vous que le project.json correspond à celui de ce projet et notamment la partie frameworks");
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
WriteLine("- tapez : dotnet ef database update");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_011_EF_CF_Many_to_Many_FluentAPI</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_011_EF_CF_Many_to_Many_FluentAPI</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,6 @@
<AssemblyName>ex_042_012_EF_CF_Dictionary</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_012_EF_CF_Dictionary</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,6 @@
<AssemblyName>ex_042_013_EF_CF_TPT_Inheritance</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_013_EF_CF_TPT_Inheritance</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,6 @@
<AssemblyName>ex_042_014_EF_CF_TPH_Inheritance</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_014_EF_CF_TPH_Inheritance</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
@ -6,7 +6,6 @@
<OutputType>Exe</OutputType>
<PackageId>ex_042_015_EF_CF_TPC_Inheritance</PackageId>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>

@ -69,7 +69,7 @@ namespace ex_042_016_EF_current_original_database_val
nounours.Nom = "Chewie";
// Pendant ce temps, l'entité correspondante en base de données est modifiée (la colonne Nom)
context.Database.ExecuteSqlCommand($"update dbo.TableNounours set Nom = 'Boule de poils' where UniqueId = '{ids[0]}'");
context.Database.ExecuteSqlCommand($"update dbo.TableNounours set Nom = 'Boule de poils' where UniqueId = {ids[0]}");
// Affichage des données dites "courantes" CurrentValues
WriteLine("Current values:");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_016_EF_current_original_database_val</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_016_EF_current_original_database_val</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -5,7 +5,6 @@
<AssemblyName>ex_042_017_EF_concurrency_problematic</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_017_EF_concurrency_problematic</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -116,7 +116,7 @@ namespace ex_042_018_EF_concurrency_databaseWins
//4. La table est mise à jour par un autre biais
using (NounoursDBEntities db = new NounoursDBEntities())
{
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = '{ids[0]}'");
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = {ids[0]}");
db.SaveChanges();
}
PrintTable("Maintenant, la table contient :");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_018_EF_concurrency_databaseWins</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_018_EF_concurrency_databaseWins</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -132,7 +132,7 @@ namespace ex_042_019_EF_concurrency_clientWins
//4. La table est mise à jour par un autre biais
using (NounoursDBEntities db = new NounoursDBEntities())
{
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = '{ids[0]}'");
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = {ids[0]}");
db.SaveChanges();
}
PrintTable("Maintenant, la table contient :");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_019_EF_concurrency_clientWins</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_019_EF_concurrency_clientWins</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -180,7 +180,7 @@ namespace ex_042_020_EF_concurrency_customDbProp
//4. La table est mise à jour par un autre biais
using (NounoursDBEntities db = new NounoursDBEntities())
{
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = '{ids[0]}'");
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = {ids[0]}");
db.SaveChanges();
}
PrintTable("Maintenant, la table contient :");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_020_EF_concurrency_customDbProp</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_020_EF_concurrency_customDbProp</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -191,7 +191,7 @@ namespace ex_042_021_EF_concurrency_customObjects
//4. La table est mise à jour par un autre biais
using (NounoursDBEntities db = new NounoursDBEntities())
{
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = '{ids[0]}'");
db.Database.ExecuteSqlCommand($"UPDATE dbo.TableNounours SET NbPoils = 5 WHERE UniqueId = {ids[0]}");
db.SaveChanges();
}
PrintTable("Maintenant, la table contient :");

@ -5,7 +5,6 @@
<AssemblyName>ex_042_021_EF_concurrency_customObjects</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_042_021_EF_concurrency_customObjects</PackageId>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
@ -6,7 +6,6 @@
<OutputType>Exe</OutputType>
<PackageId>ex_050_001_CreatingAThread</PackageId>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>

@ -0,0 +1,7 @@
<Application
x:Class="ex_050_010_Threading_en_UWP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ex_050_010_Threading_en_UWP">
</Application>

@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
namespace ex_050_010_Threading_en_UWP
{
/// <summary>
/// Fournit un comportement spécifique à l'application afin de compléter la classe Application par défaut.
/// </summary>
sealed partial class App : Application
{
/// <summary>
/// Initialise l'objet d'application de singleton. Il s'agit de la première ligne du code créé
/// à être exécutée. Elle correspond donc à l'équivalent logique de main() ou WinMain().
/// </summary>
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
}
/// <summary>
/// Invoqué lorsque l'application est lancée normalement par l'utilisateur final. D'autres points d'entrée
/// seront utilisés par exemple au moment du lancement de l'application pour l'ouverture d'un fichier spécifique.
/// </summary>
/// <param name="e">Détails concernant la requête et le processus de lancement.</param>
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
// Ne répétez pas l'initialisation de l'application lorsque la fenêtre comporte déjà du contenu,
// assurez-vous juste que la fenêtre est active
if (rootFrame == null)
{
// Créez un Frame utilisable comme contexte de navigation et naviguez jusqu'à la première page
rootFrame = new Frame();
rootFrame.NavigationFailed += OnNavigationFailed;
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
//TODO: chargez l'état de l'application précédemment suspendue
}
// Placez le frame dans la fenêtre active
Window.Current.Content = rootFrame;
}
if (e.PrelaunchActivated == false)
{
if (rootFrame.Content == null)
{
// Quand la pile de navigation n'est pas restaurée, accédez à la première page,
// puis configurez la nouvelle page en transmettant les informations requises en tant que
// paramètre
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
// Vérifiez que la fenêtre actuelle est active
Window.Current.Activate();
}
}
/// <summary>
/// Appelé lorsque la navigation vers une page donnée échoue
/// </summary>
/// <param name="sender">Frame à l'origine de l'échec de navigation.</param>
/// <param name="e">Détails relatifs à l'échec de navigation</param>
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
{
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
}
/// <summary>
/// Appelé lorsque l'exécution de l'application est suspendue. L'état de l'application est enregistré
/// sans savoir si l'application pourra se fermer ou reprendre sans endommager
/// le contenu de la mémoire.
/// </summary>
/// <param name="sender">Source de la requête de suspension.</param>
/// <param name="e">Détails de la requête de suspension.</param>
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: enregistrez l'état de l'application et arrêtez toute activité en arrière-plan
deferral.Complete();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -1,7 +1,12 @@
<Window x:Class="ex_050_010_Threading_en_WPF.MainWindow"
<Page
x:Class="ex_050_010_Threading_en_UWP.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
xmlns:local="using:ex_050_010_Threading_en_UWP"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -23,4 +28,4 @@
HorizontalAlignment="Center" VerticalAlignment="Center" Padding="5" Grid.Row="2"/>
<ProgressBar Name="mProgressBar3" Height="20" Margin="5" Grid.Column="1" Maximum="10" Grid.Row="2"/>
</Grid>
</Window>
</Page>

@ -1,31 +1,37 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
namespace ex_050_010_Threading_en_WPF
// Pour plus d'informations sur le modèle d'élément Page vierge, consultez la page https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace ex_050_010_Threading_en_UWP
{
/// <summary>
/// Logique d'interaction pour MainWindow.xaml
/// Une page vide peut être utilisée seule ou constituer une page de destination au sein d'un frame.
/// </summary>
public partial class MainWindow : Window
public sealed partial class MainPage : Page
{
//contexte de synchronisation
//utile que pour le 3ème exemple
SynchronizationContext mSynchroContext;
public MainWindow()
public object DispatcherHandler { get; private set; }
public MainPage()
{
InitializeComponent();
@ -44,7 +50,7 @@ namespace ex_050_010_Threading_en_WPF
{
for (int i = 0; i < 10; i++)
{
Thread.Sleep(500);
Task.Delay(500).Wait();
pb.Value++;
}
}
@ -62,24 +68,22 @@ namespace ex_050_010_Threading_en_WPF
//simulation de travail
//met à jour de 10% la progressBar toutes les demi-secondes
void Travaille2(ProgressBar pb)
async Task Travaille2(ProgressBar pb)
{
for (int i = 0; i < 10; i++)
{
Thread.Sleep(500);
await Task.Delay(500);
Action action = () => pb.Value++;
//permet d'envoyer la requête de modification d'une mise à jour de l'UI sur le UI Thread
//Cette opération s'appelle : marshaling
Dispatcher.BeginInvoke(action);
//On peut aussi utiliser Dispatcher.Invoke qui fait la même chose, mais bloque le thread dans l'attente d'une réponse
//du UI thread. Si aucune valeur de retour n'est nécessaire, il vaut mieux utiliser BeginInvoke.
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, ()=>action());
}
}
private void Button_Click_2(object sender, RoutedEventArgs e)
private async void Button_Click_2(object sender, RoutedEventArgs e)
{
//lance la simulation de travail dans un "worker" thread
new Thread(() => Travaille2(mProgressBar2)).Start();
await Travaille2(mProgressBar2);
}
/////////////////////////////////////////////////////////////////////
@ -88,22 +92,22 @@ namespace ex_050_010_Threading_en_WPF
//simulation de travail
//met à jour de 10% la progressBar toutes les demi-secondes
void Travaille3(ProgressBar pb)
async Task Travaille3(ProgressBar pb)
{
for (int i = 0; i < 10; i++)
{
Thread.Sleep(500);
await Task.Delay(500);
//permet d'envoyer la requête de modification d'une mise à jour de l'UI sur le UI Thread
//Cette opération s'appelle : marshaling
mSynchroContext.Post( _ => pb.Value++, null);
mSynchroContext.Post(_ => pb.Value++, null);
//Post remplace BeginInvoke
//Send remplace Invoke
}
}
private void Button_Click_3(object sender, RoutedEventArgs e)
private async void Button_Click_3(object sender, RoutedEventArgs e)
{
new Thread(() => Travaille3(mProgressBar3)).Start();
await Travaille3(mProgressBar3);
}
}
}

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
IgnorableNamespaces="uap mp">
<Identity
Name="fb6d3437-07d6-4468-8c7a-2ad12a352ae6"
Publisher="CN=mch"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="fb6d3437-07d6-4468-8c7a-2ad12a352ae6" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>ex_050_010_Threading_en_UWP</DisplayName>
<PublisherDisplayName>mch</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="ex_050_010_Threading_en_UWP.App">
<uap:VisualElements
DisplayName="ex_050_010_Threading_en_UWP"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
Description="ex_050_010_Threading_en_UWP"
BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>

@ -0,0 +1,29 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Les informations générales relatives à un assembly dépendent de
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
// associées à un assembly.
[assembly: AssemblyTitle("ex_050_010_Threading_en_UWP")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ex_050_010_Threading_en_UWP")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
//
// Version principale
// Version secondaire
// Numéro de build
// Révision
//
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: ComVisible(false)]

@ -0,0 +1,31 @@
<!--
Ce fichier contient les directives runtime utilisées par .NET Native. Les valeurs par défaut conviennent à la plupart des
développeurs. Toutefois, vous pouvez modifier ces paramètres pour changer le comportement de
l'optimiseur .NET Native.
Les directives runtime sont documentées sur https://go.microsoft.com/fwlink/?LinkID=391919
Pour activer complètement la réflexion de App1.MyClass et de tous ses membres publics/privés
<Type Name="App1.MyClass" Dynamic="Required All"/>
Pour activer la création dynamique de l'instanciation spécifique de AppClass<T> sur System.Int32
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
Utilisation de la directive Namespace pour appliquer la stratégie de réflexion à tous les types d'un espace de noms particulier
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
-->
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<!--
Un élément Assembly dont Name="*Application*" s'applique à tous les assemblys du
package d'application. Les astérisques ne sont pas des caractères génériques.
-->
<Assembly Name="*Application*" Dynamic="Required All" />
<!-- Ajoutez ici les directives runtime spécifiques à votre application. -->
</Application>
</Directives>

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{0D922BCD-7C0F-43FF-A015-F547716B8284}</ProjectGuid>
<OutputType>AppContainerExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ex_050_010_Threading_en_UWP</RootNamespace>
<AssemblyName>ex_050_010_Threading_en_UWP</AssemblyName>
<DefaultLanguage>fr-FR</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.17763.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.15063.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
<OutputPath>bin\ARM64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
<ItemGroup>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
</Compile>
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest">
<SubType>Designer</SubType>
</AppxManifest>
</ItemGroup>
<ItemGroup>
<Content Include="Properties\Default.rd.xml" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>6.2.8</Version>
</PackageReference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

@ -1,8 +0,0 @@
<Application x:Class="ex_050_010_Threading_en_WPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>

@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace ex_050_010_Threading_en_WPF
{
/// <summary>
/// Logique d'interaction pour App.xaml
/// </summary>
public partial class App : Application
{
}
}

@ -1,15 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>ex_050_010_Threading_en_WPF</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_050_010_Threading_en_WPF</PackageId>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -1,8 +0,0 @@
<Application x:Class="ex_052_006_problématique_6.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>

@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace ex_052_006_problématique_6
{
/// <summary>
/// Logique d'interaction pour App.xaml
/// </summary>
public partial class App : Application
{
}
}

@ -1,15 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>ex_052_006_problématique_6</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>ex_052_006_problématique_6</PackageId>
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>

@ -0,0 +1,7 @@
<Application
x:Class="ex_052_006_problématique_6_UWP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ex_052_006_problématique_6_UWP">
</Application>

@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
namespace ex_052_006_problématique_6_UWP
{
/// <summary>
/// Fournit un comportement spécifique à l'application afin de compléter la classe Application par défaut.
/// </summary>
sealed partial class App : Application
{
/// <summary>
/// Initialise l'objet d'application de singleton. Il s'agit de la première ligne du code créé
/// à être exécutée. Elle correspond donc à l'équivalent logique de main() ou WinMain().
/// </summary>
public App()
{
this.InitializeComponent();
this.Suspending += OnSuspending;
}
/// <summary>
/// Invoqué lorsque l'application est lancée normalement par l'utilisateur final. D'autres points d'entrée
/// seront utilisés par exemple au moment du lancement de l'application pour l'ouverture d'un fichier spécifique.
/// </summary>
/// <param name="e">Détails concernant la requête et le processus de lancement.</param>
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
// Ne répétez pas l'initialisation de l'application lorsque la fenêtre comporte déjà du contenu,
// assurez-vous juste que la fenêtre est active
if (rootFrame == null)
{
// Créez un Frame utilisable comme contexte de navigation et naviguez jusqu'à la première page
rootFrame = new Frame();
rootFrame.NavigationFailed += OnNavigationFailed;
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
//TODO: chargez l'état de l'application précédemment suspendue
}
// Placez le frame dans la fenêtre active
Window.Current.Content = rootFrame;
}
if (e.PrelaunchActivated == false)
{
if (rootFrame.Content == null)
{
// Quand la pile de navigation n'est pas restaurée, accédez à la première page,
// puis configurez la nouvelle page en transmettant les informations requises en tant que
// paramètre
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
// Vérifiez que la fenêtre actuelle est active
Window.Current.Activate();
}
}
/// <summary>
/// Appelé lorsque la navigation vers une page donnée échoue
/// </summary>
/// <param name="sender">Frame à l'origine de l'échec de navigation.</param>
/// <param name="e">Détails relatifs à l'échec de navigation</param>
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
{
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
}
/// <summary>
/// Appelé lorsque l'exécution de l'application est suspendue. L'état de l'application est enregistré
/// sans savoir si l'application pourra se fermer ou reprendre sans endommager
/// le contenu de la mémoire.
/// </summary>
/// <param name="sender">Source de la requête de suspension.</param>
/// <param name="e">Détails de la requête de suspension.</param>
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: enregistrez l'état de l'application et arrêtez toute activité en arrière-plan
deferral.Complete();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -1,8 +1,14 @@
<Window x:Class="ex_052_006_problématique_6.MainWindow"
<Page
x:Class="ex_052_006_problématique_6_UWP.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="600" Width="600">
<Window.Resources>
xmlns:local="using:ex_052_006_problématique_6_UWP"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Page.Resources>
<Style TargetType="TextBlock" x:Key="styleAnnotation">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Setter Property="Foreground" Value="#FFFF5D11"/>
@ -22,7 +28,7 @@
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
</Page.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
@ -59,4 +65,4 @@
<TextBlock Text="avec fonctions asynchrones !" Foreground="Green" Width="76" Grid.Row="1" Style="{StaticResource styleAnnotation}"/>
<TextBlock Text="méthode fréquemment utilisée avant C#5" Width="76" Grid.Row="2" Style="{StaticResource styleAnnotation}"/>
</Grid>
</Window>
</Page>

@ -1,28 +1,31 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ex_052_006_problématique_6
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
// Pour plus d'informations sur le modèle d'élément Page vierge, consultez la page https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace ex_052_006_problématique_6_UWP
{
/// <summary>
/// Logique d'interaction pour MainWindow.xaml
/// Une page vide peut être utilisée seule ou constituer une page de destination au sein d'un frame.
/// </summary>
public partial class MainWindow : Window
public sealed partial class MainPage : Page
{
public MainWindow()
public MainPage()
{
InitializeComponent();
this.InitializeComponent();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -99,23 +102,23 @@ namespace ex_052_006_problématique_6
Enumerable.Range(2, (int)Math.Sqrt(n) - 1).All(i => n % i > 0));
}
void DisplayPrimeCountsCGC()
async void DisplayPrimeCountsCGC()
{
for (int i = 0; i < 10; i++)
{
int temp = i;
int result = GetPrimesCountCGC(temp * 1000000 + 2, 1000000);
Dispatcher.BeginInvoke(new Action(() =>
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, () =>
mTextBlockCourseGrainedConcurrency.Text += string.Format("{0} primes between {1} and {2}",
result,
temp * 1000000,
(temp + 1) * 1000000 - 1) + Environment.NewLine));
(temp + 1) * 1000000 - 1) + Environment.NewLine);
}
Dispatcher.BeginInvoke(new Action(() =>
await Dispatcher.RunAsync( Windows.UI.Core.CoreDispatcherPriority.High, () =>
{
mTextBlockCourseGrainedConcurrency.Text += "Done !";
mButtonCGC.IsEnabled = true;
}));
});
}
}

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
IgnorableNamespaces="uap mp">
<Identity
Name="987e36fb-9766-4e2f-8336-765cadbd7d3c"
Publisher="CN=mch"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="987e36fb-9766-4e2f-8336-765cadbd7d3c" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>ex_052_006_problématique_6_UWP</DisplayName>
<PublisherDisplayName>mch</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="ex_052_006_problématique_6_UWP.App">
<uap:VisualElements
DisplayName="ex_052_006_problématique_6_UWP"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
Description="ex_052_006_problématique_6_UWP"
BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>

@ -0,0 +1,29 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Les informations générales relatives à un assembly dépendent de
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
// associées à un assembly.
[assembly: AssemblyTitle("ex_052_006_problématique_6_UWP")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ex_052_006_problématique_6_UWP")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
//
// Version principale
// Version secondaire
// Numéro de build
// Révision
//
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: ComVisible(false)]

@ -0,0 +1,31 @@
<!--
Ce fichier contient les directives runtime utilisées par .NET Native. Les valeurs par défaut conviennent à la plupart des
développeurs. Toutefois, vous pouvez modifier ces paramètres pour changer le comportement de
l'optimiseur .NET Native.
Les directives runtime sont documentées sur https://go.microsoft.com/fwlink/?LinkID=391919
Pour activer complètement la réflexion de App1.MyClass et de tous ses membres publics/privés
<Type Name="App1.MyClass" Dynamic="Required All"/>
Pour activer la création dynamique de l'instanciation spécifique de AppClass<T> sur System.Int32
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
Utilisation de la directive Namespace pour appliquer la stratégie de réflexion à tous les types d'un espace de noms particulier
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
-->
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<!--
Un élément Assembly dont Name="*Application*" s'applique à tous les assemblys du
package d'application. Les astérisques ne sont pas des caractères génériques.
-->
<Assembly Name="*Application*" Dynamic="Required All" />
<!-- Ajoutez ici les directives runtime spécifiques à votre application. -->
</Application>
</Directives>

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{BCE167F6-6323-46FC-A112-D9941A75815A}</ProjectGuid>
<OutputType>AppContainerExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ex_052_006_problématique_6_UWP</RootNamespace>
<AssemblyName>ex_052_006_problématique_6_UWP</AssemblyName>
<DefaultLanguage>fr-FR</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.17763.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.15063.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
<OutputPath>bin\ARM64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
<ItemGroup>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
</Compile>
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest">
<SubType>Designer</SubType>
</AppxManifest>
</ItemGroup>
<ItemGroup>
<Content Include="Properties\Default.rd.xml" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>6.2.8</Version>
</PackageReference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Loading…
Cancel
Save