वर्कफ़्लो या वर्कफ़्लो के लिए नहीं?


122

मैं डेवलपर्स की एक टीम के लिए ज़िम्मेदार हूं जो हल्के वजन बीमा दावों की प्रणाली का विकास शुरू करने वाली है। सिस्टम में बहुत सारे मैनुअल कार्य और व्यावसायिक वर्कफ़्लो शामिल हैं और हम विंडोज वर्कफ़्लो (.NET 4.0) का उपयोग कर रहे हैं।

व्यवसाय डोमेन का एक उदाहरण इस प्रकार है: एक पॉलिसी धारक एक दावे की पैरवी के लिए संपर्क केंद्र को कॉल करता है। यह "घटना" दो उप कार्यों को आग लगाती है जो मैन्युअल रूप से समानांतर में कार्रवाई की जाती हैं और पूरा होने में लंबा समय ले सकती हैं;

  1. धोखाधड़ी के लिए ग्राहक की जांच करें - एक मैनुअल प्रक्रिया जिससे एक ऑपरेटर धोखाधड़ी करने वाले ग्राहक की क्षमता की जांच और आकलन करने के लिए विभिन्न क्रेडिट कंपनियों को कॉल करता है। यहां से उप कार्य कई उप-स्थितियां दर्ज कर सकते हैं (प्रगति में जाँच करें, विफल संदर्भ जाँच, पारित संदर्भ जाँच, आदि)
  2. मरम्मत केंद्र में आइटम भेजें - एक मैनुअल प्रक्रिया जहां वह आइटम जिसके लिए पॉलिसी धारक ने दावा दर्ज किया है उसे मरम्मत केंद्र भेजा जाना है। यहां से उप कार्य कई उप-स्थितियों (प्रतीक्षा मरम्मत, प्रगति, मरम्मत, पोस्ट, आदि) में प्रवेश कर सकता है। प्रत्येक उप कार्य की स्थिति एक पूर्वनिर्धारित स्थिति (व्यावसायिक नियमों के आधार पर) तक पहुँच जाने के बाद ही दावा आगे बढ़ सकता है।

सतह पर ऐसा लगता है कि वर्कफ़्लो वास्तव में सबसे अच्छा प्रौद्योगिकी विकल्प है; हालांकि मुझे डब्ल्यूएफ 4.0 का उपयोग करने में कुछ चिंताएं हैं।

  1. कौशल सेट - औसत डेवलपर कौशल सेट को देखते हुए मुझे कई डेवलपर्स नहीं दिखते हैं जो वर्कफ़्लो को समझते हैं या जानते हैं।
  2. स्थिरता - डब्ल्यूएफ 4.0 परियोजनाओं के लिए समुदाय के भीतर बहुत कम समर्थन प्रतीत होता है और यह कौशल सेट की कमी के साथ स्थिरता के आसपास चिंताएं बढ़ाता है।
  3. प्रवेश के लिए बाधा - मुझे लग रहा है कि विंडोज वर्कफ़्लो में एक कठिन सीखने की अवस्था है और इसे उठाना हमेशा आसान नहीं होता है।
  4. नया उत्पाद - जैसा कि वर्कफ़्लो को पूरी तरह से .NET 4.0 के लिए फिर से लिखा गया है मैं उत्पाद को पहली पीढ़ी के उत्पाद के रूप में देखता हूं और इसमें आवश्यक स्थिरता नहीं हो सकती है।
  5. प्रतिष्ठा - वर्कफ़्लो के पिछले संस्करणों को अच्छी तरह से प्राप्त नहीं किया गया था, जिसे विकसित करना मुश्किल माना जाता था और इसके परिणामस्वरूप व्यापार में वृद्धि हुई थी।

तो मेरा सवाल यह है कि क्या हमें इस स्थिति के लिए विंडोज वर्कफ़्लो (डब्ल्यूएफ) 4.0 का उपयोग करना चाहिए या क्या कोई वैकल्पिक तकनीक (जैसे, साधारण स्टेट मशीन , आदि) या यहां तक ​​कि बेहतर वर्कफ़्लो इंजन का उपयोग करना है?


10
कई अपवोट और कोई जवाब नहीं ... लगता है कि हम सब एक ही नाव में हैं ...?)
CJM

1
हेहेहे ... शायद जवाब की कमी शुक्रवार-इटिस के कारण है?
केन

2
WF4 पर बहुत सारे महान संसाधनों के लिए endpoint.tv की
Ron याकूब

4
नहीं, मैंने डब्लूएफ 4 के खिलाफ फैसला किया और मुझे खुशी है कि मैंने किया - डब्लूएफ 4 ज्ञान के साथ बस पर्याप्त लोग नहीं हैं, साथ ही व्यापार में बदलाव आया है इसलिए कई बार डब्लूएफ 4 का उपयोग करके सिस्टम को बनाए रखना और समर्थन करना अविश्वसनीय रूप से कठिन हो जाता है।
केन

