mardi 20 octobre 2009

Exemple d'application d'entreprises pour Silverlight 3 et .NET RIA Services. - Partie 4 : SEO, exportation vers Excel et Hors du navigateur

Partie 4 : SEO, exportation vers Excel et Hors du navigateur

Cet exercice requière (tout est gratuit et le restera) :

1- VS2008 SP1 (qui comprend Sql Express 2008)
2 - Silverlight 3.0
3 - .NET RIA Services July’09 Preview (pour cet exercice, ceci est optionnel)

L'original en anglais est diponible ici: Part 4: SEO, Export to Excel and Out of Browser
L'application en ligne est disponible ici: http://www.hanselman.com/abrams/#/Home


Vous pouvez télécharger la solution complète ici: MonApplication.zip

Aujourd’hui, nous allons parles des différentes vue et de la logique de notre application.

Différentes vues

Maintenant, intéressons-nous à mettre des vues différentes à notre application. L’un des éléments clef pour la réalisation de différentes vues sont les liens profonds. Voyons comment ajouter cela à notre application.




Tout d’abord, nous devons ajouter un Textbox afin d’afficher le lien profond pour chacun de nos super employés. Pour ce faire, ajouter le code ci-dessous juste après la balise de fermeture du DataForm.




Ajoutons l’évènement SelectionChanged à notre Datagrid.




Et connectons le en code behind…







Maintenant, nous devons rendre la page suffisamment intelligente afin de connaitre ce lien profond :




Maintenant, lancez l’application, faites un copier/coller de cette adresse dans un navigateur qui affichera exactement cet enregistrement.




Ok, maintenant que nous disposons d’un lien profond, que pouvons-nous faire avec ? Et bien, nous pouvons envoyer ce lien par mail, par messagerie instantanée, l’inclure dans un blog, etc.

Mais qu’en est-il si nous voulons que des moteurs de recherches soient capables de trouver les enregistrements dans notre site ? Il s’avère qu’il y a pour cela un format standard appelé sitemap (http://sitemap.org/). Vous pouvez voir un exemple concret ici : http://amazon.com/robots.txt.

Pour ajouter cela à notre application, faisons un clic droit sur notre projet web, Add, New Item, Search Sitemap.




Ceci ajoute robots.txt et sitemap.aspx à notre projet. Avant de continuer plus avant, nous allons utiliser la page Default.aspx comme page de démarrage. Pour ce faire, nous allons faire un copier/coller de l’ensemble du contenu du fichier BusinessApplicationTestPage.aspx dans Default.aspx. Une fois cela fait, vérifiez que les deux premières lignes de ce dernier soient bien comme suit :




Puis, allez dans Project, MonApplication.web Properties… Assurez-vous d’avoir MonApplication.web en surbrillance.




Enfin, allez dans l’onglet Web et effacez le champ Start Action – Specific Page




Ceci dans le but que l’application utilise plutôt la page Default.aspx plutôt que BusinessApplicationTestPage.aspx comme page de démarrage.
Enfin, modifions la méthode dataGrid1_SelectionChanged afin de ne plus se référer à BusinessApplicationTestPage.aspx comme suit :




Ceci étant fait, voyons comment personnaliser le fichier sitemap.aspx. Notez que nous utilisons un nouveau contrôle ASP.NET datasource qui est conçu pour fonctionner avec la classe DomainService. Ceci nous donne accès au serveur pour la même logique d’application d’ASP.NET et Silverlight

Rendons nous dans le fichier Sitemap.aspx afin d’ajouter le code suivant :




Une dernière chose à faire, consiste a permettre au coté serveur d’accéder à l’ID de l’employee. Dans Default.aspx.cs, ajoutez :



Maintenant, en faisant un clic droit sur Sitemap.aspx, faites View in browser.




Et voilà le résultat :




Changez l’adresse par Robots.txt et vous devriez obtenir ceci :




Si vous faites un copier/coller d’une adresse du sitemap, vous pouvez constater que cela fonctionne parfaitement.




Ok, ceci fonctionne parfaitement. Maintenant, les moteurs de recherches peuvent trouver n’importe quelle entité dans notre application. Mais que les moteurs de recherches vont vraiment y trouver comme cela? Les moteurs de recherches sont performant pour analyser du html, mais les contenus dynamiques tels que ceux que nous avons là ou les sites Ajax sont plus difficiles à traiter pour eux. L’art de ce type de référencement est appelé Optimisation pour les moteurs de recherche (SEO, Search Engine Optimization en anglais, nous emploierons ici le terme SEO).

Rendons-nous dans notre page Default.aspx. Etant donné que nous avons modelé notre logique d’application dans une classe DomainService, il est aisé d’ajouter une vue en Html standard. Ajoutons juste le code suivant dans la balise object dans Default.aspx.




Nous avons également besoin d’une méthode de domaine GetSuperEmployee afin de prendre en charge ce code. Retournons donc dans notre service SuperEmployeeDomainService.cs et ajoutons :



Maintenant, nous devons désactiver Silverlight dans notre navigateur parce que les moteurs de recherche ne disposent pas de ce plugin.




Et effectuons un rafraichissement le page sur un lien profond…




Plutôt sympa, non ? Maintenant les moteurs de recherches (avec ou sans Silverlight) peuvent accéder aux données.

Mais, cela fonctionne-t-il vraiment ? Essayez les recherches suivantes :

Super Employé Alfred (Yahoo)

Super Employée Alfred (Google)

Bien, ceci est une vue serveur, essayons maintenant une autre vue coté client… Nous allons exporter ces données dans Excel !

Pour ce faire, nous allons ajouter le fichier excelTemplate.txt à la racine du projet coté client. (Vous pouvez télécharger ce fichier ici: http://pagesperso-orange.fr/aristidi/files/excelTemplate.txt)

Puis nous allons ajouter un bouton dans notre fichier Home.xaml pour exporter vers Excel :




Enfin, nous allons écrire le fichier Excel… Notez que tout est en accès sécurisé, l’utilisateur doit sélectionner la destination du fichier. Le développeur ne pourra plus avoir accès à l’emplacement du fichier. Maintenant, dans notre fichier Home.xaml.cs, ajoutons la méthode suivante :




Enfin, exécutons de nouveau l’application (après avoir pensé à réactiver Silverlight dans notre navigateur).







Ceci créer un fichier Excel là où nous l’avons choisi.




Ouvrons-le et faisons un peu de formatage.




Et maintenant, la vue finale… en dehors du navigateur

Sélectionnons les propriétés sur l’application cliente :




Editons les paramètres :




Lançons l’application. Effectuons un clic droit et sélectionnons « Installer Application… ».








Ajoutons un lien sur le bureau…




Et il nous reste plus qu’a lancer l’application !


Aucun commentaire:

Enregistrer un commentaire