Windows Workflow Foundation’ın geliştiriciler için eğlenceli olmamasının on iyi nedeni – ivobot

Windows Workflow Foundation (WF), bilgisayar tabanlı iş akışları oluşturmaya yönelik .NET tabanlı bir sınıf kitaplığıdır (.NET 3.0 ile birlikte sunulmuştur). WF ne bir iş akışı sunucusu ne de bir iş akışı istemcisidir; “yalnızca” bir iş akışı uygulaması oluşturmaya yardımcı olan bir sınıf kitaplığıdır. WF’nin kullanıma hazır yönetim, raporlama ve izleme araçları yoktur.

Duyuru

Biz ve müşterilerimiz, Workflow Foundation’ı çeşitli projelerde kullanmayı düşündük ve çoğu durumda WF’nin ilgili kullanım durumu için uygun olmadığı sonucuna vardık.

Ancak her zaman önce olumlu yönlerden bahsetmeniz gerektiğinden, benim görüşüme göre WF’yi farklı kılan beş noktanın bir listesini burada bulabilirsiniz:

  1. Kapsülleme ve yeniden kullanım: Operasyonlar yeniden kullanılabilir faaliyetlerde özetlenmiştir. Her geliştirici kendi görevlerini kolaylıkla tanımlayabilir.
  2. Grafik modelleme: Etkinlikler bir grafik araç (iş akışı tasarımcısı) kullanılarak düzenlenebilir ve bağlanabilir. İş Akışı Tasarımcısı, Visual Studio 2005/2008’de mevcuttur ve uygulamalarınıza ücretsiz olarak da entegre edilebilir.
  3. Kalıcılık: WF, iş akışının tüm durumunun bir veritabanında depolandığı iş akışları için kalıcılık sağlar. Kalıcılık, çökme durumunda ve olayları beklerken kaynakları (RAM/işlem süresi) tüketmemesi gereken uzun süreli iş akışları için bir kurtarma noktası olarak kullanılabilir. Gerekirse bu tür iş akışları WF çalışma zamanı ortamı tarafından otomatik olarak yeniden etkinleştirilir.
  4. Takip (izleme): WF çalışma zamanı ortamı, bir iş akışındaki her adımı veya seçilen adımları bir veritabanında saklayabilir.
  5. Kural konsepti: Birbirine bağımlı olabilen kurallar, karmaşık koşulları modellemeyi mümkün kılar.

Ne yazık ki artık geliştiricilerin WF’yi sevmeme nedenlerinin iki katını görüyorum:

  1. Sistem gereksinimleri: Bir bütün olarak .NET 3.0 gibi WF, Windows XP’den önceki işletim sistemlerinde mevcut değildir (yani şu anda yalnızca Windows XP, 2003, Vista ve 2008 için). Microsoft, veritabanı olarak yalnızca kendi SQL Server’ını destekler. Diğer veritabanı yönetim sistemleri için satıcılar da mümkündür ancak henüz mevcut değildir.
  2. Birkaç etkinlik: Microsoft, WF ile yalnızca nispeten basit temel görevleri (koşullar, döngüler, çağrılar, olay işleme gibi) sağlar. Daha yüksek değere sahip etkinlikler (HTTP indirmeleri, FTP, e-posta ve hatta iş etkinlikleri gibi) eksik veya yalnızca SharePoint 2007 ve BizTalk 2006 R2 gibi WF’yi destekleyen ürünlerde mevcut.
  3. İş akışlarının kötü sürümlenmesi: Bir iş akışı tanımını istediğiniz zaman değiştirebilirsiniz, ancak mevcut iş akışlarının yeni tanım altında, yalnızca eski tanım altında çalışmaya devam etmesine izin veremezsiniz. Bir sürecin sonunda aniden bir adıma ihtiyaç duyarsanız, bunu zaten başlamış (hatta uzun süredir devam eden) iş akışlarına uygulayamazsınız.
  4. SSIS iş akışlarıyla uyumluluk yok: Microsoft SQL Server Entegrasyon Hizmetleri (SSIS), WF’ye benzer bir ortam sağlar ancak hiçbir şekilde WF ile uyumlu değildir. SSIS geliştirme ekibi, WF’nin temel olarak kullanılmasına aktif olarak karşı çıktı (bir yandan SSIS, WF’den önce piyasadaydı, diğer yandan SSIS daha çok toplu veri işlemeye odaklanmıştı, WF bunun için çok yavaş olurdu).
  5. Yüksek uygulama çabası: WF’deki bazı günlük yapılar (Bağımlılık Özellikleri, Veri Değişim Hizmetleri) nispeten büyük miktarda program kodu gerektirir.
  6. Tasarımcı Kusurları: İş akışı tasarımcısının diğer tasarımcılardan farklı çalışma paradigmalarına sahip olması nedeniyle alışmak uzun zaman alır. Visual Studio’daki tasarımcı entegrasyonu yetersiz (örneğin bir iş akışını yeniden adlandırırken). Tasarımcı, daha karmaşık iş akışları için nispeten sık destek sağlar (aşağıdaki “Hata Geçidi” bölümüne bakın).
  7. Karmaşıklık: WF çalışma zamanı ortamının dahili işleme adımlarını anlamak genellikle zordur. Açıkçası WF’yi bir soyutlama olarak kabul etmek gerekir, ancak WF içindeki bazı süreçler bir geliştiricinin sezgisel anlayışının çok ötesindedir.
  8. Büyük iş akışlarında kod hızla kafa karıştırıcı hale gelir: Her ne kadar Visual Studio görev bildirimini program kodundan ayırsa da, daha büyük iş akışları için kod dosyası yine de çok büyük ve kafa karıştırıcı hale gelir. Burada istemeseniz bile kendinizi aktiviteye kaptırmak zorunda kalıyorsunuz.
  9. Yanlış dokümantasyon: Belgeler oldukça kısadır (örneğin, ASP.NET’te WF konusunda yalnızca altı sayfa!). Şu anda WF ile ilgili çok az sayıda uzman kitap bulunmaktadır.
  10. Yüksek performans kayıpları: WF çok fazla güç tüketir. Microsoft bunu “Windows İş Akışı Temelinin Performans Özellikleri” belgesinde belgelemektedir. Ancak bazı sonuçlar saf dehşete neden olur, örneğin:
    Ölçek Saniyede tamamlanan ortalama iş akışı sayısı
    1000 yinelemeli Etkinlik sırasında 2.4
    1000 yinelemeli while döngü kodu etkinliği 6449