10
@ केन - आप एक रसदार विवरण छोड़ते हैं: आपने DNS4 के बजाय क्या किया? :)
पीटर लिलवोल्ड

जवाबों:


51

मैंने कई डब्ल्यूएफ 4 परियोजनाएं की हैं ताकि मैं देख सकूं कि क्या मैं अन्य उत्तरों में कोई उपयोगी जानकारी जोड़ सकता हूं।

आपकी व्यावसायिक समस्या के वर्णन से यह लगता है कि WF4 एक अच्छा मैच है, इसलिए वहाँ कोई समस्या नहीं है।

अपनी चिंताओं के बारे में आप सही हैं। मूल रूप से WF4 एक नया उत्पाद है और इसमें कुछ महत्वपूर्ण विशेषताओं का अभाव है और इसमें कुछ खुरदुरे किनारे हैं। एक सीखने की अवस्था है, आपको कुछ चीजों को अलग तरीके से करना होगा। मुख्य बिंदु लंबे समय से चल रहा है और क्रमबद्धता है, जो कुछ ऐसा है जो औसत डेवलपर के लिए उपयोग नहीं किया जाता है और कुछ सही होने के लिए विचार की आवश्यकता होती है जैसा कि मैंने सुना है कि अक्सर लोगों को एक संस्था रूपरेखा डेटा संदर्भ को क्रमबद्ध करने में समस्या होती है।

IIS / WAS में होस्ट की गई वर्कफ़्लो सेवाओं का उपयोग करने का अधिकांश समय इन लंबे समय तक चलने वाले वर्कफ़्लोज़ को करते समय सबसे अच्छा मार्ग है। यह संस्करण की समस्या को हल करने के लिए कठिन नहीं बनाता है, बस पहले संदेश वर्कफ़्लो संस्करण वापस और प्रत्येक बाद के संदेश का एक हिस्सा है कि बनाता है। इसके बाद WCF राउटर को उस रूट के बीच में रखें जो मैसेज को वर्जन के आधार पर सही एंडपॉइंट पर ले जाए। मूल कभी भी मौजूदा वर्कफ़्लो को बदलने के लिए नहीं है, हमेशा एक नया बनाएं।

तो मेरी आपको क्या सलाह है? एक अज्ञात पर एक बड़ा जुआ न लें, और आपके लिए असुरक्षित, प्रौद्योगिकी का टुकड़ा। WF4 का उपयोग करते हुए एक छोटा, गैर महत्वपूर्ण, आवेदन का टुकड़ा करें। इस तरह अगर यह काम करता है तो आप इस पर विस्तार कर सकते हैं लेकिन अगर यह विफल हो जाता है तो आप इसे निकाल सकते हैं और इसे पारंपरिक .NET कोड से बदल सकते हैं। इस तरह आपको सेकंड हैंड जानकारी के आधार पर निर्णय लेने के बजाय WF4 के साथ वास्तविक अनुभव मिलता है और आप प्रक्रिया में एक नई और शक्तिशाली तकनीक सीखते हैं। यदि संभव हो तो के रूप में है कि आप ऊपर (बेशर्म आत्म प्लग गति को प्राप्त करने में बहुत समय की बचत होगी WF4 पर एक कोर्स यहाँ )।

सिंपल स्टेट मशीन के बारे में। मैंने इसका उपयोग नहीं किया है, लेकिन मैं इस धारणा के तहत था कि यह शॉर्ट रनिंग, मेमोरी, स्टेट मशीनों में हो। डब्ल्यूएफ 4 के मुख्य लाभों में से एक लंबे समय तक चलने वाला पहलू है।


2
मैं सहमत हूं, WF4 ने मेरे दिमाग को पूरी तरह से पिघला दिया। मुझे उस समय इसका उपयोग करने के निर्णय (मेरा नहीं) पर खेद है और हमें .NET 4.5 का इंतजार करना चाहिए था। यदि आप वर्कफ़्लो और बग में कोई त्रुटि करते हैं, तो DNS डिज़ाइन में बग को संबोधित करने के बाद, आप लंबे समय तक चलने वाले वर्कफ़्लोज़ को आसानी से वापस नहीं ला सकते हैं। आपको अनिवार्य रूप से फिर से शुरू करना होगा। 3.5 में डायनामिकयूडेट्स थे, हालांकि उन्होंने इसे 4.0 में से छोड़ दिया। 4.5 में डायनेमिक अपडेट और साइड साइड साइडिंग 4.5 मेरे अनुभव में विंडोज डब्ल्यूएफ समाधान की सफलता के लिए सर्वोपरि हैं। हालांकि यह तस्वीर का केवल एक छोटा सा हिस्सा है।
स्टीफन यॉर्क

17

