Workflow Foundation, Oracle, WCF ve TransactionScope

Geçtiğimiz günlerde Workflow Foundation tabanlı bir uygulama içerisinde Transaction Scope kullanımına ihtiyacım oldu. Transaction' a dahil olan işlemler Oracle tabloları üzerinde gerçekleştirilecekti. Senaryoyu zorlaştıran noktalardan birisi ise, akış içerisinde harici bir WCF servis çağrısının yapılacak olmasıydı. Nitekim söz konusu WCF servisi içerisindeki operasyonda da, yine Oracle veritabanı üzerinde yapılması planlanan Transactional bir işlem söz konusuydu. [Daha fazla]

WF Rule Engine’ i Dışarıdan Kullanmak

Hangi sektörde olunursa olunsun, işler ister kağıt üstünde, ister elektronik ortamda yürüsün, iş süreçleri kendi içerisinde tanımlı bir çok kural kümesi içerir. İş bu kural kümeleri, gerekli durumlarda doğal yollarla sistemin bir parçası olarak ya da yürütme usulü ile manuel olarak devreye girerek, sürecin şekillenmesi ve bir takım aksiyonların alınması noktasında önemli rol üstlenirler. Biz geliştiricilerde, iş akışı mantığına dayalı sistemleri tasarladığımız durumlarda bu kural kümelerinin esnekliklerine sahip olmak isteriz. Bu Biztalk, Sharepoint, TIBCO vb iş akışı modellerini içeren gelişmiş ürünlerde çoğu zaman karşımıza çıkmaktadır. [Daha fazla]

Workflow Designer’ ı Yeniden Host Etmek (WF 4.0)

Aslına bakarsanız Visual Studio gerçekten harika bir IDE ortamı sunmaktadır. Hatta UX olarak bilien User eXperience değil de tam anlamıya Developer eXperience’ ın hat safhada olduğu bir geliştirme ortamıdır. Lakin genişletilebilir olması(Extension Manager’ a dikkatiniz çekmek isterim) haricinde çok gelişmiş özellikleri olmakla birlikte, zaman zaman daha hafif bir sürüme ihtiyaç duyabiliriz. Örneğin Workflow Foundation tabanlı olarak bir iş akışı tasarım uygulaması geliştirmek istediğinizi düşünün [Daha fazla]

Kod Bazlı Workflow Service Geliştirmek ve Yayınlamak

Bildiğiniz üzere bir süredir NedirTv?com desteğinde "Workflow Foundation 4.0 Öğreniyorum" isimli bir seri üzerinde çalışmaktayız. Bu seride başlangıç seviyesinden orta seviyeye kadar, bir kaç ayrı derste Workflow Foundation kavramını öğrenmeye gayret ettik. Bu seriye dahil etmek istediğim bir konu da, Workflow Service örneklerinin tamamen kod bazında yazılması ve IIS(Internet Information Services) dışındaki bir uygulama tarafından host edilmesiydi. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 14 - Hani Nerde Asenkron Çalışma Zamanı

NedirTv?com sponsorluğunda hazırladığımız "Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 14+1=15nci dersi ile birlikteyiz. Şu ana kadar ki derslerimizde Workflow örneklerini çalıştırmak için sadece WorkflowInvoker tipinin static Invoke metodunu kullandık. Bu senkron çalışma modeli olarak düşünülebilir. Nitekim Invoke metodu yardımıyla başlatılan Workflow örneği işleyişini tamamlayana kadar, çağırıcı uygulama bir sonraki kod satırına geçiş yapmayacaktır. Ancak Workflow örneklerini çalıştıracak olan ve özellikle kullanıcı etkileşimi olan uygulamalarda bu bir sorun teşkil etmektedir. Öyleki Workflow örneklerinden özellikle uzun süreli olanlar arka planda çalışırken, ana uygulamanın da işleyişine devam etmesi istenebilir. İşte WorkflowApplication sınıfı bu ihtiyaçı karşılamak için kullanılmaktadır. Bakalım nasıl? [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 13 - Workflow Service için İstemci Geliştirmek

