Host ReadLine di WorkflowApplicationWorkflowApplication ReadLine Host

Questo esempio è un host ReadLine generico.This sample is a generic ReadLine host. È possibile caricare ed eseguire qualsiasi flusso di lavoro usando l'attività ReadLine inclusa (o altre attività quali quelle che ottengono dati dai segnalibri ripresi con le stringhe).You can load and run any workflow using the included ReadLine activity (or other activities like it that get data from bookmarks resumed with strings). L'output dell'attività WriteLine o qualsiasi elemento che scrive nell'estensione della proprietà TextWriter è diretto alla finestra host.Output from the WriteLine activity or anything writing to the TextWriter extension is directed to the host window. Quando un'istanza è inattiva, i segnalibri disponibili per tale istanza vengono visualizzati in una casella combinata.When an instance is idle, the available bookmarks for that instance appear in a combo box. Selezionando un segnalibro, inserendo un testo e premendo il pulsante di ripresa del segnalibro viene continuata l'esecuzione del flusso di lavoro.Selecting a bookmark, inputting some text, and pressing the resume bookmark button continue the execution of the workflow. Inoltre, è possibile annullare, interrompere o terminare un flusso di lavoro selezionato.You can also cancel, abort, or terminate a selected workflow. La persistenza è attiva per impostazione predefinita; è possibile arrestare l'host e ripristinarlo in modo che l'elenco di istanze venga popolato con le istanze archiviate nel database.Persistence is on by default – you can shut down the host and bring it back, and the instance list is populated with the instances stored in the database. Il rilevamento viene usato per restituire gli eventi a livello dell'oggetto WorkflowApplication all'host con la possibilità di aggiungere il rilevamento dettagliato a livello di attività.Tracking is used to output WorkflowApplication-level events to the host with the option to add detailed tracking at the activity level.

Dettagli dell'esempioSample Details

In questo host sono disponibili due livelli: la visualizzazione e la gestione di istanze.There are two layers to this host: the view and the instance manager. La visualizzazione è costituita dalle classi HostView e WorkflowApplicationInfo.The view consists of the HostView and WorkflowApplicationInfo classes. Il modello generale di questo host prevede che nella classe HostView siano visualizzate le opzioni disponibili all'utente in base agli oggetti WorkflowApplicationInfo mantenuti ragionevolmente in sincronizzazione con le istanze che rappresentano.The general pattern for this host is for the HostView class to display available options to the user based on WorkflowApplicationInfo objects that are kept reasonably in synchronization with the instances they represent. Il livello della gestione di istanze è costituito dalla classe WorkflowApplicationManager che rappresenta il nucleo centrale di tutte le comunicazioni dell'host e dalla classe WorkflowDefinitionExtension che rende persistente la relazione tra un'istanza e la definizione del programma con cui è stata avviata, nonché alcune altre classi.The instance manager layer consists of the WorkflowApplicationManager class, which is the core of all host communications, and the WorkflowDefinitionExtension class, which persists the relationship between an instance and the program definition it was started with and a few other classes. Le chiamate HostView controllano le operazioni nell'oggetto WorkflowApplicationManager.The HostView calls control operations on the WorkflowApplicationManager. Queste chiamate sono generalmente asincrone per gestire un'interfaccia utente in grado di rispondere.These calls are typically asynchronous to maintain a responsive user interface. Al termine delle chiamate asincrone, l'oggetto WorkflowApplicationManager effettua di nuovo delle chiamate nel livello di visualizzazione tramite un'interfaccia ben definita (IHostView).When the asynchronous calls complete, the WorkflowApplicationManager makes calls back into the view layer through a well-defined interface (IHostView). Solitamente, la classe HostView invia queste chiamate dalla classe WorkflowApplicationManager al thread dell'interfaccia utente.The HostView class most often dispatches these calls from the WorkflowApplicationManager class to the user interface thread. La scrittura di testo viene effettuata negli oggetti TextWriter thread-safe forniti dalla classe HostView.Text writing is done to thread-safe TextWriter objects provided by the HostView class. L'interfaccia utente non è l'unico elemento che genera eventi.The user interface is not the only thing generating events. Anche gli oggetti WorkflowApplication segnalano l'oggetto WorkflowApplicationManager quando, ad esempio, diventano Idle, Complete o quando sono Aborted.The WorkflowApplication objects also signal the WorkflowApplicationManager when they go Idle, Complete, or are Aborted, for example. La classe WorkflowApplicationManager esce dal thread eventi inviando operazioni di pulizia o aggiornamento all'host.The WorkflowApplicationManager class gets off the event thread by dispatching clean up or updating work to the host.