मैं कई बार इस दुविधा में आ गया हूं और मैंने वर्क फ्लो फाउंडेशन का उपयोग नहीं करने के लिए चुना है। कुछ विचार (आपके जैसे) थे

  1. सम्मिलित कार्य प्रवाह बहुत सरल थे (राज्य मशीन और अनुक्रमिक क्रियाओं का एक संयोजन) और इसे डब्ल्यूएफ में करना शामिल प्रयासों के लिए ओवरकिल को लगता है।
  2. डेवलपर्स को समझने और WF का प्रभावी ढंग से उपयोग करने के लिए सीखने की अवस्था को उच्च माना जाता था। वैध ट्रांज़िशन और किए जाने वाले कार्यों का वर्णन करने वाली स्थिति संक्रमण तालिका का उपयोग अतिरिक्त लचीलेपन के लिए किया जाता है और डेवलपर्स इसके साथ सहज थे, आसानी से अवधारणा और उद्देश्य को समझ रहे थे।
  3. व्यापार प्रक्रिया में बदलाव की संभावनाएं पतली थीं और संक्रमण तालिका की मदद से अल्पविकसित परिवर्तन आसानी से संभव थे। परिवर्तन में परिवर्तन का अर्थ होगा डेटाबेस स्क्रिप्ट जबकि क्रियाओं में परिवर्तन के परिणामस्वरूप नई रिलीज़ / पैच होगी। हालांकि, ऐसी घटना की संभावना कम मानी जाती थी।

13-14 महीनों के बाद वापस देखते हुए, मुझे अभी भी लगता है कि WF का उपयोग नहीं करने का निर्णय सही था। आईएमओ, डब्ल्यूएफ समझ में आता है कि जहां मजबूत संभावना है कि काम का प्रवाह बदल सकता है और / या व्यावसायिक नियम बदल सकते हैं। WF अलग-अलग फ़ाइल में वर्कफ़्लो को अलग करने की अनुमति देता है और इसलिए उपयोगकर्ताओं द्वारा इसे कॉन्फ़िगर करने योग्य बनाना सरल होगा।


15

हम पिछले कुछ महीनों से डब्ल्यूएफ 4.0 का उपयोग कर रहे हैं। मेरा कहना है कि वर्कफ़्लो तरीके से सोचना चुनौतीपूर्ण है। हालांकि, मैं आपको बता सकता हूं कि यह इसके लायक है। हम बहुत कम जानते थे जब हमने शुरुआत की थी। हमने WF 4.0 के लिए एक शुरुआती और पेशेवर पुस्तक खरीदी है जिसने मदद की। मैं, स्वयं, कई वीडियो ऑनलाइन देख चुका हूं और WF 4.0 के बारे में ब्रेकिंग न्यूज के लिए पीडीसी 2009 का पालन किया है और यह पिछले कुछ बेकार संस्करणों से कैसे अलग है। एक प्रमुख बात जो हमें किसी समाधान के लिए प्रस्तावित करनी थी, वह यह है कि हम अपने कस्टम गतिविधियों को कुछ डेटा प्रकारों और गतिविधियों के बीच मापदंडों को पारित करने के बिना किसी वर्कफ़्लो में / हमारे तर्क से कैसे निपट सकते हैं। मैं उस के लिए एक अच्छा समाधान के साथ आया हूं, और हमारे पास अब तक जो वर्कफ़्लो का अनुभव है, वह बिल्कुल भी बुरा नहीं है। वास्तव में, हमारे पास एक वर्कफ़्लो-गहन अनुप्रयोग है जो बड़ा और बड़ा हो रहा है और मैं वास्तव में खुद को एक अलग वातावरण में हल करने की कल्पना नहीं कर सकता। मुझे उस दृश्य प्रभाव से प्यार है जो इसके पास है: यह मुझे विवरणों से दूर रखता है यदि / अन्यथा आदि निर्माण करता है और व्यापारिक नियमों को इस तरह से स्पष्ट करता है जो आपको यह जानने के लिए कोड की लाइनों में गोता लगाने के लिए मजबूर नहीं करता है कि क्या हो रहा है या कैसे कुछ बग को ठीक करने के लिए। वैसे, जिस परियोजना पर हमने काम किया है, वह आपके द्वारा वर्णित के समान है और यह एक मध्यम आकार की परियोजना है। आप मेरे शब्दों से बता सकते हैं कि मुझे यह पसंद है और मैं इसकी सिफारिश करता हूं, हालांकि इसमें कुछ जोखिम भी शामिल हैं क्योंकि यह एक नई तकनीक है और आपको कुछ नवीन विचारों के साथ आना होगा। यह मुझे / अगर आदि के निर्माण के विवरण से दूर रखता है और व्यावसायिक नियमों को इस तरह से स्पष्ट करता है जो आपको कोड के लाइनों में गोता लगाने के लिए मजबूर नहीं करता है यह जानने के लिए कि क्या चल रहा है या कुछ बग को कैसे ठीक करना है। वैसे, जिस परियोजना पर हमने काम किया है, वह आपके द्वारा वर्णित के समान है और यह एक मध्यम आकार की परियोजना है। आप मेरे शब्दों से बता सकते हैं कि मुझे यह पसंद है और मैं इसकी सिफारिश करता हूं, हालांकि इसमें कुछ जोखिम भी शामिल हैं क्योंकि यह एक नई तकनीक है और आपको कुछ नवीन विचारों के साथ आना होगा। यह मुझे / अगर आदि के निर्माण के विवरण से दूर रखता है और व्यावसायिक नियमों को इस तरह से स्पष्ट करता है जो आपको कोड के लाइनों में गोता लगाने के लिए मजबूर नहीं करता है यह जानने के लिए कि क्या चल रहा है या कुछ बग को कैसे ठीक करना है। वैसे, जिस परियोजना पर हमने काम किया है, वह आपके द्वारा वर्णित के समान है और यह एक मध्यम आकार की परियोजना है। आप मेरे शब्दों से बता सकते हैं कि मुझे यह पसंद है और मैं इसकी सिफारिश करता हूं, हालांकि इसमें कुछ जोखिम भी शामिल हैं क्योंकि यह एक नई तकनीक है और आपको कुछ नवीन विचारों के साथ आना होगा।

