I. 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) :
- VS2008 SP1 ;
- Silverlight 3 RTM ;
- .NET RIA Services ;
- Windows Azure Tools for Microsoft Visual Studio July 2009 CTP ;
- Un compte Windows Azure ;
- Un compte SQL Azure.
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.
II. Mise en place de SQL Azure▲
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.
Ensuite, vous obtenez une chaîne de connexion.
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.
III. 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.
Sélectionnez « Hosted Service ».
IV. Mise en place du projet▲
Démarrez Visual Studio en tant qu'administrateur. Le support du «nuage local » nécessite ce niveau de droits.
Ensuite, créez un nouveau Service Cloud.
Dans cet exemple, tout ce dont nous avons besoin est d'un Web Role.
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.
V. 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é.
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.
<
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 :
On écrit un peu de code dedans :
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 :
Puis l'associer au projet Myapp.Web, et activer RIA Services.
Maintenant vous pouvez simplement réutiliser le client Silverlight que nous avons construit auparavant.
Vous obtenez le tri, la pagination, le filtrage, l'édition validés, sans aucun code de plomberie et hébergés dans les nuages !
VI. 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.
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.
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.
Sélectionnez Deploy.
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.
Puis cliquez sur Exécuter pour démarrer l'instance.
Le site web va afficher « initialisation … » pendant quelques minutes.
Enfin, quand il affiche « started », vous pouvez démarrer l'application en cliquant sur le lien fourni :
Enfin, échangez les deux environnements, et vous êtes en production !
Et c'est tout!
VII. 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.
VIII. 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.