La registrazione del file usato per avviare un oggetto WorkflowApplication è resa più semplice dalla classe WorkflowDefinitionExtensionThe recording of the file used to launch a WorkflowApplication is facilitated by the WorkflowDefinitionExtension class. che implementa l'interfaccia PersistenceIOParticipant per partecipare alla persistenza e rendere persistente il percorso nella definizione di flusso di lavoro.It implements the PersistenceIOParticipant interface to participate in persistence and persist the path to the workflow definition.

Il metodo WorkflowApplicationManager.Load usa il percorso archiviato per creare un'istanza dei programmi del flusso di lavoro richiesti per il caricamento di oggetti WorkflowApplication non terminati.The WorkflowApplicationManager.Load method uses the stored path to instantiate the workflow programs required for loading unfinished WorkflowApplication objects.

Per impostare, compilare ed eseguire l'esempioTo set up, build, and run the sample

  1. Per questo esempio è necessario aver installato SQL Express.This sample requires SQL Express to be installed. SQL Express viene fornito con Visual Studio 2010Visual Studio 2010.SQL Express comes with Visual Studio 2010Visual Studio 2010.

  2. Aprire il prompt dei comandi di Visual Studio 2010.Open a Visual Studio 2010 command prompt.

  3. Passare alla directory di esempio (\WF\Basic\Execution\ControllingWorkflowApplications) ed eseguire CreateInstanceStore.cmd.Navigate to the sample directory (\WF\Basic\Execution\ControllingWorkflowApplications) and run CreateInstanceStore.cmd.

  4. Lo script CreateInstanceStore.cmd tenta di creare il database nell'istanza predefinita di SQL Server 2008 Express.The CreateInstanceStore.cmd script attempts to create the database on the default instance of SQL Server 2008 Express. Se si desidera installare il database in un'istanza diversa, modificare lo script.If you want to install the database on a different instance, modify the script to do so.

  5. Compilare il progetto WorkflowApplicationReadLineHost ed eseguirlo dalla riga di comando.Compile the WorkflowApplicationReadLineHost project and run it from the command line.

  6. Una volta in esecuzione, è possibile disattivare o attivare la persistenza.Once running, you can optionally turn persistence off or on. Inoltre, è possibile attivare o disattivare il rilevamento dettagliato di attività.Further, you can optionally turn detailed activity tracking on or off.

  7. Fare clic sul pulsante con puntini di sospensione accanto al eseguire per cercare un flusso di lavoro definito in un file XAMLPress the ellipsis button next to the Run button to browse for a workflow defined in a XAML file

    Nella cartella SampleWorkflows sono disponibili due esempi.Two samples can be found under the SampleWorkflows folder. L'esempio parallel1.xaml diventa inattivo.The parallel1.xaml example goes idle.

  8. Dopo aver selezionato un esempio, premere il eseguire pulsante.Once an example is selected, press the Run button.

  9. Se o quando il flusso di lavoro diventa inattivo, il segnalibri casella combinata viene popolata con i segnalibri disponibili.If or when the workflow goes idle, the Bookmarks combo box is populated with available bookmarks.

  10. Le opzioni di questa fase servono per riprendere un segnalibro oppure per annullare, interrompere o terminare il flusso di lavoro.The options at this point are to resume a bookmark, cancel, abort, or terminate the workflow. Inoltre, è possibile arrestare l'host e riavviarlo.You can also shut down the host and restart it. Se la persistenza viene mantenuta attiva, le istanze vengono scaricate all'arresto e ricaricate al riavvio.If persistence is left on, the instances are unloaded on shutdown and reloaded on start up.

    Per riprendere un segnalibro, selezionare quello desiderato, digitare un valore nella casella di testo accanto alla casella combinata e premere Riprendi segnalibro.To resume a bookmark, select the desired bookmark, type in a value in the text box next to the combo box and press Resume Bookmark.

Per rimuovere il database dell'archivio di istanzeTo remove the instance store database

  1. Aprire il prompt dei comandi di Visual Studio 2010.Open a Visual Studio 2010 command prompt.

  2. Passare alla directory di esempio (\WF\Basic\Execution\ControllingWorkflowApplications) ed eseguire RemoveInstanceStore.cmd.Navigate to the sample directory (\WF\Basic\Execution\ControllingWorkflowApplications) and run RemoveInstanceStore.cmd.

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your machine. Verificare la directory seguente (impostazione predefinita) prima di continuare.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Se questa directory non esiste, andare al Windows Communication Foundation (WCF) e gli esempi di Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti i Windows Communication Foundation (WCF) e WFWF esempi.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Questo esempio si trova nella directory seguente.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WF\Basic\Execution\ControllingWorkflowApplications