• Aucun résultat trouvé

[PDF] Cours Développement web avancé, .NET et J2EE | Formation informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours Développement web avancé, .NET et J2EE | Formation informatique"

Copied!
70
0
0

Texte intégral

(1)

Développement web avancé,

Développement web avancé,

.NET, J2EE

.NET, J2EE

& Interopérabilité

& Interopérabilité

(2)

Sommaire

Sommaire

Semaine 1

Semaine 1

INTRO

INTRO

Rappel, La Course aux langages / La place de J2EE et .NET

Rappel, La Course aux langages / La place de J2EE et .NET

Le cas PHP

Le cas PHP

.NET

.NET

Framework

Framework

développement WEB et nouveautés

développement WEB et nouveautés

accès aux données

accès aux données

performances...

performances...

J2EE VS .NET

J2EE VS .NET

Comparaison, avantages, inconvénients, points forts

Comparaison, avantages, inconvénients, points forts

Méthode «

Méthode «

Best Practice

Best Practice

»

»

(3)

Introduction

Introduction

La course aux langages

La course aux langages

Centralisation et décentralisation

Centralisation et décentralisation

(4)

La course des

La course des

languages

languages

… 10 ans de web

… 10 ans de web

.NET J2EE

PHP

Python

ASP3 ASPX ASP.NET Servlet

ASP2

JSP STRUTS / MVC JSF

PHP3 PHP4 PHP5

CGI ZOPE CMF/PLONE1 PLONE2 / CPS 3.2 CPS J2E 2010

Cold Fusion CFM

Outisiders : CGI en PERL / C, Delphi, Frameworks intégrés ex : IBM Lotus Domino / Oracle Forms

ASP.NET 2

CFM MX SERVER 7 / J2E 1998

Catégorie Langage Serveur + Client Léger

ASP.NET 3.5 JSF2

Ruby RUBY 1.9.1

EJB3

(5)

Vers le n

Vers le n

-

-

tier

tier

… l’ère des architectes

… l’ère des architectes

LDAP XML

SOAP Autres … DATA

MODEL Connexions Objets persistants Workflows Répartition présentation VUES CONTROLEUR ORCHESTRATION

(6)
(7)

Le Client Riche

Le Client Riche

Serveur Poste client HTTP (XML) SOAP (Web services) Server

(8)

La course au WEB…Aperçu des langages

La course au WEB…Aperçu des langages

(9)
(10)

Le cas PHP

Le cas PHP

(5.3.1 en 2010)(5.3.1 en 2010)

Des désavantages pour le «

Des désavantages pour le «

petit frère

petit frère

» du WEB ?

» du WEB ?

UN LANGAGE SIMPLE ET PUR WEB

UN LANGAGE SIMPLE ET PUR WEB

Faux > on peut créer des programmes non web (PHP

Faux > on peut créer des programmes non web (PHP gtkgtk)+ orientation )+ orientation objet en cours d’amélioration (V4 et 5

objet en cours d’amélioration (V4 et 5 –– namespacenamespace -- et 6 en 2009)et 6 en 2009) Un Langage 100% interprété

Un Langage 100% interprété

Faux > Il existe un préprocesseur : le ZEND

Faux > Il existe un préprocesseur : le ZEND EngineEngine ((aujauj en version 2.1.13)en version 2.1.13) Une compatibilité totale avec les Web Services

Une compatibilité totale avec les Web Services

Faux > Une implémentation pas toujours totale de la norme > le c

Faux > Une implémentation pas toujours totale de la norme > le cas as NuSoapNuSoap Pas de

Pas de FrameworksFrameworks avancésavancés Faux > PEAR (connexion aux

Faux > PEAR (connexion aux bddbdd) / HORDE (environnement de ) / HORDE (environnement de devdev)) Pas d’environnement IDE

Pas d’environnement IDE

Faux > Plugins pour Eclipse (ex : zend IDE for

Faux > Plugins pour Eclipse (ex : zend IDE for eclipseeclipse)+ nombreux outils )+ nombreux outils Open Source

Open Source

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 !