मेरे 2 सेंट ...


2
मुझे गतिविधियों के बीच मापदंडों के पारित होने से निपटने के लिए आपके समाधान के बारे में सुनने में दिलचस्पी होगी। मैं डब्ल्यूएफ पर और बंद के साथ रहा हूं और यह एक ऐसा क्षेत्र है जो मुझे थोड़ा सा दिखता है, लेकिन यह सिर्फ मेरी समझ की कमी हो सकती है।
क्रिस टेलर

मुझे लगता है कि यह एक ऐसी जगह है जहाँ उन्हें अधिक काम करने की आवश्यकता है। किसी भी मामले में, हम एक बड़े "वैश्विक हैशटेबल" रिपॉजिटरी का उपयोग करते हैं जहां हम टाइप किए गए चर जोड़ते हैं। इन चर के नामकरण सम्मेलन में उनके प्रकार, नाम और उनकी मूल गतिविधि दोनों शामिल हैं। इसने वास्तव में हमारे कार्यान्वयन में मदद की। मुझे लगता है कि ऐसा करने के लिए बेहतर तरीके हो सकते हैं, लेकिन यह वास्तव में अच्छी तरह से काम करता है और आप इसे विभिन्न तरीकों से उपयोग कर सकते हैं जब आप वर्कफ़्लो को डिज़ाइन करते हैं। उदाहरण के लिए, GerCustomer गतिविधि में कुछ मुट्ठी भर इनपुट आर्ग्स और 2 आर्ग्स हो सकते हैं: GetCustomer.str_customerID और GetCustomer.int_premium। आशा है कि इस मदद करता है ..
Derar

9

मैंने डब्ल्यूएफ 3.5 में तीन परियोजनाएं कीं और मेरा कहना है कि यह आसान नहीं है। यह आपको पूरे नए तरीके से सोचने के लिए मजबूर करता है खासकर जब दृढ़ता का उपयोग किया जाता है। सैकड़ों अपूर्ण अपूर्ण वर्कफ़्लो वाले एप्लिकेशन को अपडेट करना चुनौतीपूर्ण है। क्रमांकन में एकल ब्रेकिंग परिवर्तन उन सभी को क्रैश कर देता है। नए और पुराने चल रहे वर्कफ़्लो का समर्थन करने के लिए एक ही पुस्तकालय के कई संस्करणों का परिचय देना आम है। यह चुनौतीपूर्ण था।

मैंने अभी तक WF 4.0 की कोशिश नहीं की है, लेकिन BizTalk और WF 3.5 के अनुभव के आधार पर मुझे लगता है कि यह समान होगा।

वैसे भी सबसे अच्छा तरीका जो आप ले सकते हैं वह है प्रूफ-ऑफ-कॉन्सेप्ट। अपने अनुरोधों से एकल डब्लूएफएफ लें और इसे एसएफ 4.0 में निहित करने का प्रयास करें। आप इसके साथ कुछ समय बिताएंगे, लेकिन आप यह साबित करेंगे कि क्या आप इसे 4.0 डब्ल्यूएफ में कर सकते हैं और यदि कोई दृश्यमान लाभ है।

यदि आप WF 4.0 का उपयोग करने का निर्णय लेते हैं, तो मैं जोर देता हूं कि आप Windows AppFabric में होस्ट की गई WCF सेवा के रूप में WF को चलाने की संभावना की जांच करें। AppFabric WF की मेजबानी के लिए कुछ बॉक्स कार्यक्षमता प्रदान करता है।


4
जब मैं अपने ऐप में स्टेट इंजन के लिए WF का उपयोग करने पर विचार कर रहा था, तो हठ की समस्या हमेशा बनी रही। हर खुले मामले के लिए सीरीज़ेबल्ड डब्ल्यूएफ का बहुत ही विचार संस्करण सहित विभिन्न कारणों से भयानक था। इसलिए मेरी रूपरेखा यह थी कि जब भी ट्रिगर होता है, व्यावसायिक इकाई को चुनें, ताज़ा वर्कफ़्लो बनाएँ और उस वर्कफ़्लो को इकाई संलग्न करें और फिर वर्कफ़्लो डिज़ाइन की गई राज्य मशीन के आधार पर काम करेगा। एक बार पूरा हो जाने पर, वर्कफ़्लो को फेंक दें और गंदे व्यवसाय इकाई को डेटाबेस में वापस सेव कर लें। लेकिन निश्चित रूप से, अंत में, मैंने WF का उपयोग नहीं करने का फैसला किया।
विनय सी.पी.

