أهداف الدورة التكوينية
Objectifs Opérationnels:
Maîtriser tous les concepts fondamentaux liés au développement des applications .NET
Objectifs pédagogiques
Concrètement, à ‘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#
لمن تتوجه هذه الدورة؟
Ce cours C# avancé s’adresse aux développeurs expérimentés d’applications d’entreprises ainsi qu’aux chefs de projets.
المتطلبات المسبقة
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é.
البرنامج
Rappels et compléments sur le Framework .Net
- Synthèse sur l’architecture du Framework .NET La 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 Pratiques
Faire appel à des composants non managés
Créer et déployer un service Windows
- Différences entre un service Windows et une application Pré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 configuration
Travaux Pratiques
Cré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èle Architecture 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 Studio
Travaux Pratiques
Mise 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 deleGust dans la programmation réseau ?
Services Web ASP.NET (SOAP et REST)
- Présentation des types de web services Inté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 Pratiques
Mise 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) Implémentation à l’aide de .NET Remoting
Travaux Pratiques
Création d’une application clients/serveur
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
Travaux Pratiques
Création d’un chat en WCF
WPF (Windows Presentation Foundation)
- Présentation de WPF Rappel 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 Pratiques
Cré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ôle Les 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ôles
Travaux Pratiques
Créer des contrôles WPF et les utiliser dans le gestionnaire de contacts
LINQ (Language Integrated Query)
- Présentation de LINQ Des 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 performances
Travaux Pratiques
Mise 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
Description de la formation C# Avancé
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.
المواضيع: .NET

