Architecture.NET JAVA/J2EE comparaison



Documents pareils
Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

DotNet. Plan. Les outils de développement

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Mise en œuvre des serveurs d application

Introduction à la plateforme J2EE

Java pour le Web. Cours Java - F. Michel

J2EE - Introduction. Développement web - Java. Plan du chapitre

Programmation Web Avancée Introduction aux services Web

10. Base de données et Web. OlivierCuré

Comparaison des architectures J2EE et.net

Auto-évaluation Aperçu de l architecture Java EE

Vulgarisation Java EE Java EE, c est quoi?

Compte Rendu d intégration d application

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Environnements de Développement

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Présentation J2EE. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin Jahia Ltd. All rights reserved.

Module.NET 3 Les Assemblys.NET

Introduction aux «Services Web»

Module BD et sites WEB

Urbanisation et architecture des systèmes d information

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Web Tier : déploiement de servlets

Technologies DotNET. Vision de Microsoft

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Refonte front-office / back-office - Architecture & Conception -

Cours en ligne Développement Java pour le web

Catalogue des Formations Techniques

Architectures web/bases de données

DotNet. Présentation de l'offre

JOnAS 5. Serveur d application d

Hébergement de sites Web

2 Chapitre 1 Introduction

OPC Factory Server- Réglage des paramètres de communication

Les nouvelles architectures des SI : Etat de l Art

Urbanisme du Système d Information et EAI

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

IBM DB2 Alphablox. d administration GC

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Web Application Models

Architectures n-tiers et déploiement d applications Web

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Formation en Logiciels Libres. Fiche d inscription

Application Web et J2EE

Etude analytique des architectures applicatives

Notre Catalogue des Formations IT / 2015

Plan. Department of Informatics

Virginie!SALAS Janvier!09! NFE107

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Les Architectures Orientées Services (SOA)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Messagerie asynchrone et Services Web

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Olivier Deheurles Ingénieur conception et développement.net

Catalogue des formations 2014

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Cedric Dumoulin (C) The Java EE 7 Tutorial

Composants Logiciels. Le modèle de composant de CORBA. Plan

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Nouvelles Plateformes Technologiques

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Architectures n-tiers Intergiciels à objets et services web

JavaServer Pages (JSP)

Evaluation Idéopass Cahier d analyse technique

Description de la formation

Oracle9i Application Server version 2

Les Fondements du langage Java & son évolution actuelle.

Les processus métiers : concepts, modèles et systèmes

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

JOnAS Day 5.1. Outils de développements

La technologie Java Card TM

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Point sur les solutions de développement d apps pour les périphériques mobiles

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Java Enterprise Edition

Le modèle client-serveur

Urbanisation des Systèmes d'information

Les architectures 3-tiers Partie I : les applications WEB

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Java Naming and Directory Interface

4. SERVICES WEB REST 46

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Cadrage fonctionnel et technique des sites Visa Premier et Infinite. Réalisation des déploiements pour l hébergeur.

L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

BizTalk Server Principales fonctions

Logiciel Enterprise Guide Version 1.3 Windows

Chapitre 2 Rôles et fonctionnalités

NFP111 Systèmes et Applications Réparties

Systèmes d'informations historique et mutations

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

Introduction aux. services web 2 / 2

Transcription:

Architecture.NET JAVA/J2EE comparaison Page 1 JAVA/J2EE Page 2 1

ARCHITECTURE SUN Pages HTML Java Server Pages réponse de Sun à Microsoft ASP Servlets Page 3 Une page.jsp Une page JSP est un document texte qui contient deux types de datas: Les données (html, XML), Des scriptlets qui vont permettre du mettre du code java dans les JSPs Un mécanisme de tag pour exécuter par exemple des classes java. Page 4 2

