Pages

Tuesday, December 7, 2010

Bir "Workflow" tanımlamak için "Extensible Application Markup Language" nasıl kullanılır?

Windows Workflow Foundation,XAML( the Extensible Application Markup Language)olarak sözedilen XML temsilini kullanan bir "Workflow" tanımlar.Bir birbiri ardına gerçekleşen "workflow" equentialworkflowActivity olduğu düşünülebilir.

"SequentialWorkflowActivity"lere ilave durumdaki XML ilavelerinizi konumlayabilirsiniz.Bunlar sınıf ve XML düzeyli isim alanlarının isimlerini bağdaştırır durumda olacaktır.

Daha sonra "Workflow" kaydedip, onu "Visual studio" içinde açabilirsiniz.Ve sonra sıralı "Workflows" olduğunu göreceksiniz.

Burada sıralı "Workflows" veya temel aktiviteleri ayırmanız gerekmiyor;bir anlamda "State Mchine" ile basit anlamda ayırabilirsiniz."Visual Studio" geri dönerseniz bir State Machine" var olduğunu göreceksiniz.

"StateMachineWorkflowActivity" yerine "SequentialWorkFlowActivity" geri getirin.
Burada XML kot,aktivite ağacının bir XML temsilini oluşturur.Burada aktivitelerinizi container aktivitelerde birbirine geçirilmiş olarak düşünebilirsiniz.Bu durumda container olarak hizmet edecek alt seviyede olan bir root SequentialWorkflowActivity vardır.Daha sonra bir codeActivity ekleyip Visual designer'da nasıl göründüğüne bakabilirsiniz.

Simdi bir codeActivity ile sıralı bir "workflow"unuz olduğunu göreceksiniz.Bir geçerli düzeyde hatanızın bulunduğunu göreceksiniz.Burada Visual Studio,"ExecuteCode alanı henüz olmadığını rapor eder.O aktivitenin XML temsilinde , bir alan ismi ve değeri oluşturman gerekecek.Visual designer'da ki activity inceleyelim.

Diyer karşıt durumlu aktivitelere aktiviteler iç içe konabilir.Bunu bir örneyi "ParallelActivity"dir."ParallelActivity",sıralı ,parallel düzenli aktiviteler ve paralel durumda işleve konacak aktivitelerden oluşabilir.Bu üstesinden gelinen durum "Child sequence activities" herhangi bir miktarı ile "ParallelActivity" içindedir.

Notepad içine XAML kodunuzu kaydettikten sonra ,Visual designer içinde nasıl göründüğüne bir bakın.Burada üç "child sequence activities" kapsayan bir parallel activity eklediniz.

Burada "Workflow"un XML temsilinin "Workflow"un grafiksel temsili ile nasıl özdeş durumda olduğunu görebilirsiniz.Şimdi activities ekleyip yapılandırarak XML içine onları dahil etmek için ilerleyebilirsiniz.Veya onları Visual designer içine dahil edebilirsiniz.



Monday, December 6, 2010

Workflows oluşturulması ve hatalarının ayıklanması

Burada gelişimcilarin Visual Studio ile XML veya Workflow Designer kullanarak Workflows nasıl oluşturduklarını kısaca değineceğiz.


"Extensible Application Markup Language Nedir?

Bildirimsel yapı olarak "XML";

"XAML", Application Markup Language için konumlanmış durumdadır ve microsoft ile oluşturulmuş olan yeni bir "markup language"dir. Birnevi "Workflow" geliştirmek için kullanabileceğiniz XML temelli bir "declarative markup language" olduğunu söylemek mümkündür. XAML ile herhangi bir prosodür düzeyli kot yazmaksızın bir giriş düzeyli workflow oluşturabilirsiniz.


XAML, hatta Windows Presentation Foundation uygulaması oluşturmak için kullanılan "markup language" olduğunu söyleyebiliriz.


Prosedür düzeyli kotların ilişkilendirilmesi:

Kot taraflı dosyaları kullanarak XAML uygulamalarınıza "Microsoft Visual Basic veya Microsoft C# kodunu ilişkilendirebilirsiniz.Şayet bunu yaparsanız, "Workflow" iki tane dosyayı kapsayacaktır.

. XAML dosya= Bu dosya aktivitelerin tanımlamasını kapsar durumddır.

.Kot taraflı dosya= Bu dosyalar özel Visual Basic veya C# kotlarını kapsar.

Örneyin "CodeActivity" aktivitesinin işleve koyuyor olduğu "prosedür kodu" yazmanız gerekebilir. Basit durumlar için XAML kotlarınızda sıralı durumda ki kotlarınızı özelleştirebilirsiniz.


Monday, November 22, 2010

Özel Aktivite Nedir ?

Bu sınıfta "WF"nın ilişkilendirilebileceği kullanışlı yerleşik aktivitelerin geniş çeşitliliğini gördünüz.Yinede "WF" genel bir amaç edinmiş gelişim teknolojisi olmasından dolayı Microsoft,bütün olası sonuçları çözmek için genel aktiviteleri kullanır durumda deyildir."Calculating simple" değerleri gibi "CodeActivity" aktivitelerle basit problemleri çözebilirsiniz fakat koplex düzeyde ki problemlere uyumlu olmadığı için kodu tekrardan kullanmak zordur.Kendi özel aktivitelerinizi oluşturarak koplex düzeyde ki problemlerinizin üstesinden gelebilirsiniz.Yinede özel aktiviteleri "Visual studio toolbox"ından "Workflow designer"a çekerek birçok kez yeniden kullanma şansı elde edebiliriz.Aşağıda sıralayacağım durumlara bağlı olan en iyi solusyonlar özel bir aktivite gereksinir.

1-E-mail Communication

E-mails,"Workflow" ve kullanıcılar arasında iletişime geçen bir "workflow" yapısı olarak göz önünde bulunduralım.Örneyin bir çalışanın gereksindiği tatil biriçin onay aşamasını düşünürsek,burada sistem,onay ve işlevi programlama süreci için yönetici ve müdürlere e-mail gönderir.Birçok e-mail proje işlev aşamasında gönderilebilir fakat onların bütün hepsi gövdesel ve bölgesel yapıları ayarlamak için "Workflow" gereksinir.Şayet her bir e-mail göndermek için kod aktivitesi kullanırsanız,her bir kod aktivitesine kodu kopyalayıp yapıştırmalısınız ve böylece bu alanı düzenleyen sınırları olurşturabilirsiniz.Örneyin bir dizinde e-mail adressleriyle ilgili olan aktiviteler gibi "workflow",giriş parametrelerini veya diyer aktivitelerin sonucunu içeren alanlara bu alanları bağlayabilir.Özel aktivitelerinizi "toolbox"dan çekerek "workflow"a yeni e-mail aktivitelerinizi aktarabilirsiniz.

Altarnatif şekilde bir özel aktivite oluşturursanız,bir kez daha özel aktivite alanlarından gövde veya gövde yapılarını düzenleyen kod yazabilirsiniz.Örneyin dizinlerde e-mail adresini yoklayan aktiviteler,"workflow",giriş parametreleri veya diyer aktivitelerin çıkış alanlarına bağlı olarak bu alanları bağlayabilir.Toolbox yardımıyla "workflows" özel durumda ki aktivitelerinizi alarak yeni e-mail aktivitelerinizi ilişkilendirebilirsiniz.

2-Changing Activities

Yakın gelecekte değişimi muhtemel olan bir "workflow" göz önünde bulundurursak.Örneyin şimdi bir "Microsoft Office Access" veri tabanında bilgiyi yoklamak için "workflow" istediğini düşünelim.Yinede gelecek sekiz ay içinde, veri timiniz "Microsoft Active Directory" içine o bilginizi taşıyacaktır."Office Access veri tabanından hernezaman biligi gereksinimi için bir "CodeActivity" yazarsanız,veri dizine taşındığında bu aktivitelerin hepsini yeniden yazmanız gerekir.

Altarnatif şekilde Office giriş veri tabanında bilgiyi incelemek için bir özel aktivite oluşturursannız,o aktiviteyi değiştirerek ve "workflow" derleyerek basitçe bütün "workflow" daha sonra güncelleye bilir olacaksınız.özel kod aktivitelerin hepsini başından sonuna kadar kurmanız gerekmediği gibi tekrarlı düzeyde düzeltmeler yapmanız da gerekmiyor.

3-Creating Custom Composite Activities

Bir benzer bir iş mantığının tekrar edilir şekilde ortaya çıkaran bir "workflow" göz önünde bulunduralım.Örneyin çalışanlar için eğitim,promosyon ve yetenekleri belirleyip yöneten insan kaynaklarını işlevini ortaya koyan "workflow" gösterebiliriz."Workflow" yapılandırdığınızda çoğunlukla "workflow"un Active Directory'de incelemeler yaparak ve inceledikerini bir e-mail ile hedef bağlamda ki müdüre iletiğini göreceksiniz.Üstelik her bir durumda bir e-mail müdürün yöneticisinede gönderilmesi gerektiğini göreceksiniz."Workflow" yapılandırdığınız için üç veya dört aktivitenin genel bir örnekte tekrar ediyor durumda olduğunu farkına varacaksınız.Öyle durumlarda özel bir birleşik aktivite oluşturarak zamandan tasaruf edebiliriz.Bu durum bir "workflow" bölümünü biçimlendirmek için bağlanılan birkaç child aktiviteden oluşan özel bir aktivitedir.Bileşim aktivitenizi hızlı bir şekilde "workflow" designer'a çekerek yeniden kullanabiliriz.Bu yolla aynı örnek işlevi tekrar tekrar birçokkez oluşturmaktan uzak durabilrisiniz.


