Dotnet La plate forme.NET Master 1 informatique 2008 – 2009 P.-A. Bisgambiglia S2M1 Introduction DotNet
Organisation Partie JEE Marie-Laure Nivet Deux parties DotNet Début : Paul-Antoine Bisgambiglia (introduction) Suite : Pascal Belaud Responsable démonstration développement chez Microsoft Partie services web (application.NET) Pascal Belaud
Objectifs de l’UE Aborder de façon pratique la programmation d'applications web vue de manière théorique par ailleurs Découvrir les concepts liés Etre en contact avec des professionnels travaillant dans le domaine Tendances du marché
Objectifs du module Vue globale de l'architecture et de la plateforme.NET Apprivoiser les concepts et le vocabulaire Initiation à la manipulation des technologies.NET
Sommaire Services Web Qu’est-ce que le Framework.NET ? Les objectifs du Framework.Net Le framework : Architecture Le C.L.R (Common Language Runtime) Notion d’assemblée Comment ça fonctionne Interopérabilité Standardisation du.Net Framework
Sommaire Les modules Les formulaires Windows Les formulaires Web L’accès aux données (ADO.NET) Les langages Net et Linux ASP.NET Fonctionnement Démonstration Sites Internet
Services 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, … Une évolution du Web Generation 1 - static HTML HTML Generation 2 - Web Applications HTML Generation 3 - Web Services HTML, XML
Qu’est-ce que le Framework.NET ? Un label marketing Un nouvel environnement de développement et d’exécution plate-forme de développement unifié; environnement d’exécution sécurisé. Le remplaçant de l’architecture 3-tiers DNA (Distribued interNet Architecture ) L’introduction d’un nouveau langage : C# Une bibliothèque de classes extensibles, regroupées par namespace en C#Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites Web
Qu’est-ce que le Framework.NET ? Le remplaçant de l’architecture 3-tiers DNA (Distribued interNet Architecture ) Rappel : architecture 3-tiers Couche présentation associée au client qui de fait est dit "léger" dans la mesure où il n'assume aucune fonction de traitement à la différence du modèle 2-tiers. Couche fonctionnelle liée au serveur, qui dans de nombreux cas est un serveur Web muni d'extensions applicatives. Couche de données liée au serveur de base de données (SGBD)
Qu’est-ce que le Framework.NET ? Une vision (celle de Microsoft) de l’évolution des technologies du Web Des sites Web offrent des services Web qui coopèrent De nouveaux terminaux complètent les PCs Les IHM deviennent adaptable et personnalisable Respect des standards Web
Qu’est-ce que le Framework.NET ? Une plate-forme qui supporte cette vision Le Framework.NET et Visual Studio.NET.NET Enterprise Servers Base de données, messages, Intégration, proxy, sécurité, mobilité, gestion du contenu, orchestration des services, ….NET Building Block Services Passport et.NET My Services (“Hailstorm”) Objectif : rendre la construction d’applications Web aisées (par assemblage de Web services) Un modèle pour offrir des services (et faire du business) Les applications sont des services Abonnement à des services Référencement d’applications
Les objectifs du Framework.Net Prendre une place prépondérante sur le Web avec la location de services. Proposer une interopérabilité entres les services Web à travers Internet. Pouvoir consommer l’Internet sur plusieurs types de support (PC, PDA, téléphone). Être la plate-forme de référence pour la création de Services Web XML.Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites Web
Les objectifs du Framework.Net Environnement d’exécution robuste et sécurisé Common Language Runtime (CLR) Code managé : Garbage Collector, Type Safe.. Runtime Security Déploiement et administration simplifiés Xcopy, Versioning
Les objectifs du Framework.Net Intégration de l’existant Multiples langages de programmation Interopérabilité COM et Win32 Compatibilité « side by side » Développement d’applications simplifié Modèle de programmation unifié Elever le niveau d’abstraction classe, interface, héritage, propriété, constructor, exception… Elimination complète de la plomberie COM Bibliothèque de classe riche et extensible Intégration native des standards Web (HTTP,XML, SOAP,...)
Le framework : Architecture Support 27 langages de programmation. L’objet est prépondérant. Un ensemble complet de classes de base. Orienté pour le développement d’applications Web. Basé sur des standards d’Internet : XML et SOAP. Pas de code natif : utilisation d’un langage intermédiaire le MSIL (MicroSoft Intermediate Language). L’exécution des programmes est contrôlée par la CLR (Common Language Runtime). Une architecture complète : le Framework.Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites WebCaractéristiques
Le framework : Architecture Web Form.NET Framework Windows Web Service.NET Foundation Web Services Your Internal Web Service Third-Party Web Services.NET Enterprise Servers ClientsApplications Protocoles: HTTP, HTML, XML, SOAP, UDDI Outils : Visual Studio.NET, Notepad Vue d’ensemble
Le framework : Architecture Un ensemble de technologies pour développer et utiliser des composants : Formulaires Web Services Web Applications Windows Des outils pour développer des applications Développement Mise au point Déploiement Maintenance Common Language Specification Common Language Runtime VBC++C# ASP.NET: Web Services and Web Forms JScript… Windows Forms.NET Framework Base Classes ADO.NET: Data and XML Visual Studio.NET Le framework
Le framework : Architecture Le framework
Class Loader IL to Native Compilers Code Manager Garbage Collector Security EngineDebug Engine Type CheckerException Manager Thread SupportCOM Marshaler Base Class Library Support CLR : Vue d’ensemble Le framework : Architecture
Developpement 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é CLR : But ! Le framework : Architecture
CLR : Fonctionnement Le framework : Architecture Source Code C++, C#, VB or any.NET language csc.exe or vbc.exe Compilateur Assembly DLL or EXE
Le framework : Architecture Unité de déploiement Point d’entrée d’exécution Unité de contrôle de sécurité Unité de contrôle de version Unité de réutilisation Unité de visibilité des types Unité d’exécution « cote à cote » Définition Assembly
Le framework : Architecture Un manifest : metadonnées de l’assembly Les métadonnées décrivant les types utilisés Le code IL Les ressources utilisées (images,…) La liste des fichiers qui la compose Contenu Assembly
Le framework : Architecture Assembly Unité logique de déploiement Contient Manifest, Metadata, MSIL et les ressources Manifest Metadata à propos des composants présent dans un assembly (version, types, dépendances, etc.) Type Metadata Définition complète de tous les types présent dans l’assembly : attributs, méthodes, paramètres, ressources… Microsoft Intermediate Language (MSIL, IL) 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 ContenuAssembly Contenu Assembly
Le framework : Architecture On considère 2 types d’assembly : Privée : Dédiée à l’utilisation d’un programme particulier. Se situe généralement dans l’arborescence du programme qui l’utilise. Partagée : Utilisée par un ensemble de programme différents. Se situe généralement dans le GAC (Global Assemblies Cache) Assembly : 2 formes d’utilisation
Un cache accueillant les assemblées partagées par plusieurs applications Doivent être définies avec des « noms forts » Grâce au mécanisme de clé privée, clé publique Pour garantir l’unicité d’une version d’une assemblée Pour garantir l’intégrité de l’assemblée Doivent faire référence à des assemblées fortement nommées ! Global Assemblies Cache (GAC) Le framework : Architecture
Compiler Assembly DEVELOPMENT C#J#VBCobol… MSILMetadataResources public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } Source code Comment ça marche : 1. Le Développement Le framework : Architecture
Compiler AssemblyDEVELOPMENTC#J#VBCobol… MSILMetadataResources public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } Source code Application Directory Global Assembly Cache (GAC) Comment ça marche : 2.Le Déploiement AssemblyDEVELOPMENTDEPLOYMENT SetupCopyBrowser Download Cache Install Le framework : Architecture
Debug Engine IL to Native Compiler Application Directory SetupCopyBrowser Download Cache Global Assembly Cache (GAC) Assembly on Target Machine AssemblyDEVELOPMENTDEPLOYMENT Install EXECUTION AssemblyLoader Security Class Loader Native.exe + GC table Code Manager Garbage Collection Exception Manager Thread Support COM Interop Policy <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissio ns and forms the root of the code group tree."> <IMembershipCondition clas s="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Le framework : Architecture
Le framework : Architecture Modèle d’exécution CLR VB Source code Compiler C++C# Assembly Operating System Services MSIL Common Language Runtime JIT Compiler Compiler Native code Managed Code Managed Code Managed Code Unmanaged Code CLR Services Ngen
Interopérabilité Interopérabilité des langages, grâce au langage intermédiaire (IL) Interopérabilité avec COM Interopérabilité avec Win32 Le framework : Architecture
Standardisation C# et CLI qui sont déposés à l'ECMA CLI (Common Language Infrastructure) est très précis quand a ce que l'on doit trouver dans le "framework " et le "runtime " et laisse champ libre sur la manière de l'implémenter ECMA-334, C# (C sharp) Language Specification. ECMA-335, Common Language Infrastructure, approved by the ECMA General Assembly of 13th December ECMA TR/84, related to Standard ECMA-335 Le framework : Architecture
Support des standards Standards issus d’organismes indépendants. XML (eXtended Markup Language) pour les données. XSD (Schema Definition Language) pour définir la grammaire et le type de données d’un langage. HTTP (Hyper Text Transfert Protocol), natif dans.NET. SOAP (Simple Access Object Protocol), permet la communication des objets de manière transparente pour le développeur. WDSL (Web Services Description Language), format XML utilisé pour décrire les services d’un réseau. UDDI (Universal Description, Discovery and Integration), annuaire des Web Services. Le framework : Architecture
Gestion du Code Conversion du code MSIL en natif Chargement et exécution du ‘managed code’ Création et gestion des metadata Contrôle des types Insertion et exécution des politiques de sécurité Gestion mémoire Le framework : Architecture Bilan : CLR Gestion multi-langage des exceptions Interopérabilité entre les objets du framework.NET et les objets COM et les DLLs Win32 Liaison tardive Services pour les développeurs (profiling, debugging, etc.)
System.Data Design OLEDB SQLTypes SQL System Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess SecurityRuntime InteropServices Remoting Serialization System.Xml XPath XSLTSerialization System.Web ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms FormButton MessageBoxListControl Le framework : Architecture Les classes du framework
Les modules WinForms et WebForms sont un ensemble de composants graphiques accessibles dans Visual Studio.NET. WinForms et WebForms permettent de développer les interfaces d'applications à l'aide de composants graphiques préconçus.Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites Web WinForms et WebForms
Les modules C’est la nouvelle version de ADO (ActiveX® Data Objects). Elle est constituée d’une nouvelle génération de composants d’accès aux bases de données ADO. XML et SOAP sont utilisés pour l’échange des données. ADO.NET
Les modules C’est la nouvelle version d’ASP (Active Server Pages) qui supporte la compilation par MSIL. Les pages ASP peuvent également être écrites dans n’importe quel langage pourvu qu’il puisse être compilé par MSIL. ASP.NET
Les languages 27 langages supportés pour le moment … C#, VC++, VB.net, Jscript, Perl, Small Talk, Cobol, Fortan, … Les langages doivent répondre aux contraintes du MSIL. Une classe en C# peut-être utilisée dans un programme écrit en VB.net. 27 syntaxes différentes plutôt que 27 langages ?Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites Web
Les languages Nouveau langage créé pour.NET A mi-chemin entre C++ (+ simple ) et Java (+ rapide). Réponse de Microsoft à Java : syntaxe et fonctionnalités similaires. Bénéficie du Framework.net et sa CLR. Concepts clés : Composants orientés Tout est objet Soumis à l’ECMA pour standardisation Utilise les classes du framework.NET language C#
et Linux ! Début du « portage » du framework.Net Différents projets : Mono par le créateur de gnome GNU Portable DotNet Rotor (FreeBSD)Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites Web
ASP.NET Version.NET d’ASP : utilisé pour la création de site Web dynamique 3 types de pages : APSx, ASMx (assembly) pour les Web services, ASCx (control) pour les contrôles utilisateurs. ASP.NET fait partie intégrante du FrameWork et bénéficie de toutes ses fonctionnalités (classes de base). Les Pages ASP.NET sont compilés et exécuté par la CLR : code managé, possibilité de « tracing » et de « debugging ». Le code peut-être séparé totalement de la partie présentation. Apparition des contrôles serveurs. Comparable à JEE (ex. J2EE) + RMI S’appuie toujours sur IIS 5, mais multi-processus au lieu de multi-thread.Sommaire Introduction Services Web.NET ? Objectif Architecture Modules Langages Linux ASP.NET Sites Web Qu’est ce qu’ASP.NET ?
ASP.NET 45 contrôles disponibles (Listbox, treeview, calendar, adrotator, …) Exécutés sur le serveur. Renvoie du code HMTL au client en fonction du navigateur utilisé (compatible HMTL 3.2). Masque au développeur la communication client / serveur. Peut agir sans rechargement de la page. Chaque contrôle est une classe du Framework. Les contrôles serveurs
ASP.NET Fonctionnement Client fait une requête de pages ASPX On trouve la bonne page On la compile si ce n’est pas fait On l’assemble (composant, objets, etc…) On l’exécute en mémoire et on la place en cache On renvoie le code HTML de la page et des contrôles serveurs. Au deuxième appel pas de compilation, on va chercher la page compilée en cache.
ASP.NET Technologie qui permet de créer aisément des applications cotés serveurs Technologie qui permet de créer aisément des applications cotés serveurs ASP pages sont écrites dans un langage de script, généralement VBScript ou JScript ASP pages sont écrites dans un langage de script, généralement VBScript ou JScript Une page ASP contient une séquence HTML statique dans laquelle est inclue le script exécuté par le serveur Une page ASP contient une séquence HTML statique dans laquelle est inclue le script exécuté par le serveur Les scripts ASP permettent l’accès et la modification de données (présentes dans des BD) Les scripts ASP permettent l’accès et la modification de données (présentes dans des BD) HTTP request (form data, HTTP header data) HTTP response HTML, XML ASP page (static HTML, server-side logic) Active Server Pages (ASP)
Visual Studio.NET ASP.NET WebMatrix IDE SQL Server MSDE Données IIS “Cassini” Serveur Web Développement en entreprise Environnement “light” Windows &.NET Framework Plate-Forme Deux scénarios possibles ASP.NET
ASP.NET Un outil de développement léger, facile à prendre en main, pensé pour les communautés de développeurs, pour le développement d’applications Web ASP.NET GRATUIT ASP.NET WebMatrix MSDE “Cassini” Environnement “light” WebMatrix 0.6
Simple et facile à utiliser Simple et facile à utiliser Basé sur des fichiers (pas de “projets”) Basé sur des fichiers (pas de “projets”) Web Form designer WYSIWYG Web Form designer WYSIWYG Designer de données intégré Designer de données intégré Outils et assistants orientés tâches Outils et assistants orientés tâches Support FTP pour l’hébergement des pages Support FTP pour l’hébergement des pages Code Builders (assistants de génération de code) Code Builders (assistants de génération de code) Partage de “Code Snippets” Partage de “Code Snippets” Adapté aux développement de site personnel, ou maquette rapide Adapté aux développement de site personnel, ou maquette rapide ASP.NET WebMatrix MSDE “Cassini” Environnement “light” ASP.NET WebMatrix 0.6 : Un outil de développement léger
Léger Léger Téléchargement rapide (~1,3 Mo) Téléchargement rapide (~1,3 Mo) 1 disquette 1 disquette Pas de notion de projet Pas de notion de projet entièrement basé sur des fichiers entièrement basé sur des fichiers Serveur Web intégré Serveur Web intégré tourne sur Windows XP Home ! tourne sur Windows XP Home ! Destiné aux Communautés Destiné aux Communautés Add-in / Galleries de Code Add-in / Galleries de Code Intégration client Instant Messaging Intégration client Instant Messaging Intégration d’un client Chat Intégration d’un client Chat Onglet de liens vers les communautés en ligne Onglet de liens vers les communautés en ligne ASP.NET WebMatrix MSDE “Cassini” Environnement “light” ASP.NET WebMatrix 0.6 : Un outil de développement léger
MSDE 2000 Microsoft SQL Server Desktop Engine 2000 Microsoft SQL Server Desktop Engine 2000 Le moteur de SQL Server 2000 Le moteur de SQL Server 2000 Pas d’interface d’administration Pas d’interface d’administration WebMatrix joue ce rôle WebMatrix joue ce rôle Performances bridées Performances bridées Limité à 5 utilisateurs simultanés Limité à 5 utilisateurs simultanés Limité à 2Go Limité à 2Go Limite donc de fait l’usage au développement ou au déploiement sur poste client Limite donc de fait l’usage au développement ou au déploiement sur poste client ASP.NET WebMatrix MSDE “Cassini” Environnement “light” ASP.NET
Cassini Serveur Web de développement Serveur Web de développement Ne sert que les pages ASP.NET Ne sert que les pages ASP.NET Ne sert que les requêtes locales Ne sert que les requêtes locales Est inclus dans les 1,2Mo de WebMatrix Est inclus dans les 1,2Mo de WebMatrix N’est en fait qu’un listener qui renvoie les requêtes vers le moteur ASP.NET du.NET Framework N’est en fait qu’un listener qui renvoie les requêtes vers le moteur ASP.NET du.NET Framework ASP.NET WebMatrix MSDE “Cassini” Environnement “light” ASP.NET
Visual Studio.NET ASP.NET WebMatrix IDE SQL Server MSDE Données IIS “Cassini” Serveur Web ASP.NET Starter Kits Développement en entreprise Environnement “light” Windows &.NET Framework Un accélérateur de projets Plate-Forme ASP.NET
Conclusion.NET se présente comme une vision de la prochaine génération d'applications qui repose sur des standards tels que XML (eXtensible Markup Language), HTTP (Hyper-Text Transfer Protocol), SOAP (Simple Object Access Protocol), WSDL (Web Service Definition Language)....NET, une initiative stratégique... une stratégie marketing une plate-forme de développement unifié un environnement d’exécution sécurisé le remplaçant de l’architecture 3-tiers DNA (Distribued interNet Architecture ) 1 – QU'EST-CE QUE.NET ?
Conclusion un réseau Internet personnalisé qui héberge pour chaque utilisateur ses préférences et les données de ses applications une interaction entre l’utilisateur et ses applications grâce à la voix et à l’écriture manuscrite l’utilisateur aura un accès permanent à ses données et ses applications via le réseau et ce à partir de n’importe où et de n’importe quel terminal les applications et l’Internet pourront coopérer. C’est à dire que l’utilisateur sera connecté à un ensemble de services et d’applications qui seront capables de communiquer pour fournir des informations. 2 – LA STRATEGIE.NET
Conclusion prendre une place prépondérante sur le Web avec la location de services proposer une interopérabilité entres les services Web à travers Internet pouvoir consommer l’Internet sur plusieurs types de support (PC, PDA, téléphone…) être la plate-forme de référence pour la création de Services Web XML 3 – OBJECTIFS DE.NET
Conclusion le Framework.NET les Servers.NET (la nouvelle génération des Serveurs Microsoft qui vont donc succéder aux windows 2000 Server) Visual Studio.NET.NET Enterprise servers (logiciels comme Commerce Server, SQL Server, Content Management Server...), un ensemble d'infrastructures techniques nécessaires pour le développement et déploiement de solutions.NET 4 –.NET REPOSE SUR :
Conclusion supporte 27 langages de programmation (Perl, Python, Cobol, Haskell, ML, Jscript, Ada, APL, Eiffel, Pascal, Fortran, Managed Managed C++ C++, Visual Basic, C#, SmallTalk, Oberon, Scheme, Mercury, Oz, Objective Caml, J#, …) l’objet y est prépondérant possède un ensemble complet de classes de base (comparable à Java) orienté pour le développement d’applications Web basé sur des standards d’Internet : XML et SOAP pas de code natif : utilisation d’un langage intermédiaire le MSIL (MicroSoft Intermediate Language) l’exécution des programmes est contrôlée par la CLR (Common Language Runtime), comparable à JVM une architecture complète : le Framework.NET 5 – CARACTERISTIQUES DE.NET :
Conclusion Environnement d’exécution de.net Application et mémoire "managées" par la CLR Indépendant des syntaxes Le Framework.NET est un environnement distribué gratuitement, sur toutes les versions de Windows depuis Windows 95, dans le but de concurrencer son grand rival le JDK Java (Java Development Kit). machine virtuelle garbage collector bibliothèque de classes supporter plus de 27 langages de programmation 6 – LE FRAMEWORK.NET
Conclusion CLR (Common Language Runtime) Bibliothèque BCL (Base Class Library) C# (C Sharp) Visual Studio.NET (fusion de Visual Studio et de Visual InterDev) WinForms et WebForms ASP.NET ADO.NET Version embarquée de.NET 7 – L’ARCHITECTURE.NET
Conclusion ASP.Net pour le développement de sites Internet ou Intranet Windows Form pour le développement d'applications Windows traditionnelles.Net et Web Services XML pour le développement d'applications client/serveur ou peer-to-peer 8 – APPLICATIONS.NET
Conclusion Points forts Développement simplifié grâce au moteur CLR Structure multi langage et extensible / Intéropérabilité des langages Exécution multi plateformes Modèle de programmation simplifié et cohérent Une productivité comparable aux environnement Client/Serveur comme PowerBuilder ou Delphi Installation des Web Services automatisée Points faibles Problème de sécurité : pas approprié dans le cadre de développement Internet où l’utilisateur n’a pas forcément un compte Windows Nouvelle génération technologique : réécriture pour une grande partie de l’architecture DNA Limité à la plate-forme Windows : les applications développées pour la plate-forme.NET s’exécutent uniquement sur la plate-forme.NET. Il n'existe pas de plate-forme.NET opérationnelle sous forme de logiciels libres. Le modèle d’architecture distribué est basé sur COM+ (code non managé). Microsoft doit migré au plus vite vers l’environnement managé.NET Pas d’équivalent dans.NET des EJB Entity permettant d’assurer la persistance d’un objet distribué dans la base de données 9 – Bilan
Applications Suivre le tutorial : Suivre le tutorial : fr/asp.net/bb aspx fr/asp.net/bb aspx
Sites Internet DotNet : DotNet : he_NET.htm he_NET.htm he_NET.htm he_NET.htm
Sites Internet Autres : Autres : ndex.html ndex.html ndex.html ndex.html
Programmation Web Côté client Code récupéré depuis un serveur Web et exécuté dans le contexte d’un navigateur pour être exécuté sur le client Code récupéré depuis un serveur Web et exécuté dans le contexte d’un navigateur pour être exécuté sur le client Pourquoi du code côté client ? Pourquoi du code côté client ? Permet la répartition de la charge entre le client et le serveur Permet la répartition de la charge entre le client et le serveur Créer des IHM plus sophistiquées qu’en HTML Créer des IHM plus sophistiquées qu’en HTML Animations Animations Validation des données par l’utilisateur Validation des données par l’utilisateur Côté serveur Pourquoi du code côté serveur ? Accessibilité On peut accéder aux informations depuis n’importe quel browser, terminaux, n’importe quand, n’importe ou Administration Il n’est pas nécessaire de déployer le code applicatif Facilité pour faire évoluer le code Sécurité Le code n’est pas diffusé Uniquement les utilisateurs authentifié peuvent effectuer certaines actions Extensibilité Architecture 3 parties permettent la montée en charge Code côté client et code côté serveur
Programmation Web DHTML/JavaScript DHTML/JavaScript COM COM Contrôle ActiveX Contrôle ActiveX Composants COM Composants COM Remote Data Services (RDS) Remote Data Services (RDS) Java Java Plug-ins Plug-ins Helpers Helpers Remote Scripting Remote Scripting Technologies client
Programmation Web Encapsuler un script dans une page HTML Encapsuler un script dans une page HTML Généralement écrit en JavaScript (ECMAScript, JScript) pour des raisons de portabilité Généralement écrit en JavaScript (ECMAScript, JScript) pour des raisons de portabilité Internet Explorer supporte aussi VBScript et d’autres langages de script Internet Explorer supporte aussi VBScript et d’autres langages de script Mozilla est extensible par plug-in Mozilla est extensible par plug-in Chaque élément HTML devient un objet qui peut être associé à des événements (i.e. onClick ) Chaque élément HTML devient un objet qui peut être associé à des événements (i.e. onClick ) Les scripts fournissent du code qui sont exécuter lors de la production d’événement de la part du navigateur Les scripts fournissent du code qui sont exécuter lors de la production d’événement de la part du navigateur Dynamic HTML (DHTML)
Programmation Web Le DOM (Document Object Model) de DHTML Le DOM (Document Object Model) de DHTML window historydocumentlocationscreen alllocationchildrenselectionformsbodylinks textbuttonradiotextareaselect password file checkboxsubmit reset option navigatorframesevent DHTML
Programmation Web Based on COM Based on COM Native only to Internet Explorer Native only to Internet Explorer Supported in Netscape with a plug-in Supported in Netscape with a plug-in Good when you know your users (e.g. intranet) or can specify which browser to use Good when you know your users (e.g. intranet) or can specify which browser to use Small, efficient code Small, efficient code ActiveX
Programmation Web Basé sur du bytecode Java Basé sur du bytecode Java Portabilité garanti par les JVM : Portabilité garanti par les JVM : “Write once, run anywhere” “Write once, run anywhere” Sûr : le code s’exécute dans un “bac à sable” (sandbox) Sûr : le code s’exécute dans un “bac à sable” (sandbox) Compatibilité et performance permettent un usage intensif et une large diffusion Compatibilité et performance permettent un usage intensif et une large diffusion Java Applets
Programmation Web Common Gateway Interface (CGI) Common Gateway Interface (CGI) Internet Server API (ISAPI) Internet Server API (ISAPI) Netscape Server API (NSAPI) Netscape Server API (NSAPI) Active Server Pages (ASP) Active Server Pages (ASP) Java Server Pages (JSP) Java Server Pages (JSP) Personal Home Page (PHP) Personal Home Page (PHP) Cold Fusion (CFM) Cold Fusion (CFM) ASP.NET ASP.NET Technologies server
Programmation Web Technologie qui permet de créer aisément des applications cotés serveurs Technologie qui permet de créer aisément des applications cotés serveurs ASP pages sont écrites dans un langage de script, généralement VBScript ou JScript ASP pages sont écrites dans un langage de script, généralement VBScript ou JScript Une page ASP contient une séquence HTML statique dans laquelle est inclue le script exécuté par le serveur Une page ASP contient une séquence HTML statique dans laquelle est inclue le script exécuté par le serveur Les scripts ASP permettent l’accès et la modification de données (présentes dans des BD) Les scripts ASP permettent l’accès et la modification de données (présentes dans des BD) HTTP request (form data, HTTP header data) HTTP response HTML, XML ASP page (static HTML, server-side logic) Active Server Pages (ASP)