Workflow Hosting - 1
İki bölümden oluşacak Workflow Hosting makalelerimden ilki olan bu bölümde sizlere geliştirdiğiniz iş akışlarını basit bir şekilde host etmeyi anlatacağım. Bu bölümde kendi workflow hosting mekanizmanızı oluşturmaya giriş yapmış olacak ve workflow hosting ile ilgili avantaj ve dezavantajları görmüş olacaksınız.
Neden Kendi Hosting Mekanizmamızı Geliştirmeye İhtiyaç Duyarız?
Visual Studio 2008 içerisinde geliştirdiğiniz Sequential Workflow Console Application ya da State Machine Workflow Console Application ile gelen default hosting mekanizmasını Program.cs içerisinde buluyorsunuz. Program.cs içerisindeki default hosting mekanizmasını kullanarak workflow uygulaması geliştirmezsiniz. Bu mekanizmanın limitleri sınırlıdır. Eğer gerçek anlamda workflow uygulaması geliştirmek istiyorsanız kendi hosting mekanizmanızı geliştirmeniz gerekmektedir.
Hosting Mekanizmasına Genel Bakış
Aşağıda workflow hosting mekanizmasının sorumlulukları yer almaktadır:
Basit Basit Bir Workflow Uygulaması Geliştirelim
Amacımız workflowları host etmek olduğundan basit bir workflow uygulaması geliştireceğiz. Bu uygulama içerisinde iki tane DependencyProperty buluncak. Birincisi Girdi adında ve string tipinde olacak. İkincisi ise Cikti adında ve string tipinde olacak. Workflow içerisinde bir tane Code aktivitesi olacak. Code aktivitesinin ExecuteCode özelliği Calis değerini tutacak.
Calistir metodu içerisinde çalışan workflow’un instanceId’sini yazdırdık. Workflow’un InstanceId’si Guid tipinde olur.
Host Uygulaması Geliştirelim
Yukarıda geliştirmiş olduğunuz workflow’u host ederken öncelikle yapmanız gereken şey, projeniz içerisine Program adında bir sınıf eklemeniz. Geliştireceğimiz Program sınıfının class diyagramını aşağıdaki resimde görebilirsiniz.
Bu metot WorkflowRuntime sınıfından bir örnek oluşturur ve bu örneğin WorkflowCompleted ve WorkflowTerminated olaylarına abone olur.
Yukarıdaki kodlar Workflow1 tipinde üç farklı instance oluşturur ve bunları “Girdi” özelliğine atanan değerlerle çalıştırır. Çalıştırdığı her instance sonucunda, dönen “Cikti” özelliğini ekrana yazdırır.
Uygulamayı çalıştırdığınızda aşağıdaki çıktıyı alacaksınız.
Geliştirdiğimiz Host Uygulamasını Değerlendirelim
Geliştirdiğimiz bu kodu düşünün. Nerdeyse .net içerisindeki herhangi bir Workflow Console uygulamasının yaptığı host işleminin aynısını yapıyor. Peki, bu host uygulaması geliştireceğimiz uygulamalar için bize esneklik sağlıyor mu? Yazdığımız kodun tekrar kullanılabilirliği var mıdır?
Profesyonel anlamda WWF ile kod geliştirmek istiyorsanız bu sorulara cevap verebiliyor olmalısınız. Aşadaki maddeler hos uygulamasının neleri yapıp neleri yapamayacağını açıklıyor.
Özet
Bu bölümde basit bir host uygulaması yapmanın başlangıç için eğlenceli olduğunu fakat uygulama geliştirmek için yeterli olmadığını gördünüz. Geliştirdiğiniz Workflowlar nasıl host ederseniz başarılı sonuçlar alırsınız sorusunun cevabını WorkflowHosting makale serisinin ikinci bölümünde öğrenebilirsiniz.