Wednesday, November 10, 2010

Workflows ile Hataların Yakalanması


Umulmadık koşullar,tıpkı prosedüler kodlarda olduğu gibi "workflows" kuraldışı bir durum oluşturmasına neden olabilirler.Örneyin Sistemde mevcut olan "workflow",sistemde mevcut bir veri tabanı servisi "offline" olması durumunda bu veri tabanı ile iletişim kurmak isterse,bu durumda "workflow" için kuraldışı bir durum oluşturabilir.Ve "WF" ,bu gibi kural dışı durumları yakalaya bilmemiz için bazı aktiviteleri bünyesinde barındırır durumdadır.

1-FaultHandlersAktivity:

Bir "workflow"da aşağıda belirtilen şıklarda ki gibi bir kuraldışı olay ortaya çıkabilir.

.Bir geçiş ,zaman aşımına uğrayabilir.

."ThrowActivity" kullanarak kural dışı bir durumu devreden çıkarabiliriz.

.Kod aktivitelerinde veya özel aktivitelerde bulunan kod bir kuraldışı olayı devreden çıkarabilir.

.Dıştaki bileşenler kural dışı durumu devreden çıkarabilir.

Bir kural dışı durum bir aktivitede ortaya çıkarsa, "Runtime" problemin çözümlenmesi için kural dışı bir durumu "parent activity"ye gönderir."runtime" ise "workflow" hiyerarsini entepe noktaya veya uygun bir "FaultHandlersActivity" duruma ulaşıncaya kadar kural dışı bir olayı transfer etmek için sistem içinde ilerler.Herbir "FaultHandlersActivity" ,bir veya daha çok durumda ki "FaultHandlerActivity" nesnesini kapsar.

2-FaultHandlerActivity:

Bir "FaultHandlerActivity" içinde ki herbir "FaultHandlerActivity",".NET Framework" kuraldışı durum tipi ile birleştirilir ve kural dışı durumu çözmek için işleve konabilen belirli bir aktivite ayarını kapsar.Üstelik kural dışı durumları ortaya koyan farklı tipler için farklı türde aktiviteleri işleve koyabilir.

"FaultHandlerActivity" işleve konduğunda,kural dışı durumu arz eden tipleri işlev dışı yapmış olan "aktivite", işlem boyutunda başarısız bir durumda bulunur.
"FaultHandlerActivity" aktivite tamamlandığında,bağdaşık durumda ki aktivite kapalı bir durumda bulunur.

3-ThrowActivity:

Bir "workflow" ile kural dışı bir durumu olumlu şekilde ortaya çıkarmak isteyebilirsin.Örneyin "workflow" ile basit şekilde bir veritabanı server test etmek isteyebilrsiniz ve server sistemde tedarik edilmiş şekilde deyilse "workflow" durdurabilirsiniz.Böylece kodu gereksizce kurmadan uzak durabilirsiniz.

Sistemde ki kural dışı bir durumu ortaya çıkarmak için "ThrowActivity" kullanmalıyız.Ayrıca bu aktiviteyi herhangi bir ".NET Framework"ün oluşturduğu kural dışı bir olayı ortaya çıkarmak için kullanabildiğiniz gibi ayrıca "workflow"unuzda kod taraflı dosya içeriklerinde tanımladığınız olağan dışı bir durumu ortaya çıkarmak için kullanabilrisiniz.



Tuesday, November 9, 2010

İletişim Aktiviteleri Nelerdir?


WF iletişim aktivitesi, veriyi dış kaynaklara gönderir ve dış kaynaklardan veriyi kabul eder.Genel olarak bu dış kaynaklar veritabanlarını,Web servislerini ve e-mail servislerini kapsayabilir.Bu aktiviteler bir çok workflow'un temel yapısını oluşturur.Örneyin koşullu aktiviteler,bir veritabanında veriyi kotrol eden koşullara sahip olabilir.Aşağıda belirteceğim aktiviteler sık düzeyde kullanılan iletişim aktivitelerini tanımlayacaktır.

İnvokeWebServiceActivity:

Proxy sınıflar vasıtasıyla özel durumlu parametreleri geçirerek ve sağlayarak Web servislerini çağırır. "İnvokeWebServiceActivity" kullandığınız zaman,"ProxyClass" alanını ayarlayıp kullanmak için "proxy" sınıflarını özelleştirmeniz gerekir.Hatta "methodName" alanını ayarlayarak çağırmak istediğiniz Web servis method özelleştirmemiz de gerekir.

CallExternalMethodctivity:

"CallExternalMethodActivity" bölgesel servislerle iletişim kurmak için kullanabilirsiniz.Burada bögesel servisler olarak nitelendirdiğimiz "ICommunicationService" arayüzünü işleve koyan ".NET Framework" sınıflarıdır.

HandleExternalEventActivity:

Bölgesel servislerden olayları yakalamak için "HandleExternalEventActivity" kullanabilirsiniz.Genellikle "CallExternalMethodActivity" bölgesel servisleri araştırır ve uygun parametreleri gönderir. "External" method tamamlandığında "HandleExternalEventActivity" ile yakaladığımız olaylar ortaya çıkar.

workflow örneklerinize başlamadan önce "workflow" runtime motoruna "ExternalDataExchangeService" eklemeniz gerekir ve daha sonra "ExternalDataExchangeService" servise bağlı olan özel iletişim servisinizi eklemelisiniz.

Monday, November 8, 2010

1-WORKFLOW AKTİVİTELERİ İLE ÇALIŞMAK

Bu konumuzda "Windows Workflow Foundation" özel gereksinimlerinizi karşılaması için nasıl daha ileri seviyeye getirilebilir olduğunu gösterip ,kod yapısı içinde ki özel konumlu aktiviteler nasıl oluşturulabileceğini temel düzeyde açıklamasını yapacağım.

A) GENEL AKTİVİTELER NEDİR?

"Windows Workflow Foundation" genel düzeyde ki amaçlar için genelde yerleşik düzeyde bulunan aktivitelerin önemli miktarını bulundurur.Bu aktiviteleri kullanarak,kullanıcı aktivitelerini organize etmek ve bilgisayar sistemlerini düzenlemek için koplex ve işlevsel düzeyde workflows oluşturabiliriz.Bu aktivitelerin neler olduğunu açıklayalım:

1-CONDİTİONAL:
Koşullu aktiviteler ,işlem sonucuna göre "workflow" yapılarınıza karar oluşturma bağlamını kapsayan yapıları bağdatırma ve "workflow" işlevinizi kotrolünü yapmada size destek olucaktır.Ve "WF" takip eden aktivitelerden oluşur:

. İfElseActivity. Bir kaç tane "İfElseBranchActivity" şubesinden herhangi birini koşullu düzeyde işleve koymak için bu aktiviteyi kullanırız.Herbir "İfElseBranchActivity" değişim veya gelişim için bir koşuldan oluşur.Şayet koşul "true" ile bağdaşırsa "runtime" şübe düzeyinde bulunan aktiviteleri işleve koyar.Fakat "true" ile işlev bağdaşmaz ise diyer takip eden koşulun işleve konması kaçınılmazdır.Burada diyer şubelerin, işleve konmaması durumu tıpkı "else branch" veya varsayılan düzey gibi görülmesinden dolayı enson düzeyde ki "İfElseBranchActivity" bağlı olan koşulları değerlendirmemiz gerekmez.

.WhileActivity. Bu aktivitenin koşullu durumda ki aktivitesi "true" değerlendirilir değerlendirilmez,kendi üzerinde bulunan herhangi bir aktivitenin koşullu şekilde işleve konmasıyla devam eder.Burada tıpkı C#'de ki bir "While loop" veya VB.NET benzer şekilde koşulun her bir "loop"un tamamlanmasında değerlendirileceğidir.

.ConditionedActivityGroup. Bu gurup ise koşulun "true" seviyede değerlendirilinceye kadar kendi işlevsel yapısında bulunan herhangi bir aktiviteyi sürekli düzeyde işleve koymak istersek bu aktiviteyi kullanmalıyız.Burada "ConditionedActivityGroup" içinde yer alan her bir özel durumda ki aktivite bir " When" koşulunu içerir."when" koşulu yanlız "true" ile bağdaşırsa,herbir aktivite işleve dahil olur.

.ReplicatorActivity. Bu aktivite,"UntilCondition" alanın "true" değerlendirilmesi ile beraber işlevini gerçekleştirmek için harekete geçer.

2-State Activities:

"State" aktiviteler "state machine workflows" ile kullanılır ve şunlardan oluşur:

.StateActivity- bir "state machine workflow"da ki bir durumu temsil etmek için kullanılır.Bu aktivite,diyer aktivitelerden daha iyi düzeyde becerilere sahiptir.

.SetStateActivity- "StateActivities" arasında geçişi sağlar.

