WCFden, XML Web Servisine TransactionScope Activity Bileşeni Üzerinden Transaction Aktarmak

Bir süre öncesine kadar Composition adı verilen bir katmanda yer alacak çeşitli servisler ile yoğun şekilde güreşmekteydim. Çok fazla faktör, çok fazla farklı sistem ve tabiri yerinde ise oyun ve oyuncu söz konusuydu. WCF servisleri, XML Web Servisleri, Java tabanlı olanları ve belki de yarın gelecek olan çeşitli COM bileşenleri, 3ncü parti uygulamalar, koduna müdahale edemeyeceğimiz programlar vs. [Daha fazla]

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]

Custom Activity Designer Geliştirmek

Geçtiğimiz günlerde Workflow Foundation tarafında bir Component Set' in geliştirilmesi üzerine açılan POC(Proof of Concept) projesinde görev aldım. Bu anlamda yoğun bir şekilde Custom Activity Designer konusu ile yakın ilişki içerisinde yer almam gerekti. Workflow Foundation' ın bileşen seti her ne kadar geniş bir yelpazeye sahip olsa da, özellikle uygulama geliştiricilerin hızlı bir şekilde Workflow(Flow Chart, Sequential vb) tasarlaması gerektiği durumlarda, işleri kolaylaştıracak Component setlerinin üretilmesi son derece önemlidir. Ne varki XAML tabanlı çalışan Activity Designer örnekleri, Visual Studio IDE' si ile pek kardeşçe yaşamamaktadır(Bu durumun Visual Studio 2012' de devam etmediğini umuyorum). Dikkat edilmesi gereken pek çok nokta ve ip ucu bulunmakta. Dilerseniz ne demek istediğimi örnek bir senaryo üzerinden görmeye çalışalım. [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 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]

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]

WF 4.0 - Bookmarks [RC]

Çalışmakta olduğum yazılım şirketinin çok yakınında kocaman bir alışveriş merkezi bulunmakta. Bazen öğle yemekleri için alışveriş merkezinin tahsis ettiği servisler ile oraya gidiyoruz. Alışveriş merkezi olduğu için tehlikeli bir yer olduğunu da söyleyebiliriz. [Daha fazla]

Workflow Foundation 4.0 - Kodlama Zamanında Doğrulama(Validation)

Bazen nerede duracağımızı bilmemiz gerekir ve bazende, mümkün olduğunca erken durup bazı şeyleri değiştirerek ilerlememiz...Bu teori yazılım geliştirmeninde pek çok noktasında karşımıza çıkmaktadır. Durmamız gereken noktalardan birisi, uygulamaların ürettiği ve önceden fark edebileceğimiz hatalardır(Genellikle Exception' ları düşünebiliriz). [Daha fazla]

Workflow Foundation 4.0 - Custom Async Activity Geliştirmek [Beta 2]

Hatırlayacağınız üzere bir önceki blog yazımızda Workflow Foundation 4.0 üzerinde özel aktiviteleri nasıl geliştirebileceğimizi incelemeye başlamış ve bu anlamda ilk olarak CodeActivity türevli bir bileşen üretmiştik. Workflow Foundation 4.0 ile gelen önemli yeniliklerden biriside asenkron aktivite bileşenlerini içeriyor olmasıdır. Özellikle .Net Framework 4.0 tarafında üzerinde ağırlıklı olarak durulmaya başlanan paralel programlamanın da bir sonucu olan bu durum karşısında, geliştiricilerin asenkron olarak çalışabilen aktivite bileşenleri yazması pek tabidir. [Daha fazla]

WF 4.0 - WCF Servislerini Kullanmak

Bir önceki yazımızda Windows Workflow Foundation 4.0 (WF 4.0) ile birlikte gelmesi muhtemel(yüksek bir olasılıkla çok az değişikle gelecekler) kavramları incelemeye çalışmıştık ve pek çok yeni aktivite tipinin alt yapıya dahil edilmiş olduğunu gördük. WF örnekleri bilindiği üzere çoğu zaman servisler ile haberleşmek durumundadır. Bu özellikle gerçek hayat senaryolarında çok sık karşılaşına ve ihtiyaç duyulan bir durumdur. Nitekim WF içerisinde yer alan akışların dış ortamlara olan bir bağımlılığı söz konusu olabilir. Bir Bankacılık sisteminde yer alan akışlarda, servisler yardımıyla ulaşılabilen bazı operasyonlar bu bağımlılığa örnek gösterilebilir örneğin. [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]