Le langage C# est le langage objet phare de Microsoft. Il permet de développer tout type d'application (client lourd, web, web service, ...). Le langage C# est très lié à la plateforme .Net à laquelle il "emprunte" ses objets pour développer des applications fenêtrées (Windows Forms ou WPF), des sites WEB (ASP.net Web Forms et MVC), ou encore se connecter aux bases de données (ADO.net, LINQ et Entity Framework). L'environnement de développement intégré incontournable pour le C# est Visual Studio.
Cette formation C#11 vous permettra de maîtriser les fondamentaux du langage C#11 et l'environnement de programmation Visual Studio 2022. Au-delà du langage C#, qui reste l’objectif de base de la formation, la plateforme .NET vous sera également présentée afin de bien comprendre l'environnement global sur lequel peut s’appuyer le langage C#.
Public :
Ce cours C#11 s’adresse aux développeurs souhaitant acquérir une maîtrise professionnelle du langage C#11 et de son framework .NET 7.
La formation intéressera également les développeurs néophytes en C#11 qui cherchent à consolider leur connaissance du langage ainsi qu’à l’enrichir d’outils supplémentaires.
Prérequis :
Les participants doivent obligatoirement posséder un bagage préalable en programmation structurée (boucles, variables, appels de fonctions…) pour comprendre le fonctionnement du langage et du framework .NET 7. S’il n’est pas obligatoire de connaître le langage C#11, il est en revanche vivement conseillé de disposer d’une expérience pratique en C, C++ ou Java en raison de leur proximité syntaxique avec le langage C#. Sans cela, vous pourrez comprendre la formation mais serez grandement gênés dans la réalisation des travaux pratiques.
Enfin, toute expérience dans le développement d’applications d’entreprise et dans la pratique d’un système d’exploitation (fonctions de base, manipulation de fichiers…) vous permettra d’aborder Microsoft Visual Studio 2022 avec plus d’aisance.
Jour 1
Introduction à C#11, .NET 7 et à Microsoft Visual Studio 2022
Comprendre le vocabulaire et la philosophie des technologies .NET (WPF, ASP.NET, MVC, ADO.NET, Entity Framework)
La place de C#11 dans l'architecture globale de .NET 7
Les différences entre C#11 et VB.NET
L’architecture détaillée de .NET 7 (CLR, BCL, compilation Just In Time, etc.)
Les différentes familles d’applications .NET
Les différents projets proposés par Microsoft Visual Studio
Comparaison de C#11 avec d'autres langages (Java, C++...)Travaux pratiques (à titre indicatif)Objectif : Découvrir les fonctionnalités principales de Visual Studio 2022 et savoir créer un projet Visual Studio
Description : Parcourir les composants de Visual Studio
Créer des projets à l’aide de différents modèlesLa programmation orienté objet en C#11
Le modèle Objet avec le langage C#
Présentation des classes et objets
Prise en charges du code managé et gestion de la mémoire
Implémentation de l’héritage, surcharge et polymorphisme
Principe des interfaces
Héritage multiple
Définition des propriétés et des indexeurs
Présentation des options syntaxiques : Expression d'initialisation, types anonymes, propriétés automatiques, méthodes d'extension, méthodes partielles
Les Dynamic, paramètres optionnels et paramètres nommés, Interopérabilité COM améliorée, Co et Contra variance
Les fonctions avancées de C#10 : paramètres optionnels, résolution des types génériques, propagation de null, interpolation de chaîne...Travaux pratiques (à titre indicatif)Objectifs : Découvrir les classes principales en C#11
Mettre en pratique les structurées liées au cycle de vie des classes et des objets
Savoir utiliser les classes dans différents environnements
Description : Création de plusieurs classes en C# reprenant les concepts fondamentaux de ce chapitre et la syntaxe associée
Utilisation de ces classes par d’autres programmesJour 2Les nouveautés du langage C#11
Méthodes d’interface par défaut, déclaration using
Utilisation des critères spéciaux avec is en C#10
Fonctions locales, expression-bodied
Types références Nullables
Les records
Utilisation des Tuples
Retour de fonction multiple et par référence
Construction et Déconstruction d’un objet
Pattern matching (correspondance de motifs)
Expressions switch
Les variables out
La notation binaire, Index et plagesTravaux pratiques (à titre indicatif)Objectifs : Découvrir les spécificités du langage C#11
Savoir écrire du code synthétique avec la dernière version de C#
Description : Création d’une application permettant de mettre en valeur les nouveautés du langage C#Jour 3Les classes incontournables du Framework .NET 7
Classes mathématiques, structures usuelles, gestion des dates
Gestion du formatage des chaînes
Filtrer l'information grâce aux expressions régulières
Conteneurs classiques : listes, listes triées, piles et tables de hachagesTravaux pratiques (à titre indicatif)Objectif : Découvrir les classes les plus utiles du Framework .NET
Description : Création d’une application permettant de lister, trier, comparer et sélectionner des données grâce à la puissance du framework .NETLes entrées / sorties
Maîtriser l’encodage des données à travers ses règles et ses formats (ascii, utf-8, etc.)
Exemples de problèmes couramment rencontrés (sauts de lignes, accents, etc.)
Convertisseurs de formats de texte
Notion de flux, FileStream / StreamWriter / StreamReader
Gestion des entrées/sorties synchrones/asynchronesTravaux pratiques (à titre indicatif)Objectifs : Découvrir les différentes formes d’encodage de fichier
Savoir créer et modifier des fichiers
Description : Création d’une application permettant de lire et écrire des données dans un fichier texte
Réencoder une page HTMLJour 4Les solutions d’accès aux données en C#11
Présentation de ADO.NET et des accès aux données d’une base de données
Présentation et utilisation de LINQ
Lecture/Écriture dans un fichier XML en utilisant LINQ To XML
Lecture/Écriture de données en utilisant EntityFramework CodeFirstTravaux pratiques (à titre indicatif)Objectifs : Découvrir comment communiquer avec une base de données
Savoir écrire des requêtes LINQ
Description : Création d’une application permettant de manipuler les données d'une base de données en utilisant LINQLa programmation avancée
Exceptions : gestion centralisée des erreurs, classes d'exceptions personnalisées, exceptions non- .NET
Délégués : délégués et évènements, expressions lambda
Utilisation des "Generics"
Appel synchrone et asynchrone, TPL (Task Parallel Librairie)Travaux pratiques (à titre indicatif)Objectifs : Découvrir comment traiter des exceptions en C#
Manipuler les délégués
Description : Créer une application avec gestion des exceptions et des déléguésJour 5Introduction à WPF
Présentation de WPF
Les types de contrôles
Les ressources
La philosophie de WPF, (notion ‘d’usine logiciel’)
Introduction à MVVM Travaux pratiques (à titre indicatif)Objectifs : Savoir créer une application WPF
Intégrer une gestion de l’accès aux bases de données
Description : Création de formulaires pour afficher les données récupérées dans les Travaux Pratiques sur ADO.NETApplication Web avec ASP.NET et C#11
Qu'est-ce qu'une application ASP.NET ?
Principes des Web Services (REST ou RPC ?)
Implémentation d’une WebAPI en MVC
Introduction à une application portée en ASP.NET
C#, ASP.NET et le modèle MVC
Nouveautés introduites par .NET CoreTravaux pratiques (à titre indicatif)Objectifs : Découvrir l’intégration du Web dans le Framework .NET
Savoir développer avec le pattern MVC
Savoir développer un Web Service REST
Description : Utilisation de WebService pour alimenter une application WPF