.StateİnitializationActivity- "child" aktiviteler için bir kontainer ve "StateActivity" aktivitelerine girdiğimiz zaman işleve konur.

.StateFinalizationActivity- "child" aktiviteler için bir "container" görevi üstlenir.Ve bir aktivite bağlamını terketdiğimizde işleve konur.

3-Web Service Activities:

Web servis aktiviteler,"Workflow", bir Web servisine girdiğinde veya Web servisinde bir yanıtlayıcı görevini üstlendiği zaman kullanılır.

.WebServiceFaultActivity-"workflows" ile oluşan web servisi başarısızlıklarını biçimlendirmen gerektiğinde bu aktiviteyi kullanabilirsin.

.WebServiceİnputActivity-"workflow" bir web servisine veri sağlamak veya kabul ettirmeyi istediğimizde bu aktiviteyi kullanırız.

.WebServiceOutputActivity-"workflow" aktivitelerine bağlı olan bir web servis gereksinimini yanıtlamak için bu aktiviteyi kullanırız.

Sunday, November 7, 2010

"WİNDOWS WORKFLOW FOUNDATİON" UYGULAMALARINI YAPILANDIRMAK

GENEL BİR BAKİŞ

Gelişimciler genelde "Windows Workflow Foundation" kullanarak "workflows" yapılandırma işlevini öğrenmeyi daha basit kazanırken ,yinede "Visual Studio ve C# ve VB.NET gibi .NET dillerede aşikardırlar.
"workflow runtime" yazılım altyapında iş projelerini gerçekleştirmek için gereksinilen görevlerin bir çoğunu üstlenir durumdadır.Hatta "Windows Workflow Foundation" , "workflow"da ki yerleşik durumda ki aktiviteler ihtiyaçlarınızı karşılamadığı durumda,"VB.NET veya C# ile bütünleşerek bir nevi "workflow" işlevini genişletebilmek için geniş bir platform sağlar.Bir "workflow" işlevini genişletmek,basitçe bir kod içinde bir aktivite veya runtime servis yazmaktan ibaret olan genel bir durumdur.Birde "workflow"un dizynını yaptığımız "workflow designer" üzerine "toolbox"dan herhangi bir kod aktivitesini çekebildimiz gibi "code window" seçenegine iki defa "click" işlevinide gerçekleştirebiliriz.Böylece gerekli kodu da yazmış oluruz.
Basit düzeyde ki bir iş projesinden bir "workflow" oluşturma işlevi, yapılan işle ilgisi olan kişiyle veya bir iş analisti ile bağlantı sağlanarak gerçekleştirilir.Bu etkileşimde gelişimcilerin rolü ise "Windows Workflow Foundation" kullanarak yapılandırılacak olan yazılıma iş çalışanlarının söylediği şeyi tercüme etmektir.
Bir "workflow" yapısında bir projeyi biçimlendirmek ise, birnevi "Windows Workflow Foundation"nun yardımı olmadan elle kod yazımının getirmiş olduğu sonuçlar gibi gelişimcilerin iş çalışanlarıyla beraber olduğunda iyi düzeyde görevleri üstlendiği anlamına gelir.Hatta dökümantasyonlanarak basılabilen ve ayrıca giriş ve geçerlilik kapsamında iş çalışanlarında yeniden gösterilebilen projenin görsel bir modelini sağlar.Bir birini izleyen model yapısı iş akış şeması gibi görünmesine delaleten iş projelerine ilgisi olan birçok insanla anlaşılır düzeydedir.Bunun anlamı programlama kod içeriğini kullanmanın yerine herhangi bir gelişimcini yardımı olmadan bu modeli kullanırsak olası sonucun daha hizlı ve akıcı düzeyde ulaşılabileceği anlamına gelir.Genellikle "Visual Studio 2008" ile yapılandırılan dizayn parçaları gelişimcilerin kullanım alanına girdiği gibi dorudan iş çalışanları ile kullanılabilir.Bunu temel nedeni "workflow runtime" ile işleme konulan "workflows" bilgisayarla gelen "workflow runtime" ile dorudan işleve nasıl konulduna ilaveten bu işlevi gerçekleştiren gelişimcinin bilgisayarda nasıl çalıştığını ve kodu nasıl işleve koyduklarını bilmek önemlidir.Bu durum iş modellerinde ortaya çıkan duruma odaklanma veya işleve sahip olmayan modeller üretebilen fakat bir projede ki çalışan ve yazılım işiyle uraşanlar arasında genel bir anlam düzeyini oluşturmayan bir çok yüksek seviyede ki biçimleme parçalarından farklı düzeydedir.
"Workflow runtime" sizin için iş projelerinin işleve konması için gereksinilen bir çok çalışmayı yaparbilir.Ve "Windows Workflow Foundation" kullanımının neticesinde,iş çalışanlrıyla iletişim kurulan zaman dilimini ve genel gereksinimleri anlamayı daha basite indirgeyebilir düzeydedir.

Friday, October 22, 2010

Scheduling Servis Nedir?

Windows Workflow Foundation ,uygulama duzeyinde bulunan 'Workflow'(CPU)'da kullanmış olduğu işlevsel durumdaki tehtitlerinin kotrol edilmesini çalışmanız esnasında size sağlar durumdadır.Bu nedenle eyer 'Workflow' işleme tabi tutulur ve sonuçları yeterli seviyede anlam içermiyor durumdaysa,bu durumda sistemde bulunan 'Scheduling' servise başvurarak sistem hata ve tehtitlerini kotrol edebiliriz.


Normalde varsayılan düzeyde ,Windows Workflow Foundation runtime,herbir 'Workflow' örneyi için yeni bir düzeyde tehtit içeren 'DefaultWorkflowSchedulerServer' kullanır durumdadır.Bu sistem işleyişini tehtit eden durum,host(konukçul) uygulamaların kendi işlevlerini gerçekleştirmesi sırasında bloke duruma gelmemesi için eşzamanlı olarak 'Common Language Runtime Tread pool(CLR)' aracılırla belirli düzeyde işleme tabi tutuluyor.


İşterseniz 'Workflow' ,'ASP.BET Wep uygulaması veya Wep service' gibi server temelli (host) uygulamalara (host) edebiliriz.Bu (host) uygulamalar sistem işleyişinde herhangi bir tehtit örneyi ile karşılaşırsa bulunan tehtidi dorudan 'Workflow' örneyindeki (CLR) ile işleme tabi tutar.Ve bu sayade hedef örnek veya ornekler, işlem düzeyindeki uygulama ve 'Workflow' arasında senkronize yapılarak 'Workflows'da bulunan (CLR) sayesinde en şekilde kullanılır hale getirilir.Ve bu kullanılabilir hale getirilen örnekleri yeniden kullanılması için 'DefaultWorkflowSchedulerServer' yerine 'ManualWorkflowSchedulerServer' kullanarak sisteme geri yükleriz.


Sistemde özel şekilde tehtit örneyi içeriyorsa,'SchedulerService' sınıflarından ödünç aldığımız parçalarla özel bir 'scheduling services' oluşturabiliriz.Fakat yinede bu özelşekilde yapmak istediğimiz 'scheduling services' çoğu uygulamalarda yapılabilir durumda deyildir.

Thursday, October 21, 2010

Tracking Servis Nedir?

Herhangingi bir 'Workflow' geliştirip ve akabinde teste tabi tutarsak,'Workflow' kurum aşamasını etkili ve hızlı şekilde yapmak için, oluşturmuş olduğunuz 'Workflow' işlevsel boyutta en iyi düzeye getirmeyi deneyeceksiniz.Budan dolayı ne gibi aktivitelerin işleve tabi olacak ve bu işlevlerin gerçekleşme zamanlarını kayıt altına almak isteyeceğiniz aşikar.Ve bir uygulamaya 'Workflow' konuçlandırdığınızda,tipik bir kullanıcının ,'Workflow'un hangi bölümlerini sık ve hangi bölümlerini seyrek düzeyde işleme tabi tutmaktadır? Gibi,'Workflow' kullanarak yapmış olduğu bu aktiviteleri nasıl çalıştırdığını bilmek isteyebilirsiniz.


Bu noktada yukarda bahsetmiş olduğum 'Workflow' bölümleri hangi sıklıkta ne derecede kullanılmış? Gibi soruların bilgisini bir araya getirmek için işleme tabi olan aktiviteleri kayıt altına alan, ki bu durum 'Workflow' örneklerinin herbir örneyi işlemde kullanıldığında gerçekleşir,'Windows Workflow Foundation Tracking Service' kullanabilirsiniz.


'Windows Workflow Foundation Tracking Service ,Herhangi bir 'SQL server veritabanında 'Tracking' bilgisini depolamak için kullanılabilen 'SqlTrackingService' sınıfı bulundurur durumdadır.Şayet 'tracking' bilgisini başka bir alanda konumlandırmak isterseniz,'TrackingServices'servislerden birkaç işlevi devralarak kendinize özel bir 'tracking' servis oluşturabilirsiniz.

Wednesday, October 20, 2010

'Transaction' Servis Nedir?

Bir çok programlama teknolojisi, verilerin tutarlı şekilde seyrini devam etirip ettirmediğini ve karşılaşılan hataların veya umulmadık olayların ortaya çıkıp çıkmadığını belirlemek için 'transactions' kullanır.Ve 'Windows Workflow Foudtion' yapmış oldunu 'Workflows'da 'transactions' tanımlamnıza imkan tanıyacak.


