Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Workflow Foundation Základy a architektura Michael Juřek Software Architect Microsoft s.r.o.

Podobné prezentace


Prezentace na téma: "Workflow Foundation Základy a architektura Michael Juřek Software Architect Microsoft s.r.o."— Transkript prezentace:

1 Workflow Foundation Základy a architektura Michael Juřek Software Architect Microsoft s.r.o.

2 Agenda Proč Workflow Foundation? Základní pojmy Hostování workflow Vlastní workflow aktivity Různé

3 Není kód jako kód... Každý blok kódu má jinou pravděpodobnost změny Faktoriál vs. výpočet daně z příjmu Transformace od definice procesu ke kódu je jednosměrná, nevratná, neopakovatelná Jak „pochopit“ proces z kódu? Jak snadno upravit kód, když se změní proces? Jak držet definici procesu i kód v souladu?

4 Proč workflow? Produktivita vývojáře Workflow je pohodlná abstrakce pro popis problémů reálného světa Řešení technologických problémů: Procesy běží často dlouho a musí si uchovávat stav Procesy vyžadují flexibilní kontrolu toku Procesy by měly být transparentní

5 Proč Workflow Foundation? Jednotná workflow technologie Dostupná všem zákazníkům jako součást platformy Vhodná pro všechny scénáře Používána dalšími Microsoft produkty, např. pro workflow v Office 2007 a WSS 3.0 Rozšiřitelný framework a API pro vytváření vlastních řešení Relativně snadný přechod pro vývojáře na.NET platformě

6 Agenda Proč Workflow Foundation? Základní pojmy Hostování workflow Vlastní workflow aktivity Různé

7 Workflow Foundation Základní koncepce: Host Process Workflow Foundation Runtime Engine Workflow Activity Runtime Services Base Activity Library Custom Activity Library Visual Designer Visual Designer: Vytváření workflow grafickým modelováním a/nebo v kódu Workflow je soubor aktivit Workflow běží uvnitř nějakého hostitele (aplikace nebo služby) Vývojáři mohou vytvářet vlastní knihovny aktivit Komponenty: Base Activity Library: Základní aktivity, základ pro tvorbu vlastních Runtime Engine: Provádění workflow Runtime Services: Hostování, infrastruktura, komunikace

8 Co je to workflow? Soubor aktivit koordinujících lidské nebo softwarové účastníky InformujNadrizeneho Například: ZkontrolujDostupnost... jako vývojový diagram … v nějaké formě určující tok provádění... jako stavový diagram

9 Workflow může být zapsáno v C# / VB.NET a/nebo jako XML (formát XAML) using System.Workflow.Activities; public class MyWorkflow : SequentialWorkflow { … } Co je to workflow?

10 Způsoby vytváření workflow Kompilátor C#/VB Pouze deklarativně XML definuje strukturu logiky workflow a tok dat XAML Pouze kód Workflow vytváří svou strukturu (strom aktivit) v konstruktoru C#/VB Deklarativně + kód XML definuje workflow, kód (Code-beside) určuje dodatečnou logiku XAMLC#/VB Generování v aplikaci XAML C#/VB Vytvoření stromu aktivit a serializace Kompilátor workflow wfc.exe Standardní.NET assembly Workflow Runtime Workflow Loader

11 Co je to aktivita? Aktivita je jeden krok v provádění workflow Má vlastnosti a události, ke kterým můžete přistupovat z kódu Má metody (např. Execute), které volá workflow runtime (vy byste je volat neměli) Analogie s Form / Control ve WinForms Activity / Control Workflow / Form Workflow dědí z Activity / Form dědí z Control Dvě základní kategorie Basic – „dělají skutečnou práci“ Composite – spravují sadu jiných aktivit

12 Base Activity Library WF obsahuje sadu základních aktivit: Kontrola toku: IfElse, Delay, While,... Komunikace InvokeWebService, CallExternalMethod,... Vytvořeny stejným postupem a proti stejným API, jaká používají vývojáři pro vývoj svých aktivit

13 Hello world Moje první workflow aplikace

14 Agenda Proč Workflow Foundation? Základní pojmy Hostování workflow Vlastní workflow aktivity Různé

