2008-09-16 12 views
15

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

टीम के कुछ सदस्यों ने WPF, WF और WCF आधारित अनुप्रयोगों को बनाना शुरू किया। यह देखते हुए कि वे पहले हैं, अधिकांश सदस्य इन तकनीकों को समझ नहीं पाते हैं। वे क्या फायदे व्यक्त करते हैं जो टीम को पुनः प्रशिक्षित करने की लागत को दूर करेंगे?

उत्तर

15

WPF यूआई के लागू करने और मौजूदा सी # विकल्पों से बनाए रखने, इसलिए यदि आपके codebase का एक बहुत यूआई से निपटने के लिए जिम्मेदार है, माइग्रेट के रूप में beneficial-- सेवा कर सकता है, आप अपनी टीम समय की बचत करेंगे मिल जाएगा डिजाइन करने के लिए आसान है अपनी यूआई परत से निपटने में। यदि आपका अधिकांश कोड व्यवसाय तर्क है, तो यह इतना अधिक मदद नहीं करेगा।

+5

मुझे नहीं लगता कि यह मामला बिल्कुल है। WPF की तुलना में WinForms में * सरल * UI को डिज़ाइन और कार्यान्वित करना आसान लगता है, और मैं इसे कई महीनों के WPF अनुभव के साथ कहता हूं। अपवाद यह है कि जब आपको कुछ चाहिए तो WinForms ऑफ़-द-बॉक्स नहीं करता है, तो आप इसे प्राप्त करने के लिए बहुत अधिक काम करेंगे। – PeterAllenWebb

+8

@ पीटर एलेनवेब - यह मेरे और वीएस -2010 के लिए सच नहीं है। मेरे पास WinForms के वर्षों का अनुभव था और एक बार डब्ल्यूपीएफ सीखने के कूल्हे पर, मुझे लगता है कि जटिलता के बावजूद मैं एक डब्ल्यूपीएफ यूआई को बहुत तेज कर सकता हूं। यह ज्यादातर एक्सएएमएल में घोषणात्मक रूप से यूआई कोड लिखने की आसानी और सी # व्यू मॉडल को बाध्य करने की वजह से है, जो कुछ एएसपी.Net के वर्षों ने मुझे करने में तेजी से बनाया है। – codekaizen

0

मुझे लगता है कि आपके मूल प्रश्न का मुख्य शब्द "फैंसी" है। यदि आपके ग्राहक वास्तव में डिलिवरेबल में बहुत अधिक चमक की उम्मीद करते हैं, तो संभवतः आपके पास WPF पर स्विच करने से कुछ हासिल हो सकता है।

0

मुझे पहले यकीन नहीं था, अधिकतर अनुप्रयोगों को बहुत कम लग रहा था (माना जाता है, WinForms या तो बिजली तेज नहीं है)। ऐसा लगता है कि .NET 3.5 SP1 के साथ तय किया गया है जहां उन्होंने कई तकनीकों के लिए हार्डवेयर त्वरण एकीकृत किया है।

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

लंबे समय तक, मुझे नहीं लगता कि WinForms और पुरानी तकनीक एक स्थायी विकल्प हैं।

एडोब फ्लेक्स भी है, एडोब/मैक्रोमीडिया फ़्लैश के साथ अपने अनुभव के कारण अधिक शक्तिशाली और 'रोमांचक' जीयूआई समाधानों का अनुभव करता है।

मैं सिर्फ उम्मीद है कि हम 10 विभिन्न वी एम के एक डेस्कटॉप पीसी पर स्थापित न करना पड़े सिर्फ उन सभी विभिन्न व्यवस्थाएं चलाने के लिए ...

पुन:

फैंसी रिपोर्टिंग

फैननेस शायद डब्ल्यूपीएफ की शक्तियों में से एक है ...

23

हम सिर्फ एक परियोजना को लपेट रहे हैं जिसमें स्वयं और 4 अन्य लोगों ने सफलता हासिल की पूर्ण, वितरित उद्यम आवेदन। हमने Win32 का उपयोग शुरू किया और फिर हमारे उपयोगिता विशेषज्ञ की मांगों को पूरा करने के लिए पहले पुनरावृत्ति के बाद WPF पर स्विच किया। मेरा अनुभव यहाँ है।