Örneyin para ödeme sistemlerini(ATM)gözönünde bulundurursak,bir müşterinin kredi kart borç durumunu,ödenmiş olan borçları ve tüm bular hakkında gerekli bilgiyi(kartın durumu hakkında) e-mail ile gönderen bir 'Workflow' oluşturabiliriz.Bir müşteri kredi kart borcunu ödemek isterken işlev halinde olan 'Workflow' diagramında herhangi bir hatanın oluşması,müşterinin ödemek istediği borcu ödemiş olarak göstermediği gibi müşteri kredi kartında ilave borçların çıkmasınada vesile olabilir.Ve hatta 'Workflow' örneyinin bağlı olduğu veri tabanı yeniden başlayacak olursa da aynı durumun gerçekleşebileceğini düşünebiliriz.


İşte bu gibi senaryoların ortaya çıkmasını engellemek için 'TransactionContext activity' kullanarak 'Workflows' içine 'Transaction' oşuşturabiliriz. Ve 'TransactionContext' aktivitesinde bulunan birçok aktiviteyi 'Workflow' uygulamasına ekleyebiliriz.Şayet sistemin işlevinde henhangi bir başarısızlı ortaya çıkarsa,'Workflow' eklenen başlangıç durumunda ki'Transaction' otomatikmen diskalifiye edilip,müşterinin sistem üzerinde gerçekleştirmiş olduğu işlemler ilk başlangıç durumun getirilir.
Örneyin bu durum bir müşterinin herhangi bir kart borcunu ödemek istemesi sırasında ortaya çıkabilir.Bu sırada sistem işlevini gerçekleştiren 'Workflow' diagramı bir nedenden ötürü yeniden başlasa da müşterinin sistemde ki varolan verilerinde herhangi bir kaybın olması söz konusu olamaz.Daha açık şekilde belirtmek gerekirse, müşteri tüm işlemlerini gerçekleştirirken,her hangi bir nedenden dolayı sistemin yeniden başlaması 'Wokflow' da bulunan 'Transaction' olası bir veri kaybını engeller.



Tuesday, October 19, 2010

Persistence Servis Nedir?



'Windows Workflow Foundation' ile biçimlendirebileceğiniz herhangi bir iş projesi herhangi bir hatadan dolayı günler veya aylar sürebilir.Örneyin ,bir gelişimcinin çözüme ulaşmadan önce ,uzun zaman diliminde bir kaç işlemi hatalı şekilde takip etmiş olduğu farkına varıp, ortaya çıkarmış olduğu bir problemi, arka plana atması iş projesinin seyrini uzatabilir.Bu gibi zaman dilimlerinde 'Workflow' işlevseliğini kullanmak bence sorunun çözümüne yarar sağlamz.Başka bir örnek verecek olursak;Sistemi iş ortamında test edici görevini üstlenmiş bir kişinin iş günü sonunda bir problemin olduğunu farketmesi olarak tabir edebilriz.Ve ertesi sabah gelişimci kardeşimizin problemi tesbit edene kadar,hedef örnek bir geceliğine (inactive) durumunda kalacak bu sistemde geri dönülmez hatalara yol açabilir.



Host(üzerinde çalışilan program) uygulama projelerinde,uzun dönem çalışılan veya işe yaramaz bir 'Workflow' örneyini muhafaza etmek mantıklı gibi görünmüyor.Bence birçok gereksiz 'Workflow' örneyini host durumdaki uygulamada muhafaza etmek bellek israfına yol açmaktan başka bir işe yaramaz.Üstelik host uygulama projesi,yapılmak istenen 'Workflow' örneyinin bitmeden uygulamayı yeniden başlatabilir.Ve host projesi yeniden başladığında,'Workflow' örnekleri doğal olarak durur.Bu 'Workflows' dizaynı kapsamında istenmeyen birşeydir.



Bu problemin çözümü, yapmış oldumuz 'Workflow' uygulamalarını kaydetmek için Windows Workflow Foundation'da bulunan 'Persistence servisleri kullanmamız gerektiğidir.Böylece bir 'Workflow' örneyinin 'Workflow runtime' ile ön belleğe kaydının alınması gerektiğinde ,'Workflow', dorudan 'Workflow Runtime' belleginden yüklenmiycekdir.Daha ziyade daha sonra 'Workflow' aktive edilmek istendiğinde 'Persisten servis' kullanılarak 'Workflow runtime' ön belleğine 'Workflow' kayıt kayıt edilebilir.



'Window Workflow Foundation,SQL Server veri tabanına Workflow örneklerini kayıt edebilen (SQLWorkflowPersistenceServisclss) bulundurur.Yinede 'Workflows' başka bir bölgeye kaydetmek niyetinde olabiliriz,bu durumda kendimiz özel 'persistence service' oluşturmamız mümkün.





Monday, October 18, 2010

Windows Workflow Foundation Altyapısı

WİNDOWS WORKFLOW FOUNDATİON ALTYAPISININ İNCELENMESİ

'Workflow'un altyapısal temelinde (runtime) servisler var.Ve ayreten bu servislere, diagramın gelecekte ki düzeyini temsil etmesi açısından ve (runtime) davranışını kotrol etmesi için 'WF' (runtime) ekleyebiliriz.(Runtime)mı açıklayacak olursak,genel tabiriyle bir çok aktif belirlemelerin kullanıdığı genel durumda ki işlevselikleri sağlayan (activity framework) olarak tabir edebiliriz.Framework ise birtür kendi bünyesinde bulunan aktivitelerin toplam miktarı olarak nitelendirebiliriz.Bunun yanıda 'Workflow'larda aktiviteleri bir araya getirebilir ve 'Visual Studio' kullanarak özel aktiviteler oluşturabiliriz.Şimdi sizlere 'WF' alt yapısını açıklamamın yanında bu alt yapının temelinde bulunan runtime servislerden sözedeceğim.İlk bu alt yapıda bulunan runtime servislerin kısa açıklamalarıyla başlamak istiyorum.Daha sonraki makalelerimde size bu servisleri kapsamlı şekilde anlatacağım.


Activites= Windows Workflow Foundation,e-mail göndermek, hataları yakalamak,kot kurmak veya diyer işlevleri yerine getirmek için kullanabileceğimiz birçok aktiviteyi beraberinde sağlıyor.


Activity Framework=Activity framework, validation(geçerlilik),fault handling( işlev bozukluklarını yakalama) ve derlemeler gibi bir çok aktiviteyi kullanan genel düzeyde bir işlevselik sağlar.


Workflow Runtime= Workflow runtime ,konukçul uygulamada workflow örneklerini işleve koyan bileşendir.


Persistent Services=Persisten servis,bir 'workflow' uzun mütdet çalışma koşularına maruz kalması durumunda,fazlalık durumunda ki 'workflow' örneğini veri deposuna kaydetmek için kullanılabilir.


Transaction Services=İletişim ve diyer başka düzeydeki başarısızlık olaylarında veri tutarlılığınızı kati kılmak için bu servisi kullanabilirsiniz.


Tracking Services=Her bir 'Workflow' örneğinde hangi aktiviteler işleve konacakğının kaydının tutulması için kullanılır.Hatta her bir aktivitenin ne zaman işleve konacağının kaydının tutulabildiği yerdir.Ve 'Workflow' ait sorun ve hata bulmak için (Tracking services) kullanabiliriz.


Scheduling Services=Bu servis ,bir 'Workflow' runtime, 'Workflow' örnekleri için iş parçalarını nasıl oluşturduğunu kontrol etmek için kullanılabilir.









Sunday, October 17, 2010

Diyer Microsofy Server Ürünlerinde Windows Workflow Foundation

Microsoft,diyer yeni gelen server ürünlerinde veya bilinen server ürünlerinin yeni versiyonlarında iş projelerini biçimlendirmek için 'Workflow Foundation'nu kullanır.Aşağıda belirteceğim başlıklar bu ürünlerin 'Workflow' nasıl kullandığını tanımlıyor.


1-Speech Server= Microsoft Speech Server, basit sistemlerde Web teknolojileri,konuşma işlevinin düzenlendiği proje servisi ve telefon işlevini düzenler. Ve ayrıca telefon(yanlız sesli) ve çok doruklu(ses ve görsel) işlevleri geliştirmek ve dağıtımını gerçekleştirmek için Microsoft Speech Server kullanabiliriz.Speech Server ,uygulamalara, konuşma arayüzü oluşturmak için konuşma kabulü ve konuşma sentezi uygular.

Microsoft Speech Serverda,uygulama ve kullanıcı arasında iletişimi oluşturmak için 'Workflow' aracılıyla bir uygulamaya sesli arayüz yapılandırabiliriz.
Speech Server 'Workflow' aktivitelerinin geniş bir miktarını kapsar,örneyin kullanıcılara bağlı olarak bir mesajın okunmasını sağlayan'Statement Activity',sesli mesajların kaydedilmesini sağlayan 'RecordMessageActivity ve kullanıcıdan sesli yanıtları gelde eden 'QuestionAnswerActivity.