15 3 snadné kroky Vytvořit instanci workflow runtime Vytvořit instanci workflow Spustit workflow private void StartMyWorkflow() { WorkflowRuntime wr = new WorkflowRuntime(); WorkflowInstance instance = wr.CreateWorkflow(typeof(MyWorkflow)); instance.Start(); } Hostování WF v aplikaci

16 Infrastrukturní služby Host Application App Domain K dispozici jsou implementace pro MS SQL Server SchedulerService (1) „dodává“ workflow vlákna k provádění a stará se o časovače PersistenceService (0-1) slouží k uložení stavu workflow TrackingService (0-n) sbírá informace o průběhu a spravuje profily určující co se ukládá Runtime Services PersistenceService TrackingService SchedulerService CommitWorkBatchService CommitWorkBatchService (1) „dodává“ workflow transakce

17 Nabízené implementace Podtržené služby jsou standardně zapnuty DefaultWorkflowSchedulerService Asynchronní provádění, používá se vlákno získané ze thread pool zásoby ManualWorkflowSchedulerService Synchronní provádění, používá se vlákno, ze kterého byla instance workflow spuštěna DefaultWorkflow- CommitWorkBatchService Používá.NET transakce (potenciálně povýšené na distribuované transakce MSDTC) SharedConnectionWorkflow- CommitWorkBatchService Používá lokální transakce nad spojením do MS SQL serveru SqlWorkflowPersistenceService Stav běžících instancí včetně časovačů se ukládá v MS SQL serveru SqlTrackingService Informace o sledovaném průběhu workflow se ukládají v MS SQL serveru

18 Příklad přidání služby Přidání persistence do databáze SQL Vytvořit instanci služby Nastavit potřebné parametry Zavolat WorkflowRuntime.AddService() Alternativně: Vytvořit sekci v konfiguračním souboru Předat jméno konfigurace při vytváření WF runtime private void StartMyWorkflow () { WorkflowRuntime wr = new WorkflowRuntime(); string connectionstring = "Initial Catalog=Persistence;DataSource=localhost;Integrated Security=SSPI;"; wr.AddService(new SqlWorkflowPersistenceService(connectionstring)); WorkflowInstance instance = wr.CreateWorkflow(typeof(MyWorkflow)); instance.Start(); }

19 „Dodává“ workflow potřebná vlákna kódu a spravuje časovače Dvě implementace ve WF: Asynchronní (Default) WF běží na vláknu dodaném ze ThreadPool Vhodné pro stavové aplikace (WinForms, Win32 služba apod.) Synchronní (Manual) WF běží na vláknu, jež ho spustilo Vhodné pro bezstavové aplikace (ASP.NET) Vytváření vlastní implementace je silně nepravděpodobné SchedulerService

20 Podpora synchronizace zdrojů mezi hostitelem, workflow runtime a aktivitami pomocí ACID transakcí Dvě implementace ve WF: 2-fázové distribuované transakce (Default) – MS DTC 1-fázové databázové transakce (SharedConnection) O něco rychlejší, nevyžaduje MS DTC, ale může pracovat pouze s jedinou databázovou instancí Transakčnost se nastavuje atributem na úrovni aktivity, transakce je pak sdílena všemi aktivitami vnořenými do aktivity TransactionScope Workflow se nemůže připojit k transakci vytvořené hostitelem, naopak to možné je (hostitel implementuje IPendingWork) Vytváření vlastní implementace je silně nepravděpodobné CommitWorkBatchService

21 Zajišťuje průběžné ukládání stavu workflow do trvalého úložiště Umožňuje obnovení běhu po restartu Podmínka pro práci ve farmě serverů Implementace ve WF pro SQL 2000/2005 Skript pro vytvoření tabulek je v instalaci WF Vytvoření vlastní implementace je možné, chcete-li trvalé workflow bez závislosti na MS SQL (souborový systém, jiná databáze, apod.) PersistenceService

22 Dostává informace o průběhu workflow a provádění aktivit Scénáře: logování, monitorování, auditing,... Implementace ve WF pro SQL 2000/2005 Skript pro vytvoření tabulek je v instalaci WF API pro dotazování do dat Vytvoření vlastní implementace bude poměrně časté Odvoďte třídu z TrackingChannel Odvoďte třídu z TrackingService Volitelně implementujte IProfileNotification TrackingService