Servlet Solution SUN Basé sur Java JDBC: interface unique pour toutes les BDs S inscrit dans la stratégie SUN (J2EE tout java) h t t p d h t t... p d Servlet server servlet servlet servlet servlet servlet HTTP JDBC Page 5 MySQL Database server Page 6 Les concepts J2EE Logique de présentation JSP ou Servlets Logique Métier Enterprise JavaBeans (EJB) Entity Beans mapping avec la base de données BMP : à la main CMP : automatique Session Beans stateless : opérations temporaires stateful : objets temporaires (caddie) Message Driven Beans messages asynchrones 3

Définition Un servlet - Une classe java conçue pour recevoir et répondre à des requêtes HTTP Caractéristiques : - Utilise des instructions «PRINT» pour écrire des lignes HTML sur le navigateur. - Programme Java résident en mémoire et qui éxécute un thread à chaque requête effectuée. Page 7 Servlet Page 8 4

Exemple de servlet package codecamp; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; Public class HelloServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { Generation code html response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<title>first Servlet</title>"); out.println("<big>hello Code Camp!</big>"); } } Page 9 Les nouvelles architectures Intranet Extranet Internet Serveur Serveur Appli données Page 10 5

Java J2EE: Inventée par SUN JAVA J2EE Une suite de normes et standard:jdk, JMS, JNDI, JTS, JTA, EJB, JDBC, JAAS, J2CA, JSP, JMX,. Des outils de certification Une technologie orientée objet (Composants): - Supporte les Webservices Page 11 Le serveur WEB avec BDs Navigateur Serveur Web Serveur de données Plus qu'un visualisateur d'informations, accès à une base de donnée. Dynamique au niveau serveur donc au niveau client. Restriction. Quid de l'interactivité avec le système d'information de l'entreprise. Quid du cycle des vies des objets. Quid des problèmes de sécurité Quid interaction avec les services d infrastructures. Page 12 6

Le serveur applicatif Léger Serveur Web Serveur Applicatif Serveur données Offre la possibilité d exécuter une partie de l application. Effectue des contrôles avant de s adresser au serveur de données. Etablit des transactions avec le serveur de données. Effectue des traitements ne nécessitant pas d accès aux bases de données. Gére l'interactivité avec le système d'information de l'entreprise. Gère la sécurité Gère la montée en charge. Page 13 QQ définitions SUN JAVA J2SE Côté poste client, développement application et applet. J2ME Développement côté les mobiles J2EE Le cadre d'un serveur d'applications et d'intégration. JAVA web service Write once run anywhere Page 14 7

Page 15 J2EE -tier composant s execute sur le client. Les application clients et applets s exécute sur le client. Le composant Web-tier s exécute sur le J2EE server. Java Servlet and JavaServer Pages (JSP) technologie sont des composants qui s exécutent sur le serveur. Le Business-tier s exécute côté J2EE serveur. Les composants Enterprise JavaBeans (EJB) (enterprise beans) recouvrent la logique métier (aussi appelée logique applicative). Le logiciel Enterprise information system (EIS)- recouvre la partie donnée de l entreprise et s exécute sur les serveurs de données de l entreprise. Page 16 8

Mais aussi Page 17 EJB Avoir un «framework» pour objet répartis un serveur générique qui gère tous les problèmes de répartition (availability, scalability, security, Fault-tolerance ) le développeur écrit ses «objets métiers» en se conformant au modèle du framework et profite des avantages du framework Page 18 9

Architecture d un serveur J2EE Page 19 Source : http://java.sun.com/blueprints/guidelines Page 20 APIs de la plate-forme J2EE Enterprise JavaBeans Technology (EJB) 2.0 Brique de base pour construire l application 3 types de beans session beans entity beans message-driven beans JDBC 4.0 API Permet l'exécution de commandes SQL 2 parties dans l API la partie application pour accéder à la BD la partie fournisseur de services pour attacher le driver JDBC à la plate-forme J2EE JDO : Java Data Object 10

APIs de la plate-forme J2EE Page 21 Java Servlet Technology 2.4 introduit un modèle Requête/Réponse dans Java et étends la capacité d un serveur HTTP JavaServer Pages (JSP) Technology 2.0 mélange texte statique (HTML, XML) avec constructions dynamiques de contenue à l aide de tags JSP Java Message Service (JMS) 1.1 introduit un modèle de messages entre composants (MOM : Messages Oriented Middleware) permet des communications asynchrones, fiable et indépendantes entre composants APIs de la plate-forme J2EE Java Transaction API (JTA) 1.0.1 fournit les services nécessaires pour contrôler le niveau d isolation des transactions JavaMail Technology 1.3.1 Permet l envoie d emails. 2 parties dans l API la partie application pour contrôle de l envoi d emails la partie fournisseur de services emails JavaBeans Activation Framework(JAF)1.0.2 Service de découverte et d encapsulation de composants a l aide de JavaBean Page 22 11

APIs de la plate-forme J2EE Java API for XML (JAXP) 1.2.4 Standard API pour parser et transformer les données XML J2EE Connector API 1.5 Permet la création d'adaptateurs de ressources pour permettre l'accès aux systèmes EIS Java Authentication and Authorization Service (JAAS) 1.0 Permet la gestion de la sécurité dans les applications J2EE Page 23 APIs de la plate-forme J2EE Remote Method Invocation/Internet Inter- ORB Permet l interopéralité entre composants distants Java Interface Definition Language (Java IDL) Langage de définition d interfaces Java Naming and Directory Interface (JNDI) Service de nommage et d annuaire. Page 24 12

APIs de la plate-forme J2EE : WebServices = WSDP 1.3 Java Web Services Developer Pack Java API for XML Binding (JAXB, 1.0.2) Java APIs for XML Messaging 1.0 (JAXM) Java API for XML Registries 1.0.5 (JAXR) Java API for XML-based RPC 1.1 (JAX-RPC) JavaServer Faces (JSF) XML WS Security 1.0 JAXP Java API for XML processing 1.2.4 SOAP with attachments API 1.2.4 (SAAJ) Java Server Pages Std. Tag Library 1.1 (JSTL) Page 25 JDO / JDBC Page 26 Source : http://www.java-application-servers.com/articles/app_servers.html 13

EJB EJB des composants métiers : Suivent des spécification qui définit une architecture pour le développement et le déploiement d applications distribuées. Constituent un ensemble de composants serveurs, développés en Java. Exemple d utilisation Une session gestion de compte client, un compte banquaire, Une vérification de carte bleu, une carte visa, Du code en attente qui va déclencher une transaction. La spécification des EJB définit : Une architecture distribuée, Un modèle de programmation (conventions, protocole et un ensemble de classes et d interfaces de base). Assure la portabilité entre différents vendeurs. Un EJB s exécute dans un conteneur ( Container ); il vit dans ce conteneur. Le conteneur assure la gestion de l accès distant, la sécurité, la concurrence Divers types de bean Session, entity, des messages driven Page 27 Les types de beans Session bean Logique métier, calculs, transfert de compte bancaire, saisie de commandes, etc Entity bean: logique orientée donnée, par exemple changer le nom d un client, diminuer un compte bancaire Message driven-bean: logique orientée message, traitement après réception d un ordre d achat boursier.. Page 28 14

Exemples: Page 29 Schéma général Page 30 15

Container Les clients n appellent jamais directement les méthodes de la classe bean Les appels de méthode sont interceptés par le container afin d assurer un certain nombre de traitement. Une fois le travail du container terminé, on appelle le bean (la méthode) permettant ainsi de bien séparer la logique de métier de traitements annexes. Page 31 Les traitements du container La sécurité J2EE permet par exemple de configurer un composant WEB pour un entreprise bean qui peut être utilisé uniquement par des utilisateurs autorisés. Un modèle de transaction J2EE qui vous permet de spécifier les relations avec les autres méthodes JNDI, un service unifié pour accéder aux divers services de nommage et d annuaire. J2EE remote connectivity modèle gère les communications de bas niveau entre le client et l entreprise bean, l entreprise bean peut appeler des methodes comme s il était sur la même machine. Etc.. L'architecture J2EE Page 32 16

Une autre vue Page 33 La clusterisation Servlet Server EJB Server DB Server Web server Servlet Server EJB Server DB Server Web server Internet Servlet Server EJB Server DB Server Web server Servlet Server EJB Server DB Server Web server Web server Servlet Server EJB Server DB Server Servlet Server EJB Server DB Server Page 34 17

Les Serveurs d application Définition Un environnement pour le développement et le déploiement d applications accessibles à partir d un navigateur Web Page 35 Les Serveurs d application Historique Age de Pierre: Logique d abord: tout est codé dans la page HTML Age de Bronze: Interface: Pages HTML avec des balises pour le code (séparation présentation et code) Ere Industrielle: 3-Tiers: Présentation, traitement (logique), accès aux données Page 36 18

Les Serveurs d application Les acteurs du marché IBM: Websphere BEA:Weblogic Sun: Sun Java System Application Server Oracle: 9iAS OpenSource: Jboss, JonAS, Enhydra, Zope (Apache, Tomcat) Autres: Coldfusion, Silverstream (Novell), Borland, BlueStone, Page 37 Les Serveurs d application Le Quadrant Magique Gartner: Page 38 19

Weblogic Server: Un exemple Page 39 Les critères de choix Qu est ce qui différencie les serveurs d application Java? Les performances (scalabilité, stabilité) Les outils d administration (point faible des outils OpenSource) Les outils de développement (Visual Studio.Net, Eclipse) Les services: Support, Professional Services La conformité aux normes (pour Java) Le prix Page 40 20

.NET Framework et ASP.NET Page 41 Origine de.net 1995 : Microsoft se tourne vers le net gros compromis pour vite produire des outils et technologies basés sur l Internet Page 42 21

DNA (Distributed Network Architecture) 3 niveaux Active Server Pages pour la présentation, Objets métiers en COM au milieu, Une base de données pour le bas. Concept sain, mais difficile à mettre en oeuvre essentiel pour Microsoft de résoudre les limitations de DNA Page 43 Le remplaçant 1998 : début de Next Generation Windows Services (NGWS). Développement confidentiel NGWS rebaptisé.net le 22 Juin 2000 Page 44 22

ARCHITECTURE ASP.NET Un ensemble de classes orientées Web, Insertion d items Web sous forme d objets Page 45 Schéma en ASP Page 46 23

Schéma en ASP.NET Page 47 CLR & Framework Plate forme.net : Proposer un environnement d exécution sécurisé et une plate forme de développement simplifiée, cohérente et unifiée CLR&Framework Environnement d exécution.net Managed Memory & Application Exposer les services de la plate forme. Framework.NET, indépendant des syntaxes Déploiement et configuration simplifié Stratégie «effective» de gestion de version Page 48 24

CLR & Framework Unification et simplification du développement Framework Objet puissant et ouvert a tous les langages Disparition de la plomberie, prise en charge par le CLR (reference compting, registration ) via les meta data Garbage Collector Concept d Assembly = Assemblage de module = Type et Objets + Relations Basé sur et intégrant les standards XML, XSD SOAP, WSDL HTTP Page 49 The big picture VB C++ C# J# Common Language Specification ASP.NET Web Forms & Web Services ADO.NET (Données & XML) Base Class Library Windows Forms Visual Studio.NET Page 50 Common Language Runtime 25

Support des standards XML et XSD Au cœur des webservices et d ADO (Mapping Classes / Schémas) HTTP Protocole natif et intégré des WebServices et WebApplications SOAP Au cœur des échanges, transparent aux développeurs WSDL Le «contrat» des WebServices, prise en charge dynamique et automatique. (Attributs.NET) UDDI Annuaire WebServices, intégré a Visual Studio et possède son propre SDK. Page 51 Code source Intermediate Language IL compilation Indépendant du CPU Indépendant du langage Exécution par la CLR => chaque langage choisi un sous-ensemble Code accessible depuis d autres langages => respect de la Common Language Specification (CLS) Page 52 26

Vie d une application.net Acte 1 scène1 : Source et compilation Scène2 : Déploiement Acte 2 Scène1 : Exécution Scène2 : Configuration et sécurité Page 53 Compilation en 2 phases Compilation Source vers MSIL «Intermediate Language» ~23 syntaxes a ce jour supportées MSIL vers code natif Just In Time (JIT) Compilation Pré JIT possible Exécution du code en Binaire (compilé) Vrai pour toute assembly.net (Y compris pages web, webservices ) Page 54 27

Analogie avec Java Page 55 MS Intermediate Language Code intermédiaire Indépendant de la plate forme Va être «just in time» compilé Est contenu dans une assembly Assemblage = module, exe, dll MetaData, Manifest, MSIL Page 56 28

Assemblies Caractérisés par un MANIFEST Liste des assembly externes + version Description des types de l assembly + version Description des modules constituant l assembly Contiennent les MetaData Format PE, Version, legal Peuvent être signées Strong Name et GAC Sécurité et configuration MZ Header PE Header COFF Header CLR Metadata Executable IL/Machine code Page 57 Assemblies Briques des programmes.net unité fonctionnelle atomique Collection de code et de métadonnées Contient un Manifest, qui décrit son nom sa version la liste des fichiers les dépendances les fonctions fournies Page 58 29

Module Code compilé sans Manifest Sert à modulariser le développement Page 59 JIT La CLR utilise la compilation Just-In-Time Chaque méthode appelée est compilée en code natif appels suivants n ont pas à être recompilés Qq problèmes : exige des resources mémoire processeur Page 60 30

2 compileurs JIT: JIT un normal : optimise pas mal, mais intensif au niveau de la mémoire et du processeur un "EconoJIT : optimise pas aussi bien, mais requiert moins de ressources Le seul plus : compile à l installation => pas besoin de distribuer du code spécifique pour chaque plateforme Page 61 La bibliothéque de Classes Namespace : ensemble de classes La racine des namespaces est System Contient les types basiques comme Byte, Double, Boolean, and String, Object Tous les objets dérivent de System.Object value types objets Moyens efficace de convertir des value types en objets Page 62 31

Côté client L ensemble des classes est assez complet : Collections File Screen network I/O Threading XML Connexion aux bases de données Windows Forms alternative au développement traditionnel pour Windows Page 63 Côté serveur Web Services : composant sur un serveur web utilisé par : Une application Un autre Web Service Page 64 32

Web Forms Infrastructure de page ASP.NET Nouveau modèle d exécution événementiel basé sur des contrôles pour l interface utilisateur Web «Visual Basic appliqué au Web» Fonctionnalité encapsulée proprement Page 65 Web Forms Infrastructure de page ASP.NET Exécuté via CLR en tant que code natif Visual Basic, C#, JScript, Les pages ASP.NET comportent l extension «.ASPX» Exécution sur le serveur IIS parallèlement aux applications ASP existantes Page 66 33

Web Forms Web Forms Active Server Pages.NET Fait partie de.net Framework ASP.NET construit, déploie et exécute des applications et des services Web Les applications Web Visual Studio.NET prennent directement en charge ASP.NET VB C++ C# Perl Python... Services Web Interface utilisateur ASP.NET ADO.NET : données et XML Infrastructure de base Common Language Runtime Page 68 34

Web Forms Infrastructure de page ASP.NET Exécuté via CLR en tant que code natif Visual Basic, C#, JScript Les pages ASP.NET comportent l extension «.ASPX» Exécution sur le serveur IIS parallèlement aux applications ASP existantes Page 69 45 contrôles intégrés Web Forms Contrôles serveur Compatibles avec n importe quel navigateur HTML 3.2 Déclenchent des événements vers le serveur Contrôles de base textbox, checkbox, radio, button Page 70 35

Web Forms Contrôles serveur Contrôles avancés AdRotator, Calendar, DataGrid, Validator Déclarés sous forme de balises HTML ou XML à l aide de l attribut runat=server Exemples : <input type="text" id="text2" runat="server"/> <asp:calendar id="moncal" runat="server"/> Page 71 Applications ASP.NET Enregistrement de l état de l application Il s agit essentiellement de variables globales concernant l application Application("NomSociété") Possibilité de verrouiller et de déverrouiller les variables d état de l application Application.Lock Application("CompteurGlobal") = NouvelleValeur Application.Unlock Page 72 36

Applications ASP.NET Enregistrement de l état de la session Variables propres à chaque utilisateur Disponibles pour toutes les pages du site Session("UserID") = 5 UserID = Session("UserID") Page 73 Mémoire cache Mémoire cache de sortie de page Pages modifiées peu souvent Spectaculaire amélioration des performances <%@ OutputCache Duration= "500" VaryByParam="none" %> Page 74 37

Mémoire cache Mise en mémoire cache de fragments Parties dynamiques d une page Les données ne changent pas souvent Contrôle utilisateur En-tête du site Navigation Corps de page <%@ OutputCache Duration="60" VaryByParm="none" %> Seul le corps de page est placé en mémoire cache pendant la durée spécifiée Page 75 Web Services SOAP (Simple Object Access Protocol) RPC qui utilise XML sur HTTP WSDL (Web Service Description Language) décrit la structure des messages UDDI (Universal Description, Discovery and Integration) annuaire global des services web Page 76 38

Services Web dans Visual Studio.NET Outils Côté serveur Génération de WSDL Génération de.vsdisco Génération de pages de texte HTML Prise en charge des points d'arrêt, du traçage, etc. Côté client Génération d'une classe de proxy à l'aide d'appels synchrones et asynchrones Prise en charge du pas à pas détaillé lors d'appels de service Web Page 77 Simplifier le déploiement Side by side Simple copie de fichier (Packaging prévu dans VStudio.NET) A chaud MAJ de dlls et de toute assembly.net Cas des sites WEB Versionning Gestion intégrée dans la CLR Securité Trois niveaux (application, machine, entreprise) Les «Permset» permettent une gestion granulaire des droits Page 78 39

Environnement d exécution Jeux de dlls mappées dans un process Win32 Faire le lien avec le system et exposer le Framework.NET Mscoree.dll (unmanaged),mscorwks.dll ou mscorsrv.dll et Mscorlib.dll (managed) Exposer les services : Garbage Collector Code check security JIT Compilation InteropServices Base Class Library (sous forme de namespaces) Class loader Page 79 Configuration et Sécurité Configuration externe aux assemblies web.config, monapp.exe.config Fichiers au format XML Outils d administration Permet le probing, redirect de version, code base, droits et permission.. Page 80 40

Unification du développement RAD, Héritage, contrôle et performance, WebDynamic et WebServices.NET Framework RAD, Composition, Délégation VB Forms Héritage, Contrôle, performance MFC/ATL Stateless, mélange de code/html ASP Windows API Page 81 Unification des types Unification des types Simplification des échanges inter modules, inter syntaxe Types définis au niveau du CLR CTS : Common Type System Types unique, mais «mappés» par les syntaxes Int, integer, short et INT16, INT32 Syntaxes fortement typées Cast Explicit Le managed heap connaît à tout moment le type de toute allocation (références, alias Box Unbox) Page 82 41

Unification par l Objet Tout est «Object» dans.net Implicitement tout est dérivé de Object Support «étendu» de l héritage Héritage «linéaire» du code Héritage multiple des interfaces Héritage «visuel» Héritage inter langages Naturel car types homogènes Depuis le source code ou depuis le «binaire» Page 83 Box/Unboxing??? Valeur et références Unification des exceptions Garantir une gestion d erreur cohérente et robuste au travers des différentes syntaxes Exception handling au niveau de la CLR Modèle cohérent Override des classes d erreurs aisé Propagation inter syntaxe «naturelle» Page 84 42

Interopérabilité : COM,COM+ et Win32 COM Interop dans les 2 sens TlbImp, TlbExp, Regasm Génération des proxy/stub depuis l IDE de VStudio RCW runtime com wrapper CCW com callable wrapper COM+ 1.x Composants COM et/ou.net dans des packages COM+ (Application COM+..;Transactions, pooling, synchronisation ) Win32/64 Declaration d un import (signature) depuis une dll Dans le source code (C++) par un pragma Page 85 ADO.NET Evolution et NON Révolution ADO au cœur du framework.net Accessible facilement aux développeurs ADO ADO.NET propose un support optimum au modèle déconnecté Support d XML natif au framework Page 86 43

ADO.NET Evolution d'ado Conçu pour des accès connectés et déconnectés Intégration de données hétérogènes Interopérabilité XML Hautes performances Providers et objets optimisés Intégration forte de ADO.NET dans Visual Studio.NET Intégration des objets Assistants Intégration forte de ADO.NET dans le.net Framework Traitement des exceptions, nommage, notifications, etc. Page 87 Couche de présentation Windows Forms MyApp.Exe Architecture ADO.Net DataSet Web Forms IE DataSet Internet Intranet XML Couche métier Objet d'accès données DataSet Data Adapter Data Adapter Couche données B 2 B Page 88 44

Le modèle ADO.Net Trois classes fondamentales DataReader Recordset Lecture seule/avance seule DataSet Cache déconnecté en mémoire DataAdapter Assure la connexion entre la base et un dataset 2 Modes : Connecté Déconnecté Page 89 Accès aux données ADO.NET est la version managée de ADO Accès OLEDB: System.Data.OleDb Accès SQL Server : System.Data.Sql Accès Oracle* : System.Data.Oracle Accès ODBC** : System.Data.Odbc Page 90 45

ADO.NET Supporte le scénario connecté: IDataReader.NET Data Provider IDbConnection IDbTransaction BD IDbCommand IDataParameter IDataReader ADO.NET Supporte le scénario déconnecté: IDataAdapter & DataSet.NET Data Provider IDbConnection IDbTransaction IDbCommand IDataParameter BD IDataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand DataSet DataTableCollection DataTable DataRow DataColumn Constraint DataRelationCollection 46

Comparaison Architecture J2EE et.net Page 93 Comparaison de l architecture J2EE et.net Page 94 Source : http://www.theserverside.com/resources/article.jsp?l=j2ee-vs-dotnet 47

Comparaison du modèle de développement de J2EE et.net Un langage Plusieurs plate-formes Plusieurs langages Une plate-forme Page 95 Source : http://www.sdmagazine.com/documents/s=733/sdm0103a/0103a.htm.net OU J2EE?.NET est un produit, Java et J2EE sont des specifications Les 2 adressent le web Pour les grosses applications J2EE est mieux adapté Page 96 48

.NET OU J2EE?.NET plusieurs langages : J2EE : un seul langage Dans certains projets plusieurs langages peuvent être nécessaires Avantage :. NET Page 97.NET ou J2EE? Les fenêtres utilisateurs sont mieux gérées en.net JAVA permet une meilleure indépendance par rapport aux fournisseurs de solutions Java est plus mûr Les webs services peuvent être développés dans les 2 technologies -.NET développement plus pratique J2EE permet une meilleure scalabilité Page 98 49

RESUME-1.NET Java Controller/Owner Microsoft Sun + JCP-Partner Status Product Line Specification and many implementations Languages C#, C++, Eiffel#, VB,... Java + possibly others Communication middleware (RPC, Messaging, Web).NET Remoting, MSMQ, Web Services (no ebxml) RMI/CORBA, JMS, Web Services (standard compliant) Server Components COM+ Enterprise JavaBeans Page 99 XML-Support Consistent Currently not yet completely integrated Server Pages ASP.NET JSP/Servlets RESUME-2.NET Java Database access ADO.NET (ADO) JDBC / SQLJ and others Base libraries Many many classes on System.* Many many classes on java.* GUI-Libs Windows.Forms Web.Forms Swing/AWT Runtime.NET CLR Java JVM Interop (call-in/call-out) PInvoke JNI Page 100 InteropMiddleware COM/COM+ (COM Interop) Legacy Integration Host Integration Server JCA CORBA, JMS 50