(+33)1 55 60 76 72
Toutes nos formations sont disponibles en classe virtuelle. Contactez-nous pour plus d’informations : formation@oxiane.comToutes nos formations sont disponibles en classe virtuelle. Contactez-nous pour plus d’informations : formation@oxiane.com

Développement C# avancé

Maîtriser les aspects avancés de C#
Vous cherchez une formation et vous ne l'avez pas trouvée...Faites une suggestion
Accueil » Formations » Développement » Développement C# avancé
Nous consulter 4 jours PR-C#A

Développement C# avancé — Maîtriser les aspects avancés de C#

Programme

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 FrameworkComparaisons 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 (code non managé) – optimisation C#

  • 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)Maîtriser les types de données (transtypages)
  • Exemples de code non managé

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, …)
  • 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 et Observer le fonctionnement du service par le journal windows.

Multithreading sous .NET

  • Qu’apporte le mutli-threading aux applications?
  • Quelles différences pour le développeur ?
  • Architecture d’un programme multi-threads principal, actif, background, …)
  • Fonctionnement « normal » d’un programme C# (main)
  • Cycle de vie d’un thread
  • Spécificités techniques de la programmation multi-threads (mémoire, verrou, synchronisation, …)
  • Les problématiques de synchronisation et de verrous (variables de contrôle, verrous, mutex, semaphoreSlim, join abort)
  • Exemple d’une file d’attente utilisée par 3 threads (1 producteur et 2 consommateurs)
  • Effectuer des tâches en arrière-plan grâce à un pool de threads
  • Erreurs fréquentes avec les threads
  • 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

  • Présentation des web services
  • Le WSDLMéthode SOAPIIS et les sessions pour les états des web services
  • Hébergement et publicationService Web pour requête asynchrone (AJAX)
  • TRAVAUX PRATIQUES : Mise en place de webservices ASP.Net pour partager des données avec ADO.Net

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’une socket pour le développeur ?
  • Architecture général d’une application réseau multi-threads
  • 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)
  • Les adaptations à faire en fonction du domaine d’application
  • TRAVAUX PRATIQUES : Création d’une application clients/serveur.

WPF (Windows Presentation Foundation)

  • Pourquoi une nouvelle API d’interface graphique avec WPF ?
  • Ne pas mélanger présentation, traitements, et données (genèse du XAML)
  • Spécificités du développement WPF (Visual Studio, Expression Blend, …)
  • Les pages et navigation au format web
  • Contrôles de positionnement
  • Contrôles utilisateurs
  • Présenter et interagir avec les données (Databinding)
  • Quelques astuces pour le binding
  • 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 de fonctionnalités aux contrôles 
  • Ajout de prise en charge Design-time pour les contrôles 
  • Octroi de licence à un contrôle
  • TRAVAUX PRATIQUES : Créer des contrôles WPF et les utiliser dans le gestionnaire de contacts.

LINQ (Language Integrated Query)

  • 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)
  • Ecriture de requêtes complexes sur des sources 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 SQL.Manipulation (insertion, modification, selection) des données avec LINQ

WCF

  • Architecture orienté 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

Profils des intervenants

Toutes nos formations sont animées par des consultants-formateurs expérimentés et reconnus par leurs pairs.

Modalités d'évaluation

Evaluation des acquis de la formation par le biais de cas pratiques et/ou mises en situation.
Attestation de formation remise à chaque participant.

Démarche qualité

Questionnaire d’évaluation de satisfaction à chaud complété par chaque participant à l’issue de la formation.

Moyens pédagogiques

Salle équipée de PC (1 poste par stagiaire), vidéo-projecteur.
Espace de pause.
    Dernière mise à jour le 15/10/2020