2
मैं पूरी तरह से संस्करण के बारे में भूल गया - यह अकेले एक अच्छा पर्याप्त कारण हो सकता है इसका उपयोग न करें।
केन

3
@ केन, जरूरी नहीं कि सच हो। आप हमेशा अपने राज्य को बाहरी बना सकते हैं। इसलिए "वर्कफ़्लो को डिसेर्बलाइज़ करने और फिर उसे फिर से शुरू करने" के बजाय, आप वर्कफ़्लो इंस्टेंस बना रहे होंगे, बाहरी स्टेट्स को अटैच करेंगे और फिर वर्कफ़्लो चलाएंगे। इससे क्रमबद्ध और संस्करण वर्कफ़्लो की आवश्यकता समाप्त हो सकती है।
विनय

हाय VinayC, क्या आपके पास इस बात का एक सरल नमूना है जो आप कह रहे थे? "आप एक वर्कफ़्लो इंस्टेंस बना रहे होंगे, एक्सटर्नल स्टेट को अटैच कर रहे होंगे और फिर वर्कफ़्लो चला रहे होंगे", जो कि PoC के लिए कुछ ऐसा चाहिए जैसा मुझे लगता है, लेकिन मैं वास्तव में WF4 को स्टेट मशीन की तरह ट्राई करने के लिए नहीं जानता, कृपया।
जपोर्टेलस

9

मुझे लगता है कि इस तरह की समस्या के लिए तकनीकी विकल्प के रूप में डब्ल्यूएफ 4 में वर्कफ़्लो के बारे में बात करना वास्तव में आज समझ में नहीं आता है। क्या वास्तव में उपयुक्त है, जैसा कि ऊपर दिए गए लदिस्लाव मृंका ने उल्लेख किया है, डब्ल्यूसीएफ डब्ल्यूएफ सर्विसेज है जो एपफैक्ट में होस्ट की गई है।

इसके साथ मेरा अनुभव यह है कि यह महान लाभांश का भुगतान करता है और बहुत सुखद होता है, लेकिन शुरुआत में समस्याएं उत्पन्न होती हैं क्योंकि यह ठीक से सराहना नहीं की जाती है कि कई प्रोग्रामर के लिए यह एक प्रौद्योगिकी बदलाव से कहीं अधिक एक कार्यप्रणाली बदलाव है। दूसरी ओर, सामान्यवादियों और एक समस्या को सुलझाने की मानसिकता वाले लोगों ने रोमांचक अवसरों के एक सेट के रूप में WCF WF AppFabric को देखा। इसलिए यदि परियोजना पर लोगों के मिश्रण काफी रूढ़िवादी हैं सी # ओ ओ और पैटर्न के अपने दैनिक सेट से जुड़े हैं, तो इसे पेश करना मुश्किल होगा। यदि टीम अधिक अभिनव है, तो गोद लेना बहुत आसान होगा क्योंकि संभावित और नए द्वार प्रत्येक खोज के साथ गुणा करते हैं।

इस तकनीक को आगे बढ़ाने में दो मुख्य वैचारिक समस्याएं थीं: ए) संदेश सहसंबंध और गड़बड़ विनिमय पैटर्न बी) वर्कफ़्लोज़ और यूनिट परीक्षण C # में मानक प्रणालियों में उदाहरण के लिए एक वर्कफ़्लो शायद ही स्पष्ट रूप से स्पष्ट है और इसलिए शायद ही कभी यूनिट का परीक्षण किया जाता है। समग्र वर्कफ़्लो को स्वीकृति परिदृश्यों या एकीकरण द्वारा परीक्षण के लिए छोड़ दिया जाता है। एक स्पष्ट डब्लूएफ को एक सॉफ्टवेयर विरूपण साक्ष्य के रूप में पेश करें और अचानक मानक देव इसे आज़माना चाहते हैं और इकाई परीक्षण करते हैं, जो आमतौर पर करने योग्य नहीं है।

इसका संदेश सहसंबंध पहलू उन लोगों के लिए थोड़ा बदलाव की मानसिकता है जो संदेश विनिमय पैटर्न से परिचित नहीं हैं। अधिकांश देवों ने प्रक्रिया और दूरस्थ कॉल, वेब सेवा और SOAP से निपटा है, और आमतौर पर उन में से एक या दो पर ध्यान केंद्रित किया है। यह सब ऊपर सार करने के लिए और एक सामान्य संदेश आधारित प्रणाली के साथ काम करना पहले भ्रमित हो सकता है।

