Condividi tramite


Readme_ShoppingCart

Data aggiornamento: 5 dicembre 2005

L'esempio Shopping Cart utilizza l'identificatore del gruppo di conversazioni per mantenere le informazioni di stato di un'applicazione semplice per la gestione del carrello acquisti che utilizza l'esempio ServiceBrokerInterface.

Per impostazione predefinita, l'applicazione di esempio Shopping Cart viene installata in C:\Programmi\Microsoft SQL Server\100\Samples\Engine\\ServiceBroker\ShoppingCart. Se la cartella dell'esempio non è presente, vedere Installazione degli esempi.

Gli esempi vengono forniti esclusivamente a scopo didattico. Non sono destinati all'utilizzo in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non rende disponibile il supporto tecnico per questi esempi. Le applicazioni e gli assembly di esempio non devono essere connessi o utilizzati con il database di SQL Server o il server di report in un ambiente di produzione senza l'autorizzazione dell'amministratore di sistema.

Generazione e installazione dell'esempio

  1. In Visual Studio 2005 aprire ShoppingCartCS.sln.

  2. Per generare la soluzione, premere F6 o scegliere Genera soluzione dal menu Genera.

  3. Aprire una finestra del prompt dei comandi, individuare la cartella Scripts ed eseguire il comando seguente:

    install all
    

    Lo script di installazione installa gli oggetti SQL Server per l'applicazione, inclusa la stored procedure CLR che implementa il servizio ShoppingCartService.

Esecuzione dell'esempio

  1. Eseguire l'applicazione ShoppingCartClient.exe dalla directory dell'esempio. Per ragioni di semplicità, il client elabora un ordine ogni volta che viene eseguito.

  2. Fare clic su Create Order per creare un ordine. Aggiungere articoli al carrello acquisti selezionando l'articolo desiderato nell'elenco Item e quindi facendo clic su Add Item.

  3. Fare clic sulla scheda Service Broker Trace per visualizzare un riepilogo dei messaggi di Service Broker inviati e ricevuti.

  4. Le tabelle ShoppingList e StateTable nel database ssb_ShoppingCart mantengono le informazioni di stato dell'applicazione. La stored procedure CLR aggiorna le tabelle in base ai messaggi ricevuti dal client. Per esaminare le tabelle è possibile utilizzare Management Studio o sqlcmd.

Disinstallazione dell'esempio

  1. Aprire una finestra del prompt dei comandi, individuare la cartella Scripts ed eseguire il comando seguente:

    uninstall all
    
  2. Lo script di disinstallazione rimuove gli oggetti SQL Server per l'applicazione.

Requisiti

Per questo esempio è necessario Visual Studio 2005. Poiché l'esempio utilizza funzionalità CLR non disponibili nelle versioni precedenti di Visual Studio, non è possibile generare l'esempio con le versioni di Visual Studio precedenti alla 2005.

Dimostrazioni

Le applicazioni di Service Broker archiviano in genere le informazioni di stato nel database che ospita il servizio. Quando vengono ricevuti messaggi, l'applicazione carica le informazioni di stato dal database e quindi elabora i messaggi.

La classe Service dell'esempio Service Broker Interface consente di mantenere le informazioni di stato in modo semplice e pratico. Questo esempio illustra come utilizzare la classe Service per mantenere le informazioni di stato.

Per mantenere le informazioni di stato mediante la classe Service, è necessario implementare due metodi nell'applicazione e una stored procedure in SQL Server, come illustrato nella tabella seguente:

Elemento Firma Descrizione

Stored procedure

CREATE PROCEDURE name (@cgid uniqueidentifier)

Restituisce le informazioni di stato dell'applicazione. I set di risultati restituiti dalla procedura devono includere l'identificatore del gruppo di conversazioni.

Metodo pubblico

public override bool LoadState(System.Data.Sql.SqlReader reader)

Legge i set di risultati forniti dalla stored procedure per ripristinare le informazioni di stato. Questa stored procedure deve salvare l'identificatore del gruppo di conversazioni nella classe, in quanto l'esempio Service Broker Interface non fornisce l'identificatore al metodo SaveState.

Metodo pubblico

public override void SaveState()

Salva le informazioni di stato nel database.

Questo argomento descrive in linee generali la procedura di ripristino delle informazioni di stato. Vedere ShoppingCartService.cs per l'esempio completo.

La stored procedure deve accettare l'identificatore del gruppo di conversazioni e restituire due set di risultati. Il primo set è costituito dall'identificatore del gruppo di conversazioni stesso, mentre il secondo include le informazioni di stato dell'applicazione. Non esiste un nome predefinito per questa stored procedure. Il nome della stored procedure viene specificato impostando la proprietà AppLoaderProcName. L'esempio Service Broker Interface chiama semplicemente la stored procedure specificata.

Il metodo LoadState ripristina le informazioni di stato dell'applicazione. L'esatto processo seguito dall'applicazione dipende dalle informazioni di stato richieste dall'applicazione stessa. Il metodo utilizza un'istanza di System.Data.Sql.SqlReader come parametro. SqlReader include i set di risultati restituiti dalla stored procedure. In genere, le implementazioni del metodo LoadState aggiornano la proprietà State della classe Service, salvano l'identificatore del gruppo di conversazioni in un campo privato e quindi salvano le informazioni di stato dell'applicazione in strutture di dati specifiche. Ad esempio, ShoppingCartService archivia le informazioni su articoli, quantità e prezzi in un'istanza privata della classe ShoppingCart.

Dopo aver chiamato il metodo LoadState, l'infrastruttura di Service Broker recapita il messaggio. Si noti che, se si utilizza il framework di recapito dei messaggi basato sugli attributi, è possibile recapitare i messaggi in base alla proprietà State oltre che in base al nome del tipo di messaggio. Nei metodi che gestiscono i messaggi è possibile leggere o aggiornare le strutture di dati create in LoadState.

Al termine dell'esecuzione del metodo per la gestione dei messaggi, l'infrastruttura di Service Broker chiama il metodo SaveState. Il metodo SaveState utilizza la proprietà Connection della classe Service per creare un oggetto SqlCommand e quindi utilizza tale oggetto per aggiornare le informazioni di stato archiviate nel database. Ad esempio, ShoppingCartService elimina il contenuto salvato del carrello acquisti e inserisce il contenuto corrente del carrello nel database.

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Contenuto modificato:
  • Modifica delle istruzioni per la generazione di un file di chiave, inclusi il nome e il percorso del file di chiave.