.NET, J2EE
& Interopérabilité
Semaine 1
•   Rappel, La Course aux langages / La place de J2EE et .NET
•   Le cas PHP
•   Framework
•   développement WEB et nouveautés • accès aux données
•   performances...
•   Comparaison, avantages, inconvénients, points forts
•   Méthode « Best Practice » <
•   Open Souce et Outsiders
• La course aux langages • Centralisation et décentralisation • « Rich Client »
Catégorie Langage Serveur + Client Léger
1998
2010
            PHP        PHP3         PHP4                            PHP5 PHP5.3
         Python  CGI           ZOPE     CMF/PLONE1 PLONE2 / CPS 3.2  CPS J2E
Cold Fusion CFMÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â CFM MX SERVER 7 / J2E
Ruby                                             RUBY 1.9.1
Outisiders : CGI en PERL / C, Delphi, Frameworks intégrés ex : IBM Lotus Domino / Oracle Forms
                        Â
             Â
Le cas PHP (5.3.1 en 2010)
Des désavantage
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 >
Pas de Frameworks avancés
Faux > PEAR (connexion aux bdd) / HORDE (environnement de dev)
Pas d’environnement IDE
Faux
Open Source
Pas d’éditeur en BackGround / pas de serveur d’application
Faux > IBM soutient ZEND technology
Parfaitement adapté au web, certains points le distinguent pourtant des grands Frameworks : compilation, mon
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 versi
Une compatibilité totale avec les Web Services
Faux > Une implémentation pas toujours totale de la norme > le cas NuSoap
Pas
Faux > PE
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 technology
Parfaitement adapté au web, certains points le distinguent pourtant des grands Frameworks : 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 !
Qu’est-ce que .NET ?
•   Le FrameWork unifié de développ
•   Distribuée en standard sour forme de dll sur les plateformes Windows (server, personal, CE)
•Une version plateforme et une version compact (mobile)
•Contient toutes les classes, une machine virtuelle, un complilateur, un processeur J.I.T.
•   Une approche résolument différente du développement WEB et de l’accès aux données
Que faut-il pour démarrer ?
•   Visual studio ou autres IDE libres .NET
•   Développement web avec
Plusieurs Langages…
 Un seul Framework, mais Plus de 16 langages « .NET » :
C#, , , , , , ,
, , , ….
 Langage .NET = langage ANSI + orientation objet + implémentation des clas
 Un compilateur par langage      transformation en IL : DLL
 DLL       compilateur JIT de la CLR    exécution en mode « managed »
 Utilisation maximale des compétences de programmation
 Utilisation maximale des avantages de chaque langage
 C       C++    C#
 C# Managed <-> C++ Unmanaged
 …Mais aussi de ADA, de Delphi (même concepteur)
 Unification des modes de développement
 Optimisation des déploiements
C# et : découverte par l’exemple
C# et : exemple de classe
Page aspx
<ASP:Fileupload id=btnUpload/> Codebehind
void btnUpload_Click(objectsender,EventArgse)
{
if (file.HasFile) {
file.PostedFile.SaveAs(@"c:\test\");
}
}
.Net et Versionning
 Indépendance vis-à -vis du registre
 Deux 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.5
 Couche d’abstraction présente dans les classes du
FrameWork : adaptation au hard et aux interfaces
 Téléphone, PDA, Tablet PC, Portable, PC, Serveur…
Développement traditionnel « client lourd »
Développement traditionnel « client lourd » formulaire
+ 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 de versionning
Développement web formulaire
Html avant développement                                   Html + code intégré
|
<%page langage=« …»%>
//monscript convertisseur Euro
if (QueryString(« valeur1 »)!=Null)
{
Answer = QueryString(« valeur1 ») * 6,55;
}
%>
<html>
<form action = « monscript » method=« post »>
<input type=«text » name=« valeur1 »/>
Value=« <%=Answer%> »/>
<input type=« submit » value=« convertir »/>
</form> </html>
+ Client léger, souplesse du code
- Maintenance, mélange du code et de la présentation
En .NET : Développement Evènementiel généralisé
1 page de présentation
1 page de traitement des actions
HTML + Web components
+ séparation claire de l’interface
+ pas de gestion de la distance, les contrôles client sont vus comme des objets locaux
En .NET : Développement Evènementiel généralisé
1 page de présentation
1 page de traitement des actions
HTML + Web components
//Page : convertisseur <%Codebehind=« »%> <html> <form runat=« server » /> <ASP:TextBox name=«valeur1 » runat=« server »/> <ASP:TextBox name=«valeur2 » runat=« server »/> <ASP:Button name=«button1 » runat=« server » onclick=« convert »/> </form> </html> |
//Page Convert() { // interaction directe avec l’affichage = (Float)*6,55; //appel de classes et de fonctions serveur MyClass = New Class() } |
+ séparation claire de l’interface
+ pas de gestion de la distance, les contrôles client sont vus comme des objets locaux
Précompilation et mémoire du serveur .NET
à réaliser
application
ODBC
OLEDB
Drivers Natifs
L’accès aux données (2/2)
 Datareader
 DataAdapter
 DataSet
 DataView
 Sources et Bindings : ex du Datagrid
V2 (1/2)
• MasterPage / Objet header / PlaceHolders • Contrôle Identification • Controlstate en plus du ViewState • CrossSitePosting • URL Mapping (redirect)
V2 (2/2)
• Thèmes graphiques via XML
• WebParts
• Précompilation des pages
• Statistiques intégrées
<siteCountersenabled="true" rowsPerDay="1">
respect desnormes ex : XHTML 1.1 Strict
• Listview • Datapager • Integration AJAX • Moteur de workflow • Gestion SOA – web services (WCF)
L’illusion de la gratuité du serveur d’applications : évolutions en 3 ans
500 € / user . 20 à 30000€ /proc       Gratuit avec l’O.S.
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)
.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 |
JAVA                     .NET            MONO (2.6.1) novell         .GNU (0.8)
| |||||||
|
| ||||||
|
| ||||||
|
|