ASP.net

 

Qu'est ce que ASP.net ?

ASP.net est tout simplement la version .NET de l'ASP. Auparavant les pages ASP étaient, à l'instar de PHP, des pages HTML comportant du code logique écrit dans une version simplifiée de Visual Basic. Désormais les pages ASPx (.net) sont écrites de manière complétement différente puisqu'elles s'appuient sur le Framework .NET et la CLR.

Tous les langages supportés par .NET peuvent servir à l'écriture de pages ASPx. On distingue 3 types de pages :

- Les classiques ".aspx"

- Les web services ".asmx"

- Les pagelets (morceaux de pages APS.net réutilisable) ".aspc"

Les anciennes pages ASP peuvent continuer d'exister et cohabiter avec les pages ASPX, mais elles ne bénéficient pas des avancées de .NET. Outre les langages disponibles, la plus grosse différence vient du fait que les pages ASP.net sont compilées et sont donc sous contrôle de la CLR (surveillance de code, gestion des ressources, ...) La compilation a lieu lors de la première requête vers la page, d'abord en code MSIL, puis en code machine, à l'instar du J2EE. Une fois compilées, elles sont mises en cache dans la mémoire du serveur .NET. ce qui garantit de très bonnes performances.

Le serveur Web IIS est toujours présent mais abandonne le modèle multi-threadé performant mais fragile au profit d’un modèle multi-processus, ce qui n’est pas sans rappeler le modèle d’Apache.


l'architecture .NET avec APS.net

Les pages ASPx bénéficient également de toutes les possibilités offertes par les classes de base du framework .NET, et aussi de la possibilité d'être déboggée (exécution pas à pas), de faire des traces, de gérer les exceptions etc ...

Caractéristiques et fonctionnement

Les pages ASPx peuvent être divisées en deux : d'une part le fichier qui contient le code HTML (présentation) et d'autre part un fichier qui contient le code logique écrit dans le langage de son choix (.aspx.cs pour C#, .aspx.vb pour VB.net, ...). Ce code logique peut faire appel aussi bien à des classes de base qu'à n'importe quelle classe développée avec la plate-forme .NET. Un site Web écrit en ASPx peut donc être considéré comme une véritable application.

L'autre nouveauté est l'intégration des contrôles côté serveur (capable de déclencher des événements sur le serveur). On peut ainsi bénéficier de composants comme les TreeView, ListBox, Calendar, DataGrid etc... Ces composants étaient auparavant réservés aux applications "classiques" développées en VB ou VC++. Le code HMTL pour afficher ces contrôles dans le navigateur du client est généré automatiquement par le framework en fonction du navigateur. Il assure ainsi la compatibilité et le fonctionnement de ces contrôles avec tous les navigateurs compatible HTML 3.2 (Internet Explorer 5 et + / DHTML, Netscape Navigator / Javascript, ...).

Ces contrôles sont intégrés dans ce qu'on appelle des Web Forms et il en existe 45. Ils sont déclarés soit sous forme de balises HMTL, soit sous la forme de balises XML avec l'attribut runat=server.

Exemples :

<input type="text" id="text2" runat="server" />
<asp:calendar id="monCal" runat="server" />

Les pages ASPx bénéficient également d'ADO.net : la couche de liaison de données du Framework. Cela lui permet d'accéder aux données de manière trés simple et trés rapide. Il est possible de lire et mettre à jour une base de données mais aussi d'en charger une partie en mémoire et d'en faire des mises à jour en direct sur la page. Les données rapatriées sont toujours au format XML et peuvent être lues soit en XML soit dans un recordset.

Les pages ASPx sont considérées comme des objets et à ce titre elles ont des méthodes (validate(), Load(), render()) et des propriétés ( ID, isPostBack, errorpage)


Execution d'une page ASP.net


La mise en cache des pages compilées donne de très bonnes performances. Une étude montre qu'une application Web .NET peut se révéler jusqu'à plus de 10 fois plus rapide qu'une application ASP 3.0. et de plus supportant très bien l'augmentation de charge (nombre de connexions).

Exemples de pages ASPx

Il existe 2 manières de coder des pages ASPx. La première où tout le code est dans le même fichier avec des balises spécifiques pour signaler la partie logique. La seconde ou les fichiers de présentation et de code logique sont séparés. Bien que la 2ème méthode soit la plus structurée et la plus efficace je vais vous présenter la première pour des raisons pratiques de présentation.

Exemple : Création d'un formulaire et contrôle de sa validation (Validator).

Avec un page ASP classique, il faut faire un formulaire HMTL classique et le valider. Une fois validé, on peut alors vérifier les données saisies et rediriger l'utilisateur vers une autre page ou lui indiquer les erreurs de saisie. Les contrôles serveur de ASP.net vont permettre de vérifier la saisie d'une page sans la quitter.

Voici le formulaire :


Formulaire

Validation avec des mauvaises données, pas de rechargement de la page

Pour arriver à ce résultat, nul besoin d'écrire du code spécifique au contrôle de chaque champs. Voici le code écrit pour les 2 premiers champs à contrôler :

<asp:RequiredFieldValidator id="emailReqVal"
ControlToValidate="email"
ErrorMessage="Adresse électronique. "
Display="Dynamic"
Font-Name="Verdana" Font-Size="12"
runat=server>
</asp:RequiredFieldValidator>

<asp:RegularExpressionValidator id="emailRegexVal"
ControlToValidate="email"
ErrorMessage="Adresse électronique. "
Display="Static"
ValidationExpression="^[\w-]+@[\w-]+\.(com|net|org|edu|mil)$"
Font-Name="Arial" Font-Size="11"
runat=server>
Adresse électronique non valide. Elle doit être au format email@hôte.domaine.
</asp:RegularExpressionValidator>

Pour voir l'exemple complet cliquez ICI, les sources ICI.

De plus si on utilise Visual studio .NET ou ASP Web Matrix, la création se fera ENTIEREMENT en WYSIWYG : la création du formulaire prendre une dizaine de minutes malgré tous ces contrôles.

Pour plus d'exemples, je vous conseille l'excellent tutoriel en français du site GotDotNet ! On y trouve de très bons exemples en C#, VB et Jscript.
Pour essayer les exemples chez soi, téléchargez le logiciel gratuit ASP Web Matrix ICI. Si vous n'avez pas le framework il vous proposera de l'installer (20Mo).

ASP.net et J2EE

Comme pour C# / .NET et Java, on peut faire le rapprochement de ASP.net et J2EE. Mais à l'instar de Java, J2EE doit utiliser une couche supplémentaire pour pouvoir utiliser des composants externes, RMI dans le cas de J2EE, ce qui n'est pas le cas de .NET.

Je ne connais pas assez pour donner mon opinion sur J2EE, je me contenterai donc de vous donner une liste d'articles sur ce sujet :

Vous pouvez lire une interview d'un responsable de Microsoft sur le site Dotnet-fr.
Le site GotDotNet propose de comparer les performances.
Une présentation qui donne les différences entre .NET et J2EE est disponible en téléchargement. (PowerPoint, 1.7Mo)

 

 

 




 

 

En savoir plus ...
 

Tutorial :

Retrouvez le tutorial .NET de microsoft en francais sur le site GotDotNet
 


 

 

Présentation
 

Téléchargement :

Vous pouvez télécharger la présentation Powerpoint ICI.
 


 

 

Actualités
 

ASP.net Web Matrix:

Ce logiciel libre de développement ASP.net est en ligne.