1 sur 1 ont trouvé cela utile - Évaluez ce sujet

Étape 1 : Introduction et conditions préalables

Les files d'attente proposent une remise de messages de type Premier entré, premier sorti (FIFO) à un ou plusieurs consommateurs concurrents. Autrement dit, les messages sont généralement reçus et traités par les récepteurs dans l'ordre temporel dans lequel ils ont été empilés, et chaque message est reçu et traité par un seul consommateur de messages. Un grand avantage de l'utilisation de files d'attente est de réaliser le « découplage temporel » des composants de l'application : en d'autres termes, les producteurs et les consommateurs n'ont pas besoin d'envoyer et de recevoir des messages en même temps, car les messages sont stockés durablement dans la file d'attente. Un avantage associé est le « nivellement de charge », qui permet aux producteurs et aux consommateurs d'envoyer et de recevoir des messages à différents débits.

Voici quelques opérations d'administration et préalables que vous devez suivre avant le début de ce didacticiel. La première étape consiste à créer un espace de noms de service Windows Azure et à obtenir une clé de secret partagé. Un espace de noms de service fournit une limite d'application pour chaque application exposée via le Service Bus. Une clé de secret partagé est générée automatiquement par le système lorsqu'un espace de noms de service est créé. L'association de l'espace de noms de service et de la clé de secret partagé fournit des informations d'identification pour que Service Bus authentifie l'accès à une application.

Pour créer un espace de noms de service et obtenir une clé de secret partagé

  1. Pour créer un espace de noms de service, suivez les étapes décrites dans la rubrique Création ou modification d'un espace de noms Service Bus Service.

  2. Dans la fenêtre principale du Portail de gestion Windows Azure, cliquez sur le nom de l'espace de noms de service que vous avez créé à l'étape précédente.

  3. Dans le bas de la fenêtre du Portail, cliquez sur Clé d’accès.

  4. Dans la fenêtre Connexion à votre espace de noms, notez l’émetteur et la clé par défaut, ou copiez-les dans le Presse-papiers. Vous utiliserez cette clé de secret partagé ultérieurement dans ce didacticiel.

L'étape suivante consiste à créer un projet Visual Studio 2012 et à écrire deux fonctions d'assistance qui chargent une liste de messages délimitée par des virgules dans un objet (BrokeredMessage) .NET Framework List fortement typé.