23 Tracking – objektový model Hostitel Get Tracking Profile Spuštění instance workflow Úložiště Tracking Service Tracking Channel Runtime Dotaz TrackingProfile Report y

24 Tracking – události workflow CompletedTerminatedAborted Created Idle Suspended Started Resume d Persiste d Changed Loaded Unloaded Exception

25 Executing Compensating Canceling Closed Faulting Tracking – události aktivity

26 Tracking - možnosti Profil – XML předpis nebo strom objektů určující jaké události posílat do kanálu: Změna vlastnosti aktivity nebo workflow Změna stavu aktivity nebo workflow Profil lze měnit i za běhu – pokud služba implementuje IProfileNotification WorkflowRuntime (nikoliv sama instance workflow!) nabízí události pro změnu stavu workflow instancí WorkflowID předáno jako parametr Váš kód může generovat události voláním Activity.TrackData(string,object)

27 Infrastrukturní služby SqlWorkflowPersistenceServiceSqlTrackingService

28 Agenda Proč Workflow Foundation? Základní pojmy Hostování workflow Vlastní workflow aktivity Různé

29 Aktivity - základy Aktivity jsou stavební kameny workflow Jednotka provádění, znovuvyužitelnosti kódu a kompozice Základní aktivity jsou elementární kroky v provádění Kompozitní aktivity jsou kontejnery s jinými aktivitami Workflow je samo rovněž kompozitní aktivita Aktivity jsou.NET třídy Mají vlastnosti a události, které definuje autor aktivity, jsou přístupné v rámci běžícího workflow Autor aktivity přepisuje metody abstraktních předků – zejména Execute(), tyto jsou volány z workflow runtime (nelze z hostitele) Mohou být součástí workflow assembly anebo mohou fungovat jako knihovny aktivit pro opakované použití

30 Stavový diagram aktivity Přechod vyvolán Aktivitou Zásahem WF runtime InitializedExecutingClosed Compensating Faulting Chybou Canceling (-- poslední přechod)

31 Serializer Code Generator Designer ToolboxItem [Designer(typeof(MyDesigner))] [Validator(typeof(MyValidator))] [CodeGenerator(typeof(MyCodeGen))] [Serializer(typeof(MySerializer))] [ToolboxItem(typeof(MyToolboxItem))] Validator [ SupportsTransaction] [SupportsExceptionHandlers] public class MyActivity: Activity {... } Doprovodné třídy: Transactions Chování: Aktivity – metadata

32 Kompozitní aktivity Aktivity, jež mohou obsahovat vnořené aktivity Odvozené ze třídy CompositeActivity Workflow je samo též kompozitní aktivita Používá se „grey box“ model Obsah vložené již naplněné kompozitní aktivity lze vidět, ale nelze jej měnit Výjimkou jsou vlastnosti přístupné přes DependencyProperty

33 DependencyProperty Podporuje deklarativní vazbu na data s notifikací o změně vlastnosti Navenek zabalena do klasické.NET vlastnosti pro pohodlný programový přístup Fyzicky uloženy v Dictionary třídě, která je použita pro serializaci a správu stavu Property Promotion Umožňuje kompozitní aktivity „Děti“ libovolně hluboko v kompozitní aktivitě mohou zpřístupnit své události a vlastnosti: Umožňují konzumentovi kompozitní aktivity ovlivňovat její chování, aniž by znal její vnitřní logiku Speciální rysy vlastností

34 Vlastní aktivity Jednoduchá aktivita (dědičnost) Kompozitní aktivita DependencyProperty / Promotion

35 Agenda Proč Workflow Foundation? Základní pojmy Hostování workflow Vlastní workflow aktivity Různé

36 Dostupnost Jedna z nových částí.NET Frameworku 3.0 Součást Windows Vista a Windows Server „Longhorn“ Bezplatně ke stažení pro Windows XP SP2 a Windows Server 2003 SP1 RTM koncem roku 2006 Q2Q3Q Q2Q4Q Q3Q4 B1B2 V1 RTM