हालांकि सकारात्मक पक्ष पर, अंतिम परिणाम कुछ ऐसा है जो बहुत समय बचाता है और बहुत सारे अवसर पैदा करता है। एक मुख्य बात यह है कि वर्फ़ॉकलो, यदि नेत्रहीन रूप से स्पष्ट है, तो ऐसा कुछ है जो अंत उपयोगकर्ता, डेवलपर और विश्लेषक द्वारा एक साथ काम किया जा सकता है, विकास जीवनचक्र में अनावश्यक कदमों को समाप्त कर सकता है और एक विरूपण साक्ष्य पर पार्टियों को केंद्रित कर सकता है। इसके अलावा, यह समर्पित डोमेन में कार्यक्षमता के द्वीपों को हतोत्साहित करता है, समर्पित गोंद परतों के साथ, प्रति व्यापार डोमेन में डब्ल्यूएफ में व्यापार प्रक्रियाओं के एक सूट को प्रोत्साहित करके। इसके अलावा, AppFabric के साथ, दृढ़ता, लॉगिंग और अनुसूचित गतिविधियों को जगाने के लिए प्लंबिंग सब कुछ आपके लिए किया जाता है। WF4 का प्रदर्शन भी उत्कृष्ट है।

मेरी सिफारिश सबसे नवीन या खोजपूर्ण टीम के सदस्य को मुश्किल भागों की खोज करने के लिए प्रारंभिक स्काउटिंग करने के लिए मिलेगी, कोर कार्यों को प्राप्त करना होगा, और उस प्रारंभिक व्यक्ति को तब शेष कार्य को कंपाइल करने के लिए जिम्मेदार होगा।


5

किसी भी जटिलता का एक बीमा दावा प्रणाली करने के लिए जिसमें भूमिकाएं शामिल हैं और "उप-कार्य" आपको वास्तव में बीपीएम समाधान की आवश्यकता है, न कि केवल वर्कफ़्लो। वर्कफ़्लो फाउंडेशन 4.0 धीमा है, लेकिन यह वास्तव में BPM उत्पाद की कार्यक्षमता के करीब नहीं आता है।

Metastorm BPM, Global360 और K2.NET जैसे BPM समाधान, मानव केंद्रित वर्कफ़्लो, कार्य, भूमिकाएँ और सिस्टम एकीकरण प्रदान करते हैं जो आपके बीमा दावा प्रणाली की तरह व्यवसाय प्रक्रियाओं को मॉडल और व्यवस्थित कर सकते हैं। ASP.NET का उपयोग करें। ऐसे इंटरफेस के निर्माण के लिए जो BPM वर्कफ़्लो इंजन के साथ एकीकृत होते हैं क्योंकि उनके डिज़ाइनर आमतौर पर सीमित होते हैं और आपको उनके कस्टम निर्मित वेब नियंत्रण का उपयोग करने के लिए बाध्य करते हैं जो आमतौर पर ASP.NET वेब नियंत्रण के रूप में पूर्ण रूप से चित्रित नहीं होते हैं।


कस्टम गतिविधियों के साथ WF 4.0 का उपयोग करने के बारे में क्या?
जॉन सॉन्डर्स

3
मैं आदरपूर्वक असहमत हूं। K2 WF में कार्यक्षमता (जैसे प्राधिकरण, लॉकिंग और रिपोर्टिंग) की एक परत जोड़ता है, लेकिन एक अनुभवी टीम उन सुविधाओं को विकसित कर सकती है। डब्ल्यूएफ 4 तालिका में बहुत कुछ लाता है। बीपीएम समाधान महंगे होते हैं और "एंटरप्राइस"।
ट्रूविल

4