Pour créer un projet Visual Studio 2012

  1. Ouvrez Visual Studio 2012 en tant qu'administrateur en cliquant avec le bouton droit sur le programme dans le menu Démarrer et en sélectionnant Exécuter en tant qu'administrateur.

  2. Créez un nouveau projet d'application console. Cliquez sur le menu Fichier et sélectionnez Nouveau, puis cliquez sur Projet. Dans la boîte de dialogue Nouveau projet, cliquez sur Visual C# (si Visual C# n'apparaît pas, regardez dans Autres langages), cliquez sur le modèle Application console et nommez-le QueueSample. Utilisez l'Emplacement par défaut. Cliquez sur OK pour créer le projet.

  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet (dans cet exemple, QueueSample), puis cliquez sur Propriétés.

  4. Cliquez sur l'onglet Application à gauche, puis sélectionnez .NET Framework 4 dans la liste déroulante version cible de .Net Framework : . Lorsque vous êtes invité à recharger le projet, cliquez sur Oui.

  5. Ajoutez des références aux assemblys Microsoft.ServiceBus, System.Runtime.Serialization et System.ServiceModel :

    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références dans le dossier du projet, puis cliquez sur Ajouter une référence....

    2. Sélectionnez l'onglet .NET dans la boîte de dialogue Ajouter une référence et faites défiler vers le bas jusqu'à Microsoft.ServiceBus, sélectionnez-le et cliquez sur OK.

    3. Répétez l'étape ci-dessus pour System.Runtime.Serialization et System.ServiceModel.

  6. Dans l'Explorateur de solutions, double-cliquez sur le fichier Program.cs pour l'ouvrir dans l'éditeur Visual Studio. Remplacez le nom de l'espace de noms par défaut QueueSample par Microsoft.ServiceBus.Samples.

    namespace Microsoft.ServiceBus.Samples
    {
        …
    
  7. Ajoutez des instructions using pour les espaces de noms Microsoft.ServiceBus, Microsoft.ServiceBus.Messaging , Microsoft.ServiceBus.Description, System.IO et System.Data.

    using Microsoft.ServiceBus;
    using Microsoft.ServiceBus.Messaging;
    using Microsoft.ServiceBus.Description;
    using System.Data;
    using System.IO;
    
  8. Créez un fichier texte nommé Data.csv et copiez dans le texte délimité par des virgules suivant.

    IssueID,IssueTitle,CustomerID,CategoryID,SupportPackage,Priority,Severity,Resolved
    1,Package lost,1,1,Basic,5,1,FALSE
    2,Package damaged,1,1,Basic,5,1,FALSE
    3,Product defective,1,2,Premium,5,2,FALSE
    4,Product damaged,2,2,Premium,5,2,FALSE
    5,Package lost,2,2,Basic,5,2,TRUE
    6,Package lost,3,2,Basic,5,2,FALSE
    7,Package damaged,3,7,Premium,5,3,FALSE
    8,Product defective,3,2,Premium,5,3,FALSE
    9,Product damaged,4,6,Premium,5,3,TRUE
    10,Package lost,4,8,Basic,5,3,FALSE
    11,Package damaged,5,4,Basic,5,4,FALSE
    12,Product defective,5,4,Basic,5,4,FALSE
    13,Package lost,6,8,Basic,5,4,FALSE
    14,Package damaged,6,7,Premium,5,5,FALSE
    15,Product defective,6,2,Premium,5,5,FALSE
    
    

    Enregistrez et fermez le fichier Data.csv et mémorisez l'emplacement où vous l'avez enregistré.

  9. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet (dans cet exemple, QueueSample), cliquez sur Ajouter, puis sur Élément existant.

  10. Recherchez le fichier Data.csv que vous avez créé à l'étape 6. Cliquez sur le fichier, puis cliquez sur Ajouter. Vous devrez peut-être vous assurer que Tous les fichiers (*.*) est sélectionné dans la liste déroulante du type de fichiers.

Pour créer une fonction qui analyse une liste de messages

  1. Avant la méthode Main(), déclarez deux variables : une de type DataTable, pour contenir la liste de messages dans Data.csv. L'autre doit être un objet de type List, fortement typé en BrokeredMessage. Cette dernière est la liste de messages répartis que les étapes suivantes de ce didacticiel utiliseront.

    namespace Microsoft.ServiceBus.Samples
    {
        public class Program
        {
    
            private static DataTable issues;
            private static List<BrokeredMessage> MessageList;
    
    
    
  2. À l'extérieur de la méthode Main(), définissez une méthode ParseCSV() qui analyse la liste de messages dans Data.csv et charge les messages en un tableau DataTable, comme illustré ici. La méthode renvoie un objet DataTable.

    static DataTable ParseCSVFile()
    {
        DataTable tableIssues = new DataTable("Issues");
        string path = @"..\..\data.csv";
        try
        {
            using (StreamReader readFile = new StreamReader(path))
            {
                string line;
                string[] row;
    
                // create the columns
                line = readFile.ReadLine();
                foreach (string columnTitle in line.Split(','))
                {
                    tableIssues.Columns.Add(columnTitle);
                }
    
                while ((line = readFile.ReadLine()) != null)
                {
                    row = line.Split(',');
                    tableIssues.Rows.Add(row);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Error:" + e.ToString());
        }
    
        return tableIssues;
    }
    
  3. Dans la méthode Main(), ajoutez une instruction qui appelle la méthode ParseCSVFile() :

    public static void Main(string[] args)
    {
    
        // Populate test data
        issues = ParseCSVFile();
    
    }
    

Pour créer une fonction qui charge la liste de messages

  1. À l'extérieur de la méthode Main(), définissez une méthode GenerateMessages() qui prend l'objet DataTable renvoyé par ParseCSVFile() et charge le tableau en une liste fortement typée de messages répartis. La méthode renvoie alors l'objet List. Par exemple :

    static List<BrokeredMessage> GenerateMessages(DataTable issues)
    {
        // Instantiate the brokered list object
        List<BrokeredMessage> result = new List<BrokeredMessage>();
    
        // Iterate through the table and create a brokered message for each row
        foreach (DataRow item in issues.Rows)
        {
            BrokeredMessage message = new BrokeredMessage();
            foreach (DataColumn property in issues.Columns)
            {
                message.Properties.Add(property.ColumnName, item[property]);
            }
            result.Add(message);
        }
        return result;
    }
    
  2. Dans la méthode Main(), directement sous l'appel à ParseCSVFile(), ajoutez une instruction qui appelle la méthode GenerateMessages() avec la valeur renvoyée de ParseCSVFile() en tant qu'argument :

    public static void Main(string[] args)
    {
    
        // Populate test data
        issues = ParseCSVFile();
        MessageList = GenerateMessages(issues);
    }
    

Pour obtenir les informations d'identification de l'utilisateur

  1. Commencez par créer trois variables de chaîne globales qui conserveront ces valeurs. Déclarez ces variables directement après les déclarations de variables précédentes, par exemple :

    namespace Microsoft.ServiceBus.Samples
    {
        public class Program
        {
    
            private static DataTable issues;
            private static List<BrokeredMessage> MessageList; 
            // add these variables
            private static string ServiceNamespace;
            private static string IssuerName;
            private static string IssuerKey;
            …
    
  2. Ensuite, créez une fonction qui accepte et stocke l'espace de noms de service, le nom de l'émetteur et la clé de l'émetteur. Ajoutez cette méthode à l'extérieur de Main(). Par exemple :

    static void CollectUserInput()
    {
        // User service namespace
        Console.Write("Please enter the service namespace to use: ");
        ServiceNamespace = Console.ReadLine();
    
        // Issuer name
        Console.Write("Please enter the issuer name to use: ");
        IssuerName = Console.ReadLine();
    
        // Issuer key
        Console.Write("Please enter the issuer key to use: ");
        IssuerKey = Console.ReadLine();
    }
    
  3. Dans la méthode Main(), directement sous l'appel à GenerateMessages(), ajoutez une instruction qui appelle la méthode CollectUserInput() :

    public static void Main(string[] args)
    {
    
        // Populate test data
        issues = ParseCSVFile();
        MessageList = GenerateMessages(issues);
        
        // Collect user input
        CollectUserInput();
    }
    

Compilation du code

  • Dans Visual Studio, à partir du menu Générer, sélectionnez Générer la solution ou appuyez sur F6 pour vérifier la précision du travail effectué jusqu'ici.

Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
© 2013 Microsoft. Tous droits réservés.
facebook page visit twitter rss feed newsletter