Développement web avancé,        .NET, J2EE     & Interopérabilité
SommaireSemaine 1INTRO• Rappel, La Course aux langages / La place de J2EE et .NET• Le cas PHP.NET• Framework• développemen...
Introduction• La course aux langages• Centralisation et décentralisation• « Rich Client »
La course des languages … 10 ans de web                  Catégorie Langage Serveur + Client Léger1998                     ...
Vers le n-tier … l’ère des architectes            présentation                   VUES               Répartition           ...
Client lourd   Client web
Le Client Riche         Server                Poste client                  HTTP (XML)                  SOAP (Web         ...
La course au WEB…Aperçu des langages                                Exemple XUL
Le cas PHP (5.3.1 en 2010)   Des désavantages pour le « petit frère » du WEB ?    UN LANGAGE SIMPLE ET PUR WEB    Faux > o...
Le cas PHP (5.3.1 en 2010)   Des désavantages pour le « petit frère » du WEB ?    UN LANGAGE SIMPLE ET PUR WEB    Faux > o...
Partie 1 : .NET•   Framework•   Développement WEB•   Le langage C#•   Accès aux données•   Autres Exemples
Qu’est-ce que .NET ?• Le FrameWork unifié de développement Microsoft• Distribuée en standard sour forme de dll sur les pla...
Que faut-il pour démarrer ?• Visual studio ou autres IDE libres .NET• Développement web avec outils gratuits
Plusieurs Langages…  Un seul Framework, mais Plus de 16 langages « .NET » :C#, VB.NET, Java.NET, C++.NET, Perl.NET, Python...
Un travail collaboratif   Utilisation maximale des compétences de programmation   Utilisation maximale des avantages de ch...
C#Langage principal de Microsoft 40% des dév. Dans le mondeC    C++      C#C# Managed <-> C++ UnmanagedFortement inspiré d...
C# et VB.NET : découverte par l’exemple
C# et VB.NET : exemple de classe
Exemple de codes web simplificateursPage aspx<ASP:Fileupload id=btnUpload/>Codebehindvoid btnUpload_Click(objectsender,Eve...
.Net et VersionningIndépendance vis-à-vis du registreDeux dll de versions différentes peuvent cohabiter(déploiement en ass...
ASP.net : Web componentsvers une conception unifiée
Développement traditionnel « client lourd »
Développement traditionnel « client lourd » formulaire Ecran Mode Graphique                 Code associé « onclick »      ...
Développement web formulaire  Html avant développement                          Html + code intégré                       ...
En .NET : Développement Evènementiel généralisé1 page de présentation                                       1 page de trai...
En .NET : Développement Evènementiel généralisé     1 page de présentation                                                ...
Précompilation et mémoire du serveur .NET       (1) Appel de la page                                       Page web aspx  ...
.Net : Accès aux données
L’accès aux données (1/2)            application       ADO.NET System.DATAODBC   OLEDB           Drivers Natifs
L’accès aux données (2/2)DatareaderDataAdapterDataSetDataViewSources et Bindings : ex du Datagrid
2 approches d’accès aux données                           DataReader
ASP.NET V2 (1/2)•   MasterPage / Objet header / PlaceHolders•   Contrôle Identification•   Controlstate en plus du ViewSta...
ASP.NET V2 (2/2)• Thèmes graphiques via XML• WebParts• Précompilation des pages  http://SERVER/APPLICATIONNAME/precompile....
ASP.NET V3•   Listview•   Datapager•   Integration AJAX•   Moteur de workflow•   Gestion SOA – web services (WCF)
Partie 2 : J2EE VS .NET• Comparaison, similitudes• Points forts• Avantages et Inconvénients• Méthode « Best Practice »
Processus du serveurd’applications / exemple
Design Patterns & MVC                                       Action 1    JSP       1.   Vue 1                      2.      ...
Processus du serveurd’applications JAVA
Processus du serveurd’applications .NET
L’illusion de la gratuité du serveur d’applications : évolutions en 3 ans        500 € / user . 20 à 30000€ /proc         ...
Premier comparatif              Des avantages et inconvénients à nuancer. Avantages pour .NET •   Nombre de langages •   R...
.NET et Open Source ? Les moins Java n’est pas aussi libre qu’on ne le pense .Net et politique globale de Microsoft (intég...
Les Runtime .NET Libres      JAVA            .NET         MONO (2.6.1) novell   .GNU (0.8)   Applications    Applications ...
Liens utiles• http://www.asp.net/downloads/essential/
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Dotnet j2 ee
Prochain SlideShare
Chargement dans…5
×

Dotnet j2 ee

840 vues

Publié le

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
840
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
49
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Dotnet j2 ee

  1. 1. Développement web avancé, .NET, J2EE & Interopérabilité
  2. 2. SommaireSemaine 1INTRO• Rappel, La Course aux langages / La place de J2EE et .NET• Le cas PHP.NET• Framework• développement WEB et nouveautés• accès aux données• performances...J2EE VS .NET• Comparaison, avantages, inconvénients, points forts• Méthode « Best Practice »• Open Souce et Outsiders
  3. 3. Introduction• La course aux langages• Centralisation et décentralisation• « Rich Client »
  4. 4. La course des languages … 10 ans de web Catégorie Langage Serveur + Client Léger1998 2010 J2EE Servlet JSP STRUTS / MVC JSF EJB3 JSF2 .NET ASP2 ASP3 ASPX ASP.NET ASP.NET 2 ASP.NET 3.5 PHP PHP3 PHP4 PHP5 PHP5.3 Python CGI ZOPE CMF/PLONE1 PLONE2 / CPS 3.2 CPS J2ECold Fusion CFM CFM MX SERVER 7 / J2E Ruby RUBY 1.9.1Outisiders : CGI en PERL / C, Delphi, Frameworks intégrés ex : IBM Lotus Domino /Oracle Forms
  5. 5. Vers le n-tier … l’ère des architectes présentation VUES Répartition CONTROLEUR Workflows ORCHESTRATION Traitements métiers BUSINESS Objets persistants MODEL Connexions SOAP XML LDAP Autres … DATA
  6. 6. Client lourd Client web
  7. 7. Le Client Riche Server Poste client HTTP (XML) SOAP (Web services) Serveur
  8. 8. La course au WEB…Aperçu des langages Exemple XUL
  9. 9. Le cas PHP (5.3.1 en 2010) Des désavantages pour le « petit frère » du WEB ? UN LANGAGE SIMPLE ET PUR WEB Faux > on peut créer des programmes non web (PHP gtk)+ orientation objet en cours d’amélioration (V4 et 5 – namespace - et 6 en 2009) Un Langage 100% interprété Faux > Il existe un préprocesseur : le ZEND Engine (auj en version 2.1.13) Une compatibilité totale avec les Web Services Faux > Une implémentation pas toujours totale de la norme > le cas NuSoap Pas de Frameworks avancés Faux > PEAR (connexion aux bdd) / HORDE (environnement de dev) Pas d’environnement IDE Faux > Plugins pour Eclipse (ex : zend IDE for eclipse)+ nombreux outils Open Source Pas d’éditeur en BackGround / pas de serveur d’application Faux > IBM soutient ZEND technologyParfaitement adapté au web, certains points le distinguent pourtant des grandsFrameworks : compilation, montée en charge, persistance des objets,connecteurs vers les gros systèmes, interopérabilité, exceptions, runtime, SOA,mobilité, garbage collector etc.. Mais il poursuit sa route !
  10. 10. Le cas PHP (5.3.1 en 2010) Des désavantages pour le « petit frère » du WEB ? UN LANGAGE SIMPLE ET PUR WEB Faux > on peut créer des programmes non web (PHP gtk)+ orientation objet en cours d’amélioration (V4 et 5 – namespace - et 6 en 2010 ?) Un Langage 100% interprété Faux > Il existe un préprocesseur : le ZEND Engine (auj en version 5) Une compatibilité totale avec les Web Services Faux > Une implémentation pas toujours totale de la norme > le cas NuSoap Pas de Frameworks avancés Faux > PEAR (connexion aux bdd) / HORDE (environnement de dev) Pas d’environnement IDE Faux > Plugins pour Eclipse (ex : zend IDE for eclipse)+ nombreux outils Open Source Pas d’éditeur en BackGround / pas de serveur d’application Faux > IBM soutient ZEND technologyParfaitement adapté au web, certains points le distinguent pourtant des grandsFrameworks : compilation, montée en charge, persistance des objets,connecteurs vers les gros systèmes, interopérabilité, exceptions, runtime, SOA,mobilité, garbage collector etc.. Mais il poursuit sa route !
  11. 11. Partie 1 : .NET• Framework• Développement WEB• Le langage C#• Accès aux données• Autres Exemples
  12. 12. Qu’est-ce que .NET ?• Le FrameWork unifié de développement Microsoft• Distribuée en standard sour forme de dll sur les plateformesWindows (server, personal, CE)•Une version plateforme et une version compact (mobile)•Contient toutes les classes, une machine virtuelle, uncomplilateur, un processeur J.I.T.• Une approche résolument différente du développement WEBet de l’accès aux données
  13. 13. Que faut-il pour démarrer ?• Visual studio ou autres IDE libres .NET• Développement web avec outils gratuits
  14. 14. Plusieurs Langages… Un seul Framework, mais Plus de 16 langages « .NET » :C#, VB.NET, Java.NET, C++.NET, Perl.NET, Python.NET, Pascal.NET,Php.NET, JScript.NET, ADA.NET, …. Cobol.NET Langage .NET = langage ANSI + orientation objet + implémentationdes classes du Framework .NET Un compilateur par langage transformation en IL : DLL DLL compilateur JIT de la CLR exécution en mode « managed »Code C# Compilateur cs Dll (IL) CLR Exécution Autres dll dll du framework
  15. 15. Un travail collaboratif Utilisation maximale des compétences de programmation Utilisation maximale des avantages de chaque langage Code C# : application WEB dll dll du framework Code VB : macros du secrétariat dll Code PERL : formatage de fichiers dll CLR : exécutionCode Java : lien avec appli bancaire dllCode Cobol : interrogation Mainframe dll
  16. 16. C#Langage principal de Microsoft 40% des dév. Dans le mondeC C++ C#C# Managed <-> C++ UnmanagedFortement inspiré de Java……Mais aussi de ADA, de Delphi (même concepteur)Unification des modes de développementOptimisation des déploiements
  17. 17. C# et VB.NET : découverte par l’exemple
  18. 18. C# et VB.NET : exemple de classe
  19. 19. Exemple de codes web simplificateursPage aspx<ASP:Fileupload id=btnUpload/>Codebehindvoid btnUpload_Click(objectsender,EventArgse){if (file.HasFile) { file.PostedFile.SaveAs(@"c:testfichier.txt"); }}
  20. 20. .Net et VersionningIndépendance vis-à-vis du registreDeux dll de versions différentes peuvent cohabiter(déploiement en assemblies)FrameWork multiple toléré (fichier de config) Utile pour les Frameworks 1.0,1.1,1.2,2 … 3, 3.5Couche d’abstraction présente dans les classes duFrameWork : adaptation au hard et aux interfacesTéléphone, PDA, Tablet PC, Portable, PC, Serveur…
  21. 21. ASP.net : Web componentsvers une conception unifiée
  22. 22. Développement traditionnel « client lourd »
  23. 23. Développement traditionnel « client lourd » formulaire Ecran Mode Graphique Code associé « onclick » //convertisseur Euro button1_onclick (contexte) { // Action à effectuer Form1.resultat = (float)Form1.a.Text * 6,55 }+ Permet l’utilisation d’environnement RAD / IDE+ Utilisation de composants graphiques « drag and drop »+ Gestion de l’interface déléguée au contexte- Nécessite une politique d’installation sur poste (installer) et deversionning
  24. 24. Développement web formulaire Html avant développement Html + code intégré <%page langage=« …»%><html> //monscript convertisseur Euro<form action = if (QueryString(« valeur1 »)!=Null)« monscript » {method=« post »> Answer = QueryString(« valeur1 ») * 6,55;<input type=«text » } %>name=« valeur1 »/> <html><input type=«text » <form action = « monscript » method=« post »>name=« valeur2 »/> <input type=«text » name=« valeur1 »/> <input type=«text » name=« valeur2 »<input type=« submit » Value=« <%=Answer%> »/>value=« convertir »/> <input type=« submit » value=« convertir »/> </form></form> </html></html> + Client léger, souplesse du code - Maintenance, mélange du code et de la présentation
  25. 25. En .NET : Développement Evènementiel généralisé1 page de présentation 1 page de traitement des actionsHTML + Web components + séparation claire de l’interface + pas de gestion de la distance, les contrôles client sont vus comme des objets locaux
  26. 26. En .NET : Développement Evènementiel généralisé 1 page de présentation 1 page de traitement des actions HTML + Web components//Page monform.aspx : convertisseur //Page monform.aspx.cs<%Codebehind=« monform.aspx.cs »%><html> Convert()<form runat=« server » /> {<ASP:TextBox // interaction directe avec l’affichagename=«valeur1 » runat=« server »/> Valeur2.Text= (Float)Valeur1.text*6,55;<ASP:TextBox //appel de classes et de fonctions serveurname=«valeur2 » runat=« server »/> MyClass = New Class()<ASP:Buttonname=«button1 » runat=« server » }onclick=« convert »/></form> + séparation claire de l’interface</html> + pas de gestion de la distance, les contrôles client sont vus comme des objets locaux
  27. 27. Précompilation et mémoire du serveur .NET (1) Appel de la page Page web aspx Codebehind dll Page HTML + Identifiants du contexte CLR : Instance de la page + Etat de tous les objets de la page : CONTEXTE ou viewstate (runat=« server »)(2) Transmission de l’état de + méthodes de traitement associéesla page (contexte) + actions + identifiants liant l’objet à la session en coursà réaliser
  28. 28. .Net : Accès aux données
  29. 29. L’accès aux données (1/2) application ADO.NET System.DATAODBC OLEDB Drivers Natifs
  30. 30. L’accès aux données (2/2)DatareaderDataAdapterDataSetDataViewSources et Bindings : ex du Datagrid
  31. 31. 2 approches d’accès aux données DataReader
  32. 32. ASP.NET V2 (1/2)• MasterPage / Objet header / PlaceHolders• Contrôle Identification• Controlstate en plus du ViewState• CrossSitePosting• URL Mapping (redirect)
  33. 33. ASP.NET V2 (2/2)• Thèmes graphiques via XML• WebParts• Précompilation des pages http://SERVER/APPLICATIONNAME/precompile.axd• Statistiques intégrées <siteCountersenabled="true" rowsPerDay="1">• contrôles ASP.NET XHTML compliant !! On peut définir le schéma pour chaque page respect des normes ex : XHTML 1.1 Strict
  34. 34. ASP.NET V3• Listview• Datapager• Integration AJAX• Moteur de workflow• Gestion SOA – web services (WCF)
  35. 35. Partie 2 : J2EE VS .NET• Comparaison, similitudes• Points forts• Avantages et Inconvénients• Méthode « Best Practice »
  36. 36. Processus du serveurd’applications / exemple
  37. 37. Design Patterns & MVC Action 1 JSP 1. Vue 1 2. Action 2 ActionServlet 3. (Contrôleur) 4. Action 3 JSP Modèles Vue 2 5. ( Contexte d’objets persistants EJB) mapping
  38. 38. Processus du serveurd’applications JAVA
  39. 39. Processus du serveurd’applications .NET
  40. 40. L’illusion de la gratuité du serveur d’applications : évolutions en 3 ans 500 € / user . 20 à 30000€ /proc Gratuit avec l’O.S.
  41. 41. Premier comparatif Des avantages et inconvénients à nuancer. Avantages pour .NET • Nombre de langages • Réutilisation de l’existant • Gestion des données • Gestion des Interfaces • Pas d’implémentations multiples Avantages pour Java • nombre d’API • Variété des Plateformes • Nombre de Développeurs • Gestion de la persistance EJB • Bonnes habitudes dès le départ • Pas de contrôle « fort » d’un éditeur (orientation libre)
  42. 42. .NET et Open Source ? Les moins Java n’est pas aussi libre qu’on ne le pense .Net et politique globale de Microsoft (intégration dans les futurs produits) Politique de mise en avant de l’IDE Visual Studio Les plus Des tentatives d’ouverture : Starter Kits .NET La création d’une communauté .NET L’ouverture imposée des sources C# reconnu ECMA > Des technologies pertinentes issues d’années d’expérience qui devraient rester dans le domaine du libre
  43. 43. Les Runtime .NET Libres JAVA .NET MONO (2.6.1) novell .GNU (0.8) Applications Applications Applications Applications JAVA C#/VB.NET… 15 langages C# C# Java SDK .NET Framework Mono Framework .GNU Framework JRE CLR CLR MONO CLR .GNU Plateformes Plateformes Plateformes Plateformes UNIX, Windows, UNIX, Windows, UNIX, Windows, Windows MacOSX, Linux MacOSX, Linux… MacOSX, Linux…
  44. 44. Liens utiles• http://www.asp.net/downloads/essential/

×