37 WF vs. BizTalk Server Messaging Desig n Tools BusinessActivityMonitorAndAdminTools Orchestration Transformation Adapters BizTalk Server Accelerators Plnohodnotný procesní server: Pro workflow mezi aplikacemi Scénáře BPM, B2B, EAI Konfigurace, administrace Robustnost, škálovatelnost Workflow Budoucí verze bude používat pro řízení procesu WF.NET Framework 3.0 Visual Studio Designer Windows Workflow Foundation Workflow Foundation Součást.NET framework 3.0 Framework k vytváření řešení Scénáře: workflow v rámci aplikace

38 WF a další MS produkty Office System 2007: Workflow pro masy koncových uživatelů Hostované ve WSS 3.0 Spouštěné z kancelářských aplikací Office 2007 Notifikace uživatelům v Outlooku Navržené v SharePoint Designeru 2007 (ex-FrontPage) Podnikové aplikace Dynamics Speech Server 2007 Identity Integration Server (cca 2007) System Center Service Desk (cca ) Biztalk Server v.Next (cca 2008)

39 WF – další produktové úvahy Projekt „Silver“ Add-on do Visual Studia pro generování WF aktivit z popisu WCF endpointů a zpřístupnění WF jako WCF endpointy Pravděpodobně jako CTP a poté ve Visual Studiu „Orcas“ „Page workflow“ Řízení toku ASP.NET stránek pomocí WF Nástupce UIP aplikačního bloku Buď v ASP.NET „Orcas“ anebo jako samostatně stažitelný doplněk

40 Vybraná pokročilá témata Budou zpracována formou webcastu Slidy připojeny za touto prezentací Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

41 Další zdroje k WF MSDN® Workflow centrum Ke stažení:.NET Framework 3.0 RC Extenze do Visual Studia 10 praktických cvičení /workflow /workflowKomunity Vzorový kód, nástroje, komponenty

42 Závěrem - proč WF? Zvyšuje produktivitu vývojáře Řeší technologické problémy Nabízí transparentní procesy Jednotná workflow technologie zdarma pro Windows XP a vyšší Vhodná pro široké spektrum scénářů Kompletně rozšiřitelné API pro vytváření vlastních řešení

43 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

44 Workflow Foundation Vybraná pokročilá témata Michael Juřek Software Architect Microsoft s.r.o.

45 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

46 Způsob 1 - parametry Workflow lze při startu jednorázově předat vstupní parametry: Vytvořte Dictionary Vytvořte Dictionary Naplňte pojmenovanými parametry Předejte v CreateWorkflow() Workflow musí mít definované vlastnosti: Stejného jména jako je klíč Kompatibilního typu S accessorem set s přístupností public Uvnitř workflow se pracuje s těmito vlastnostmi obvyklým způsobem

47 Způsob 2 – volání metod Workflow může volat metody hostitele, opačně nelze Definujte rozhraní s atributem [ExternalDataExchange] a metodami Implementujte jej v některé své třídě Vytvořte ExternalDataExchangeService a přidejte do něj svou třídu pomocí AddService() Přidejte jej do WorkflowRuntime přes AddService() Metodu zavolejte z workflow pomocí aktivity CallExternalMethod s nastavenými parametry

48 Způsob 3 – události Hostitel vyvolává události, na které workflow může čekat Definujte třídu odvozenou z ExternalDataEventArgs Vytvořte rozhraní jako ve způsobu 2 Do rozhraní přidejte událost EventHandler Do rozhraní přidejte událost EventHandler Implementujte rozhraní, přidejte do WorkflowRuntime jako ve způsobu 2 Na událost čekejte ve workflow pomocí aktivity HandleExternalEvent, argumenty navažte na privátní pole kompatibilního typu ve vašem workflow

49 Komunikace s hostitelem Parametry Volání metody Čekání na událost

50 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

51 Možnosti komunikace Z kódu ve workflow třídě můžete používat v zásadě libovolný přístupný způsob komunikace s okolím Nadstandardní komfort pro: Volání webové služby z workflow Zpřístupnění workflow jako ASMX webová služba Do budoucna: ještě komfortnější vazba na Windows Communications Foundation (Visual Studio „Orcas“)

