1.3k likes | 1.57k Views
La plateforme Microsoft .NET. - Ce cours : \santiagoCours et TPs 2005-2006Cedrik PoireyMS.NET - Installation Visual Studio .NET : \santiagoinstallsall - Compte MSN Cedrik : mrow_monaco@hotmail.com. Sommaire. Qu’est ce que .NET Vue d’ensemble du Framework .NET
E N D
La plateforme Microsoft .NET - Ce cours : \\santiago\Cours et TPs 2005-2006\Cedrik Poirey\MS.NET - Installation Visual Studio .NET : \\santiago\installs\all - Compte MSN Cedrik : mrow_monaco@hotmail.com
Sommaire • Qu’est ce que .NET • Vue d’ensemble du Framework .NET • Le Common Language Runtime • C# et VB.NET • Visual Studio .NET • ASP.NET • ADO.NET et XML
.NET ??? 2000 XMLWeb Services 1990 GUI VisualStudio.NET 1981 PC Windows Visual BASIC MS-DOS BASIC Historique 1995 Internet IE, IIS Visual Studio
.NET ??? .NET Enterprise Servers Visual Studio.NET, .NET Framework Expérience Utilisateur .NET Devices, .NET Services
.NET ??? La plate forme .NET PC & périphériques Experiences utilisateur VisualStudio.NET .NET Framework Authentication Web services & .NET MyServices Storage Notification Host Integration Server 2000 Mobile Information 2001 Server ISA Server 2000 SQL Server 2000 Exchange 2000 BizTalk Server 2000 Commerce Server 2000 Application Center 2000 Serveurs Enterprise Servers Windows 2000 Server
.NET ??? .NET Clients • Windows-powered • Supporte XML et les services Web • Fonctionne en autonome ou en mode connecté
Sommaire • Qu’est ce que .NET • Vue d’ensemble du Framework .NET • Le Common Language Runtime • C# et VB.NET • Visual Studio .NET • ASP.NET • ADO.NET et XML
FRAMEWORK Web Services Rich Clients Power & Simplicity Mobile Devices Standard Protocols Web Browsers AnyDatabase XML Relational Access Vue d’ensemble Components SecurityTransactions XML Abilities
FRAMEWORK Objectifs • Intégration de l’existant • Multiples langages de programmation (vingtaine) • Interopérabilité COM • Compatibilité « side by side » (2 versions d’un même composant) • Développement d’applications simplifié • Modèle de programmation unifié • Elever le niveau d’abstraction (=>modèle objet) • classe, interface, héritage, propriété, event, constructor, exception… • Elimination complète de la plomberie COM • Bibliothèque de classe riche et extensible • Intégration native des standards Web • Environnement d’exécution robuste et sécurisé • Code managé: (GC, Type Safe, Self-configuring, dynamically tuning) • Runtime Security (unification du mode de traitement des erreurs) • Déploiement et administration simplifiés • Assemblies (versioning, securité, evolution des DLLs) • Installation Zero-Impact (Xcopy, pas d’enregistrement)
FRAMEWORK .NET Framework RAD, Composition, Delegation Héritage, Contrôle, performance Stateless, Mixe de code dans Des pages HTML ASP VB Forms MFC/ATL Windows API Unifier les Modèles de Programmation API cohérente quelque soit le langage ou le type d’application
FRAMEWORK Web Framework Objets XML XSD Classes WSDL Méthodes SOAP Appels Intégration native de XML .NET Framework fournit une mise en correspondance bidirectionnelle Concepts Applicatifs Données Schéma Services Invocation
FRAMEWORK ASP.NET Web Forms Web Services Windows Forms Composition ADO.NET and XML Base Class Library Common Language Runtime
FRAMEWORK Common Language Runtime • Common Language: • Ouvert à différentes syntaxes (CLS) • FrameWork Objet pour le développeur • Runtime • Une exécution managée et contrôlée • Managed Code, Managed Memory • Services ( XML, DATA, WEB …) • Basé sur : • Win32, XML, SOAP • Inter opère avec DCOM/COM, COM+1.0
FRAMEWORK VB C++ C# J# … Common Language Specification .NET Syntaxes • La plate-forme .Net est indépendante du langage • Tous les langages accèdent aux services fournis par la CLR • Commun Langage Spécification (CLS) • Spécification d’écriture des compilateurs « syntaxiques » • Chaque langage utilise et étend le framework .Net • Les langages .Net sont interopérables.
FRAMEWORK System.Web System.WinForms Design ComponentModel Services UI Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml ADO SQL XSLT Serialization Design SQLTypes XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading Base Class Library
FRAMEWORK The big picture VB C++ C# J# … Visual Studio.NET Common Language Specification ASP.NET Web Forms & Web Services Windows Forms Soumis à L’ECMA ADO.NET (Données & XML) Base Class Library Common Language Runtime
Sommaire • Qu’est ce que .NET • Vue d’ensemble du Framework .NET • Le Common Language Runtime • Webcast • Un peu de code • GC • C# et VB.NET • Visual Studio .NET • ASP.NET • ADO.NET et XML
CLR/Conception & compilation Que contiennent les métadonnées ? • Description de l'unité de déploiement (assembly) • Identité : nom, version, culture, [clé publique] • Quels sont les types exportés ? • Quels sont les assemblys dont elle dépend ? • Quelles sont les autorisations de sécurité requises pour l'exécution ? • Description des types • Nom, visibilité, classe de base, interfaces implémentées • Membres (méthodes, champs, propriétés, événements, types imbriqués) • Attributs personnalisés • Définis par l'utilisateur (auteur ?) • Définis par le compilateur (const) • Définis par le framework (DllImport, Obsolete)
CLR/Conception & compilation Métadonnées : création et utilisation Sérialisation Réflexion Codesource Exportateur TLB Concepteurs Compilateur Compilateurs Débogueur Métadonnées (et code) Explorateurde types Générateurde profils Générateurde schéma Générateur proxy Codage XML (SDL ou SUDS)
CLR/Conception & compilation Les compilateurs utilisent les métadonnées • Pour l'importation de types de données interlangages • Émettent des métadonnées dans le code de sortie • Décrivent les types définis et utilisés • Enregistrent les assemblys externes référencés • Enregistrent les informations de version • Les attributs personnalisés peuvent être utilisés • Obsolète • Conformité CLS • Compilés pour le déboguage • Marqueurs spécifiques au langage
CLR/Conception & compilation D'autres outils utilisent les métadonnées • Explorateurs de types et d'objets • Classes de réflexion • Concepteurs • Importateur et exportateur TLB • Outils de documentation • Débogueurs et générateurs de profils
CLR/Exécution Flux de contrôle du runtime Assembly Chargeurde classes Première référence au type Compilateur du code IL en code natif Supportd'exécution Codenatifmanagé Premier appel de méthode Gestionnairesde code Systèmede sécurité Processeur
C# & IL • Utilisation du désassembleur ILDASM pour retrouver le code IL d’un assembly (exe ou dll). • -> Il existe des projets plus ou moins évolués de désassembleur IL -> C# • -> Et donc des obfuscateurs .NET
CLR/GC Objet C Objet B Objet A Managed Heap NextObjPtr Garbage Collector • Managed Heap (tas managé) • Créer au démarrage du process • ( + heap dédié aux larges object, > 20000 bytes) • Réservation d’une zone contiguë • Gestion d’un pointeur sur le prochain : « NextObjPtr » • ~Aussi rapide qu’une allocation « Stack » • Incrémenter le pointeur de heap • Copie du buffer et appel constructeur • En fin de heap : • Allocation/réservation (win32) • Garbage Collection • Travail par génération pour limiter le travail Le managed heap connaît a tout moment le type d’un objet
CLR/GC Garbage Collector • Optimisation par Gestion de Générations • Postulats : • Plus les objets sont récents, plus courte est leur vie. • Plus un objet est vieux, plus sa vie est longue. • Les objets les plus récents tendent a avoir plus d’échanges et sont sollicités plus fréquemment, « en même » temps. • Compacter une portion de heap est plus rapide que de tout compacter • Rechercher a « regrouper » les objets • Bénéficier le plus possible du cache processeur • Limiter les accès « lointains » • Test sur P 200 Mhz : 1 milliseconde pour un GC de génération 0 (full GC) • Objectif, « No more time than an ordinary page fault »
CLR/GC Generation 1 Generation 0 Garbage Collector Allocation d’objets Déréférencement Mark Compact Nouvelle allocation d’objets
Garbage Collector • La génération 2 est l’étape ultime du cycle de collecte des objets .NET • Un cycle de collecte ne se déclenche que lorsque la génération 0 est pleine, et ne s’intéresse qu’aux générations qui permettront de satisfaire les besoins immédiats en allocation mémoire • Aucun moyen programmatique d’inhiber le GC • On peut forcer le déclenchement du GC : System.GC.Collect() ou System.GC.Collect(n) (pour les tâches qui crée des objets et qui ne doivent pas être interrompue)
Sommaire • Qu’est ce que .NET • Vue d’ensemble du Framework .NET • Le Common Language Runtime • C# et VB.NET • Visual Studio .NET • ASP.NET • ADO.NET et XML
Langages/Sommaire C# et VB.NET • VB .NET – Les nouveautés • C# .NET – Bref aperçu
Langages/Nouveautés VB Le langage VB .NET • Langage réellement objet • Support de l’héritage • Support du multi-threading • Création de services NT • Extension : .vb • Compilateur : vbc.exe
Langages/Nouveautés VB La syntaxe VB .NET (1) • Propriété • Déclaration de propriété («read-only» ou «write-only» possible) • Mot-clé : Property • Constructeurs • Déclaration d’un constructeur • Utilisation d’une classe implémentant un constructeur • Mot-clé : New • Overloading • Possibilité de fournir plusieurs signatures à une même méthode • Héritage • Héritage d’une autre classe (multi langage) • Mot-clés : Inherits ; Mybase • Overriding • Modification du comportement d’une méthode d’une classe dont on hérite • Mot-clé : Overrides ; Overridable
Langages/Nouveautés VB Serveur Quotation Le client déclenche l'acquisition par Demarrer() La syntaxe VB .NET (2) • Events • Permet la communication entre classes • Principe d’abonnement • Mot-clés : Event ; RaiseEvent ;AddHandler ;Handles • Exemple : • Gestion d’erreur • Gestion par exception • On oublie les «On error GOTO» • Mot-clés : Try ; catch ; throw Le client s'abonne à l'événement NouveauCours Client Le serveur notifie le client à chaque nouvelle quotation
Langages/Sommaire C# et VB.NET • VB .NET – Les nouveautés • C# .NET – Bref aperçu
Langages/C# C# - La syntaxe • Le meilleur du C++ et de VB • Développement RAD grâce à Visual Studio.Net • Langage utilisé à + de 80% pour développer le .Net Framework • Soumis à l’ECMA
Langages/C# C# et le framework • C#, comme tous les langages s'appuyant sur la plateforme .Net, peut bénéficier de tous les services offerts par le .NET Framework. • Il est impératif de regarder dans le détail les services proposés par ce framework
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Langages/C# C#.NET – La base en C#
Sommaire • Qu’est ce que .NET • Vue d’ensemble du Framework .NET • Le Common Language Runtime • C# et VB.NET • Visual Studio .NET • ASP.NET • ADO.NET et XML
VS .NET/Sommaire Visual Studio .NET • Evolution de Visual Basic et Visual C++ • IDE unifié pour les langages .NET (C#, VB, C++, J#) • Simplification des procédures de déboguage • Fonctionnalités multiples • Personnalisation complète de l’environnement • Navigateur multifonction intégré : web, ms-help, code source, forms… • Nombreux assistants de génération de code • Quelques photos d’écrans…+ lien utile : http://support.microsoft.com/default.aspx?scid=kb;FR;324775