NedirTv?com desteğinde sürdürdüğümüz "Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 14ncü dersi ile(13+1) karşınızdayız. Bir önceki dersimizde Workflow Service örneklerinin nasıl geliştirilebileceğini incelemeye çalışmıştık. Bu dersimizde ise ilk olarak, bir Workflow Service uygulamasını Internet Information Services(IIS) altına Publish ediyor olacağız. Sonrasında ise, .Net Framework 4.0 tabanlı uygulama havuzu(Application Pool) altında Host edilen bu servis için basit bir WinForms istemcisi geliştireceğiz. Bu sayede Workflow Service içerisinde yer alan iş akışı mantıklarının, servis bazlı olarak bir istemci uygulama tarafından nasıl kullanılabileceğini de anlayacağız. Geliştireceğimiz istemci tarafında otomatik olarak üretilen proxy tipini kullanacak ve ilgili servis operasyonları için hem senkron hemde asenkron çağrıların nasıl tasarlanabileceğini öğreneceğiz. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 12 - Workflow Service Geliştirmek

NedirTv?com sponsorluğunda devam ettirdiğimiz "Workflow Foundation 4.0 Öğreniyorum" serimizin on üçüncü(12+1) dersi ile karşınızdayız. Bu dersimizde Workflow örneklerinin servis bazlı olarak dış dünyaya nasıl sunulabileceklerini incelemeye çalışıyor olacağız. Bir başka deyişle Workflow Service örneklerini irdeleyeceğiz. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 11 - WCF Servislerini Kullanmak

NedirTv?com sponsorluğunda sürdürdüğümüz "Workflow Foundation 4.0 Öğreniyorum" serimizin on ikinci(11+1) dersi ile karşınızdayız. Servisler, yazılım geliştirme dünyasının olmazsa olmaz parçalarından birisidir. Özellikle son yıllarda servis geliştirme yaklaşımının parlayan yıldızı WCF Servisleri olarak düşünülebilir. Önceki dağıtık mimari geliştirme modellerini tek bir çatı altında birleştirmeyi başaran bu Microsoft yaklaşımı, Workflow Foundation ile de yakın ilişki içerisindedir. Bilindiği üzere servisleri kullanan istemciler çeşitli tipte olabilirler. Workflow örnekleri de bu anlamda birer istemci olarak görülebilirler. Bu durumda, bir Workflow örneği içerisinden WCF Servis Operasyonlarının çağırılması da söz konusudur. İşte bu görsel dersimizde söz konusu çağrı işlemlerini en basit haliyle ele almaya çalışıyoruz. Öyle ki; neredeyse Toolbox->Messaging sekmesinde yer alan ve servisler ile olan haberleşme işlemleri için kullanılan bileşenlerinden hiç birine dokunmadan. Nasıl mı? Haydi gelin öğrenelim. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 10 - InvokeMethod

NedirTv?com sponsorluğunda sürdürdüğümüz "Workflow Foundation 4.0 Öğreniyorum" serimizin onbirinci(10+1) dersi ile karşınızdayız. Bu dersimizde harici metodların, InvokeMethod Activity bileşeni yardımıyla nasıl çağırılabileceğini incelemeye çalışıyoruz. InvokeMethod bileşeni ile, static sınıflar içerisinde yer alan static metodların veya örneklenebilir sınıflar içerisinde yer alan metodların çağırılma şekillerini irdelediğimiz projemizde, yine Ado.Net Entity Framework tabanlı bir veri kaynağını kullanarak ilerliyoruz. E haydi o zaman. Keyifli seyirler dilerim. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 9 - Custom Activity Geliştirmek

NedirTv?com sponsorluğunda sürdürdüğümüz "Workflow Foundation 4.0 Öğreniyorum" serimizin onuncu(9+1) dersi ile karşınızdayız. Bu dersimizde var olan built-in activity bileşenlerinin bize yetmediğini düşünerek hareket ediyor ve CodeActivity sınıfı türevli Custom Activity bileşenlerinin nasıl yazılabileceğini incelemeye çalışıyoruz. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 6 - Expression Activities

