.net सबस विंडोज वर्कफ़्लो फाउंडेशन का उपयोग कब करें?




सांवली स्किन के लिए बेस्ट फाउंडेशन (9)

व्यक्तिगत रूप से, मुझे डब्ल्यूएफ पर बेचा नहीं जाता है। यह उपयोगीता मेरे लिए उतनी स्पष्ट नहीं थी जितनी अन्य नई एमएस प्रौद्योगिकियों, जैसे डब्ल्यूपीएफ या डब्ल्यूसीएफ।

मुझे लगता है कि भविष्य में व्यावसायिक अनुप्रयोगों में डब्ल्यूएफ का भारी इस्तेमाल किया जाएगा, लेकिन मेरे पास इसका उपयोग करने की कोई योजना नहीं है क्योंकि यह मेरी परियोजनाओं के लिए नौकरी के लिए सही उपकरण की तरह प्रतीत नहीं होता है।

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

डब्ल्यूएफ का उपयोग करना कितना परिस्थितियों में है और यह चीजों को कठिन बना देगा तो उन्हें होना होगा? हाथ से डब्ल्यूएफ बनाम कोडिंग के पेशेवर और विपक्ष / लागत क्या हैं?


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

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


कभी नहीँ। आपको शायद पछतावा होगा:

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

डब्ल्यूएफ का उपयोग करने का एकमात्र समय मैं कभी भी कल्पना कर सकता हूं कि अगर मैं डिज़ाइनर को अंतिम उपयोगकर्ता के लिए होस्ट करना चाहता हूं और शायद तब भी नहीं।

मेरा विश्वास करो, कुछ भी ऐसा नहीं होगा जो आप लिखने के लिए लिखने वाले कोड के रूप में सरल, शक्तिशाली, या लचीला के रूप में कभी भी नहीं करेंगे। डब्ल्यूएफ से दूर रहो।

बेशक, यह केवल मेरी राय है, लेकिन मुझे लगता है कि यह एक अच्छा अच्छा है। :)


डब्ल्यूएफ द्वारा उत्पन्न कोड बुरा है। डब्ल्यूएफ लाता है कि मूल्य सिस्टम के दृश्य प्रतिनिधित्व में है, हालांकि मुझे अभी तक कुछ भी देखना नहीं है (अब डब्ल्यूएफ के साथ काम पर 6-7 परियोजनाएं जिनमें मैं शामिल हूं) जहां मैं एक आसान हाथ कोडित प्रोजेक्ट को पसंद नहीं करता ।


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


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

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


मैं इसे किसी भी पर्यावरण में उपयोग करूँगा जहां मुझे वर्कफ़्लो के साथ काम करने की ज़रूरत है, हालांकि इसे K2 या यहां तक ​​कि SharePoint 2007 के साथ संयोजन में उपयोग करते समय प्लेटफ़ॉर्म की शक्ति वास्तव में उपयोगी होती है। बीआई विशेषज्ञ के साथ व्यावसायिक अनुप्रयोगों का विकास करते समय प्लेटफ़ॉर्म के उपयोग की अनुशंसा की जाती है और यह आमतौर पर केवल व्यावसायिक प्रक्रियाओं को सुव्यवस्थित और सुधारने के लिए प्रासंगिक होगा।

रिकॉर्ड डब्ल्यूएफ के लिए के 2 की विकास टीम के संयोजन के साथ विकसित किया गया था और नया के 2 ब्लैकपीरल डब्ल्यूएफ के शीर्ष पर बनाया गया है, इसलिए एमओएसएस 2007 और डब्ल्यूएसएस 3.0 के वर्कफ़्लो इंजन भी हैं।


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

मेरे अनुभव से एकत्रित वर्कफ़्लो फाउंडेशन के फायदे और नुकसान यहां दिए गए हैं:

लाभ

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

नुकसान

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

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







workflow-foundation