52 Volání WS z workflow Vygenerujte proxy třídu pro volání WS Klasické Add Web Reference Přidejte aktivitu InvokeWebService Nastavte jméno proxy třídy a metody Vstupní/výstupní parametry navažte na privátní pole kompatibilního typu ve vašem workflow

53 Zpřístupnění workflow jako WS Definujte rozhraní, které bude navenek přístupné Přidejte aktivity WebServiceInput / Output / (volitelně Fault) do workflow Nastavte rozhraní a metodu na Input aktivitě Nastavte odpovídající Input aktivitu na Output aktivitě (volitelně též na Fault aktivitě) Vstupní/výstupní/chybové parametry navažte na privátní pole kompatibilního typu ve vašem workflow Zvolte z nabídky Publish as Web Service Vygeneruje web site včetně config souboru

54 Workflow a WS Volání WS z workflow Zpřístupnění workflow jako WS

55 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

56 Korelace Čeká-li instance workflow na tutéž událost vícekrát, je nutné je rozlišit K rozhraní s atributem [ExternalDataExchange] přidejte [CorrelationParameter(name)] K první volané metodě přidejte [CorrelationInitializer] K dalším použitým metodám a událostem přidejte [CorrelationAlias] U aktivit CallExternalMethod a HandleExternalEvent nastavte vlastnost CorrelationToken

57 Korelace Rozlišení dvou různých volání

58 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

59 Obsluha výjimek Silná analogie s try/catch konceptem Vznik výjimky: Chybou v code-behind anebo volaném kódu Explicitním použitím aktivity Throw Ošetření výjimky: Kompozitní aktivity mohou mít jeden a více tzv. Fault Handlers Určují posloupnost aktivit prováděných při zachycení specifikované výjimky Výjimka probublává nahoru stromem aktivity a může být ošetřena výše Není-li výjimka ošetřena, WF runtime ukončí provádění instance a vyvolá příslušnou událost

60 Kompenzace transakcí Jsou-li transakce nebo jiné operace již dokončeny a poté dojde k chybě, je možnost provést kompenzující akce (stornovat fakturu, zrušit objednávku apod.) Aktivita TransactionScope může mít tzv. CompensationHandler, který je volán v případě neošetřené chyby vzniklé po dokončení transakce Je-li více TransactionScope, jejich kompenzace jsou volány v opačném pořadí než byly prováděny Při ošetření chyby nebo ošetření zrušení aktivy lze použít aktivitu Compensate pro modifikaci výchozího chování

61 Ošetření chyb Rollback ACID transakce při chybě Kompenzace dokončené transakce

62 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

63 Podmínky v aktivitách Řada aktivit vyžaduje pro své fungování vyhodnocení podmínky: IfElse, While, Replicator, CAG,... Dvě možnosti realizace podmínky: Code Condition – odkaz na delegáta: public void Podminka(object sender, ConditionalEventArgs e) { e.Result = (...doplň výraz vracející boolean...); } Declarative Rule Condition Odkaz na deklarativně vyjádřenou podmínku v XML souboru.rules

64 Proč oddělit pravidla? Pravidla = složitá rozhodovací logika Modelování místo kódování Transparentnost Velká pravděpodobnost změny v čase Snadnost změny Ideální je možnost změny pravidel bez rekompilace workflow: Základní WF implementace neobsahuje External Ruleset Toolkit – vzorový kód

65 Terminologie Podmínka (Condition) Výraz, který se vyhodnotí jako True/False Pravidlo (Rule) Modelováno jako: IF IF THEN THEN ELSE ELSE Soubor pravidel (RuleSet) Soubor pravidel spolu s nastavením parametrů provádění Politika (Policy) – aktivita spouštějící soubor pravidel

66 Algoritmus provádění Vybere se soubor pravidel, jejichž podmínky jsou splněny Začnou se provádět podle klesající nastavené priority Chaining – znovuzařazení pravidla: Implicitní - pokud pravidlo změní platnost podmínky jiného pravidla Explicitní - pokud pravidlo volá příkaz Update Kontrola: Příkaz Halt (zastaví další provádění) RuleSet Chaining Behavior Full (výchozí), Explicit Update only, None Rule Reevaluation Behavior Always (výchozí), Never

