Ş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?
Bu dersimizde 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.
WCF Eco System' in de önemli bir parçası olan ve doğal olarak Windows Communication Foundation alt yapısı üzerinde konuşlandırılan Workflow Service' ler sayesinde, iş akışlarını servis olarak istemcilere açmamız mümkün hale gelmektedir. İlk dersimizde Asp.Net Development Server üzerinden WcfTestClient aracı yardımıyla test edeceğimiz Workflow Service' lerini, ilerleyen derslerimizde IIS(Internet Information Services) ortamı üzerinden yayınlayarak daha geniş bir dünyaya adım atmaya çalışıyor olacağız.
Workflow örnekleri birer WCF istemcisi 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.
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.
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.
Bu dersimizde, Çalışma Zamanında(Runtime) oluşabilecek istisnai durumların kontrollü bir şekilde ele alınmasında önem arz eden Exception Handling konusunu ele alıyoruz. Bu amaçla geliştirilen örnekte, Workflow Foundation 4.0 modelinde istisna yönetiminin, kod tarafında try...catch...finally bloğu kullanmak kadar basit olduğuna şahit olacağız. Workflow Console Apppliction tipinden geliştireceğimiz projede, TryCatch ve Throw Activity bileşenleri üzerinde duruyor ve ayrıca geliştirici tanımlı bir istisna tipini nasıl kullanabileceğimize de bakıyoruz.
Bu bölümde daha önceki görsel derslerimizde ele aldığımız konuları pekiştirmek amacıyla basit bir ev ödevi geliştiriyor olacağız. Bu ödevde, kullanıcı tanımlı tiplerin(Class ve Enum sabiti) değerlendirilmesini, Argument ve Variable kavramlarını, Sequence, ForEach<T>, Switch<T>, If, Assign, WriteLine gibi temel aktivite bileşenlerini, çalışma zamanında Workflow üzerinden veri akışı için Argument' ların kullanımını tekrar ederek, öğrendiklerimizin bir kısmını pekiştirmeye gayret edeceğiz.
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.
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.
.Net Framework 4.0 activity Ado.Net Ado.Net Data Services AJAX AJAX Enabled WCF Services animasyon appfabric arguments ASP.NET ASP.NET 2.0 ASP.NET 4.0 ASP.NET AJAX Astoria Backup Biztalk Biztalk Server C# C# 4.0 caching Client Application Services ClientIDMode Control Toolkit CRM Data Data Services Delete Design Patterns DetailsView Disaster dublin Dynamic Language Runtime Dynamics CRM 4.0 EDM Entity Data Model Expression Blend Flowchart hata yönetimi Insert IronPython Kurulum LINQ LINQ to XML Library MasterPage Microsoft MOSS MOSS 2007 OpenFileDialog Recovery REST RESTful Restore RIA RSS ScriptManager Services SharePoint sifreleme Silverlight Silverlight 2 Silverlight 3 Silverlight 4 Silverlight 4 Beta SQL SQL Server Sql Server 2000 SQL Server 2008 Stored Procedure Taskbar Timer T-SQL Update UpdatePanel UpdateProgress User Control variables VB.NET veri kontrolleri video Vista Visual Studio 2005 Visual Studio 2008 Visual Studio 2010 WCF WCF 4.0 wcf RIA services webiner wf WF 4.0 Windows 7 Windows Client Windows Form Windows Forms windows server appfabric Workflow workflow console application workflow foundation Workflow Foundation 4.0 workflow foundation 4.0 ögreniyorum workflow foundation ögreniyorum WPF XAML xml Xml Web Services