Title: Windows Workflow Foundation WF
1Windows Workflow Foundation (WF)
- Tufan Erdinç
- Microsoft Yazilim Gelistirme Araçlari Yöneticisi
- tufane_at_microsoft.com
- http//devtr.spaces.live.com
2Sunum Gündemi
- WF Vizyonu ve Amaçlari
- Is Akisinin Özellikleri ve Mimaris
- Akis Çesitleri
- Aktiviteler
- Özet
3Workflow Vision and Goals
Vizyon Microsoft ve Is Ortaklari uygulamalari
için kendi alaninda en iyi is akisi çözümü sunmak
- Windows uygulamalari için tek Is Akisi Çözümü
- Tüm Microsoft ve is Ortaklari çözümleri için
temel - Insan ve sistem is akislari için tek teknoloji
- Bir altyapi (framework) sunucu ürünü veya
uygulama degil - .NET üzerinde genisletilebilir framework
- .NET 3.0 Runtime bilesenleri ile dagitilir
- Is akisini .NET gelistiricileri için en temel
hale getirir - Güçlü bir is akisi ekosistemi
- Tüm uygulama gelistiricilere hitap eder
4Insan ve Sistem IsAkislarini Baglar
- Görevliler insanlar, roller
- Akis sekli esnek, dinamik
- Veri yapisal olmayan, dökümanlar
- Görevliler uygulamalar, servisler
- Akis Sekli tanimli, protokoller
- Veri yapisal, transactional
5Is Akisinin Özellikleri
6Mimari Kavramlar
Workflow
Insan ve yazilimi koordine eder
genisletilebilir modeller
Activity
App Activity Kütüphanesi
- Temel Aktivite Kütüphanesi
- is akisi yapilari
uzun sürelidir ve durum tutar
seffaf ve dinamiktiler
- Runtime Engine
- içsel davranislar
- Runtime Services
- host etme esnekligi
7Is akisi nedir?
Imports System.Workflow.Activities Public Class
MyWorkflow Inherits SequentialWorkflow
End Class
- Is akisi XML olarak tanimlanabilir
lt?Mapping XmlNamespace"Activities"
ClrNamespace"System.Workflow.Activities"
Assembly"System.Workflow.Activities"
?gt ltSequentialWorkflow xClass"MyWorkflow"
xmlns"Activities" xmlnsx"Definition"gt
lt/SequentialWorkflowgt
8Is akislari nasil olusturulur?
- Is akisi constructori aktiviteleri olusturur
(formlar ve kontroller gibi)
Imports System.Workflow.Activities Partial Public
Class MyWorkflow Inherits SequentialWorkflow
Public Sub New() MyBase.New()
InitializeComponent() End Sub End
Class Partial Public Class MyWorkflow REM
designer generated Private Sub
InitializeComponent() Me.delay1 New
System.Workflow.Activities.Delay Me.delay1.ID
"delay1" Me.delay1.TimeoutDuration
System.TimeSpan.Parse("000005") Me.Activities.A
dd(Me.delay1) Me.ID "MyWorkflow" End Sub
Private WithEvents delay1 As System.Workflow.Act
ivities.Delay End Class
9Akis Çesitleri
Insan ve sistem is akislarini destekleyen
degisik akis sekilleri bulunur.
10Is akisi olusturma
11Is Akisi Olusturma Yöntemleri
Markup ve Kod
Uygulama tarafindan
XML olarak Declarative
Sadece Kod
Uygulama aktivite agacini tanimlar
- Kod constructor içinde is akisini olusturur
- XML is akisini tanimlar
- Kod diger islemleri tanimlar
- XML is akisi yapisini mantigini ve veri akisini
tanimlar
Isakisi Derleyicisi wfc.exe
- .NET assembly
- ctor isakisini
- tanimlar
C/VB Derleyicisi
12Aktivite Nedir?
- Aktiviteler is akislarinin yapi taslaridir
- Çalistirma, tekrar kullanim ve birlestirme birimi
- Basit Aktiveteler is akisinin içindeki adimlardir
- Birlesik Aktiveteler diger aktiviteleri içerir
Örn Sirali Aktivite - Temel Aktivite kütüphanesi hazir aktiviteler
içerir - Müsteriler ve ortaklar özel aktiviteler
olusturabilir Örn SiparisOnayla - Aktiviteler de siniflardir
- Özellikler (property) ve olaylar (event) aktivite
yazarlari tarafindan belirlenir - Is akisi runtimei veya tasarimcisi tarafindan
çagrilan metotlari vardir (Örn Execute) - Is akisi uygulamalari içerisinde kullanilabilir
veya ayri kütüphaneler olarak dagitilabilir
13SendMail Aktivitesi
using System.Workflow.ComponentModel public
partial class SendMail System.Workflow.Component
Model.Activity public SendMail()
InitializeComponent() protected override
Status Execute(ActivityExecutionContext context)
// my logic here return
Status.Closed public partial class
SendMail public string subject public
string Subject get return subject set
this.subject value private void
InitializeComponent() // designer generated
this.ID "SendMail"
14Aktiviteler Opsiyonel Özellikler
Arkadas Siniflar
Designer
Designer(typeof(MyDesigner)) CodeGenerator(typ
eof(MyCodeGen)) Serializer(typeof(MySerializer))
Validator(typeof(MyValidator)) ToolboxItem(ty
peof(MyToolboxItem))
Code Generator
Serializer
Validator
ToolboxItem
Davranislar
SupportsTransaction SupportsExceptionHandlers
Transactions
public class MyActivity Activity ...
15Özet
- Windows Workflow Foundation uygulamalar içerisine
is akisi eklemek için kullanilir - Tüm Windows uygulamalari için tek is akisi çözümü
- Tüm Microsoft ve Is Ortaklari çözümü için temel
olusturur - Genis bir insan ve sistem yelpazesini destekler
- Windows ile beraber dagitilir ( OOB ve .NET 3.0)
- Aktiviteler genisletilebilir parçaciklar
- Is akisi tipleri sirali, state-machine ve kural
tabanli - Runtime içsel davranislar ve eklenebilir
servisler - Is akislari ve Aktiviteler için zengin tasarim
araçlari
16(No Transcript)