जिस तकनीक के साथ आपकी टीम जानती है और सहज महसूस करती है, उसके साथ जाएं। वर्कफ़्लो फ़ाउंडेशन एक ऐसा उत्पाद नहीं है जिसे आप सीधे उपयोग कर सकते हैं - यह एक टुकड़े का एक सेट है जिसे आप वर्कफ़्लो सिस्टम बनाने के लिए अपने एप्लिकेशन में एम्बेड कर सकते हैं। IMHO वर्कफ़्लो तर्क प्रौद्योगिकी का सबसे कम महत्वपूर्ण हिस्सा है, सबसे पहले आपको जीयूआई पर ध्यान केंद्रित करना होगा क्योंकि व्यवसाय के मालिकों को जीयूआई के अलावा कुछ भी दिखाई नहीं देगा। लेकिन अगर आपका सिस्टम सफल है तो आपको परिवर्तन अनुरोधों और नई आवश्यकताओं के लिए तैयार रहना होगा ताकि आपको अपने व्यापार तर्क को लागू करना पड़े ताकि विभिन्न उपयोगकर्ता आवश्यकताओं (कभी-कभी विरोधाभासी) के अनुरूप अलग-अलग प्रक्रियाओं में विभाजित करना आसान और आसान हो। । बीपीएम इस कार्य में मदद करता है क्योंकि यह आपको अलग-अलग व्यावसायिक आवश्यकताओं के लिए अलग-अलग व्यवसाय प्रक्रियाओं के कई संस्करणों की अनुमति देता है। आप पहनते हैं' t उसके लिए पूर्ण विकसित BPM इंजन की आवश्यकता है, लेकिन यह आपके व्यावसायिक तर्क को कोड करने के लिए उपयोगी है, ताकि इसे अलग-अलग व्यावसायिक प्रक्रियाओं में विभाजित किया जा सके और विभाजित किया जा सके - सबसे खराब बात यह है कि कोड का एक अचूक और इंटरलेन्स्ड ब्लॉब है जो 'सब कुछ' संभालता है और वह नहीं कोई भी समझ सकता है। इसके लिए कई विचार हैं - राज्य मशीनें, डीएसएल (डोमेन विशिष्ट भाषा), स्क्रिप्ट आदि - आप तय करते हैं कि कार्यान्वयन क्या होना चाहिए। लेकिन आपको हमेशा व्यावसायिक प्रक्रियाओं के संदर्भ में सोचना चाहिए और तदनुसार अपने तर्क को व्यवस्थित करना चाहिए ताकि यह इन प्रक्रियाओं को प्रतिबिंबित करे। और व्यावसायिक तर्क और डेटा संरचनाओं के कई प्रकारों के सह-अस्तित्व के लिए तैयार रहें - यह सबसे मुश्किल डिजाइन कार्य है इम्हो। आपके व्यापार तर्क को कोड करने के लिए उपयोगी है ताकि इसे अलग-अलग व्यावसायिक प्रक्रियाओं में विभाजित और विभाजित किया जा सके - सबसे खराब बात यह है कि कोड का एक अकल्पनीय और अंतःसंबंधित बूँद है जो 'सब कुछ' को संभालता है और जिसे कोई भी समझ नहीं सकता है। इसके लिए कई विचार हैं - राज्य मशीनें, डीएसएल (डोमेन विशिष्ट भाषा), स्क्रिप्ट आदि - आप तय करते हैं कि कार्यान्वयन क्या होना चाहिए। लेकिन आपको हमेशा व्यावसायिक प्रक्रियाओं के संदर्भ में सोचना चाहिए और तदनुसार अपने तर्क को व्यवस्थित करना चाहिए ताकि यह इन प्रक्रियाओं को प्रतिबिंबित करे। और व्यापार तर्क और डेटा संरचनाओं के कई प्रकारों के सह-अस्तित्व के लिए तैयार रहें - यह सबसे मुश्किल डिजाइन कार्य है इम्हो। आपके व्यापार तर्क को कोड करने के लिए उपयोगी है ताकि इसे अलग-अलग व्यावसायिक प्रक्रियाओं में विभाजित और विभाजित किया जा सके - सबसे खराब बात यह है कि कोड का एक अकल्पनीय और अंतःसंबंधित बूँद है जो 'सब कुछ' को संभालता है और जिसे कोई भी समझ नहीं सकता है। इसके लिए कई विचार हैं - राज्य मशीनें, डीएसएल (डोमेन विशिष्ट भाषा), स्क्रिप्ट आदि - आप तय करते हैं कि कार्यान्वयन क्या होना चाहिए। लेकिन आपको हमेशा व्यावसायिक प्रक्रियाओं के संदर्भ में सोचना चाहिए और तदनुसार अपने तर्क को व्यवस्थित करना चाहिए ताकि यह इन प्रक्रियाओं को प्रतिबिंबित करे। और व्यावसायिक तर्क और डेटा संरचनाओं के कई प्रकारों के सह-अस्तित्व के लिए तैयार रहें - यह सबसे मुश्किल डिजाइन कार्य है इम्हो। DSLs (डोमेन विशिष्ट भाषाएं), स्क्रिप्ट आदि - आप तय करते हैं कि कार्यान्वयन क्या होना चाहिए। लेकिन आपको हमेशा व्यावसायिक प्रक्रियाओं के संदर्भ में सोचना चाहिए और तदनुसार अपने तर्क को व्यवस्थित करना चाहिए ताकि यह इन प्रक्रियाओं को प्रतिबिंबित करे। और व्यावसायिक तर्क और डेटा संरचनाओं के कई प्रकारों के सह-अस्तित्व के लिए तैयार रहें - यह सबसे मुश्किल डिजाइन कार्य है इम्हो। DSLs (डोमेन विशिष्ट भाषाएं), स्क्रिप्ट आदि - आप तय करते हैं कि कार्यान्वयन क्या होना चाहिए। लेकिन आपको हमेशा व्यावसायिक प्रक्रियाओं के संदर्भ में सोचना चाहिए और तदनुसार अपने तर्क को व्यवस्थित करना चाहिए ताकि यह इन प्रक्रियाओं को प्रतिबिंबित करे। और व्यावसायिक तर्क और डेटा संरचनाओं के कई प्रकारों के सह-अस्तित्व के लिए तैयार रहें - यह सबसे मुश्किल डिजाइन कार्य है इम्हो।


3

