Formation .Net (C#,VB) avancé

Perfectionnement et optimisation

  • Maîtriser tous les concepts fondamentaux liés au développement des applications (WPF, LINQ, Service Windows ) et à la communication (socket, service, WCF, WebServices)

  • Gérer de façon efficace vos applications sous forme de services (WebServices, WCF)

  • Développer vos propres services systèmes et utiliser la technologie des sockets ainsi que les multithread

  • Découvrir le développement et le déploiement de services Windows

Bonne connaissance d'au moins un langage .NET (C# ou VB.net). Avoir suivi la formation C# initiation est indispensable (CSHA)
Cette formation vous permet d'obtenir les certifications suivantes:
  • Microsoft Programming in C# - MCSD 483
  • Microsoft Software Development Fundamentals - MAT 361
Cette formation est disponible pour les versions 3.5, 4.0, 4.5 et 4.6 du framework .Net et pour les versions 3, 4, 5 et 6 du langage C#.
Cette froamtion peut être donnée avec Visual Studio 2012, 2013 ou 2015.


Programme de la formation .Net (C#,VB) 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 4.0

Les nouveautés du Framework 4.0

Les comparaisons de C# avec d'autres langages (Java, C++, ...)

Les options de compilations de csc (C Sharp Compilator)

La création d'une bibliothèque réutilisable (dll)

Les performances et la mémoire (code non managé)

Les couches basses de .NET (CLR, assembly, module, ...)

La gestion du tas et de la pile par .NET (garbage-collector)

Les risques et intérêts d'utiliser du code « non managé »

L'utilisation des pointeurs en C# (unsafe)

La maîtrise des types de données (transtypages)

Exemples de code non managé

La création et le déploiement d'un service Windows

Les différences entre un service Windows et une application

La classe ServiceBase (OnStart, OnStop, OnPause, OnRestart)

La création d'un service avec Visual Studio (template Windows Service)

Le paramétrage du service (CanStop, CanShutdown, ...)

L'utilisation des threads dans la programmation de services

Le déploiement d'un service Windows avec Visual Studio 2012

La vérification du fonctionnement du service dans le Panneau de configuration

Multithreading sous .NET

Les apports du mutli-threading aux applications

Les différences pour le développeur

L'architecture d'un programme multi-threads principal, actif, background, ...)

Le fonctionnement « normal » d'un programme C# (main)

Le cycle de vie d'un thread

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

La réalisation des tâches en arrière-plan grâce à un pool de threads

Les erreurs fréquentes avec les threads

Introduction à la communication sous .NET

Synthèse des différents types d'échanges

Les technologies sous-jacentes dans .NET

Présentation des différentes API (socket, web services, WCF...)

Pourquoi utiliser les delegate dans la programmation réseau ?

Les services Web ASP.Net

Présentation des web services

Le WSDL

La méthode SOAP

IIS et les sessions pour les états des web services

L'hébergement et la publication

Le service Web pour requête asynchrone (AJAX)

La programmation réseau avec les sockets

Rappels sur le vocabulaire réseau (@IP, n°port, TCP, UDP)

Les différences entre développer « par-dessus » TCP ou UDP

Qu'est-ce qu'une socket pour le développeur ?

L'architecture générale d'une application réseau multi-threads

Les méthodes de la classe Sockets (listen, bind, accept, send, receive...)

L'envoi et la réception de message (BeginReceive, BeginSend)

Exemple de code général côté serveur et côté client

La gestion du pool de connexion (multi clients)

Les adaptations à faire en fonction du domaine d'application

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)

Les spécificités du développement WPF (Visual Studio, Expression Blend...)

Les pages et navigation au format web

Les contrôles de positionnement

Les contrôles utilisateurs

Présenter et interagir avec les données (Databinding)

Quelques astuces pour le binding


La création de ses propres contrôles utilisateurs (User Controls)

La création d'un gestionnaire d'événements pour un contrôle 

Les attributs d'un contrôle utilisateur (Category, Browsable, DefaultEvent, ...)

L'utilisation des contrôles avec un formulaire Windows 

La validation des entrées des utilisateurs 

La gestion du glisser/déposer de nos propres contrôles

Créer des contrôles dynamiquement

L'ajout de fonctionnalités aux contrôles 

L'ajout de prise en charge Design-time pour les contrôles 

La licence à un contrôle

LINQ (Language Integrated Query)

Les requêtes et les traitements

L'utilisation de LINQ dans un programme C#

La manipulation des collections d'objets avec LINQ (LINQ to Object)

La gestion des documents XML avec LINQ (LINQ to XML)

L'écriture de requêtes complexes sur des sources XML

La gestion du mapping entre les types C# et les enregistrements d'une base (LINQ to SQL)

L'interrogation des données d'un dataset (LINQ to Dataset)

L'écriture des requêtes sur un modèle conceptuel (LINQ to Entities)

LINQ et les performances

WCF

L'architecture orienté Services

Les contrats de service

Les points de terminaison

La configuration et hébergement d'un service

Le service bidirectionnel

La création d'un service WCF sans serveur