Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET Framework 4.6.1'de iş akışı geliştirme, bazı geliştiriciler için yeni olabilecek kavramları kullanır. Bu konu başlığında bazı kavramlar ve bunların nasıl uygulandığı açıklanmaktadır.
İş Akışları ve Etkinlikler
İş akışı, bir işlemi modelleyen yapılandırılmış bir eylem koleksiyonudur. İş akışındaki her eylem bir etkinlik olarak modellenmiştir. Bir ana bilgisayar, bir iş akışını bir yöntem gibi çağırmak için WorkflowInvoker, tek bir iş akışı örneğinin yürütülmesi üzerinde açık denetim sağlamak için WorkflowApplication ve çok örnekli senaryolarda ileti tabanlı etkileşimler için WorkflowServiceHost kullanarak bir iş akışıyla etkileşim kurar. İş akışının adımları bir etkinlik hiyerarşisi olarak tanımlandığından, hiyerarşideki en üstteki etkinliğin iş akışının kendisini tanımladığı söylenebilir. Bu hiyerarşi modeli, önceki sürümlerden açık SequentialWorkflow ve StateMachineWorkflow sınıfların yerini alır. Etkinlikler, diğer etkinliklerin koleksiyonları olarak (Activity sınıfını temel alarak ve genellikle XAML kullanılarak tanımlanarak) geliştirilir veya özel olarak oluşturulur. Bu özel oluşturma süreci, veri erişimi için çalışma zamanını kullanabilen CodeActivity sınıfını veya iş akışı çalışma zamanının genişliğini etkinlik yazarının kullanımına açan NativeActivity sınıfını içerir.
CodeActivity ve NativeActivity kullanılarak geliştirilen etkinlikler, C# gibi CLR uyumlu diller kullanılarak oluşturulmuştur.
Etkinlik Veri Modeli
Etkinlikler, aşağıdaki tabloda gösterilen türleri kullanarak verileri depolar ve paylaşır.
| Türü | Açıklama |
|---|---|
| Değişken | Verileri bir etkinlikte depolar. |
| Tartışma | Verileri etkinlik içine ve dışına taşır. |
| İfade | Bağımsız değişken bağlamalarında kullanılan yükseltilmiş dönüş değerine sahip bir etkinlik. |
İş Akışı Çalışma Süresi
İş akışı çalışma zamanı, iş akışlarının yürütüldiği ortamdır. WorkflowInvoker bir iş akışını yürütmenin en basit yoludur. Ev sahibi WorkflowInvoker aşağıdakiler için kullanır:
Bir iş akışını zaman uyumlu bir şekilde çağırmak için.
Bir iş akışına giriş sağlamak veya bir iş akışından çıkış almak için.
Etkinlikler tarafından kullanılacak uzantılar eklemek için.
ActivityInstance , konakların çalışma zamanıyla etkileşime geçmek için kullanabileceği iş parçacığı güvenli ara sunucudur. Ev sahibi ActivityInstance aşağıdakiler için kullanır:
Bir örnek oluşturarak veya bir örnek deposundan yükleyerek edinmek.
Örnek yaşam döngüsü olayları hakkında bildirim almak için.
İş akışı yürütmeyi denetlemek için.
Bir iş akışına giriş sağlamak veya bir iş akışından çıkış almak için.
Bir iş akışı devamının sinyalini vermek ve değerleri iş akışına aktarmak için.
İş akışı verilerini kalıcı hale getirmek için.
Etkinlikler tarafından kullanılacak uzantılar eklemek için.
Etkinlikler, ActivityContext veya NativeActivityContext gibi uygun şekilde türetilmiş CodeActivityContext sınıfını kullanarak iş akışı çalışma zamanı ortamına erişir. Bunu tartışmaları ve değişkenleri çözümlemek, çocuk etkinliklerini zamanlamak ve diğer birçok amaç için kullanırlar.
Hizmetler
İş akışları, mesajlaşma etkinliklerini kullanarak gevşek bir şekilde bağlanmış hizmetleri uygulamak ve bu hizmetlere erişmek için doğal bir yol sağlar. Mesajlaşma etkinlikleri WCF üzerinde oluşturulur ve bir iş akışına veri almak ve iş akışından veri almak için kullanılan birincil mekanizmadır. İstediğiniz her tür ileti değişimi desenini modellemek için mesajlaşma etkinliklerini birlikte oluşturabilirsiniz. Daha fazla bilgi için bkz . Mesajlaşma Etkinlikleri. İş akışı hizmetleri, WorkflowServiceHost sınıfı kullanılarak barındırılır. Daha fazla bilgi için bkz İş Akışı Hizmetlerini Barındırma Genel Bakış . İş akışı hizmetleri hakkında daha fazla bilgi için bkz . İş Akışı Hizmetleri
Kalıcılık, Boşaltma ve Long-Running İş Süreçleri
Windows İş Akışı, uzun süre çalışan reaktif programların yazılması için aşağıdakileri sağlar:
Dış girişe erişen etkinlikler.
Ana bilgisayar dinleyicisi tarafından sürdürülebilen Bookmark nesneleri oluşturma yeteneği.
Bir iş akışının verilerini kalıcı hale getirme ve iş akışını kaldırma ve ardından belirli bir iş akışındaki nesnelerin yeniden başlatılmasına Bookmark yanıt olarak iş akışını yeniden yükleyip yeniden etkinleştirme olanağı.
Bir iş akışı, yürütülecek başka etkinlik kalmayıncaya kadar veya şu anda yürütülen tüm etkinlikler giriş bekleyene kadar etkinlikleri sürekli olarak yürütür. Bu ikinci durumda iş akışı boştadır. İş akışlarının boşta kalması durumunda bir sunucunun onları kaldırması ve bir ileti geldiğinde yürütmeye devam etmek için yeniden yüklemesi yaygındır. WorkflowServiceHost bu özellik için işlevsellik sağlar ve genişletilebilir bir kaldırma ilkesi sağlar. Yürütme blokları geçici durum verilerini veya kalıcı olmayan diğer verileri kullanıyorsa, bir etkinlik, NoPersistHandle kullanarak bir konağa kalıcı olmaması gerektiğini gösterebilir. Bir iş akışı, Persist etkinliğiyle verilerini dayanıklı bir depolama ortamına kalıcı hale getirebilir.