La plateforme .NET
- Principe et architecture de la plateforme .NET.
- Architecture du framework .NET : CLR, BCL, et CLS (support multilangage).
- Aperçu des différents types d'applications dans un environnement multicible.
- Structure d'une application .NET : notion d'espace de noms.
- Outils et environnement de développement.
- Langage de CIL : principe du langage intermédiaire, principe de la compilation JIT (Just In Time Compiler).
- Notion d'assembly, de métadonnées et de déploiement.
- Assembly privé et assembly partagé : signature, rôle du GAC (Global Assembly Cache), mise en place dans le GAC.
- Évolution .NET Core, l'Open Source et le multiplateforme.
Travaux pratiques
Exemple de programme C# minimum. Exécution en mode 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
- Variables et expressions : déclaration, constantes, opérateurs, types anonymes et dynamiques.
- Types de données : Common Type System, rôle de la classe de base System.Object et transtypage.
- Quelles différences entre les types valeur et types référence ?
- Syntaxe de base : manipulation des tableaux, instructions de contrôle de flux...
- Les dernières nouveautés de C#.
Travaux pratiques
Ecriture de programmes en C# mettant en oeuvre des algorithmes classiques.
Gestion des exceptions
- Comment la philosophie des exceptions doit changer votre façon de programmer.
- Déclenchement d'erreurs personnalisées avec "throw".
- Utilisation des exceptions pour le traitement centralisé des erreurs.
Travaux pratiques
Gestion des erreurs de saisie en utilisant les exceptions.
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.
- Interfaces pour l'héritage multiple.
Classes et objets en C#
- Définition des classes. Définition des objets.
- Définition du contenu de la classe : méthodes et propriétés.
- Visibilité des membres d'une classe : propriétés et méthodes. Utilisation des espaces de noms.
- Cycle de vie des objets : constructeur, destructeur. Gestion de la mémoire avec le Garbage Collector.
- Le mécanisme de surcharge (constructeurs, méthodes et opérateurs).
- Dérivation et héritage des classes : principe de dérivation, contrôle d'accès lors de la dérivation.
- Principe du polymorphisme.
- Principe des interfaces (définition et implémentation, utilisation pour l'héritage multiple).
- Manipulation des attributs : principe des méta-données. Attributs de classe, de méthode, de champ.
- Régions de code et classes partielles. Classes génériques.
- Délégués, covariance, contravariance et événements. Les variances appliquées aux interfaces.
- Classes métiers semblables à celles du framework .NET : réalisation de propriétés, d'indexeurs et d'énumérateurs.
- Génération de documentation.
Travaux pratiques
Ecriture de classes de base. Manipulation de méthodes et propriétés dans les classes. Dérivation de classe. Exemple d'implémentation d'une interface et de mise en œuvre du polymorphisme par héritage ou avec une interface.
Objet et classes de base du framework .NET
- Qu'est-ce qu'un framework ? Principe. Hiérarchie des classes.
- Traitement des dates et des durées. Traitement des chaînes avec StringBuilder et les expressions régulières.
- Classes incontournables : manipulation du système de fichier, Math, Random, etc.
- Les différents types de collections, de dictionnaires et de tables de hachage.
- Les collections génériques et les bases de Linq avec LINQ To Object sur les collections standard.
Travaux pratiques
Utilisation des expressions régulières et d'une table de hachage. Rendre une collection réalisée précédemment compatible avec LINQ et utiliser LINQ To Objects pour l'interroger.
Les différents types d'applications développées en .NET
- Principe et conception d'une bibliothèque de classes réutilisables.
- Principe et exemple des applications WPF.
- Principe et exemple des applications Web Asp.Net MVC.
- Principe et exemple des services Web ASP.NET.
- Introduction aux accès aux données avec ADO.NET ou Entity Framework et LINQ.
Travaux pratiques
Réalisation d'un formulaire Windows interrogeant une base de données. Démonstration de Asp.Net MVC avec un contrôleur et une page Razor, avec affichage de données.
Démonstration d'un service Web simple.