2-BizTalk Server= Microsoft BizTalk Server, iş projelerini otomatikleştirme ve özeleştirmeyi şirketlere sağlar.Ve bizTalk mesajlaşma ,sistemlerin geniş miktarıyla iletişime geçmeyi imkan tanır.BizTalk orchestration ise,basit bir iş projesinde bir çok sistemi organize edilmesini sağlar.

BizTalk 2006,büyük çaptaki iş projelerinde uygulama ve Wep servislerini eş düzeyde çalıştırmak için 'XLANG' kullanır.Ve burada'XLANG' ,orchestration işlevini kapsayan adımları tanımlayan bir 'XML' dildir.


BizTalkın, daha ileri versiyonu 'orchetration' için WF kullanır.Ve'WF' tam kullanıcıları organize ediyor olması yanında bilgisayar sistemlerinide organize etmesi 'orchestration'ların 'WF'kullanmalarının nedenini açıklar.XLANG yerine,'BizTalk'kın daha ileriki versiyonları 'Workflow'ları tanımlamak için 'XAML' kullanacak gibi görünüyor.


3-System Center Server=System Center Server ,IT profesyonellerine yönetim düzeyinde yardım sağlamak için araçlar ve bilgi sağlamayı hedefleyen, sistem yönetim ürünleri ve solusyonlarının Microsoft ailesi diyebiliriz.Ve hatta IT altyapınızda ki System merkezini bazı görevlerin kotrolünün yapılması için kullanabiliriz:

.Operation management(operasyon yönetimi)
.Change management(yönetici değişikliği)
.Configuration management(yapılandırma yönetimi)
.Asset management(kazanç yönetimi)
.Problem management(problem yönetimi)


'Workflow'ları kullanarak yönetimsel işlevselliğine sahip bu sistemlerin hepsini organize edebiliriz.System Center Server 'Workflow engine' olarak 'WF' kullanır.Ve System Center Server ,Microsoft Operational Framework(MOF) standartlarına bağlı olan her bir yönetimsel düzeydeki görev için tanımlanmış olan 'Workflow'lardan oluşur.Sistem yönetiminizi kotrol etmek için 'Workflow'ları kullanabilir, özelleştirebilir veya kendinize ait olan 'Workflow'lar geliştirebilirsiniz.


4-İdentity İntegration Server=Microsoft İntegration Server(MIIS),organizasyonlar için çok boyutlu dizinlerle kimlik bilgisini kapsayan ve depolayan bir merkezi servistir.'MIIS', kullanıcılar,uygulamalar ve network kaynakları hakında bilinen bütün kimlik içeriklerinin kapsamlı bir incelemesini organizasyonlara sağlar.

İdentity management ,çoğu kez koplex düzeyde iş projelerine içerlenmiş durumdadır.Örneyin ortağı olduğu şirketle çalışan bir organizasyonu gözönünde bulundurabiliriz.Bu organizasyon ,her iki şirkette de müdür onayına ihtiyaç duyan çalışma ortamında ki kullanıcılar için kimlikler oluşturması gerekir.Burada 'Workflow' bu onay projesinin yönetimini gerçekleştirmek için ideal düzeydedir.Bu nedenle 'MIIS'in gelecekteki versiyonu 'WF' kapsayacak diyebiliriz.

Tuesday, October 12, 2010

Windows Workflow Foundation ve SharePoint ürünleri ve teknolojileri

Microsoft SharePoint ürünleri ve teknolojileri organizasyonlar,müşteri ve iş ortaklarıyla iş birliği düzeyinde çalışmalar yapmaktadır.Microsoft Windows SharePoint ve Microsoft Office SharePoint Portal server'ın bir araya getirilen iş birliği kapsamında ki belirlemerini kullanarak,organizasyonda ki kullanıcılar basit şekilde iş birliği kapsamında kullandıkları wep-sitelerini olüşturabilir,yönetebilir ve ayrıca yapılandırabilirler ve organizasyonların ve diyer işbirlikçilerinin bu wep-sitesine ulaşabilirliğine imkan tanırlar.SharePoint ürünleri ve 2007 teknolojileri kullanıcılarının organizasyonlar arasında işbirliği oluşumunu organize etmek için 'WF' kullanacaktır.Ayrıca'Workflow'ları kullanabileceğimiz üç ayrı teknolojinin varlığı sözkonusu ve bunlar:


1-Yerleşi düzende(built-in) Workflow kullanımı:

Windows SharePoint Servisler birtakim genel düzeyde bazı basit oranda Workflowları kapsamaktadır.Örneyin dökümantasyon onayı için gerekli olan Workflowlar.

Bu 'Workflow'ları kullanmak için ilk Windows SharePoint servisinden basit derecedeki Workflow belirlemelerini aktive etmeniz gerekir.Daha sonra kullanıcılar listeden bu belirlemeleri seçerek ve bu belirlemelerin alanlarını ayarlayarak kendi timleri ve işbirliği içinde oldukları sitelerde ki basit düzeyde 'Workflow'ları bunlara ilişkilendirebilirler.


2-SharePoint designer kullanımı:

Yerleşik düzende olan 'Workflow'lar SharePoint sitesi için etkili durum arzetmiyorsa,SharePiont designer kullanarak kendi özel 'workflow'larınızı oluşturabilirsiniz.Microsoft Office SharePoint designer 2007 SharePoint sitesine güçlü parçaları yapılandırmak,özelleşetirmek ve katkıda bulunmayı size olanak sağlayan Wep sitesi gelişim ve yönetim programı olarak tabir edebiliriz.

SharePoint designer işbirliği içinde veya çalışır durumda oldunuz siteye yakın anlamda bakış ve duyalılık sağladığı gibi belirlemelerin raporlama ve takip aşamalarınıda yapabilir düzydedir.Ve ayrıca Workflow designer kullanarak 'Workflow'ları oluşturabilir ve yönetebilir durumdadır.


3-Visual Studio kullanımı:

Bazı durumlarda 'Workflow' gereksinimleri ,yerleşik düzendeki workflow ve SharePoint Designer ile biçimlendirmek için çok fazla komplex durumda olacak.Örneyin bir e-mail göndermek için 'workflow'larda özel prosüdürel (code) yazmak isteyebilirsiniz.Bu durumda komplex bir 'workflow'yapılandırmanız gerekecek.

Komplex durumda Workflow yapabilmek için Visual Studio 2008 kullanmanız gerekir.Ayrıca burada WF bütün belirlemelerine girebilir ve özel anlamda code yazabilirsiniz.Özel olarak designer yaptığınız 'workflow'ları tıpkı herhangi bir ASP.NET wep uygulamasına ilişkilendirdiniz tarzda SharePoint (site)sinede ilave edebilirsiniz.

Monday, October 11, 2010

Microsoft ürünlerinde Windows Workflow Foundation uygulaması

.Net Framework 3.5'in Windows Vistayla olan ilişkisi
Windows vista aerodinamik şekilde yapılandırılmış kullanıcı arayüzü , gelişmiş masa üstü araştırma parçaları,microsoft internet explorer 7, gelişmiş ses belirlemeleriyle ve ayrıca herhangi bir windows versionundan daha yüksek derecede bir güvenirliyle göze çarpıyor.Windows Vista .Net Framework 3.0 kapsar durumdadır.Buradan Windows Presentation Foundation,Windows Communication Foundation,Windows CardSpace ve Windows Workflow Foundation Windows Vistada ilişkilendirilmiş durumda anlamını çıkarabilriz.
Vindows Vista bütünüyle .Net Framework 3.5 destekler durumdadır fakat Visual Studio 2008 düzenlemek veya download etmek zorundasınız.
Windows Workflow Foundation uygulamalarını Windows Vistaya dağıtımının
gerçekleşmesi
Windows xp veya Windows'un basit versionlarında 'workflow' kurmak için,'ilk .Net Framework 3.5 kurmamız gerekecek bu altyapıyı kurmamız bizim 'Workflow' kurmak için gereksindimiz 'Workflow runtime' elde etmemize vesile olacak. .Net Framework 3.0 Windows Vistada yapılandırılmış durumda olduğu için 'workflow' uygulamalarını dağıtmadan önce 'Framework' düzenlemene gerek yok.'Runtime 'workflow' örneyini kurmak için yazır vaziyettedir.
Windows Workflow Foundation ile 3.0 veya 3.5 gibi özel versiyonları hedefleye bilir olmana rağmen,Visual Studio 2008'i kullanarak oluşturulan 'workflow'larla bütünleştirme uyumluluğunu kesinleştirmek için .Net Framework 3.5 runtime düzenlemen gerektiği önerebilirm.

Friday, October 8, 2010

Workflow Tipleri


Birçok farklı senaryo tipleri, bilgisayar sistemlerinin ve toplumsal etkinlikleri kordineli bir şekilde işeltimini gerçekleştirmek için gelişimsel düzyde organizasyonlarda çalışanlara ihtiyaç duymaktadır.Örneyin bilgisayar sistemlerini, toplumsal düzeydeki etkinlikleri ve her ikisinden oluşan bir karışıma sahip olmanız durumunda işlevsel düzeydeki etkinliklerin itiva edilmesi muhtemeldir.'WF' bir çok senaryo için solusyonlar yapalir olduğunu öne sürersek,'Workflow'un iki türünü seçelirlir durumda olacakğımızı düşünebiliriz.Aslında veri güdümlü 'wokflow' olan üçüncü bir türüde yok deyil hani.Burada veri güdümlü 'Workflow'ların ne olduna dair açıklamalar da yapıcaz.Şimdi 'Workflow tiplerini incelemeye başlayalım.

