Introduction
- Principe et architecture de l'environnement .NET.
- Composants Framework .NET : langage, CLR, CLI.
- Architecture de distribution d'objet dans .NET, exécution de composants et d'objets à distance.
- Structure d'un programme C# : classe Console, notion d'espace de noms, exemple d'entrée/sortie.
- Présentation du Framework .NET.
- Outils et environnement de développement.
- Langage de MSIL : principe du langage intermédiaire, principe de la compilation JIT (Just In Time Compiler).
_ Travaux pratiques : Exemple de programme C#. Exécution en mode non géré (compilation en code natif) et géré. Utilisation de l'environnement de développement Visual Studio.Net pour l'écriture du premier programme.
Syntaxe de base : données, expressions et instructions
- Valeurs, opérateurs, manipulation de variables.
- Définition de types : structure, enum.
- Données complexes : tables. Gestion des tables, création et manipulation.
- Instructions de contrôle de flux : boucles, test, contrôle de flux.
- Fonctions : passage des paramètres, valeur de retour.
- Principe de gestion des exceptions : émission d'exception et récupération d'exception.
- Déroulement d'un programme.
_ Travaux pratiques : Ecriture de programmes en C# mettant en oeuvre des algorithmes classiques.
Programmation Orientée Objet
- Classes et objets : modélisation du monde réel par objet.
- Notions de champ, méthode et propriété.
- Héritage.
- Polymorphisme.
- Principe d'héritage multiple et mise en place au travers des interfaces.
- Représentation du modèle objet : exemple d'écriture en UML.
Classes et objets en C#
- Définition des classes. Définition des objets.
- Définition du contenu de la classe : méthodes et attributs.
- Surcharge des méthodes. Surcharge des opérateurs.
- Cycle de vie des objets : constructeur, destructeur.
- Typage en C# : gestion des types et transtypage. Interopérabilité entre langages.
- Propriétés : définition des propriétés, définition de propriétés « read only ».
- Visibilité des membres d'une classe : propriétés et méthodes. Espace de noms (« using »).
- Dérivation et héritage des classes : principe de dérivation, contrôle d'accès lors de la dérivation. Héritage des propriétés.
- Réalisation simplifiée d'énumérateurs.
- Classes partielles.
- Classe de base System.Object.
- Manipulation des attributs : principe des méta-données. Attributs de classe, de méthode, de champ. Les attributs et l'héritage.
- Manipulation et gestion des tableaux. Gestion de la mémoire. Utilisation du garbage collector.
- Indexeur et structure foreach : principe et mise en oeuvre.
- Définition des délégués. Covariance et contravariance des délégués.
Méthodes anonymes.
- Utilisation des délégués pour la gestion des événements.
- Classes génériques (templates).
- Types annulables.
_ Travaux pratiques : Ecriture de classes de base. Manipulation de méthodes et propriétés dans les classes. Dérivation de classe. Utilisation des attributs dans les classes C#. Utilisation des indexeurs et tableaux. Utilisation de la structure foreach. Réalisation d'une collection à l'aide d'une classe générique et mise en oeuvre d'un énumérateur simplifié.
Interfaces
- Principe des interfaces.
- Déclaration et mise en oeuvre d'une interface.
- Les interfaces et l'héritage.
- Principe d'héritage multiple au travers des interfaces.
_ Travaux pratiques : Ecriture de programmes mettant en place des interfaces.
Gestion des exceptions
- Principe de la gestion des exceptions.
- Utilisation des exceptions pour le traitement centralisé des erreurs.
- Utilisation des exceptions pour simplifier la gestion des ressources.
- Structure de gestion des exceptions interlangages : déclenchement d'exception dans un langage, interception et traitement dans un autre. Exemple entre C# et VB.NET.
_ Travaux pratiques : Gestion des exceptions en C#. Exemple de gestion des exceptions interlangages (avec J# ou VB.NET).
Les assembly
- Notion d'assembly. Création d'un assembly. Organisation d'un projet au travers des assembly.
- Assembly privé et assembly partagé : signature, rôle du GAC (Global Assembly Cache), mise en place dans le GAC.
- Assembly à signature retardée.
- Assembly et support du multilangage.
_ Travaux pratiques : Organisation du développement avec des assembly. Création d'assembly public. Utilisation de sn (Strong Name) pour la signature, mise en place dans le GAC.
Gestion des entrées/sorties
- Hiérarchie des classes.
- FileStream et StreamRead/StreamWriter.
- Manipulation du système de fichier.
- Entrées/Sorties asynchrones.
_ Travaux pratiques : Utilisation des classes de .NET pour faire des entrées/sorties.
Objet et classes de base du Framework .NET
- Qu'est-ce qu'un Framework ? Principe.
- Le CTS, classes de basiques (Int32, String...), correspondance en C#.
- Classes incontournables : Math, Random...
- Traitement des dates et des durées. Traitement des chaînes avec StringBuilder et les expressions régulières.
- Les différents types de collections, de dictionnaires et de tables de hachage.
- Les collections génériques.
_ Travaux pratiques : Utilisation des classes de base. Utilisation des types en tant que classe de l'environnement .NET.
Applications développées avec le Framework.NET
- Eléments essentiels du framework : interface utilisateur avec les Windows.Form, ADO.NET, ASP.NET, services Web.
- Développement multicible : périphériques .NET, cibles de développement.
- Architecture des applications avec les Web Services.
- Exemple de programmes utilisant les composants essentiels du .NET.
- Autres domaines de .NET : intégration des Web services.
_ Travaux pratiques : Exemple d'application avec une interface graphique. Utilisation des Windows.Forms.