Bu dersimizde System.Activities.Expression isim alanı(Namespace) altında yer alan ve her biri Activity bileşeni olan tiplerden bir kaçını kavramaya çalışıyoruz. Özellikle üzerinde durduğumuz nokta ise, Workflow tasarım ortamına ait Component sekmesinde görünmeyen bu bileşenleri kullanabilmek için, XAML(eXtensible Application Markup Language) tarafında geliştirme yapmak. Haydi bakalım parmakları sıvayalım. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 5 - Argument Kavramı ile Tanışalım

NedirTv?com sponsorluğunda hazırladığımız "Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 6ncı dersi ile birlikteyiz. Bu dersimizde Workflow örneklerinde içeriye ve dışarıya doğru veri akışlarında kullanılan Argument kavramını tanımaya çalışıyoruz. Bu anlamda Argument ile Variable arasındaki temel farklılıklara da değiniyoruz. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 4 - Flowchart için Ek İşlemler

"Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 5nci dersi ile(4+1) karşınızdayız. Daha önceki dersimizde Flowchart aktivite bileşenini tanımaya başlamıştık. Bu dersimizde ise Flowchart aktivitesi içerisinde Flowswitch ve Parallel bileşenlerinin nasıl kullanılabileceğini incelemeye çalışıyor olacağız.Flowswitch aktivite bileşeni C# tarafındaki switch...case ifadelerinin bir benzeri olarak düşünülebilir. Flowswitch bileşeni generic türlendirilmiş bir tiptir. Genellikle bir değişkenin veya bir Visual Basic ifadesinin(Expression) çalıştırılması sonucu elde edilen sonucun farklı değerlerine göre, akışın farklı yerlere dallanması gerektiği durumlarda kullanılır. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 3 - Yeni Bir Yüz - Flowchart

NedirTv?com sponsorluğunda hazırladığımız "Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 4ncü dersi ile karşınızdayız. Hatırlayacağınız üzere bir önceki görsel dersimizde çıtayı biraz yükseltip tamamen kod yardımıyla bir Workflow içeriğinin nasıl oluşturulabileceğini incelemeye çalışmıştık. Bu yorucu bölümden sonra daha sakin ilerlemenin ve hafif bir konu ile devam etmenin yararlı olacağı kanısındayım. Bu amaçla sıradaki dersimizde Workflow Foundation 4.0 ile gelen yeni aktivite bileşenlerinden birisi olan Flowchart tipine bir Merhaba demeye çalışıyor olacağız. Örneği geliştirirken temel olarak Flowchart tipinin ne işe yaradığını görecek ve ayrıca FlowDecision aktivite bileşenini tanıyor olacağız. Keyifli seyirler dilerim. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 2 - Kodla Başbaşayız

"Workflow Foundation 4.0 Öğreniyorum" serimizin üçüncü dersi ile karşınızdayız. Bu kez bir sıçrama yaparak Level değerimizi 101' den 110' a çekiyoruz. Bunu yaparken de kendimize biraz eziyet ediyoruz. Eziyet etmek içinde, bir önceki dersimizde ele aldığımız Visual Studio 2010 IDE' sinin sunduğu WPF tabanlı güzelim Workflow Designer ortamını bırakarak, bir Workflow örneğinin ve tüm içeriğinin tamamen kod bazlı olarak nasıl geliştirilebileceğini görmeye çalışıyoruz. Ancak bu eziyet sayesinde, yeri geldiğinde söz konusu akışların kod yardımıyla dinamik olaraktan üretilebileceğini öğreniyor ve bunun bazı vakaları karşılayacağını farkediyoruz. Örnek akışta bir önceki akışın aynısının kod tarafına geliştirilmesini gerçekleştiriyoruz. Bu sırada Variable, InArgument, OutArgument, ActivityContext, ExpressionServices gibi önemli tipleri de öğreniyor ve nasıl kullanıldıklarını görüyoruz. Bakalım eziyetimize değecek mi? İyi seyirler dilerim. [Daha fazla]

