Dans ce poste, nous expliquerons le développement d'une application AppFabric qui contient un frontal web et une base de données. Avant de développer une application, nous allons nous authentifier dans le portail AppFabric LABS à https://portal.appfabriclabs.com à l'aide de notre Live Id. Puisqu'il s'agit d'un CTP limité, seuls les utilisateurs authentifiés auront accès au service, mais tous les utilisateurs peuvent essayerle  SDK et les outils VS sur leurs machines locales. Pour demander l'accès à la CTP AppFabric de juin , suivez les instructions dans ce billet de blog.

Après avoir installé le SDK, nous lançons Visual studio et créons une nouvelle Application  AppFabric.


La vue de définition d'application (App.cs) est la vue par défaut qui s'ouvre lorsqu'un nouveau projet est créé. Ce point de vue permet d'ajouter et de composer entre les divers services qui constituent une application. Nous pouvons ajouter divers services qui composent l'application ici. L'application se compose d'un frontal web tier pour jouer des vidéos et accèder à la base de données de backend pour obtenir la liste des vidéos. Pour ajouter le projet web ouvrez l'affichage App.cs et cliquez sur Add New Service - > ASP.NET et nommez-le PlayerWeb. Nous avons également joint la solution terminée pour cette application avec ce post.


De même, nous allons ajouter un nouveau service de base de données ajouter un nouveau Service - > SQL azur avec le nom : VideoDb.

Par défaut lorsque la base de données est ajoutée elle pointe vers une base de données locale de SQL Express. Pour développer l'application localement nous créer et utiliser une base de données SQL Express. Lorsque l'application est déployée dans le nuage de la base de données pointera vers une base de données SQL d'Azur. Un suivi post couvrant l'Application Manager en détail montrera comment modifier la base de données au point une base de données SQL d'azur au lieu d'une base de données locale.

Lorsque nous ajoutons la base de données, le nom de base de données par défaut dans le panneau Propriétés est "base de données". Ceci devra être modifié à la base de données utilisé par l'application de AppFabricPlayer. Pour cette application nous créer une base de données appelé AppFabricPlayer dans SQL Express et ajoutez une table pour stocker les vidéos pour être joué. La table dans la base de données est créée et remplie en utilisant le script suivant :

CREATE TABLE [dbo].[AppFabricVideos] (
[Id] [int] IDENTITY(1,1) NOT NULL,
     [Title] [nvarchar](256) NOT NULL,
     [Description] [nvarchar](2048) NOT NULL,
     [Uri] [nvarchar](1024) NOT NULL,
     CONSTRAINT [PK_AppFabricVideos] PRIMARY KEY ([Id] ASC)
)

INSERT INTO [dbo].[AppFabricVideos]
            ([Title]
            ,[Description]
            ,[Uri])
      VALUES
            ('ServiceBus HTTP / REST API'
            , 'Recently the ServiceBus team released some great new support for Queues and Topics, allowing you to access queues via a client library as well as HTTP. In this episode, I am joined by Will Perry, a tester on the ServiceBus team, who shows us how you can use the HTTP API with ServiceBus queues.Ron…'
            , 'http://media.ch9.ms/ch9/8f5a/e7dea0d6-f591-412b-8e75-9f0c012b8f5a/AppFabricServiceBusHTTP_low_ch9.mp4')
           
INSERT INTO [dbo].[AppFabricVideos]
([Title]
,[Description]
,[Uri])
     VALUES
     ('Announcing the Windows Azure AppFabric June CTP'
     , 'Today we are exciting to announce the release of the Windows Azure AppFabric June CTP which includes capabilities that make it easy for developers to build, deploy, manage and monitor multi-tier applications across web, business logic and database tiers as a single logical entity on the Windows Azure Platform.'
     , 'http://media.ch9.ms/ch9/9a4b/43794581-3dba-410a-bb0c-9f03017b9a4b/AppFabricTVCTPLaunch_low_ch9.mp4')

Go

Le PPA faire référence à la base de données correct, que nous allons modifier la propriété de nom de la base de données pour la définition de VideoDb à la base de données, que nous avons créé dans SQL Express - AppFabricPlayer.

Maintenant que nous avons ajouté l'ASP.NET et base de données des services à la demande, nous pouvons composer du web à la couche données. Application de AppFabric permet de spécifier les relations entre les divers services au sein de l'app. Les relations permettent de définir les dépendances entre les services au sein de l'application. Le modèle de composition résultant est utilisé au moment de la gestion de déployer, de configurer, de contrôler, de surveiller, de dépanner et de l'application à l'échelle.

Pour composer entre l'ASP.Voient le NET et la base de données, dans la définition d'application (App.cs), nous allons ajouter une référence de service entre PlayerWeb et VideoDB. Nous sera le App.CS et cliquez sur App.CS - > PlayerWeb - > ajouter une référence de Service puis en sélectionnant la terminaison VideoDb .