डब्ल्यूपीएफ में कुछ वास्तव में, वास्तव में शानदार सुविधाएं हैं। आम तौर पर, यह वास्तव में कठिन चीजें तुच्छ बनाता है (जैसे सूची बॉक्स बनाना जो समृद्ध प्रस्तुति डेटा दिखाता है, जैसे टेबल, प्रतिलिपि आदि के साथ मिश्रित छवियां), लेकिन बदले में यह "Win32 में इतना आसान हो सकता है" दर्दनाक निराशाजनक। मैं अब 6 महीने के लिए डब्ल्यूपीएफ में काम कर रहा हूं, और मुझे अभी भी एक एक्सएमएल डेटाप्रोवाइडर को एक डरावना अनुभव के लिए एक combobox डेटाबेस डेटाबेस मिल रहा है।

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

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

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

आप WPF का मार्ग जाने के लिए तय करते हैं, मैं अत्यधिक इन 2 पुस्तकों की सिफारिश करेंगे:

  • विंडोज प्रस्तुति फाउंडेशन अनलीज्ड, द्वारा एडम नाथन एक महान परिचय, पूर्ण रंग के साथ है! यह एक ब्लॉग की तरह पढ़ता है और आपको एक महान महान परिचय देता है - http://www.amazon.ca/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/ref=pd_ys_iyr3

  • प्रोग्रामिंग डब्ल्यूपीएफ: क्रिस बेल्स द्वारा विंडोज प्रेजेंटेशन फाउंडेशन के साथ विंडोज यूआई का निर्माण। और अधिक विस्तार और एक महान किताब साथ देने के लिए WPF अनलीज्ड - http://www.amazon.co.uk/Programming-WPF-Building-Presentation-Foundation/dp/0596510373

गुड लक!

+1

मैं पूरी तरह से "दीवार" सीखने से सहमत हूं। हालांकि, मैं टिप्पणियों से असहमत हूं कि डब्ल्यूपीएफ में कुछ चीजें स्वाभाविक रूप से कठिन हैं; जिन वस्तुओं को आप इस तरह महसूस करते हैं वे केवल वही चीजें हैं जिनके बारे में आप अभी भी "दीवार के गलत पक्ष" पर हैं। –

0

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

12

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

अपने डेवलपर्स तैयार (अधिमानतः, उत्सुक) समय यह प्रभावी रूप से WPF उपयोग करने के लिए सीखने के लिए ले जाता है खर्च करने के लिए कर रहे हैं? मैंने कभी भी एमएफसी, या विंडोज फॉर्म, या यहां तक ​​कि अप्रबंधित डायरेक्टएक्स के बारे में यह नहीं सोचा होगा, लेकिन शायद आप एक टीम को सामान्य देव के दौरान डब्ल्यूपीएफ को "लेने" की कोशिश नहीं करना चाहते हैं। एक शिपिंग उत्पाद के लिए चक्र!

कम से कम एक या अपने डेवलपर्स के दो क्या कुछ डिजाइन संवेदनशीलता है, और अंतिम डिजाइन अधिकार के साथ व्यक्तियों, विकास के मुद्दों के एक सभ्य समझ की क्या ज़रूरत है ताकि आप WPF क्षमताओं का लाभ उठाने के लिए कुछ है जो वास्तव में बेहतर है बनाने के लिए कर सकते हैं, बस के बजाय अधिक "रंगीन", gratuitous एनीमेशन विशेषता?

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

क्या परियोजना में कम से कम प्रस्तुति परत के लिए ग्राउंड-अप विकास शामिल है, असंगत विरासत मचान में हुक करने की कोशिश करने की अतिरिक्त जटिलता से बचने के लिए (विंडोज़ फॉर्म के साथ इंटरऑपरेबिलिटी निर्बाध नहीं है)?

क्या आपका प्रबंधक चार से छह महीने के लिए डेवलपर उत्पादकता में एक महत्वपूर्ण डीआरओपी स्वीकार कर सकता है (या ध्यान से विचलित हो सकता है)?

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

आप अपने ब्लॉग पर एक प्रविष्टि में WPF से संबंधित जानकारी में गहराई से अधिक जानकारी प्राप्त कर सकते हैं:

http://missedmemo.com/blog/2008/09/13/WPFTheFizzBinAPI.aspx

2

WPF Windows Forms से बिल्कुल भिन्न है। इसका मतलब है आपकी टीम के लिए बहुत सारे प्रशिक्षण।

