- Cours pratique
- Informatique
- Microsoft
Formation C# perfectionnement et optimisation
Aspects avancés, Multithreading, WPF, Users Controls, LINQ, Web service, WCT, ...

- Durée
- 4 jours
- Niveau
- Avancé
- Modalités
- Présentiel / Distanciel
Description de la formation C# Avance
Cette formation « Langage C# avancé » vous permettra de maîtriser tous les concepts fondamentaux liés au développement des applications .NET (WPF, LINQ, Service Windows, Multithread) et à la communication (Socket, WCF, WebServices REST et SOAP).
Après une synthèse technique sur les possibilités et les performances des différentes technologies .NET, vous apprendrez à gérer de façon efficace vos applications sous forme de services (WebServices, WCF).
Ensuite vous prendrez la mesure des possibilités de LINQ et de sa philosophie originale pour gérer les données ainsi que celle du remplaçant des Windows Forms : WPF (effets graphiques, liens avec XAML, databinding, etc.).
Vous apprendrez aussi à développer vos propres services systèmes et à utiliser la technologie des sockets ainsi que les multithread. Pour finir, vous aborderez le développement et le déploiement de services Windows.

Objectifs pédagogiques
Concrètement, à l'issue de cette formation Langage C# avancé vous serez en mesure de:
- Créer et déployer un service Windows
- Optimiser le code de vos applications
- Programmer en des application multithreads
- Implémenter des WebServices SOAP et REST
- Utiliser les sockets pour la programmation réseau
- Utiliser WPF
- Utiliser LINQ dans un programme C#
Objectifs opérationnels
Maîtriser tous les concepts fondamentaux liés au développement des applications .NET
Programme
Contenu du cours
Rappels et compléments sur le Framework .Net
Synthèse sur l'architecture du Framework .NETLa place de C# dans l'architecture globale de .NET
Les nouveautés du Framework .NET
Comparaisons de C# avec d'autres langages (Java, C++...)
Les options de compilations de CSC (CSC, Roslyn)
Créer une bibliothèque réutilisable (dll)
Rappels sur le C# (Types et méthodes anonymes, Délégués, Prédicats, Expression lambda, Méthode d’extension…)
Performances et mémoire (code non managé) - Optimisation C#
Terminologies systèmes (Processus, Threads, Handles…)Contexte d’exécution d’un processus (Jeton utilisateur, UAC, Virtualisation…)
Comprendre les couches basses de .NET (CLR, assembly, module...)
Gestion du tas et de la pile par .NET (Garbage collector)
Risque et intérêt d'utiliser du code « non managé »
Utilisation des pointeurs en C# (unsafe)
Exemples de code non managéTravaux PratiquesFaire appel à des composants non managés
Créer et déployer un service Windows
Différences entre un service Windows et une applicationPrésentation de la classe ServiceBase (OnStart, OnStop, OnPause, OnRestart)
Création d'un service avec Visual Studio (template Windows Service)
Paramétrage du service (CanStop, CanShutdown...)
Déploiement d'un service Windows
Vérification du fonctionnement du service dans le Panneau de configurationTravaux PratiquesCréer et déployer un service Windows
Observer le fonctionnement du service par le journal Windows
Multithreading sous .NET
Présentation de la programmation parallèleArchitecture d'un programme multi-threads
Méthodes de gestion des threads
Fonctionnement « normal » d'un programme C#
Cycle de vie d'un thread
Les threads et les pools de threads
La Task Parallel Library
Paralléliser les boucles
Spécificités techniques de la programmation multi-threads (mémoire, verrou, synchronisation...)
Les outils dans Visual StudioTravaux PratiquesMise en place de thread dans un service windows
Introduction à la communication sous .NET
Synthèse des différents types d'échanges Technologies sous-jacentes dans .NET Présentation des différentes API (Socket, Web services, WCF...) Pourquoi utiliser les delegate dans la programmation réseau ?Services Web ASP.NET (SOAP et REST)
Présentation des types de web servicesIntégration de .NET dans le serveur Web IIS
Implémentation d’un WebService SOAP (.asmx)
Méthode SOAP et le WSDL
Implémentation d’un WebService REST (WebAPI)
Consommer un WebService REST (AJAX avec jQuery)Travaux PratiquesMise en place de webservices ASP.Net pour partager des données avec ADO.NET
Mise en place de webservices REST pour partager des données avec Entity Framework
Programmation réseau avec les sockets
Rappels sur le vocabulaire réseau (@IP, n°port, TCP, UDP)Quelles différences entre développer « par-dessus » TCP ou UDP ?
Qu'est-ce qu'un socket pour le développeur ?
Les méthodes de la classe Sockets (listen, bind, accept, send, receive...)
Envoi et réception de message (BeginReceive, BeginSend)
Exemple de code général côté serveur et côté client
Gestion du pool de connexion (multi clients)Travaux PratiquesCréation d'une application clients/serveur (type serveur de messagerie)
WCF
Architecture orientée Services
Les contrats de service
Comprendre et utiliser les points de terminaison
Configuration et hébergement d'un service
Service bidirectionnel
Créer un service WCF sans serveur
WPF (Windows Presentation Foundation)
Présentation de WPFRappel sur Windows Forms
Implémentation de WPF
Scénario de migration et interopérabilité
Design et outils (Blend)
Implémentation Async/Await Contrôles de positionnement
Utilisation des contrôles utilisateurs
Présenter et interagir avec les données (Databinding)Travaux PratiquesCréation d'un gestionnaire de contacts en WPF
Créer ses propres contrôles utilisateurs (User Controls)
Création d'un gestionnaire d'événements pour un contrôleLes attributs d'un contrôle utilisateur (Category, Browsable, DefaultEvent...)
Utilisation des contrôles avec un formulaire Windows
Validation des entrées des utilisateurs
Gestion du glisser/déposer de nos propres contrôles
Créer des contrôles dynamiquement
Ajouter des fonctionnalités aux contrôles
Ajout de prise en charge Design-time pour les contrôlesTravaux PratiquesCréer des contrôles WPF et les utiliser dans le gestionnaire de contacts
LINQ (Language Integrated Query)
Présentation de LINQDes requêtes/traitements au-delà des simples bases de données ...
Comment utiliser LINQ dans un programme C# ?
Manipuler des collections d'objets avec LINQ (LINQ to Object)
Gérer des documents XML avec LINQ (LINQ to XML)
Gérer le mapping entre les types C# et les enregistrements d'une base (LINQ to SQL)
Interroger les données d'un dataset (LINQ to Dataset)
Ecrire des requêtes sur un modèle conceptuel (LINQ to Entities)
LINQ et les performancesTravaux PratiquesMise en place des classes métier et d'une basse de données par LINQ to Entities
Manipulation (insertion, modification, selection) des données avec LINQ
Recherche dans un fichier XML à l’aide de LINQ to XML
Travaux pratiques
Remarque : l'ensemble des travaux pratiques est réalisable à distance si vous optez pour la formule cours à distance.
Vous participez alors en temps réel à la même session en même temps que les autres participants présents en salle de cours. Un kit spécial formation à distance vous sera envoyé avec notamment le matériel (casque micro). Vous n’avez besoin que d’un navigateur et d’une connexion internet pour suivre dans les meilleures conditions cette formation à distance C# avancé. Contactez-nous pour plus d’informations sur cette formation C# avancé à distance de chez vous ou depuis votre bureau. Attention sur cette formation toutes les sessions ne sont pas réalisables en formule cours à distance.
Programme mis à jour le 17/07/2026
Public concerné
Ce cours C# avancé s'adresse aux développeurs expérimentés d'applications d'entreprises ainsi qu'aux chefs de projets.