SEQUENTİAL=
Burada (Sequential workflow) ön tanımlı bir düzende işleyen aktivitelerin bütününden ibarettir.Sitem, işlem düzeyine entepeden başlayıp son akış konumuna kadar bir akış düzeni itiva etiğini söyleyebiliriz.'Sequential workflow' döngüleri,koşullu testleri ve diyer akış kontrol yapılarını kapsayabilir.Yinede 'workflow'larla akış düzenleri ve akış düzenlerini takip eden adımların sınırlı miktarıyla karşılaşmaktayız.
Örneyin teknik bir zaman dilimi için hazırlanan bir uygulamada programlanmış 'workflow' oldunu düşünebiliriz.Ve bu zaman dilimi için oluşturulan 'Workflow' birçok kişiyi kapsayabilir.

.Bir müşteri temsilcisi ,hazır olan program üzerinde yer ayırmak isteyebilir.
.Yönetici kişi bir işin tamamlanabilmesi için yetenekli bir teknisyen seçebilir.
.Web servisi,ayrılmak istenen yerin var olan bir programla çakışmaması için kotrol seviyesindedir.
.Yönetici,akış düzeyinde ki bütün koşulların gerçekleşmesinin ardından son olarak belirlenen yerin belirlenen kişiye tastik edilmesi için onay veren konumundadır.


Bu örnekte bir kişi için yerin ayrılması,belirli adımların sınırlı düzeyde atılarak oluşturulan akış diyagramlarını kapsayan 'Workflow'lar sayesinde olur.Örneyin bir kişi için ayrılmak istenen yer başka bir kişinin planlamış olduğu programla aynı güne iştirak ederse,bu başka bir boyuttaki çatışma durumunda ki referans olarak belirlenen yerden 'onay prosödürü' kaç basit adımı takip ederek geri gönderilebilir olmasına rağmen,bu geri gidişatın akışını tayin eden 'Workflow sayısı sınırlı düzeyde diyebiliriz.Fakat yinede 'sequential workflow'ların sistem boyutunda herzaman basit bir işlevi olduğu anlamı çıkarılamaz.

STATE MACHİNE=
'State machine workflow' bir workflow örneyini bir durumdan diyerine değiştiren durum ve geçişlerden işlevelrini itiva eder.Başlangıç ve sonuç durumlarının arzetmesine rağmen,beraberinde gelişen durumlar daha çok akış düzeni üzerine odaklanmaz.Ve basit bir örnek bir çok alanda 'workflow'larla taşınabilir.

Örneyin 'helpdestek workflow'u gözönünde bulundurabilirsiniz. Her bir problemlesel işlevi çözümlenmemiş bir konum itiva eder.Ve bu düzey bir takım işlevlerden sonra şu aşamaları kapsayabilir:

.'Support technician' bir problemi kullanıcı için çözdüğünde, sistem için çözülmeyi bekleyen girdi çözülmüş bir evrede degişimin sonucu oluyor.
.Bir kulanıcı işlev düzeyindeki solusyonu çalıştıramadığında,sistem için çözülmeyi bekleyen girdi çözümlenmemiş bir durum olarak beyan edilir.
.'Support technican' problemin çözümünü bulamadığında sistem için çözülmeyi bekleyen girdi artışın görünümünü itiva eder.

Problem daha çok çözünürlük ve doğal bir artış durumuna taşınabildiği gibi herhangi bir zaman diliminde çözümlenmemiş durumada geri taşınabilir. Daha çok toplumsal etkinlikleri temsiliyetcileri işlevsel bir düzen tesbit eder durumdadır.

DATA DRİVEN=
'Data-driven workflow',ek bir kaç sınırlandırılmış aktivite gurup ve poliçeleri itiva eden 'Sequential workflow'diyebiliriz. Veri güdümlü ve belirli bir kurala tabi olan workflowlarda,dıştaki verilerin kotrolünü itiva eden kurallar bir nevi 'workflow'un işlevsel alanını belirler durumdadır.Daha çok sınırladırılmış aktiviteler, ortaya çıkabilecek aktivitelerin tesbiti için kurallar çercevesinde konrol mekanizmalarını işletir.

Tekrardan teknik bir zaman diliminde beyan edilen bir onaysal yapının, uygulama boyutunda programlanan bir workflow olduğunu düşünelim.Birde burada teknik düzeyde çalışanların verimini artırmak ve yönetici pozisyonunda olanların ise iş yükunü düşürmek için,işlevsel düzeyde olan'Workflow'a bazı bir kaç kural ekliycez.

.Bir teknisyenin kişisel gelişimi için belirlenen zaman dilimi bir önceki aya göre %10'dan daha az düzyde ise,Sistem otamatik olarak kararlaştırılmak istenen zaman dilimini işleve tabi tutmaz.
.Uygun yetenekleri olmayan bir teknisyen, belirli bir zaman dilimi için beyan etmek istediği talep ulaşılabilir düzeyde deyilse,bu durumda sistem yönetici konumunda bulunan şahısa hiçbir talep göndermemesi gerekir.

Veri güdümlü 'Workflow'ları kullanarak,sisteminizde bu tip kurallar oluşturabilrsiniz.


Tuesday, October 5, 2010

Workflow senaryoları

Windows Workflow Foundation, satış prosüdürleri veya bilgisayar sistemlerine bağlı olan kredi kartı ödeme sistemlerini kapsayan projeleri biçimlendirebilir.Karışık yapıların farlı düzeyde oluşumlarını biçimlendirmemiz gerekliliği Windows Workflow Foundation iki farklı tarzda Workflow oluşumuyla sonuç bulur.Bunlar ardı sıra giden Workflowlar ve state machine(durum makinesi) Workflowlar olarak bilinir.Ardı sıra giden Workflowlarda, aktiviteler belirli düzende belirlenmiş şekilde işleme tabi tutulurlar ve Workflowların açık şekilde başlangıç ve bitim noktaları vardır.Ardı sıra oluşan Workflowlar döngü,kolara ayrılmış sekilde devam eden yapılar ve veri akışın kotrolünü saylayan yapıları kapsayabilir.Fakat burada başlangıçtan sona doğru tanımlanmış bir yol yoktur.

Workflow dizaynerda,workflow en üst seviyeden başlar ve aşaya doğru projelenir. Ardı sıra izleyen workflowlar,wokflow modeli çalışma ortamı sakinlerine göşterdiğinde ve bir projenin geçmişte oluşmuş basamaklarının takibinin yapılamsına gerek kalmadıgında iyi bir şekilde çalışacağı bir gerçektir.Örneyin bir uygulama ,bir müşterinin destek gereksinimini elde etmek için uygun durumdaki çalışana bir e-mail göndermesi gerekirse, sistemin e-mailı kimin gönderdiğini tesbit etmesi gerekir.Workflow mantığı ,şu anda elimizde bulunan talep etimiz kaynağı paylaşmak için uygun yeteneklere sahip olduğu gibi kimin olduğunu ve en ucuz kaynak hangisi olduğuna karar verme aşamasını oluşturur.Yinede Sonuç yine aynı ,yani sistem yine e-mail gönderiyor.

Durum makinesi workflowda,ardı sıra izleyen workflowların aksine,akışın hiç açık bir gidişatının olmadığı onun yerine daha çok durumlar arasında ki geçişleri tetikleme gereksinimini tanımlayan durumlar ve olayların miktarını ortaya koyar. Durum makine workflowrın çalışma sakinleri,daha çok komplax durum dizaynı hakında bilgisi olan yazılım gelişimcileri olduğunda iyi şekilde çalışıyor.Ve durum makinesi workflowlar ,bir biri ardı izleyen workflowlardan daha koplex alanların oluşumunu sağlıyor.

Örneyin yazılım geliştiriciler için bir hata takip uygulamasında,hata bir çok durumda ortaya çıkabilir; yeniden çözülme,kararlaştırılmış ve proje ilerlerken.Hata daha çok gelişimciler bir problemi paylaştığında,hata çözümlenmemişten kararlaştırılmışa doğru hareket eder durumdadır.Yinede test eden kişi bir problemi ortaya atarsa, sistem içinde hatayı geri çözülmemiş duruma taşıyabilir.Bu durum testeden kişi hoşnut durumda olana kadar çoğu kez tekrarlanabilir.

Monday, October 4, 2010

Gelişiciler 'Workflow Foundation'u kullanarak nasıl pratik şekilde çalışıyorlar?

Hatırlayacağınız üzere bir 'Workflow' geliştirdiğinizde bir iş projesi modeli oluşturmuş olursunuz.Bir projenin ortaya koyduğu bütün adımların olası sonuçlarını tesbit edebilmek için ilk önce bir iş projesine yatırım yapmanız gerektiğidir.Örneyin Bir offis çalışanın tatil gereksinimini onaydan geçirecek olan müdür ofis dışında olması durumunda veya offis içinde çalışan başka bir işçinin daha önce tatil için planladığı günle, bir tatil için gün belirlemeyi düşünen başka bir işçinin tatile çıkmak istediği gün aynı tarihlere iştirak edme durumu bibi olasılıklar göz önünde bulundurularak iş projesi hazırlanma aşamasına girilmelidir.

