comprendere workflow foundation in windows e in 2007 microsoft office system paolo pialorsi...
TRANSCRIPT
Comprendere Workflow Comprendere Workflow FoundationFoundation
In Windows e in 2007 Microsoft Office system
Paolo PialorsiPaolo [email protected]@devleap.it
DevLeapDevLeaphttp://www.devleap.com/http://www.devleap.com/
Roberto BrunettiRoberto [email protected]@devleap.it
DevLeapDevLeaphttp://www.devleap.com/http://www.devleap.com/
AgendaAgendaPerché workflow, perché WFArchitettura di WF
Runtime EngineActivityBase Activity LibraryHosting EnginePersistence e State Management
Tipologie di workflowSequential WorkflowState Machine
Workflow DesignerQ&A
WinFx (pardon .NET 3.0)WinFx (pardon .NET 3.0)Piattaforma per lo sviluppo di applicazioni di prossima generazione
Windows Communication Foundation
Windows Workflow Foundation
Windows Presentation Foundation
Windows CardSpace (InfoCard)
.NET 3.0 ad oggi è in Beta.NET 3.0 ad oggi è in BetaQuello che vediamo potrebbe cambiare da qui al rilascio
Nelle slide e demo ci riferiamo a:
Beta2 CTP May 2006 – GoLive!
Workflow in generaleWorkflow in generale
Perché Workflow?Perché Workflow?Per descrivere in modo “umano” i processi di business
Per sganciare i processi dalla loro particolare implementazione
Per dare procedure e regole operative
Perché ognuno faccia il suo lavoroProgrammatori: codice (attività)Esperti di dominio: design dei flussiUtenti: operatività
System WorkflowSystem WorkflowProcessi di business tra sistemi/macchineUnattended e tipicamente brevi nel tempo come durata del singolo flow
Regole certe, ma modificabili nel tempo, anche da figure “non dev”
Esempi:Gestione notifiche via emailInvio fax notturniEcc.
Human WorkflowHuman WorkflowRichiedono l’interazione con l’utente/operatore
Di solito sono Long RunningSe richiedono transazioni saranno Long Running
Quindi eventuale Compensation
State Management: devono essere Stateful
Coinvolgono diversi ambiti applicativi:Task, Office, Email, ecc.
Esempi:Processi di approvazione documentale (firma singola, firma multipla)Order processing
Perché WF?Perché WF?Framework di gestione dei Workflow a 360°
Design, hosting, monitoring, extension
Pervasivo in tutte le tecnologie MicrosoftWindowsOfficeSharepointBizTalkVisual Studio 2005 (ISV custom apps)Ecc.
Set di funzionalità di base
Programmabile e estendibile con codice .NET
Windows Workflow Windows Workflow FoundationFoundation
Windows Workflow Windows Workflow FoundationFoundation
Per WF un Workflow è:insieme di Activity
eseguite in un Workflow
disegnato con un Visual Designer
ospitato da un’applicazione di Hosting
che esegue il Runtime Engine
appoggiandosi ai Runtime Services
Host Process
WindowsWorkflow Foundation
Runtime Engine
A Workflow
An Activity
Runtime Services
Base Activity Library
Custom Activity Library
Visual Designer
Un semplice WorkflowUn semplice Workflow
C#
WorkflowWorkflow
public sealed partial class MyWorkflow: SequentialWorkflowActivity{ public MyWorkflow()
{InitializeComponent();
}
private void customCodeActivity_ExecuteCode(object sender, EventArgs e) { Console.WriteLine("Hello World!"); }}
XOML<SequentialWorkflowActivity x:Class="WorkflowConsoleApplication1.MyWorkflow" x:Name="MyWorkflow" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">
<CodeActivity x:Name="customCodeActivity" ExecuteCode="customCodeActivity_ExecuteCode" /></SequentialWorkflowActivity>
WorkflowWorkflowUn workflow è una classe .NETDeriva da classi base della Runtime Library (System.Workflow.Activities)
SequentialWorkflowActivityStateMachineWorkflowActivity
Può essere definito come:Flow (graficamente)Codice .NETCodice XOML => Compilato con WFC.EXE
Stesso schema di XAML
Un workflow in praticaUn workflow in pratica
ActivityActivityUnità di esecuzioneSono anch’esse classi .NET
Derivate da System.Workflow.ComponentModel.Activity
Ne esistono N già definite da WFPossiamo definire le nostre Activity custom
2007 Microsoft Office system ne prevede diverse custom
Possono essereBasic Activity: singoli step di un workflowComposite Activity: gruppi di activity (sequence)
Base Activity LibraryBase Activity LibraryCodeDelayIfElseInvokeWebServiceInvokeWorkflowSequenceParallelReplicatorWhileCallExternalMethodecc.
Base ActivityBase Activity
Activity DevelopmentActivity DevelopmentDue possibilità
Usare il designer per comporre ActivityAggregandone altre
Derivare e personalizzare Activity di baseImplementare una classe ex-novo
Derivando da: System.Workflow.ComponentModel.Activity
Possiamo creare class library di Activity
Office Sharepoint Server 20072007 Microsoft Office system
I Workflow sono ActivityI Workflow sono ActivitySequentialWorkflowActivity
StateMachineWorkflowActivity
Visual DesignersVisual Designers
SharePoint Designer (Web Designer)SharePoint Designer (Web Designer)
ActivityActivityRiutilizzare OOB/deployedRiutilizzare OOB/deployed
FormFormAuto-generated FormAuto-generated Form-ASPX-ASPX
DeploymentDeployment I Workflow vivono sul serverI Workflow vivono sul serverRuntime compilationRuntime compilation
Development ModelDevelopment ModelWizard-based workflow designerWizard-based workflow designer
Visual Studio (Pro-Dev)Visual Studio (Pro-Dev)
ActivityActivityRiutilizzare OOB/deployedRiutilizzare OOB/deployedCreazione di nuove ActivityCreazione di nuove Activity
FormForm Designed FormDesigned Form-InfoPath-InfoPath-ASPX-ASPX
DeploymentDeploymentGenerazione di packageGenerazione di packageConsole Administrator installabileConsole Administrator installabile
DevelopmentDevelopment ModelModelVisual workflow designerVisual workflow designer
Tipi di WorkflowTipi di Workflow
Sequential WorkflowSequential WorkflowSequenze di eventi noti
Temporalmente consequenziali
Il processo guida il flusso
Tipicamente non richiedono “human interaction”
Sono i workflow più semplici
A1
A3A2
A4
Sequential WorkflowSequential Workflow
State Machine WorkflowState Machine WorkflowGuidati da eventi
InterniEsterni
La sequenza di eventi non è nota a prioriI percorsi di esecuzione sono variabiliPuò assumere un solo stato per voltaPuò saltare “dinamicamente” nel flussoOgni evento scatena una sequenza assimilabile ad un sequential workflow
S1S2
S3
S4
Quando usarliQuando usarliQuando i processi di business sono
Molto variabiliMolto complessiDifficilmente schematizzabili in sequenze
Se le “human interaction” sono frequenti
Quando dobbiamo gestire eventi esterni
Comunicazioni dall’utenteComunicazioni da applicazioni esterne
State Machine State Machine WorkflowWorkflow
Workflow HostingWorkflow Hosting
Workflow HostingWorkflow HostingUn workflow deve essere ospitato da un processo
Windows ApplicationASP.NET ApplicationSharePointOfficeServizi Windows
L’host si appoggia a WorkflowRuntimeIl workflow “parla” con l’host tramite eventi e interfacce
WorkflowRuntimeWorkflowRuntime
C#using(WorkflowRuntime workflowRuntime = new WorkflowRuntime()){ AutoResetEvent waitHandle = new AutoResetEvent(false); workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) {waitHandle.Set();}; workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e) { Console.WriteLine(e.Exception.Message); waitHandle.Set(); };
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(WorkflowConsoleApplication1.MyWorkflow)); instance.Start();
waitHandle.WaitOne();}
Ma non c’era già BizTalk?!Ma non c’era già BizTalk?!Sì ma BizTalk è più orientato ai “Business Processes”
BizTalk è orientato alla gestione dei messaggi/fileMolto XML/Service Oriented
BizTalk prevede connettori versoERP vari (JDE, PeopleSoft, SAP, ecc.)Database serversMSMQEcc.
La prossima versione di BizTalk dovrebbe utilizzare WF per la parte di design
Ma non c’era già SSIS?!Ma non c’era già SSIS?!Si ma SSIS è più orientato al trasferimento di Dati
Da una sorgente a una destinazioneCon eventuale trasformazione
Gira “fuori” dal contesto di una applicazione .NET
WF gira “dentro” applicazione
SSIS richiede SQL ServerWF gestisce i workflow (punto)
Ulteriori Ulteriori approfondimenti…approfondimenti…
http://www.microsoft.com/italy/msdn/http://msdn.microsoft.com/office/future/http://www.netfx3.com/http://wf.netfx3.com/
http://www.devleap.it/
Corso DevLeap su .NET 3.0 (WinFx)Personalizzato
Grazie!Grazie!Domande?
Compilate il form di valutazione…
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.