Bazı şeylerin sadece elle (kod) uygulanması kolaydır, ancak bazıları WF ile daha kolaydır. Görünüşe göre, WF her çeşit algoritmayı oluşturmak için (neredeyse) kullanılabilir. Yani (teorik olarak) WF'deki bütün mantığımı yapabilirim, ama muhtemelen tüm projeler için yapmak kötü bir fikirdir.
Hangi durumlarda WF kullanmak iyi bir fikirdir ve ne zaman işleri zorlaştırır? WF 'nin artıları ve eksileri/maliyetleri nelere göre elle kodlanır?
WF öğesine yalnızca aşağıdakilerden biri doğru olduğunda gerekebilir:
Daha fazla bilgi için, bkz. Paul Andrew'un gönderisi: Windows Workflow Foundation'ı ne için kullanmalı?
Lütfen WF 'yi herhangi bir görsel programlama ile karıştırmayın veya ilişkilendirmeyin. Yanlış ve çok kötü mimarlık/tasarım kararlarına yol açabilir.
Asla. Muhtemelen pişman olacaksın:
WF 'yi kullanmayı düşünebildiğim tek zaman tasarımcıyı bir son kullanıcı için barındırmak istesem ve muhtemelen o zaman bile olmasaydı.
İnan bana, hiçbir şey tam olarak yapman gerekeni yapmak için yazdığın kod kadar basit, güçlü veya esnek olamaz. WF'den uzak durun.
Tabii ki, bu sadece benim görüşüm, ama bence bu çok iyi bir fikir. :)
WF tarafından oluşturulan kod çok kötü. WF 'nin getirdiği değer sistemin görsel temsilinde olmasına rağmen, henüz bir şey görmedim (şu anda çalıştığım WF ile birlikte şu an 6 - proje çalışıyorum) basit bir kodlanmış projeyi tercih etmedim.
Genel olarak, bence kalıcılık ve izleme özelliklerine (bence ana özellikler olan) gerekmiyorsa, Workflow Foundation'ı kullanmamalısınız.
İşte deneyimimden topladığım Workflow Foundation'ın avantajları ve dezavantajları:
Avantajlar
Dezavantajları
İş akışı altyapısını kullanmamın en büyük nedeni, sizi takip ve sebat açısından kutunun dışına çıkarmasıdır. Kalıcılık servisini çalıştırmak ve çalıştırmak çok kolaydır, bu da birden fazla örnek ve ana bilgisayar arasında güvenilirlik ve yük dağılımı sağlar.
Diğer taraftan, tıpkı form uygulamaları gibi, iş akışı tasarımcısının sizi yönlendirdiği kod kalıpları da kötü. Ancak, iş akışında kod yazmadan ve tüm çalışmaları iş akışından daha zarif bir şekilde test edilip düzenlenebilir ve ünite olarak test edilebilecek diğer sınıflara dağıtarak sorunları önleyebilirsiniz. Ardından, spagetti kodunun zarafeti olmadan tasarımcının harika görsel yanını elde edersiniz.
Şahsen ben WF'de satılmadım. Yararı, WPF veya WCF gibi diğer yeni MS teknolojileri kadar bana açık değildi.
Gelecekte iş uygulamalarında WF yoğun bir şekilde kullanılacağını düşünüyorum, ancak projelerim için iş için doğru araç gibi görünmediğinden kullanmaya planım yok.
Şu anda çalışmakta olduğum şirket, bir Windows Workflow Foundation (WF) kurmayı ve kullanmayı seçmelerinin nedenleri, kuralların sık sık değişmesi ve onları çeşitli dll'ler vb. Kuralları DB'ye yerleştirip oradan çağırmaktı. Bu yolla kuralları değiştirebiliyorlardı ve işleri yeniden derleyip yeniden dağıtmak zorunda kalmıyorlardı.
Windows Workflows, kodlama yapmayan BT yöneticilerini, BA'ları ve benzerlerini kuzeni BizTalk'ta olduğu gibi baştan çıkarır; ancak uygulamada birim testi, hata ayıklama ve kod kapsamı birçok tuzaktan yalnızca üçüdür. Bunlardan bazılarının üstesinden gelebilirsiniz, ancak bunu elde etmek için çok fazla yatırım yapmanız gerekir, oysa sade kodla bunu elde edersiniz. Eğer gerçekten uzun süren bir gereksiniminiz varsa, muhtemelen daha karmaşık bir şeye ihtiyacınız vardır. Yeni xaml dosyalarını yeniden derleme işlemlerini yapmadan üretime bırakma argümanını duydum ama dürüst olmak gerekirse, Dürüst olmak gerekirse, Workflow'ların tüketeceği zaman, Sürekli Entegrasyonunuzu derlenmiş dağıtmaların sorun olmadığı noktaya geliştirmek için daha iyi kullanılabilir.
İş akışı ile çalışmam gereken herhangi bir ortamda kullanırdım, ancak K2 ve hatta SharePoint 2007 ile birlikte kullanıldığında platformun gücü gerçekten kullanışlıdır. İş Zekası uzmanı ile iş uygulamaları geliştirirken platformun kullanılması önerilir ve bu normalde yalnızca iş süreçlerini kolaylaştırmak ve iyileştirmek için geçerli olacaktır.
Kayıt için WF K2'nin geliştirme ekibi ile birlikte geliştirildi ve yeni K2 Blackpearl WF üzerine inşa edildi, yani MOSS 2007 ve WSS 3.0'ın iş akışı motorları.
Görsel arayüzü, izlemeyi ve kalıcılığı korumak için tüm bu kodları elle yazmak istemiyorsanız, WF'ye oy vermek akıllıca bir seçimdir.
Özel etkinlikleri geliştirmek için aylardır Windows iş akışını ve geliştirici olmayanların iş akışları oluşturmak için kullanabileceği yeniden barındırılan bir tasarımcıyı kullanıyorum. WF çok güçlüdür, ancak yalnızca geliştiriciler tarafından oluşturulan özel etkinlikler kadar iyidir. Konuya gelince, bir geliştirici, geliştiriciler tarafından test etmek ve hata ayıklamak için oluşturulmuş iş akışlarına bakmak zorunda kalacak, ancak bu noktadan sonra taslak iş akışları yaratabilecekleri - fantastik.
Ayrıca, uzun süren işlemlerin olduğu durumlarda WF süreçleri dinamik olarak güncellemeniz gerektiğinde kullanmak için iyi bir teknoloji yığınıdır - yeniden yüklemek/indirmek veya herhangi bir şey yapmak zorunda kalmadan, yeni XAML dosyalarını bir dizine ekleyin ve mimariniz, eskisini kazınacak ve yenisini kullanacak şekilde sürüm oluşturma ile kurulmalıdır.