
La plate-forme .Net Introduction Michel RIVEILL Université de Nice – Sophia Antipolis [email protected] - http://www.polytech.unice.fr/~riveill .NET ■ Introduction ◆ La plate-forme ◆ Le C.L.R (Common Language Runtime) ■ Le langage C# (et le CLR) ◆ Assemblies et module ◆ Types références et valeurs ◆ Réflexion et attributs ◆ Delegates et Events ■ Les applications Web ◆ Lʼaccès aux données ◆ Les services Web ◆ Les pages dynamiques ■ Les services techniques ◆ La sécurité ◆ Les transactions ■ .Net 2.0, 3.0, 3.5 ■ Evaluation ◆ Le multi-langage dans .Net ◆ J2EE vs .Net ■ Pour aller plus loin © 2007, M. Riveill 3 Première partie Introduction La plate-forme .Net Le C.L.R (Common Language Runtime) .NET, Cʼest quoi ? ■ Une vision (celle de Bill & Co) de lʼévolution des technologies du Web ◆ Les applications sont des services auxquels on peut sʼabonner et qui peuvent être référencés ❖ Services offerts par des sites web ◆ De nouveaux terminaux complètent les PCs ❖ IHMs adaptables et personnalisables ◆ Respect des standards (issus du Web) ❖ Cʼest nouveau pour Microsoft ■ Une plate-forme qui supporte cette vision ◆ .NET Framework et Visual Studio.NET ◆ .NET Enterprise Servers – passerelle avec le système dʼexploitation Windows ❖ Base de données, messages, Intégration, proxy, sécurité, mobilité, gestion du contenu, orchestration des services, … ◆ .NET Building Block Services ❖ .NET My Services – des services fournis par Microsoft ▲ Passport (authentification) ▲ Hailstorm (profils utilisateurs) ▲ .NET Alerts (service dʼalerte) ◆ Objectif : rendre la construction dʼapplications Web aisées ❖ Par assemblage de Web services © 2007, M. Riveill 5 La plate-forme .NET Clients Applications Web Form Web Service Protocoles: HTTP, .NET Framework Outils : HTML, XML, Visual Studio.NET, SOAP, UDDI Notepad Windows Your Internal .NET Foundation Third-Party .NET Enterprise Web Service Web Services Web Services Servers © 2007, M. Riveill 6 Services Web Une évolution du Web ■ Des composants applicatifs accessibles à partir des standards du Web ■ Le coeur de lʼarchitecture .NET ■ Offrir des services à lʼaide du Web ■ Construit avec les standards actuels ◆ HTTP, XML, SOAP, UDDI, WSDL, … HTML, XML HTML HTML HTML, XML Generation 1 Generation 2 Generation 3 Static HTML Web Applications Web Services © 2007, M. Riveill 7 Le framework .NET ■ Un ensemble de technologies pour développer et utiliser des composants : ◆ Formulaires Web ◆ Services Web VB C++ C# JScript … ◆ Applications Windows Visual Studio.NET ■ Des outils pour développer des Common Language Specification applications ASP.NET: Web Services Windows ◆ Développement and Web Forms Forms ◆ Mise au point ◆ Déploiement ADO.NET: Data and XML ◆ Maintenance .NET Framework Base Classes Common Language Runtime © 2007, M. Riveill 8 La plateforme .NET Intégration CLR en mémoire Win32 C++ VB COM DCOM Intégration Service WEB entre machine .NET Remoting © 2007, M. Riveill Dans .Net 3.0, le choix Service Web / .NET Remoting se fait au déploiement 9 La plateforme .Net Common Language Interface CLI = IL + bibliothèque ECMA / ISO Common Language Runtime (CLR) Windows XP Windows 2000 NT 4.0 Windows 98, Me PocketPC Free BSD Linux Implémentées par MS © 2007, M. Riveill 10 Le .Net Framework Entre le langage intermédiaire (IL) et le machine virtuelle (CLR) Intermediate se trouvent les classes du .Net Language (IL) Framework Ces classes sont accessibles Accessible depuis tous les langages par tous les langages puisque accessibles depuis l’IL Base Classes Une partie de ces classes ont été intégrées dans les spécifications du CLR Common Language • Modèle d’objet commun Runtime (CLR) • Types unifiés • Meta-Data • Modèle d’exception commun © 2007, M. Riveill 11 CLI Standards VS.NET System.Web System.WinForms C# SessionState UI Design ComponentModel Caching HtmlControls JScript Security WebControls VB Configuration System.Drawing System.Web.Services Drawing2D Printing ECMA-334 VC/MC++ Protocols Imaging Text Debugger Discovery Description Designers System.Data (ADO.NET) System.Xml ADO SQL XSLT Serialization SDK Tools Design Adapters XPath CorDBG ECMA-335 System ILAsm Collections IO Security Runtime ILDbDump Configuration Net ServiceProcess InteropServices Remoting SN Diagnostics Reflection Text Globalization Resources Threading Serialization ILDAsm MetaInfo Common Language Runtime GC App Domain Loader JIT PEVerify MSIL Common Type System Class Loader Platform Abstraction Layer Boot Loader Networking © 2007, M. RiveillThreads Sync Timers Filesystem 12 Le framework .NET Les classes du framework VS.NET System.Web System.WinForms C# SessionState UI Design ComponentModel Caching HtmlControls JScript Security WebControls VB Configuration System.Drawing VC/MC++ System.Web.Services Drawing2D Printing Protocols Imaging Text Debugger Discovery Description Designers System.Data (ADO.NET) System.Xml ADO SQL XSLT Serialization SDK Tools Design Adapters XPath CorDBG System ILAsm Collections IO Security Runtime ILDbDump Configuration Net ServiceProcess InteropServices Remoting SN Diagnostics Reflection Text Globalization Resources Threading Serialization ILDAsm MetaInfo Common Language Runtime GC App Domain Loader JIT PEVerify MSIL Common Type System Class Loader Platform Abstraction Layer Boot Loader Networking © 2007, M. RiveillThreads Sync Timers Filesystem 13 Le CLR et ses implémentations ■ Framework .Net est suffisant pour programmer, cʼest la version officielle ◆ pas accès aux sources ◆ Il faut aussi prendre le SDK ◆ Webmatrix permet dʼavoir une plate-forme de développement gratuite ❖ Intègre serveur web et base de données ◆ Visual Studio .Net, SQL serveur ❖ Disponibles pour les étudiants de PolytechʼNice-Sophia (licence MSDN AA) ■ ROTOR est une implémentation Microsoft de la technologie .Net ◆ http://msdn.microsoft.com/sscli ◆ implémentation complète de standard ISO/ECMA (cʼest un sur ensemble de la norme) ◆ Fonctionne avec FreeBSD, Mac OS X et Windows XP (licence de type BSD) ◆ 100% du code source est disponible ◆ Il nʼy a pas dʼimplémentation correcte de ROTOR pour Linux © 2007, M. Riveill 14 CLR et les implémentations non Microsoft en 2003 ■ Ximian : MONO est un projet indépendant ◆ http://www.go-mono.org ◆ compatibilité avec les produits .Net ◆ fonctionne sur Linux (licence GPL) ◆ actuellement : C#, JIT très efficace, pas dʼIDE ■ DotGNU : Portable .Net ◆ http://www.southern-storm.com.au/portable_net.html ◆ implémentation du standard ISO/ECMA ◆ fonctionne sous GNU/Linux, cʼest un projet GNU ❖ mais aussi sous Windows, Solaris, NetBSD, FreeBSD, and MacOS X. ❖ le runtime a été testé sur les processeurs x86, PowerPC, ARM, Sparc, PARISC, s309, Alpha, and IA-64 ◆ Actuellement : C#, pas de JIT, de nombreux outils ■ Il y en a dʼautre… © 2007, M. Riveill 15 Common Language Runtime Buts ■ Développement de services ◆ Permettre une interopérabilité entre les langages ◆ Augmenter la productivité ❖ chacun écrit dans le langage quʼil maîtrise, le plus adapté, … ■ Services déploiement ◆ Simple, sûr ◆ Gestion des versions – NO MORE ʻDLL HELLʼ ■ Services à lʼexécution ◆ Performance ◆ Extensibilité ◆ Sûreté et disponibilité ◆ Sécurité © 2007, M. Riveill 16 Common Language Runtime Compilation Source Code Assembly Compilateur C++, C#, VB or any csc.exe or vbc.exe DLL or EXE .NET language © 2007, M. Riveill 17 Common Language Runtime Assemblages - Assemblies ■ Assembly : archive ◆ Unité logique de déploiement (composants de la machine virtuelle) ◆ Contient Manifest, Metadata Type, code IL et autres ressources ■ Manifest : fichier de description de lʼassemblage ◆ Metadata à propos des composants présent dans un assembly (version, types, dépendances, etc.) ■ Metadata Type ◆ Définition complète de tous les types présent dans lʼassembly : attributs, méthodes, paramètres, ressources… ■ code IL : langage intermédiaire typé ◆ Tous les langages sont compilés en IL (managed code) ◆ IL est toujours compilé en code natif avant exécution (JIT compiler) ■ Ressources ◆ .bmp, .jpg © 2007, M. Riveill 18 Assemblies Components of an Assembly Assembly = un fichier Assembly = plusieurs fichiers File1.dll File2.dll Graphic.jpg Logo.gif Manifest Metadata Resource Resource Metadata MSIL MSIL File3.dll Manifest © 2007, M. Riveill 19 Common Language Runtime Modèle dʼexécution Source VB C# C++ code Compiler Compiler Compiler IL Assembly Assembly Assembly Ngen Common Language Runtime JIT Compiler Native Managed Managed Managed Unmanaged code Code CodeCLR Code Code CLR Services Operating System Services © 2007, M. Riveill 20 Common Language Runtime Services ■ Gestion du Code ■ Gestion multi-langage des ■ Conversion du code MSIL en exceptions natif ■ Interopérabilité entre les ■ Chargement et exécution du objets du framework .NET et ʻmanaged codeʼ les objets COM et les DLLs ■ Création et gestion des Win32 metadata ■ Liaison tardive ■ Contrôle des types ■ Services pour les ■ Insertion et exécution des développeurs (profiling, politiques de sécurité debugging, etc.) ■ Gestion mémoire © 2007, M. Riveill 21 Common Language Runtime © 2007, M. Riveill 22 Les langages sur .Net ■ Perl ■ Python *.vb *.cpp *.cs *.? ■ Cobol ■ Haskell ■ ML ■ Jscript ■ Ada ■ APL ■ Eiffel ■ Pascal ■ Fortran VB C++ C# … ■ Managed C++ ■ Visual Basic Respectent la ■ C# ■ SmallTalk Common Language Specification (CLS) ■ Oberon ■ Scheme ■ Mercury ■ Oz ■ Objective Caml ■ J# Intermediate Language (IL) ■ … © 2007, M. Riveill Indépendant de la plate-forme hardware23 La plate-forme .NET Code Source (C#, C++, VB.NET, J++, Cobol, Smalltalk, Eiffel, etc.) CLS/CTS « Managed Code » (MSIL) .NET Framework Libraries .NET Compact Framework Libraries
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages197 Page
-
File Size-