Pas d’éditeur en

Pas d’éditeur en BackGroundBackGround / pas de serveur d’application/ pas de serveur d’application Faux > IBM soutient ZEND

(11)

Le cas PHP

Le cas PHP

(5.3.1 en 2010)(5.3.1 en 2010)

Des désavantages pour le «

Des désavantages pour le «

petit frère

petit frère

» du WEB ?

» du WEB ?

UN LANGAGE SIMPLE ET PUR WEB

UN LANGAGE SIMPLE ET PUR WEB

Faux > on peut créer des programmes non web (PHP

Faux > on peut créer des programmes non web (PHP gtkgtk)+ orientation )+ orientation objet en cours d’amélioration (V4 et 5

objet en cours d’amélioration (V4 et 5 –– namespacenamespace -- et 6 en 2010 ?)et 6 en 2010 ?) Un Langage 100% interprété

Un Langage 100% interprété

Faux > Il existe un préprocesseur : le ZEND

Faux > Il existe un préprocesseur : le ZEND EngineEngine ((aujauj en version 5)en version 5) Une compatibilité totale avec les Web Services

Une compatibilité totale avec les Web Services

Faux > Une implémentation pas toujours totale de la norme > le c

Faux > Une implémentation pas toujours totale de la norme > le cas as NuSoapNuSoap Pas de

Pas de FrameworksFrameworks avancésavancés Faux > PEAR (connexion aux

Faux > PEAR (connexion aux bddbdd) / HORDE (environnement de ) / HORDE (environnement de devdev)) Pas d’environnement IDE

Pas d’environnement IDE

Faux > Plugins pour Eclipse (ex : zend IDE for

Faux > Plugins pour Eclipse (ex : zend IDE for eclipseeclipse)+ nombreux outils )+ nombreux outils Open Source

Open Source

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 !

Pas d’éditeur en

Pas d’éditeur en BackGroundBackGround / pas de serveur d’application/ pas de serveur d’application Faux > IBM soutient ZEND

(12)

Partie 1 : .NET

Partie 1 : .NET

Framework

Framework

Développement WEB

Développement WEB

Le langage C#

Le langage C#

Accès aux données

Accès aux données

(13)

Qu’est

Qu’est

-

-

ce que .NET ?

ce que .NET ?

Le

Le

FrameWork

FrameWork

unifié de développement Microsoft

unifié de développement Microsoft

Distribuée en standard

Distribuée en standard

sour

sour

forme de dll sur les plateformes

forme de dll sur les plateformes

Windows (server,

Windows (server,

personal

personal

, CE)

, CE)

Une version plateforme et une version compact (mobile)

Une version plateforme et une version compact (mobile)

Contient toutes les classes, une machine virtuelle, un

Contient toutes les classes, une machine virtuelle, un

complilateur

complilateur

, un processeur J.I.T.

, un processeur J.I.T.

Une approche résolument différente du développement WEB

Une approche résolument différente du développement WEB

et de l’accès aux données

(14)

Que faut

Que faut

-

-

il pour démarrer ?

il pour démarrer ?

Visual studio ou autres IDE libres .NET

Visual studio ou autres IDE libres .NET

(15)
(16)

Plusieurs Langages…

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émentation

des 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

Autres dll dll du framework

(17)
(18)

CLR : exécution

Un travail collaboratif

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

dll

Code Cobol : interrogation Mainframe Code Java : lien avec appli bancaire

Code VB : macros du secrétariat

dll

dll

(19)
(20)
(21)
(22)

C#

C#

Langage principal de Microsoft 40% des

Langage principal de Microsoft 40% des

dév

dév

. Dans le monde

. Dans le monde

C

C





C++

C++





C#

C#

C#

C#

Managed

Managed

<

<

-

-

> C++

> C++

Unmanaged

Unmanaged

Fortement inspiré de Java…

Fortement inspiré de Java…

…Mais aussi de ADA, de Delphi (même concepteur)

…Mais aussi de ADA, de Delphi (même concepteur)

Unification des modes de développement

Unification des modes de développement

Optimisation des déploiements