Nous renommera le nom de référence de Import1 à VideoDbImport.

L'application est maintenant terminée structurellement. Nous pouvons voir le diagramme d'application par clic droit sur App.cs dans l'Explorateur de solutions et en sélectionnant Affichage diagramme.

Maintenant, nous allons ajouter la logique de l'application. Nous créer la classe modèle appelée Video.cs dans le projet web et ajoutez le code suivant dans la classe.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;

namespace PlayerWeb
{
     public class Video
     {
         public string Title { get; set; }
         public string Description { get; set; }
         public string VideoSourceURI { get; set; }
         public int Id { get; set; }

        public Video()
         {
         }

        public IEnumerable<Video> GetVideos()
         {
             List<Video> videos = new List<Video>();

            try
             {
                 using (SqlConnection connection = ServiceReferences.CreateVideoDbImport())
                 {
                     connection.Open();
                     using (SqlCommand command = connection.CreateCommand())
                     {
                         command.CommandText = "select * from AppFabricVideos";
                         using (SqlDataReader reader = command.ExecuteReader())
                         {
                             while (reader.Read())
                             {
                                 videos.Add(new Video()
                                 {
                                     Id = (int)reader["Id"],
                                     Title = reader["Title"] as string,
                                     Description = reader["Description"] as string,
                                     VideoSourceURI = reader["Uri"] as string
                                 });
                             }
                         }
                     }

                }
             }
             catch (SqlException ex)
             {
                 System.Diagnostics.Trace.TraceError("Error getting videos from database: {0}", ex);
             }

            return videos;
         }
     }
}

Le code pour obtenir SqlConnection est une chose qui est différente ici :
Connexion SqlConnection = ServiceReferences.CreateVideoDbImport() ;
Auparavant, lorsque nous avons ajouté une référence de service entre ASP.NET et base de données, une méthode d'assistance est créée pour accéder à la base de données référencée. Dans notre code, cela permet de résoudre facilement la SqlConnection. Sous les couvertures, la méthode d'assistance a code qui lit la chaîne de connexion et le nom de base de données de définition d'application. Plus tard, lorsque l'application est configurée dans le portail de gestion, nous allons voir comment cette information peut être modifiée par l'administrateur de l'application.

Pour compléter la demande, nous allons modifier le code de default.aspx, default.aspx.cs et sites.css (solution complète avec ces fichiers peut être téléchargée ici (télécharger AppFabricPlayer.zip)).
Nous s'exécutera l'application dans notre environnement local dans Visual Studio à l'aide de débogage - > démarrer sans le débogage (Ctrl-F5). La fenêtre de sortie dans Visual Studio montre lorsque l'application est prête à être testé dans l'émulateur local.

L'adresse publiée ci-dessus est l'adresse de l'application web. Aussi, nous obtenons un pointeur vers l'emplacement des fichiers journaux de demande. Si l'ASP.Composant NET au sein de l'application a été émettant des traces, les traces seront dans un fichier à cet endroit. Un autre billet si nous voulons déboguer cette application dans le débogueur, nous pouvons nous attacher le débogueur au processus w3wp.exe et parcourir le code.

Maintenant que nous avons vu l'application s'exécutant localement, nous sommes prêts à le publier pour l'exécution dans le nuage. Pour déployer vers l'azur via AppFabric Application Manager, nous pouvons commencer par la publication de la demande de Visual Studio. Cela peut être fait en cliquant sur le AppFabricPlayer dans l'Explorateur de solutions et en sélectionnant les publier. Nous devrons entrer les informations d'identification nécessaires de publier à l'espace de noms AppFabric Application Manager, dont la clé de la gestion qui nous permet d'accéder d'espace de noms AppFabric Application Manager. La clé de gestion nécessaire pour publier une application peut être obtenue de https://portal.appfabricabs.com, en cliquant sur Services de AppFabric et de sélectionner les Applications. Les propriétés sur la grille de propriétés du côté main droite, nous pouvons obtenir la clé de la gestion, comme indiqué dans le volet Propriétés inférieur.

Alternativement, la trousse de demande peut être importée via le portail AppFabric Application Manager. Cela peut être fait en navigant vers et en accédant à https://yournamespacehere.appmanager.appfabriclabs.com. Ici, nous pouvons créer une nouvelle demande (dans le cadre de tâches communes) et sélectionnez le paquet à importer.

Nous avons montré comment développer une Application simple de AppFabric et publier d'Azur ; dans un billet de blog suivi, nous montrerons comment nous allons gérer cette demande à l'aide du gestionnaire d'Application AppFabric.

La solution de AppFabricPlayer peut être téléchargée depuis ici (AppFabricPlayer.zip)