Prérequis
La bonne connaissance d'au moins un langage .NET (C# ou VB.NET). Avoir suivi la formation Le langage C# (SLCN) est une bonne base pour suivre ce cours avancé.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
4,5/5
28 avis
« Mon avis sur le contenu du stage : "Le contenu à répondu à mes attentes. Très peu de travaux pratiques par manque de temps. Les supports n'étaient pas imprimés ce qui pose des problèmes pour suivre." Mon avis sur le formateur : "Formateur impliqué qui a à coeur de nous faire voir l'ensemble du programme. ça mériterait sans doute des exemples un peu plus concret sur certain point pour pouvoir mieux comprendre les cadres d'applications." Mon avis sur la salle de formation : "Vidéo projecteur avec une couleur manquante et une mise au point impossible. Du coup, c'est flou... pour lire du code, c'est embêtant!" Ce que j'ai le plus apprécié : "Salle café accueillante et bien remplie." Ce que j'ai le moins apprécié : "/" »
HARTEMANN ChristopheMICHELIN « Mon avis sur le contenu du stage : "Quelques difficultés sur l’exercice Chat en WPF. J'ai adoré l’alternance entre Cours, Exemples avec l'animateur et les Ateliers en autonomie complète. J'ai apprécier l'amplitude des sujets abordés." Mon avis sur le formateur : "A l'écoute et très bien informés sur les technos Microsoft" Mon avis sur la salle de formation : "Formation à distance: Les outils mis à disposition sont très bien. A partir du 2° jour, j'ai pu faire la formation de chez moi, ce qui a été un vrais plus pour la concentration." »
CA « Mon avis sur le contenu du stage : "Très bon support et mise en application immédiate avec les scripts solutions." Mon avis sur le formateur : "Excellent formateur." Mon avis sur la salle de formation : "La formation s'est déroulée à distance vu le contexte actuel. La plateforme mise en place était de bonne qualité et stable." Ce que j'ai le plus apprécié : "La dématérialisation des documents d'évaluation et d'émargement" »
OSTACH GaëlAXODYN SA
Les avis figurant ci-dessus sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.
Formations liées
- Le langage C# (.NET)Réf. SLCN5 joursIntermédiaireProchaine session : 16 nov.3 050 €
- Visual Basic .NET PerfectionnementRéf. VB25654 joursAvancéProchaine session : 30 nov.2 490 €
- Web Services REST - Mise en œuvre en C#Réf. DWSR3 joursIntermédiaireProchaine session : 26 oct.2 090 €
- .NET : Bonnes pratiques et Design PatternsRéf. JPDP4 joursIntermédiaireProchaine session : 14 déc.2 490 €