(23)

C# et VB.NET : découverte par l’exemple

(24)

C# et VB.NET : exemple de classe

(25)

Page aspx <ASP:Fileupload id=btnUpload/> Codebehind void btnUpload_Click(objectsender,EventArgse) { if (file.HasFile) { file.PostedFile.SaveAs(@"c:\test\fichier.txt"); } }

Exemple de codes web simplificateurs

(26)

.

.

Net et

Net et

Versionning

Versionning

Indépendance vis

Indépendance vis

-

-

à

à

-

-

vis du registre

vis du registre

Deux dll de versions différentes peuvent cohabiter

Deux dll de versions différentes peuvent cohabiter

(déploiement en

(déploiement en

assemblies

assemblies

)

)

FrameWork

FrameWork

multiple toléré (fichier de config)

multiple toléré (fichier de config)





Utile pour les

Utile pour les

Frameworks

Frameworks

1.0,1.1,1.2,2 … 3, 3.5

1.0,1.1,1.2,2 … 3, 3.5

Couche d’abstraction présente dans les classes du

Couche d’abstraction présente dans les classes du

FrameWork

FrameWork

: adaptation au hard et aux interfaces

: adaptation au hard et aux interfaces

Téléphone, PDA, Tablet PC, Portable, PC, Serveur…

(27)

ASP.net : Web components

ASP.net : Web components

vers une conception unifiée

(28)
(29)

//convertisseur Euro button1_onclick (contexte) { // Action à effectuer Form1.resultat = (float)Form1.a.Text * 6,55 }

Développement traditionnel « client lourd » formulaire

+ Permet l’utilisation d’environnement RAD / IDE

+ Utilisation de composants graphiques « drag and drop »

- Nécessite une politique d’installation sur poste (installer) et de versionning

+ Gestion de l’interface déléguée au contexte

(30)

<%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 »/>

<input type=«text » name=« valeur2 » Value=« <%=Answer%> »/>

<input type=« submit » value=« convertir »/> </form> </html> <html> <form action = « monscript » method=« post »> <input type=«text » name=« valeur1 »/> <input type=«text » name=« valeur2 »/> <input type=« submit » value=« convertir »/> </form>

</html>

+ Client léger, souplesse du code

- Maintenance, mélange du code et de la présentation

Développement web formulaire

(31)

En .NET : Développement Evènementiel généralisé

+ séparation claire de l’interface + pas de gestion de la distance, les contrôles client sont vus comme des objets locaux

1 page de présentation

(32)

En .NET : Développement Evènementiel généralisé

//Page monform.aspx : convertisseur <%Codebehind=« monform.aspx.cs »%> <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 monform.aspx.cs Convert() {

// interaction directe avec l’affichage Valeur2.Text= (Float)Valeur1.text*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

1 page de présentation

(33)
(34)
(35)
(36)
(37)
(38)

Précompilation

Précompilation

et mémoire du serveur .NET

et mémoire du serveur .NET

(1) Appel de la page

Page web aspx

dll

CLR : Instance de la page

+ Etat de tous les objets de la page :

CONTEXTE ou viewstate (runat=« server »)

+ méthodes de traitement associées + identifiants liant l’objet à la session en cours

Page HTML + Identifiants du contexte

(2) Transmission de l’état de la page (contexte) + actions à réaliser

(39)

.Net : Accès aux données

(40)

L’accès aux données (1/2)

L’accès aux données (1/2)

application

OLEDB ODBC

Drivers Natifs

(41)

L’accès aux données (2/2)

L’accès aux données (2/2)

Datareader

DataAdapter

DataSet

DataView

(42)

DataReader

2 approches d’accès aux données

(43)
(44)

ASP.NET

ASP.NET

V2 (1/2)

V2 (1/2)

MasterPage

MasterPage

/ Objet header /

/ Objet header /

PlaceHolders

PlaceHolders

Contrôle Identification

Contrôle Identification

Controlstate

Controlstate

en plus du

en plus du

ViewState

ViewState

CrossSitePosting

CrossSitePosting

(45)

ASP.NET