WF Ado.Net Entity Pack - Hello World

Ne var ki ilerleyen zamanlarda çıkan PreBeta, Beta 1, Beta 2, RC ve nihayet RTM sürümlerinde yer alan Activity Component setinde bu tip bileşenlerin yer almadığına da şahit olduk. Hatta WF 4.0 öncesinde aşina olduğumuz State Machine tipinden şablonlarında kaldırıldığını gördük. Geçtiğimiz günlerde ise Codeplex üzerinden iki WF 4.0 Activity Pack yayınlandı. Bunlardan birisi WF Ado.Net Activity Pack CTP 1 iken diğer ise WF State Machine Activity Pack 1 isimli paketti. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 1 - Biraz Daha Bileşen

"Workflow Foundation 4.0 Öğreniyorum" serimizin ikinci dersi(Ders 1 sizi aldatmasın, hatırlarsanız Ders 0 diyerek başladık) ile karşınızdayız. Bir önceki görsel dersimizde Hello World demek için sadece WriteLine aktivite bileşeninden yararlanmıştık. Ancak Workflow Foundation 4.0, pek çok aktivite bileşeni içermektedir ve bunları zaman içerisinde öğrenmemiz çok önemlidir. İşte bu dersimizde Sequence, Assign, ForEach, If gibi aktivite bileşenlerini işin içerisine katıyor ve Workflow Foundation konusunda ilerlemeye devam ediyoruz. Geliştireceğimiz örnekte, bir klasör içerisinde yer alan dosyalardan belirli bir harf ile başlayanların(örneğin A harfi) ekrana yazdırılmasını sağlayan bir akış oluşturuyoruz. Bu sırada Visual Studio 2010 ortamının sunduğu WPF tabanlı Workflow Designer ortamından yararlanıyor ve Variable kavramını da değerlendiriyoruz. İyi seyirler dilerim. [Daha fazla]

Workflow Foundation Öğreniyorum Başladı - Ders 0 - Hello World

Workflow Foundation Öğreniyorum isimli serideki amacımız, Workflow Foundation konusunu başlangıç seviyesinden, orta seviyeye kadar incelemek ve öğrenmek. Bu amaçla, haftada bir yayınlanacak görsel derslerimiz ile hedefe ulaşmaya çalışıyor olacağız. Hedefimiz 24 derse ulaşabilmek ancak en az 18 dersin olacağını şimdiden ifade edebilirim. Tabi ki ilk bölüm çok basit bir Hello World uygulamasını içeriyor olacak. Ancak ilerleyen zamanlarda daha da derinlere inmeye başlıyor olacağız(İçeriğimizde çok sıkı konuların yer aldığını şimdiden ifade etmek isterim). Workflow Foundation tarafında uygulama geliştirmeye başlamak isteyenler için faydalı bir çalışma olacağını ümit ediyorum. [Daha fazla]

Windows Workflow Foundation 4.0 - İlk İzlenimler

Bundan sadece bir kaç sene önce .Net Framework 3.0 versiyonu ile birlikte iş akışlarının(Workflows) kod içerisinde modellenerek farklı uygulamalarda kullanılabilmesini sağlamak amacıyla Windows Workflow Foundation(WWF) alt yapısı duyurulmuştu. Paralelinde ise, Servis Odaklı Mimarilere(Service Oriented Architecture) yeni bir yaklaşım, Windows Communication Foundation(WCF) ile birlikte getirilmişti. Workflow Foundation her ne kadar iş akışlarının(çoğu zaman kod akışlarının) kendi içinde modellenmesini sağlasa da, zaman içerisinde dış ortamlar ile olan haberleşmesinde WCF ile birlikte hareket etmeye başlamıştır. [Daha fazla]