+0

मैंने शब्द तय किया;) –

4

WPF:

  • ग्राफिक्स के बारे में सभी है!
  • एक संकल्प स्वतंत्र ढांचा है (जिसका अर्थ है - डब्ल्यूपीएफ ने वेक्टर ग्राफिक्स की अवधारणा को पूरी तरह से अपनाया है - और बिटमैप ग्राफिक्स को स्केलिंग भी एक विचारहीन प्रक्रिया बना दिया है)
  • क्या हार्डवेयर त्वरित है !!!! WPF ग्राफिक्स हार्डवेयर त्वरित होते हैं जहां Direct3D के माध्यम से संभव है - यह GDI आधारित नहीं है!
  • कोई Paint() फ़ंक्शन नहीं है - WPF एक बनाए गए ग्राफिक्स मोड/पेड़ आधारित ड्राइंग सिस्टम पर आधारित है। आखिरकार!
  • बहुत ग्राफिक गतिशील है - सब कुछ एनिमेटेड किया जा सकता है - और एनीमेशन ढांचे में बनाया गया है। याद रखें .... कोई Paint() नहीं है!
  • बेहद अनुकूलन योग्य है - हालांकि ControlTemplates की नट-किरकिरा हो रही है, जहां जटिलता शुरू होती है। आप बस डिस्प्ले पेड़ में ऑब्जेक्ट्स जोड़ते हैं और डब्ल्यूपीएफ अपडेट के बारे में चिंता करते हैं।
  • टेक्स्ट प्रतिपादन सुविधाओं में बहुत समृद्ध है।
  • ग्राफिक परिभाषाओं और जटिल जीयूआई डिज़ाइन सॉफ़्टवेयर (Expression Blend) के लिए एक घोषणात्मक भाषा (XAML) के उपयोग के साथ डिजाइनर/कोडर के वर्कफ़्लो में उम्मीद है। हालांकि यह जानना महत्वपूर्ण है कि घोषणात्मक तरीके से किया जा सकता है कि कुछ भी कोड में पूरा किया जा सकता है। और यह भी बहस योग्य है कि डब्ल्यूपीएफ की जटिलता ने कई डिजाइनरों को डरा दिया है - लेकिन इसने कोडर्स के हाथों में एक शक्तिशाली ढांचा लगाया है।

WPF:

  • Windows Forms ++ नहीं है - यह है सिर्फ एक पूरी तरह से अलग अवधारणा सभी एक साथ
  • सिल्वरलाइट नहीं है - सिल्वरलाइट WPF के एक सबसेट है। काफी हल्का सबसेट।
  • MFC नहीं है - ठीक है, यह स्पष्ट होना चाहिए
  • आसानी से Windows XP के साथ वितरण योग्य नहीं है - यह एक शर्म की बात है और हो सकता है इसका सबसे बड़ा विफलताओं में से एक
  • XAML नहीं है। इस भेद को समझने की जरूरत है। एक्सएएमएल वैकल्पिक घोषणात्मक भाषा है जिसका उपयोग WPF अनुप्रयोगों की विकास प्रक्रिया में किया जा सकता है। यह बिल्कुल आवश्यक घटक नहीं है, हालांकि एक बार समझ में आया, यह निश्चित रूप से जटिल ग्राफिकल ढांचे के वर्कफ़्लो, डिज़ाइन और रीफैक्टरिंग में सुधार करता है।
0

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

उस ने कहा, आपको कम से कम अपने टीम के सदस्यों को अपने खाली समय में WPF के साथ प्रयोग करने के लिए प्रोत्साहित करना चाहिए। , संसाधनों शुरू से ही उपलब्ध कराएं शायद द्वारा निम्नलिखित:

  • पृष्ठों है कि तुम क्या करने के लिए स्थापित किया है WPF के साथ काम करने की जरूरत के बारे में बताने के लिए लिंक है - अगर यह मिश्रण का उल्लेख नहीं है तो मुझे विश्वास नहीं होता यह।
  • "प्रारंभ करना" प्रश्नों के लिए यहां देखें, क्योंकि उनके पास शायद अनुभवी व्यक्तियों के अच्छे उत्तर होंगे।
  • कम से कम कुछ अच्छी किताबें खरीदें और अगर वे चाहते हैं तो लोगों को उधार दें।
संबंधित मुद्दे