1. Introduction

Je continue à mettre à jour ma démo du Mix 09 sur Silverlight 3 + RIA Services avec encore plus de trucs fun. Azure représente une tendance générale dans l'industrie vers un modèle Cloud Computing.

Autant j'aime la phase de développement de projets, autant le côté opérationnel est souvent la partie du coût la plus importante.

Avec des économies d'échelle, le Cloud Computing a le potentiel de réduire considérablement ces coûts.

Dans cet exemple, je me suis servi de Windows Azure afin d'héberger la partie Web de l'application et de SQL Azure pour héberger les données. Ce sont réellement des décisions indépendantes. Vous pouvez décider d'utiliser l'un et pas l'autre.

Vous pouvez voir la série complète ici.

 Cette démo nécessite les éléments suivants (tout est 100 % gratuit) :


Consultez le site en ligne (bien sûr, hébergé sur Azure). De plus, téléchargez les fichiers démo complète.

Donc dans cet exemple, je vais déplacer les données depuis un SQL Server local vers SQL Azure, et déplacer le code de l'application depuis mon propre serveur Web vers Windows Azure. Le principal client reste Silverlight.

2. Mise en place de SQL Azure

Image non disponible

Une fois que vous avez un compte SQL Azure, vous pouvez aller à http://sql.azure.com et ajouter une nouvelle base de données, en cliquant simplement sur Add New Database.

Image non disponible

Ensuite, vous obtenez une chaîne de connexion.

Image non disponible

Ensuite, vous devez remplir la base de données. Si vous avez une base de données existante, la meilleure façon de le faire est probablement d'utiliser SQL Server Management Studio pour générer un script SQL, puis d'utiliser ADO.NET pour exécuter ce script sur cette base de données SQL Azure.

Mais sans raison valable, j'ai écrit un peu de code ADO.NET très simple pour lire les données de ma base de données locale et l'insérer dans la base SQL Azure. Vous pouvez le trouver dans la page Default.aspx.cs si vous voulez y jeter un œil.

3. Mise en place de Windows Azure

Voilà qui établit notre base de données dans le nuage, maintenant nous allons créer un espace d'hébergement pour que notre application web puisse fonctionner. Une fois que vous avez un compte Windows Azure, vous pouvez aller configurer votre service. Allez pour cela sur http://windows.azure.com, et ajoutez un nouveau service.

Image non disponible

Sélectionnez « Hosted Service ».

Image non disponible

4. Mise en place du projet

Démarrez Visual Studio en tant qu'administrateur. Le support du «nuage local » nécessite ce niveau de droits.

Image non disponible

Ensuite, créez un nouveau Service Cloud.

Image non disponible

Dans cet exemple, tout ce dont nous avons besoin est d'un Web Role.

Image non disponible

J'ai renommé "WebRole1" en MyApp.Web, pour rester cohérent avec les exemples précédents.

Appuyer sur F5 démarre le «nuage local» et y exécute l'application.

Image non disponible

5. Mise en place du service

Maintenant, nous allons commencer à construire l'application. Nous allons d'abord construire la couche de données. J'ai déjà un modèle Linq2SQL d'un précèdent, que j'ai simplement copié.

J'ai juste modifié quelques-uns des types de données pour correspondre à ce que j'ai chargé dans Azure. Entity Framework aurait aussi bien pu être utilisé.

Image non disponible

Puis j'ai changé la chaîne de connexion dans le fichier Web.config pour correspondre aux chaînes de connexion de la base de données SQL Azure.

 
Sélectionnez
<add name="NORTHWNDConnectionString" connectionString="Server=tcp:jyfmd9f7te.ctp.database.windows.net;Database=northwind;User ID=[add userid];Password=[add password];Trusted_Connection=False;"
 providerName="System.Data.SqlClient" />

Maintenant, tout se passe comme dans le tutoriel d'origine.

Création du service :

Image non disponible

On écrit un peu de code dedans :

 
Sélectionnez
public IQueryable<SuperEmployee> GetSuperEmployees()
{
   return this.Context.SuperEmployees
              .Where(emp => Convert.ToInt32(emp.Issues) > 100)
              .OrderBy(emp => emp.EmployeeID);
}

public void InsertSuperEmployee(SuperEmployee superEmployee)
{
   this.Context.SuperEmployees.InsertOnSubmit(superEmployee);
} 

public void UpdateSuperEmployee(SuperEmployee currentSuperEmployee)
{
   this.Context.SuperEmployees.Attach(currentSuperEmployee, this.ChangeSet.GetOriginal(currentSuperEmployee));
}

Maintenant, nous allons ajouter un projet Silverlight :

Image non disponible

Puis l'associer au projet Myapp.Web, et activer RIA Services.

Image non disponible

Maintenant vous pouvez simplement réutiliser le client Silverlight que nous avons construit auparavant.

Image non disponible

Vous obtenez le tri, la pagination, le filtrage, l'édition validés, sans aucun code de plomberie et hébergés dans les nuages !

6. Déploiement sur le Cloud

Maintenant que nous avons terminé notre application, nous allons la déployer sur le nuage.

Nous devons d'abord créer le package de déploiement. Pour ce faire, faites un clic droit sur le projet MyApp.CloudService et sélectionnez Publier.

Image non disponible

Le répertoire de publication sera ouvert dans l'explorateur avec votre package de déploiement d'application et un fichier de paramètres à part.

Image non disponible

Le package de déploiement est juste un fichier zip qui contient le xap silverlight ainsi que le code et les ressources nécessaires pour l'exécuter sur le serveur. Le fichier de paramètres contient des informations nécessaires à Azure, comme le nombre de serveurs frontaux que vous voulez créer, etc.

Maintenant, retournez à http://windows.azure.com et sélectionnez le projet que nous avons créé plus tôt.

Il y a deux environnements pour déployer votre application : Staging et Production.

L'idée est que vous pouvez faire des tests dans l'environnement réel avant de mettre votre site en accès public.

Sélectionnez Upload pour ajouter votre projet à l'environnement Staging.

Image non disponible

Sélectionnez Deploy.

Image non disponible

Puis sélectionnez le package et le fichier de paramètres, et donnez un label de déploiement pour nous aider à garder la trace des mouvements entre staging et production.

Image non disponible

Puis cliquez sur Exécuter pour démarrer l'instance.

Le site web va afficher "initialisation ..." pendant quelques minutes.

Image non disponible

Enfin, quand il affiche "started", vous pouvez démarrer l'application en cliquant sur le lien fourni :

Image non disponible

Enfin, échangez les deux environnements, et vous êtes en production !

Image non disponible

Et c'est tout!

Image non disponible
Image non disponible

7. Conclusion

Dans cette section, nous avons parlé de la façon de déployer votre application RIA Services dans le nuage en utilisant SQL Azure pour les données et Windows Azure pour la couche web. Vous pouvez mélanger et assortir ces éléments comme vous voulez.

Aussi, consultez l'exemple de Nikhil sur Azure, il utilise Windows Azure Table Storage, ce qui est très cool aussi.

Cet article conclut la partie sur l'utilisation de RIA Services avec Azure. La vingt-quatrième partie de cette série d'articles sera consacrée à l'utilisation des procédures stockées pour récupérer les données.

8. Remerciements

Je tiens ici à remercier Brad Abrams pour son aimable autorisation de traduire l'article.
Je remercie également ClaudeLELOUP pour sa relecture et ses propositions.