Yukarıdaki belgeden alınan bu alıntı şunu söylüyor: C#/VB dili anahtar sözcüğünü kullanarak 1000 yinelemeli “klasik” bir döngünün klasik modellenmesi Sırasında döngü kullanmaktan 2687 kat daha hızlıdır (Faaliyetler Sırasında) Window Workflow Foundation’da (WF). WF soyutlamasının bir miktar ek yük içerdiği açıktır. Fakat Bu Genel olarak her geliştiricinin, WF tabanlı bir iş akışı yerine “normal” bir program yazmayı tercih edip etmeyeceğini dikkatlice düşünmesi gerekir.

[/einrueckung]

Çözüm:

Modelleme, kalıcılık ve izleme yoluyla WF, kendi başına geliştirilmesi çok pahalı olabilecek bir dizi özellik sağlar. Ancak WF’nin kendisinin hem geliştiricinin çalışma süresi hem de uygulama çalışırken işlem süresi açısından zamana mal olduğunun kesinlikle farkında olmak gerekir. Özellikle platformlar ve versiyonlar açısından çok sayıda teknik sınırlama da vardır. WF, (devam eden) süreçlerin hızla uyarlanması gereken şirketler için özellikle uygun değildir çünkü bu uyarlama yalnızca yeniden başlatılması gereken iş akışlarını etkileyebilir. Şüpheye mahal vermemek için: Windows Workflow Foundation’ın temelde uygunsuz olduğunu düşünmüyorum. Kullanmadan önce yukarıda belirtilen sınırlamaları bilmeli ve buraya yatırım yapmadan önce uygulamanız için ürünü detaylı olarak kontrol etmelisiniz.

PS Son olarak, İş Akışı Tasarımcısı “hata geçit töreni” yukarıda duyuruldu

Sadece bir görevin özelliklerini görüntülemek istedim

Windows İş Akışı Hatası 2: Sadece bir iş akışını yeniden adlandırmak istedim

Windows İş Akışı Hatası 2: Sadece bir iş akışını yeniden adlandırmak istedim

Sadece bir iş akışını yeniden adlandırmak istedim

Windows İş Akışı Hatası 3: Yalnızca bir özelliği yeniden adlandırmak istedim

Windows İş Akışı Hatası 3: Yalnızca bir özelliği yeniden adlandırmak istedim

Sadece bir özelliği yeniden adlandırmak istedim

Windows İş Akışı Hatası 4: Visual Studio hiçbir çeviri hatası göstermiyor...

Windows İş Akışı Hatası 4: Visual Studio hiçbir çeviri hatası göstermiyor...

Ancak Visual Studio herhangi bir çeviri hatası göstermiyor …


()

Haberin Sonu

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir