Votre partenaire formation 100% digital

C# avancé, perfectionnement

Développements avancés, Multitreading, WPF, Users controls, LINQ, Web Service, WCT

  • Formateur(s)

    James RAVAILLE
  • Référence

    SLCA

  • Durée

    4 jours (28h)

  • Prix unitaire HT

    2265 €

Prochaines sessions

Prochaines sessions - C# avancé, perfectionnement
Date de début Ville Prix unitaire HT
Sur demande

Description

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).

Objectifs pédagogiques

  • Gérer de façon efficace ses applications sous forme de services (WebServices, WCF)
  • Connaitre les possibilités de LINQ et de sa philosophie originale pour gérer les données
  • Connaitre les Windows Forms : WPF (effets graphiques, liens avec XAML, databinding, etc.)
  • Développer ses propres services systèmes
  • utiliser la technologie des sockets ainsi que les multithread
  • Développer et déployer des services Windows

Public cible

Développeurs, ingénieurs, architectes, chefs de projet

Pré-requis

Bonnes connaissances du langage C#

Modalités d’évaluation

L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation

Méthodes pédagogiques

30 % Théorie / 70 % Pratique

Programme de la formation

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
  • Comparaisons de C# avec d’autres langages (Java, C++, …)
  • Les options de compilations de csc (C Sharp Compilator)
  • Créer une bibliothèque réutilisable (dll)

Performances et mémoire, 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
  • Création d’un service avec Visual Studio
  • Paramétrage du service
  • Utilisation des threads dans la programmation de services
  • Déploiement d’un service Windows avec Visual Studio 2012
  • 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

  • Apports du mutli-threading aux applications .net
  • Architecture d’un programme multi-threads
  • Fonctionnement « normal » d’un programme C#
  • Cycle de vie d’un thread
  • Spécificités techniques de la programmation multi-threads (mémoire, verrou, synchronisation, …)

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 delegate 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