67 Amount = $25 Total = $80 Discount = 10% Pravidlo 1 (P0) If Total > $50 & $50 & < $100 Then Discount = 10% Pravidlo 2 (P0) If Total >= $100 Then Discount = 15% Pravidlo 3 (P0) If Amount > $0 Then Total = Total + Amount Forward Chaining - příklad Pravidlo 1 Pravidlo 3 Pravidlo 2 Pořadí provádění $105 Sada Pravidel 15%

68 Vyhodnocení pravidel Použití Policy pro výpočet slevy

69 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

70 Kdy použít State Machine? Ve většině případů budete používat Sequential Workflow Přesto se State Machine Workflow může hodit když: V procesu jsou interakce s člověkem Workflow je řízeno externími událostmi Velké množství cest toku procesu Těžko předvídatelné ad hoc přechody v procesu 70

71 Základní koncepce Stavový stroj se skládá z množiny stavů V každém stavu může být přijata sada událostí Na základě obdržené události je provedena akce V rámci akce může dojít k přechodu do jiného stavu S1 S2 S3 S4 S5

72 Příklad kompozice stavů On Order Changed OrderChanged On Order Created On Order Processed OrderCreated OrderProcessed OrderShipped On Order Shipped Completed Completed Waiting to CreateOrder On Order Completed On Order Shipped OrderCompleted 72

73 Hlavní používané aktivity State – reprezentuje stav procesu, obsahuje: Max. jednu StateInitialization sekvence Max. jednu StateFinalization sekvence Libovolný počet EventDriven sekvencí reagujících na události Libovolný počet vnořených stavů (podstavů) EventDriven Sekvence spouštěná událostí (typicky Delay anebo HandleExternalEvent) SetState Přechod do jiného stavu

74 Ilustrace struktury workflow 74 Event Driven Set State State Event Driven Set State State Event Driven Set State State Event Driven Set State State Event Driven Set State Event Driven

75 State Machine Workflow Zpracování objednávek

76 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

77 Proč měnit WF za běhu? Instance workflow již běží, ale je potřeba ji změnit – bez rekompilace anebo nového nasazení Přidat dodatečnou úroveň schválení v závažné situaci Odstranit některý krok v urgentních případech Vyvolat speciální pravidla v určité situaci Zvýšit povolenou dobu pro určitý krok z důvodu nepřítomnosti účastníka Reakce na nepředvídanou vnější událost Účastník workflow potřebuje mít možnost rozhodnout, jaký bude následný krok

78 Změny – pravidla, omezení Navrhované změny musí být validovány dotčenými aktivitami Změny se provádí jenom na konkrétní instanci, neovlivní třídu workflow Provádí-li se změny zvenčí (z hostitele), je potřeba provést Suspend() instance Lze změnit pouze věci zapsatelné v XAML notaci bez ohledu na to jak je workflow vytvořeno, například: Přidat / odebrat aktivity Změnit deklarativní podmínky a soubory pravidel

79 Změna WF instance Změna prováděná zevnitř instance Změna prováděná z hostitele

80 Agenda Komunikace WF s hostitelem Komunikace WF s okolím Korelace Ošetření chyb Používání oddělených pravidel State Machine Workflow Modifikace WF za běhu Vložení WF designeru do aplikace

81 Hostování WF designeru Vložení WF designeru do vaší desktopové aplikace je licenčně i technicky možné Nicméně není zcela snadné, vyžaduje nemalé množství kódu a implementaci řady rozhraní Doporučení: vyjděte z příkladů dostupných na Internetu

82 Hostování WF designeru Designer jako prvek WinForms

83 Závěrem - proč WF? Zvyšuje produktivitu vývojáře Řeší technologické problémy Nabízí transparentní procesy Jednotná workflow technologie zdarma pro Windows XP a vyšší Vhodná pro široké spektrum scénářů Kompletně rozšiřitelné API pro vytváření vlastních řešení

84 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.


Stáhnout ppt "Workflow Foundation Základy a architektura Michael Juřek Software Architect Microsoft s.r.o."

Podobné prezentace


Reklamy Google