.net - सबस - सांवली स्किन के लिए बेस्ट फाउंडेशन




विंडोज वर्कफ़्लो फाउंडेशन का उपयोग कब करें? (8)

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

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


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

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

लाभ

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

नुकसान

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

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

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

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

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

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


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


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


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

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


यदि आप इनमें से कोई भी सत्य हैं तो आपको केवल डब्ल्यूएफ की आवश्यकता हो सकती है:

  1. आपके पास लंबी चल रही प्रक्रिया है।
  2. आपके पास एक प्रक्रिया है जो अक्सर बदलती है।
  3. आप प्रक्रिया का एक दृश्य मॉडल चाहते हैं।

अधिक जानकारी के लिए, पॉल एंड्रयू की पोस्ट देखें: विंडोज वर्कफ़्लो फाउंडेशन का उपयोग करने के लिए क्या करें?

किसी भी तरह के दृश्य प्रोग्रामिंग के साथ कृपया डब्ल्यूएफ को भ्रमित या संबंधित न करें। यह गलत है और बहुत खराब वास्तुकला / डिजाइन निर्णयों का कारण बन सकता है।


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


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

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





workflow-foundation