2010-12-22 19 views
7

Artık Microsoft, iş akışı çerçevelerini Windows Workflow Foundation 4'te yeniledi, bu yeni çerçeveyle ilgili düşünceleriniz ve deneyimleriniz neler?Workflow Foundation ile Düşünceler ve Deneyimler 4

Ben şimdi bir kaç ay WF4 ile çalışıyor olması, ve birkaç tuzaklar içine çalıştırmak:

  • İş Akışı Hizmetleri (Xamlx) ile bir arayüz zorlamak için hiçbir yolu yoktur.
  • İş akışında, iş akışında iletişim, ilişkilendirme, kalıcılık veya bazı işlenmemiş kural dışı durumlarla ilgili bir hata oluştuğunda, izleme günlükleri hiçbir şeyle alakalı olmadığı için neyin yanlış olduğunu söylemek neredeyse imkansızdır. Örneğin, bir İş Akışı Değişkeni nesnesini bir iş akışı değişkeni olarak kullandım ve iş akışı sürekliliği bunu serileştirme konusunda bir sıkıntıya sahipti. Ne yazık ki, izleme dosyalarındaki hatalardan biri, sorunun bu olduğunu gösterdi. Neyin yanlış gittiğini anlayabilmeden önce birkaç saatlik deneme ve hata yaptım.
  • Sağlanan aktivitelerden bazıları yetersiz. Örneğin, dinamik uç noktaları desteklemek için Send etkinliğini genişletmek zorunda kaldım. Ne yazık ki, tamamen dinamik yapamadım, örneğin arayüz adı dinamik olamaz.
  • Bir iş akışı çok büyük olursa tasarımcı çok yavaşlar. 100KB'nin üzerinde bir iş akışı, yüklenmesi bir dakikadan uzun sürdü! Ve bu boyuttaki bir iş akışını hata ayıklamayı unutun.
  • Oracle için kalıcılık sağlayıcısı yok. tuzaklar rağmen

, ben veritabanında, tasarımcı bir araya faaliyetlerini yakalamaya kolaylığı ve iş akışı hizmetleri gibi WCF servisleri kurma kolaylığı kalıcılık yetenekleri ile çok etkilendim.

Ben Workflow Foundation kullanan diğer geliştiricilerin deneyimleri hakkında merak ediyorum 4.

Düzenleme:

ben büyük iş akışları için son derece yavaş tasarımcının sorunu çözmek başardı. Tasarımcıya çok fazla strese neden olan çözülemeyen İthalatlar olduğu ortaya çıktı.

I posted on the MSDN forums about this issue.

Güncelleme

biz üretimde çalışan edeceğiniz, AppFabric ile karşı karşıya sorunların bir takım vardır. Şu an itibariyle AppFabric İş Akışı Hizmetlerinin kullanıma hazır olmadığı açıktır. Yeni sürümler serbest bırakılıncaya kadar bundan uzak duracağım.

+1

Ayrıca, pencere iş akışında varlık nesnesi (Varlık çerçevesi) değişkeni ile ilgili bir sorunla karşılaşıyorum 4.5. Bu kalıcılık sorunu için hangi yaklaşımı kullandığınızı bize bildirir misiniz? –

+1

Bizim yaklaşımımız, bir obje nesnesini asla iş akışı değişkeni veya bağımsız değişken olarak kullanmaktı. Her zaman bir iç veri nesnesine dönüştürdük. Varlıkları kullanabilirsiniz, değişkenler veya argümanlar olsa da. Sadece varlıkların ayrıldığından emin olmalısınız. Sorunum, DB'den bazı varlıkları aldığımız, ancak artık varolmayan bir bağlama bağlı olduğumuzu tahmin ediyorum. WF'nin devamında, varlığın artık varolmadığı için sorgulanamayacak olan varlığı ve referansları serileştirmeye çalıştı. Varlıkların bir iş akışıyla devam etmesini istiyorsanız, dikkatli olmalısınız. – Mas

+0

Teşekkürler Mas. Sizin tarafınızdan özetlenen benzer yaklaşımı izledik. Entity framework nesnelerini kullanmadık, bunun yerine özel poco nesneleri kullandık. –

cevap

4

WF4 sorunlarının oldukça iyi bir özetini yaptınız.

Temel ağrı noktam, süreç iş akışlarının tanımını değiştirememektir. Bu bir sonraki versiyonda sabitleniyor ama şimdilik büyük bir sorun.

+0

İşlem içi iş akışlarının tanımını değiştirmek istediğinizi anlayabiliyorum, ancak mantıksal bir uyumsuzluk gibi görünüyor - yürütme orta sınıf tanımını değiştirmek gibi. Bir neden yapmalıyım, fakat 'eski' tanımla birlikte 'eski' tanımlamaya paralel olarak 'eski' tanımlamayı çalıştırmanın cevabı, 'eski' iş akışları sona erer mi? Soruna açıklayan bir şeye iyi bağlantılar var mı? –

+2

Bir iş akışı, kodunuzun yalnızca bir parçasıdır ve hatalar içerebilir. Bazen bu hataları düzeltmek yerine gerçekten düzeltmeniz gerekir. Daha fazla bilgi için Rin Jacobs'tan WF futures oturumunu kontrol edin http://player.microsoftpdc.com/Session/3b87c17b-a218-40d3-984f-78adee – Maurice

3

Ayrıca, iş akışlarındaki istisnalarla ilgili sıkıntılarım vardı; bunların neden oluştuğunu, kaynağını ve açıklamasını veya iletisini çoğunlukla belirledik. Daha fazla tecrübe kazandığımda daha iyiye gittim ve başka bir iş akışı projesine başlasaydım, bunu daha etkin bir şekilde ayıklayabilecektim. Bu sadece farklı bir paradigmadır ve bu yüzden düz kodla aynı şekilde yaklaşılamaz.

WF 4.0 ile olan bir diğer sorun, WorkflowInvoker ile birim test edildi; Özneler beni kaçar ama bağımlı bağımlılıklar ve ebeveyn/çocuk iş akışları gerçek bir baş ağrıyordu.

Genel olarak 3.5'den büyük bir gelişme olan WF 4.0'ı gerçekten çok seviyorum.Hata ayıklama modunda çalışmak çok yavaş olabilir, tasarımcıda hata ayıklama, değerinden daha fazla sorun olur, ancak çerçeve harika ve çok kullanılabilir.

İlgili konular