Küçük çaptaki organizasyonlarda işletme bazına tesis edilmeyen iş analistleri yerine,gelişimciler bütün yatırım sorumluluğunu üzerlerine almak durumundadırlar.Gelişimciler bu zor durumdan ancak 'Windows Workflow'larla çalışarak teknik problemleri arka pilana atıp daha çok proje bazında çalışmalara odaklanarak çözerler.Bunun yanında daha büyük bütçeli daha büyük organizasyonların, bütün yatırımları üzerine alan uzman durumunda ki iş analistleri vardır.

Bir 'Workflow' diagramı Visual Studio'nun Workflow dizaynırında yapılan'Workflow'lara benzer durumdadır.Buna takiben iş analistleri 'Workflow' diagramlarıyla daha haşır neşir olmasından dolayı, 'Windows Workflow Foundation' gelişimcilere iş analistleriyle daha yakın pozisyonlarda çalışmasına olanak sağlar.

Doru zamanda doru yatırımların gerçekleştirilmesi durumunda ,bütün yapılması gereken iş projelerini biçimlendirmek için doru bir 'Workflow' aktivitesinin seçilmesi gereklidir.Hatta bu aktiviteleri Visual Studio'da bulunan ve daha önce hakkında bahsetmiş olduğum komlex sekilde dizayn etmek istedimiz 'Workflow' aktivitelerini oluşturmamıza yardımcı olan 'Designer' yardımıyla, koplex olarak yapılandırmak istediğimiz 'Workflow'aktiviteleri ve aktiviteleri şekilendirmemeize yardımcı olacak 'Designer' için bir alan ayarlayıp,ikisi arasında ki bağlantıyı sağladıktan sonra elimizdeki 'Workflow' aktivitelerini 'Designer'a ilave edip hızlı bir şekilde yapılandırabiliriz.Hatta kolaylık olası açısından benzer durumda ki 'Workflow' seçeneklerini kopyalayıp yapıştırarak daha kolay işleme alabiliriz.

Bu gelişim yaklaşımı, benzer durumdaki iş projelerini biçimlendiren uygulamaların hızlı bir şekilde gelişimine olanak sağlayacaktır.

Sunday, October 3, 2010

Bir 'Workflow' yapılandırmasının gelişimciler iş ortamında sağladığı yararlar,

Workflow Foundation özel olarak tasarlamak istediğiniz aktivitelere bağlı olan 'Workflow'ları yapılandırarak iş projelerimizi biçimlendirmemize yardımcı olduğunu önceki yazılarımda açıklamıştım.Bu proje bazında ki yaklaşım gelişimciler için önemli düzeyde avantaj teşkil edebileceğini düşünebiliriz.Birkaç liste dahilinde sizlere vermek istediğim örnekler ,gelişimciler için bu yaklaşımların sağlamış olduğu yararı anlamanıza yardımcı olması yanında 'Workflow'ları oluştururken sizlere nasıl yardım edebileceğinin açıklamasınıda riayet edecektir.

İş mantığı(Business Logic)= 'Workflow' altyapısı daha çok teknik problemlerden ziyade iş mantığı üzerine odaklı olarak gelişimcileri destekler durumdadir.Bu ise daha çok bir işin başlangıcından bitimine kadar tekabul eden, kullanıcaların iş projelerinde yapmakta olduğu modelsel yaklaşımların uygulama bazındaki doğal bir sonucudur diyebiliriz.

Gelişimciler özel aktiviteleri oluşturmasıyla Oluşturulan 'Workflow'lara bağlı olan teknik düzeydeki problemlerin üstesinden gelebilecektir.Bu ise gelişimcilere, iş projeleri ve bu projelerin gereksinimlerini daha iyi düzeyde ilişkilendirmek için 'Windows Workflow'u kapsamlı bir yapısal düzeye getirilmesinde gelişimcilere olanak sağlayacaktır.

Gelişimciler oluşturtukları bu özel aktiviteleri test ettikten sonra bu aktiviteler daha önce oluşturmuş oldukları 'Workflow' aktivitelerine dahil edilebilir ve bu aktivitelerden yeniden karışık düzeyde 'Workflow'lar yapılandırmak için kullanıldığı gibi hatta çoğu kez kullanım için özelleştirilebilir.

Uyumluluk(Adaptability)=İş projelerinde prosodür ve pratik uygulamalarla çalışmak artık sık sık değişir olması kaydadeğer olmaya başladı.Bu durum pazarlama alanında,kalite konrolünün ilerlemesi,iş mantığının genişlemesi veya çoğu nedenlere bağlı olarak bir değişimin olası sonucu anlamına gelebilir.Örnek olarak İş sektöründe işi takip eden(bussines analyst)ler küçük bazlarda sisteme girişi olan memurlar tarafından tutulmuş prosodürlerin farkına varabilirler. Ve neticede ilgili prosodürden ilgili memuru taşımakla,'bussines analysts' hedef prosodürün kalite bazında akışsız olarak hızlandırabilir.

Bilinen tipik uygulama altyapısı değişimi işlevsel düzeyde engel teşkil edeceğinide düşünebiliriz.Örneyin tipik bir uygulamadaki prosodürü değiştirmek için gelişimcilerin belirli düzeydeki adımları gerçekleştirmesi gerekir.
Bu adımlar;
1.Uygulama bölümünü yeniden yazma
2.Uygulamayı yeniden test etme
3.Uygulamayı derleme
4.Kullanıcı durumundaki kişilere uygulamayı dağıtmak

Herhangi bir zaman bir uygulamanın yeniden yazılması,test edilmesi ve dağıtılması gereksinile bilir.Bu durumda iş verimliliği, gelişimin belirli süreç teşkil eden bölümünün dahil edilmesi nazarında,iş ortamında çalışan kişilere bağlı olarak ızdırap vesilesi ile sonuçlanabilir.

WF (XAML) tarzda 'Workflow'ları depoladığı için iş prosoturlerinin genişleme dosyalarında derlenemeğeceğinin farkında olmalıyız.Üstelik genişleme dosyalarında iş prosodürleri daha kolay şekilde yeniden yazılabilir fakat derlenemez ve hatta dağıtımının daha basit olduğunuda düşünebiliriz.Ve ayrıca isterseniz yukarda saydığım evreler gerçekleşirken 'Workflow'larda kolayca değişiklik yapabileceğimizi göz ardı etmememiz gerekir.

Uzun bir zaman diliminde iş oluşum projesi(Long-Running Process)=Yanlız bilgisayar sistemlerine bağlı olan 'Workflow'lar genellikle daha hızlı işlevseliğe sahip oluyor.Yinede toplumsal aktiviteleri kapsayan 'Workflow'ların, aktivitelerin bir bağlamı olan kullanıcıların bir görüşme esnasında,ofis dışında veya tatilde olamsı nedeniyle, daha sık düzeyde uzun kullanımına vesile olabilir.Kullanıcıların yapmış olduğu işlemlerin sonucu çıkana kadar günlerce ve aylarca bekleyebilir.Bu noktada WF bu uzun zaman diliminde kapsamlı olarak destek salayan bir mekanizmsı vardır.

İşleme tabi olan 'Workflow' örneyi kullanıcı yanıtını beklerken, konuk olduğu servis bölgesinin hafızasında aktif olarak bekler durumdadır. İstersek Workflow Foundationda servis genişletme(alan bazında) işlevseliğini kullanarak,konukcul durumundaki sistemin hafızasını kulanmayıp ,ilgili'Workflow'u alan bazında yer edindireceğimiz ek bir depoya yükleyebiliriz.Bu durum 'Workflow'ları işleyen bilgisayar sistemleri üzerinde kaynakları zarar vermesini engellememiz açısından mükemmel.

Yanıt WF ulaşmasıyla beraber (WF) olayı kabul ediyor ve sonra 'Workflow'da iş akışını gerçekleştiren iş motoru(runtime) ilgili veri deposundan 'Workflow'un kulanılır durumda olan aktivitesini kendi bünyesine yeniden yükleyip,kullanım için'Wokflow' ların toplu halde bulunduğu yere aktarıyor ve sonra işlen 'Workflow'daki gelecek aktivitenin işleve sokulamsıyla ilerliyor.

'Workflow'ların veri kayıplarını ve durumlarını engeleyebilir olması umulmadık uygulama ve bilgisayar işlev kayılarının önüne geçebilmesi olarak düşünmemizde yararvar.


Görsel Dizayn(Visual Design)= (WF) ,Visual dizaynerla 'Workflow'geliştirmemize olanak sağlayan Visual Studio 2008'e ilişkilendirilmiş durumdadır. Burada 'Designer' 'Workflow'ları dizayn ederken a 'Workflow'un görsel şekilde gürünmesini sağladığı gibi aynı zamanda 'Workflow' işleme tabi olduğunda İşlemsel alanın açık bir portresini bize gösterir durumdadır..Şayet 'Workflow' gereksiz döngülerin oluşumunu gerçekleştirirse veya fazlalık iş etkileşimelri gerçekleştirirse ,bu durumları basit şekilde tespit edebilme özeliğine sahiptir.