ASP.NET

V2 (2/2)

V2 (2/2)

Thèmes graphiques via XML

Thèmes graphiques via XML

WebParts

WebParts

Précompilation

Précompilation

des pages

des pages

http://SERVER/APPLICATIONNAME/precompile.axd

http://SERVER/APPLICATIONNAME/precompile.axd

Statistiques intégrées

Statistiques intégrées

<

<

siteCountersenabled

siteCountersenabled

="

="

true

true

"

"

rowsPerDay

rowsPerDay

="1">

="1">

contrôles ASP.NET XHTML

contrôles ASP.NET XHTML

compliant

compliant

!! On peut

!! On peut

définir le schéma pour chaque page

définir le schéma pour chaque page

respect des

(46)

ASP.NET

ASP.NET

V3

V3

Listview

Listview

Datapager

Datapager

Integration

Integration

AJAX

AJAX

Moteur de

Moteur de

workflow

workflow

(47)

Partie 2 : J2EE VS .NET

Partie 2 : J2EE VS .NET

Comparaison, similitudes

Comparaison, similitudes

Points forts

Points forts

Avantages et Inconvénients

Avantages et Inconvénients

(48)
(49)
(50)
(51)
(52)
(53)
(54)

Processus du serveur

Processus du serveur

d’applications / exemple

(55)
(56)

Design Patterns & MVC

Design Patterns & MVC

JSP

Vue 1

JSP

Vue 2

ActionServlet

(Contrôleur)

Action 1 Action 3 Action 2

1.

2.

3.

4.

5.

Modèles ( Contexte d’objets persistants EJB) mapping

(57)

Processus du serveur

Processus du serveur

d’applications JAVA

(58)
(59)
(60)
(61)

Processus du serveur

Processus du serveur

d’applications .NET

(62)
(63)
(64)
(65)

500 € / user . 20 à 30000€ /proc Gratuit avec l’O.S.

(66)

Premier comparatif

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

(67)

.NET et Open Source ?

.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

(68)

Les

Les

Runtime

Runtime

.NET Libres

.NET Libres

Applications 15 langages C# Mono Framework CLR MONO Plateformes UNIX, Windows, MacOSX, Linux… Applications C#/VB.NET… .NET Framework CLR Plateformes Windows Applications JAVA Java SDK JRE Plateformes UNIX, Windows, MacOSX, Linux .NET

.NET MONO (2.6.1) MONO (2.6.1) novellnovell JAVA JAVA Applications C# .GNU Framework CLR .GNU Plateformes UNIX, Windows, MacOSX, Linux… .GNU (0.8) .GNU (0.8)

(69)
(70)

Liens utiles

Liens utiles

Références

Documents relatifs

En conséquence, les prix du Brent devraient se maintenir autour de 115 dollars au premier semestre 2013, puis baisser au deuxième semestre, pour atteindre 105 dollars en fin

La formalisation d’un langage ou d’un modèle est un travail pouvant deve nir assez long et pointu. On ne présentera donc que les éléments essentiels qui toucheront à

As cultivares de abacaxi mais plantadas no Espírito Santo são a Pérola e a Smooth Cayenne, sendo as áreas de Tabuleiros Costeiros predominante para seu cultivo (GOMES

Plutôt, comme le démontre l’auteur, la carte (à l’instar d’autres documents bureaucratiques de la CDA), constitue l’un des artefacts pris dans les usages administratifs

Pour les individus dévoués, la satisfaction du désir d’aider l’autre (Lallier 2007) endiguerait les frustrations ressenties au sujet de ses malheurs propres, désamorçant

Le cas haïtien est devenu l’exemple paradigmatique d’une intervention humanitaire majeure mais qui n’a pas été aussi efficiente qu’elle aurait pu l’être : depuis,

This is why this research is based on the sayings of prophet – pbuh -, Gynecologists, and Jurists' point of view as well as their opinions on blood categories that women go

Il s’agira d’une documentation scientifique de première main (thèses, mémoires universitaires, etc.) ainsi que des ouvrages sélectionnés dans leurs dimensions