मैं ऐसी स्थिति में हूं, जहां मुझे 4.0 का उपयोग करना है। .NET 4.5 अभी तक हमारे उत्पादों के वातावरण में उपयोग के लिए मान्यता प्राप्त नहीं है। मुझे आमतौर पर प्रमुख दर्द की समझ थी कि लंबे समय तक चलने वाली वर्कफ़्लोज़ को हमारे व्यवसाय की ज़रूरत के अनुरूप कैसे प्राप्त किया जा सकता है लेकिन अंततः एक सुरुचिपूर्ण समाधान मिला। यह ऐसा कुछ नहीं है, जिसे बाद में समर्थन करने के लिए आने वाला कोई भी व्यक्ति बस आसानी से उठा सकता है क्योंकि इसके बारे में सोचने के लिए बहुत कुछ है, लेकिन मैं वर्कफ़्लो राज्यों के प्रबंधन के लिए एक उपकरण के रूप में डब्ल्यूएफ पर विश्वास करता हूं।

एक बड़ी बात है कि मैं WF 4.0 के साथ मुद्दा लेता हूं हालांकि मौरिस की टिप्पणी है:

मूल कभी भी मौजूदा वर्कफ़्लो को बदलने के लिए नहीं है, हमेशा एक नया बनाएं

यह बहुत अच्छा है अगर आप सिर्फ एक नया संस्करण चाहते हैं, लेकिन क्या होगा अगर आपके पास 50,000 वर्कफ़्लो हैं और किसी बिंदु पर एहसास होता है कि वर्कफ़्लो में एक बग है? आपको xamlx को अपडेट करने में सक्षम होना चाहिए और फिर भी मौजूदा उदाहरणों के साथ युग्मित होना चाहिए। मैंने SQL सर्वर इंस्टेंसेस तालिका में विभिन्न मेटाडेटा कॉलमों को अनगेज करने की कोशिश की है ताकि कुछ ऐसा उदाहरण मिल जाए जो बिना किसी भाग्य के वर्कफ़्लो परिभाषा को उदाहरण देता है।

मैंने एक पुराने सिस्टम से डेटा आयात करने के लिए हमारे नए डब्लूएफ 4.0 चालित एक में सिंक्रोनाइज़ेशन एप्लिकेशन लिखा था। हम मूल रूप से डेटा को सिस्टम में लोड करते हैं, फिर प्रक्रिया को चलाते हैं जो स्वचालित रूप से वर्कफ़्लो चरणों में कॉल करने और सत्यापन विधियों को कॉल करने के लिए जाती है, अनिवार्य रूप से उपयोगकर्ता इंटरैक्शन का मजाक उड़ाती है। यह केवल वास्तव में हमारे साथ अच्छी तरह से काम करता है वास्तुकला के कारण हमने वर्कफ़्लो सेवा होस्ट तक पहुंच के लिए कार्यान्वित किया। यह एक बंद के रूप में बहुत अच्छा है, जहां दौड़ने के बाद आप डेटा माइग्रेशन प्रक्रिया की निरंतरता सुनिश्चित करने के लिए जांच कर सकते हैं और कर सकते हैं, लेकिन सिस्टम के लाइव होने के बाद संभावित रूप से सैकड़ों हजारों मामलों के लिए इस दृष्टिकोण का उपयोग करना वास्तव में एक दृष्टिकोण नहीं है। यह विश्वास को उकसाता है और अधिक एकीकरण सरल बग फिक्स की प्रक्रिया को बोझ बनाता है।

मेरी सिफारिश है कि आप WF 4.0 से पूरी तरह बचें और अगर आप पर्यावरण का समर्थन करते हैं तो बस सीधे 4.5 पर जाएं। डायनेमिक अपडेट्स और साइड बाय साइड वर्जन यह बग फिक्सिंग और डब्ल्यूएफ वर्जनिंग आउट ऑफ द बॉक्स के लिए कैटर्स प्रदान करता है। मैं अभी भी ठीक से जांच करने के लिए अभी भी कैसे 4.5 अभी भी हमारे ग्राहक द्वारा उपयोग के लिए मान्यता प्राप्त नहीं है, लेकिन बेसब्री से इस अवसर की प्रतीक्षा कर रहा है।

मैं जिस चीज की सख्त उम्मीद कर रहा हूं, वह यह है कि हमारा क्लाइंट नीति में बदलाव (और इसलिए वर्कफ़्लो समायोजन) का अनुरोध नहीं करता है और यह कि मौजूदा वर्कफ़्लोज़ बिना किसी बग के चलते हैं। उत्तरार्द्ध व्यर्थ और खाली आशा के रूप में कीड़े हमेशा पॉप अप करते हैं।

मैं वास्तव में समझ नहीं पा रहा हूं कि एक सिस्टम जारी करने के लिए डब्ल्यूएफ देव टीम के प्रमुखों के माध्यम से क्या हो रहा था, जहां बॉक्स से बाहर आप आसानी से बग को ठीक नहीं कर सकते। उन्हें नए xamlx के लिए एक उदाहरण को फिर से बाँधने के लिए एक तकनीक विकसित करनी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.