'Visual Studio' da bulunan 'Workflow designer'daki bileşen ve parçalar iş ortamında analiz etmek için kullanılan gereçler deyildir.Genelde bu bileşen ve parçalar iş analistlarinin tabir ediyor olduğu tarzda temsil ediliyor ve bundan dolayı analistler gelişimci bazında işleve sahip olmamalarına rağmen ,bu temsiliyette bir bağlarının olması onlar için anlamlı görünüyor.Bu işlev ise analistlerin 'Workflow Design'ı yeniden incelemesine olanak sağladığı gibi grafik,diagram veya özel geçişleri gereksinmeden gereksinildiği gibi gelişimcilere geribildirim sağlaya biliyorlar.

Saturday, October 2, 2010

Windows Workflow Foundation nedir?

Windows workflow Foundation,gelişimcilerin .Net Framework 3.5 uygulamaların'da 'Workflows' oluşturmak ve bu oluşturulan 'workflows' çalişir hale getirmek için kullanabilecekleri bir kaç parça ve bileşen düzeneğiğinin yanısıra bir dizary yapabildimiz bileşeni içeren bir yapıya sahiptir.Ayrıca 'Windows Workflow Foundation'nun .Net Framework 3.5'in bir bölümü oldunu bilmemizde yararvar.
Workflow daha önce bahsetmiş olduğum üzere iş ortamında çalışırken karşılaşılabilecek senaryoları tanımlayan tıpkı bir model gibi olan bütün aktivitelerin bir düzeni olarak tabir edebiliriz.Örnek vericek olursak şayet bir şirkette çalışan işçi tatil için yer ayırtmak isterse,ilk olarak iş akışının gerçekleştiği 'Workflow'uygulamasında tatil için çalışana ayrılması gereken gün programdan kontrol edilir.Ve şayet kontrol işlevi olumlu bir düzeyde ise 'Workflow'işlevi onaylama frekansına ayarlar,bu onaylama süreci yönetici tarafından gerçek gerçekleştirilir.İşte bu örnekte 'Workflow'un yapmış olduğu aktiviteler;iş ortamında çalışan kişinin tatil gereksinimini belirtmesi,bu gereksinimin onay aşamasından geçmesi ve tatil için yerin ayrılması işlemlerinden oluşur.Ve bu projeye sonuçları 'Workflow'la değiştirebilen birkaç insanıda dahil edebiliriz.
Workflow Foundation yardımıyla şirket çalışanın gereksindiği tatil projesinde ki adımları biçimlendiren aktiviteler oluşturabiliriz,iş ortamında bir talebin proje boyunca oluşan basamakları nasıl takip etiğini tanımlayan aktiviteleri 'Workflow'yapısı içinde bir araya getirebiliriz ve hatta bir uygulama yapılandırabilirsin örneyin 'Workflow' içeren ASP.Net wep paketleri gibi.
Şekilendirdimiz 'Workflow'ları bir hayli karışık olan iş projelerinede dönüştürmemiz mümkün.Bu iş projeleri koşullara bağlı olan farklı 'Workflow' düzeneklerini işlevsel hale getirebilir.Örneyin iş çalışanlarının birisi tarafından gereksinilen tatil gereksinimi reddedilebilir veya onaylanabilir işte durumda komplez bir 'Workflow'işleve sokulması gereklidir.'Workflow' ayrıca insan etkinliklerini içerebilir tıpkı bir iş çalışanı tarafından tatil gereksiniminin ortaya konması veya bilgisayar sistemlerinin bir akış çerçevesinde etkinleşmesi olarak tarif edebiliriz.Hatta birde 'Workflow'u iş projesine göre tasarlayıp,onu işlevsel hale getirdiğimizde istersen 'Workflow'üzerinde değişiklik yapma imkanımızda var.Örneyin 'Workflow'daki iş mantığını oldukça kısa bir uslupta değitirebiliriz.
Windows Workflow Foundation .Net sınıflarının Programlama mantığına dayanan modellerini kapsadığı gibi ve ayrıca bir 'Workflow'u oluşturmak için kullanabileceğin Microsoft Visual Studio 2008'e ilişkilendirilen parçalarıda kapsadığını söyleyebiliriz.

Thursday, September 30, 2010

Windows Wokflow Foundationun tanıtımı;

Windows Work Foundation , C# ve VB.NET kodlarıyla kodlama gereksinimine ihtiyaç duymaksızın iş prjelerini modelleme aşamasında gelişimcilere bir yol sağladığı gibi uygulamalarında bulunana Workflowları prosüdüre bağlı olarak işlevsel hale getirebiliyor. Diyer yandan gelişim sektöründe çalışanların uzun zaman dilimine takabul eden iş projelerinin bölümlerini paylaşımı, Workflowa gönderilen mesajın geri gelmesinin beklendi , Workflow işlevseliğinin ilerlemesi için Workflowla iş projesinin istenilen kanıtsal belgelerin diyer şahıs veya müdürlerden gelmesinin beklendiği yer olan gelişim alan olarak tabir edebiliriz.
Örnek olarak bir satın alma siparişinin bilinen değerini aşması durumunu düşünürsek satın alma işleminde hata olamaması için alım fiyatının satın almak isteyen tarafa ulaşmadan önce onaydan geçmesi gerekir. Buna takiben yazılım ve Wep servislerinin kapsamlı olarak çalışmasıyla beyan edilecek yanıtı beklemek durumunda olabilriz. İşte Workflow bu yanıtın gelmesini bekleyen ve taki biz onu kullanma gereksinimini hisedene kadar hafızasında tutan bir gelişim alt yapısındır.
Windows Workflow bu hüneriyle, bilinen prosodürlerle bilginin dorudan hafızadan alınması durumunun oluşması sonucu oluşan iş akısının yerini alabiliyor diyebiliriz.Böylece bilinen iş ortamlarında daha esnek ve verimli iş hacmi elde etmiş oluruz.'Windows workflow Foundation'u kullanarak iş projelerinizi biçimlendirdiğinizde ,çeşitli düzeyde servislerde sağlayabilirsiniz.Takip işlevseliğini kullanarak projelerinizin daha kayda değer şekilde görselik kazandırabilirsiniz ;örneyin ne yaptığı ve ne ğibi işlevselikleri tamamaladığı gibi.
' Windows Workflow Foundation' hatta gerekli görülen kot derlemenizi gerçekleştirmeksizin ,mödel olarak tasarlamayı düşündünüz projeleri düzenlemenin bir yolu olarak görünebilir.
Workflowlar ise Visual Studio da bulunan 'visual designer'la kotlama veya XML yolla oluşturulabilir. Uygulama aktivitelerini 'ToolBox' olarak isimlendirilen dizayn parçalarının bulunduğu içerikten ,Workflowu şekilendirmek istediğimiz yüzeye koyarak bir Workflow dizaynı gerçekleştirebiliriz.Windows Workflow Foundation geniş işlevselliği olmasıyla birlikte çalışma zamanlarında Windows projelerinde birçok farklı yazılımsal uygulamalarda kullanıldığı gibi çoğu farklı yollarda da kullanılabilir.Bu esnek kullanım gelişimsel düzeyde çalışanlar için birçok farklı senaryolar kapsamında 'Workflow' oluşturmayı mümkün kılıyor.Aktivitelerin çoğu ise 'Activity Designer' veya kot kullanılarak gerçekleştiriliyor.Oluşturulan aktiviteler 'Toolbox'a eklenerek hemen kullanıma konabiliyor.Hatta iş zamanı için servisler oluşturarak ki bunlar iş zamanında hemen servise dahil edilir,Workflowun işlevseliğini artırabliriz.Windows workflow Foundation ,basit şekilde kotyazımını ve yapmamız gereken alt seviyedeki çalışmaların çoğunu eleyerek , dorudan elimizdeki iş projelerine odaklanmamızı sağlayarak daha elverişli düzeyde iş projelerini yapmamıza imkan veriyor.

.Net 3.5 ve Visual Studio 2008'i kullanarak Windows Workflow Foundation tanıtımı

Temel inceleme;
.Net Framework 3.5 ,Microsoftun gelişimsel altyapısının gelecekteki versiyonunu oluşturuyor.
.Net Framework 3.5,dört adet gelişim odaklı keşifsel teknoloji olan 'Windows Presentation Foundation(WPF),Windows Communication Foundation(WF) ve Windows CardSpace(CardSpace) lere ilaveten .Net Framework 2.0 bileşenlerinden oluşan bir yapıya sahip.
Windows vista .Net Framework 3.0 ile tedarik fakat Framework 3.5 ancak karşıdan yükleme yoluyla temin edilebilir.Ve Framework 3.5 windows vistaya ilave olarak Windows xp SP2 ve Windows Server 2003'de destekler durumdadır.
Windows Workflow teknolojisi Windows uygulamar,Wep uygulamalar ve bir çok server teknolojileri için uyumlu ve kulallanılabilir bir yapıya sahiptir.Windows Workflow belirleyici olan iş akış motoruyla(workflow engine),zengin ve esnek gelişim parçalarıyla ve iş yöneticilerinin ve bilgi çalışanlarının kompleks durumdaki iş akışlarıyla etkileşimini mümkün kılan sezgisel belirlemeleri dağıtmanız için size güç veren bir alyapısı var.