2009-04-19 12 views
8

नेट कुछ कार्यक्षमताओं के साथ एक बड़ा ढांचा है जो शुरुआती लक्ष्य को लक्षित करता है या यदि अधिक अनुकूलन शामिल होता है तो समस्याग्रस्त हो जाता है। तो नेट फ्रेमवर्क में कौन सी कार्यक्षमता उपलब्ध है, क्या आपको लगता है कि पेशेवर डेवलपर्स से बचना चाहिए और क्यों?नेट फ्रेमवर्क के कौन से घटक पेशेवर डेवलपर को आम तौर पर टालना चाहिए?

उदाहरण के लिए, नेट उपयोगकर्ता प्रबंधन कार्यों के लिए एक विज़ार्ड है। इस कार्यक्षमता का उपयोग पेशेवर उपयोग या केवल शुरुआत के लिए उपयुक्त माना जाता है?

प्रति जवाब एक घटक/फीचर/कक्षा, कृपया तो वोट एक ही आइटम के लिए विशिष्ट हैं।

+0

यदि आप कोई सर्वेक्षण करने जा रहे हैं, तो आपको समुदाय विकी –

+0

* करना चाहिए * क्षेत्रों का उल्लेख नहीं है * –

+0

अच्छा बिंदु जॉन - संपादित। –

उत्तर

16

टाइप डेटासेट
ASP.NET * दृश्य नियंत्रित करता है
ASP.NET * डेटा स्रोत को नियंत्रित करता है

+0

डेटासोर्स नियंत्रणों में क्या गड़बड़ है? –

+0

डेटासोर्स नियंत्रण आम तौर पर चिंताओं को अलग करना बहुत कठिन बनाता है, और आप आमतौर पर एसक्यूएल कमांड को अपनी प्रस्तुति परत पर छिड़कते हैं। यह किसी ऐसे व्यक्ति के लिए काम करता है जिसने पहले कभी वेबसाइट नहीं बनाई है, लेकिन प्रोफेशनल प्रोग्रामर के लिए खराब अभ्यास माना जाता है (और होना चाहिए)। –

+1

जबकि यह SQLDataSource के लिए सच है, मुझे नहीं लगता कि यह ऑब्जेक्टडेटा स्रोत पर लागू होता है, जो अच्छी अलगाव की अनुमति देता है। –

1

Thread.Abort

यहाँ इयान ग्रीफिथ के बारे में Why Thread.Abort is Evil और कुछ बेहतर विकल्प द्वारा एक उत्कृष्ट लेख है।

+0

Thread.Abort बुराई नहीं है बनाता है। –

+0

हाँ यह है जब आप जाँच लें कि धागा 100 विभिन्न स्थानों में निरस्त किया गया सुंदर है (!) –

4

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

तो संक्षेप में: पेशेवर प्रोग्रामर को स्वयं नौकरी करना चाहिए और कोड लिखना चाहिए जो विशेष रूप से अपने ग्राहकों की जरूरतों को पूरा करता है, और केवल नेट फ्रेमवर्क के तैयार किए गए हिस्सों में ही लेते हैं, जब वास्तव में उन्हें वास्तव में आवश्यकता होती है।

+0

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

+2

वेबफॉर्म नियंत्रण की "ब्लैक बॉक्स" प्रकृति मेरे लिए निराशा का निरंतर स्रोत है। –

+0

ध्यान रखें कि यह प्रश्न केवल एएसपी.नेट से परे है। –

9

एमएस अजाक्स

jQuery, और प्रोटोटाइप आदि जैसे अन्य js चौखटे, एक और अधिक हल्के और लचीले विकल्प हैं। एमएस अजाक्स नियंत्रण शुरू में महान लग सकता है, जब तक आप वास्तव में नियंत्रण के दायरे से बाहर एक कस्टम व्यवहार की जरूरत है।

माइक्रोसॉफ्ट खुद को कि jQuery में कुछ हद तक यह मान्यता दी है IntelliSense समर्थन के साथ दृश्य स्टूडियो के आगामी संस्करणों, के साथ बंडल कर दिया जाएगा।

1

एक्सएमएल के लिए LINQ

XmlDocument/Xpath उपयोग करने के लिए आसान है, यदि आप मजबूत टाइपिंग अपने दस्तावेज़ उपयोग xsd.exe या Xsd2Code पार्स करने के लिए चाहता हूँ।

संपादित

सकें कि आप पसंद करते हैं?

IEnumerable<XElement> partNos = 
    from item in purchaseOrder.Descendants("Item") 
    where (int) item.Element("Quantity") * 
     (decimal) item.Element("USPrice") > 100 
    orderby (string)item.Element("PartNumber") 
    select item; 

या XmlDocument और XPath

var nodes = myDocument.SelectNodes("//Item[USPrice * Quantity > 100]"); 
+0

मुझे लगता है कि एक्सएमएल लिख रहे हैं तो एक्सएमएल से एक्सएमएल बहुत उपयोगी है। लेकिन अगर आप किसी भी जटिलता के एक्सएमएल पढ़ रहे हैं, तो आप चाहेंगे कि आपके पास कुछ बेहतर होगा। –

+0

"उपयोग करने में आसान" एक भयानक रक्षा है, खासकर जब से यह सच नहीं है :) इसके अलावा, LINQ से XML आपके पार्सिंग के लिए अपने एक्सएमएल को मजबूत-टाइप करने वाला नहीं है। यह आपके एक्सएमएल से पूछताछ करने का एक तरीका है। मेरे अनुभव से LINQ से एक्सएमएल बेहद जटिल एक्सएमएल के साथ एक्सेल और इसके साथ दस्तावेज़ बनाने पुराने विकल्प की तुलना में बहुत तेज़ है। आप लोगों को इसके बारे में अपनी राय का फिर से मूल्यांकन करना चाहिए और वास्तव में गहरी खुदाई करनी चाहिए। मुझे लगता है कि आप दोनों को एहसास है कि वहां से बहुत कुछ है। –

+0

ठीक है, मैं एक बार एक्सएमएल के लिए linq पर एक नज़र डालेगा, लेकिन मुझे सच में लगता है कि XPath के साथ एक क्वेरी क्लीनर और आसान (कोड की 1 पंक्ति) है। मैंने इसके साथ एक दस्तावेज़ बनाने की कोशिश नहीं की है। लेकिन क्यों xsd.exe और Xsd2Code का उपयोग linq के साथ ऑब्जेक्ट में नहीं कर रहे हैं? आपके पास मजबूत टाइपिंग का लाभ है। –

0

नेट के साथ, शुरुआती लक्षित करने के लिए प्रकट होता है या समस्याग्रस्त हो जाता है बहुत अनुकूलन शामिल है कि कुछ कार्यक्षमता के साथ एक बहुत बड़ा ढांचा है।

यह "शुरुआती लक्ष्य को प्रतीत होता है" यह वास्तविक समस्या है।

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

या LINQ ले लो। IEnumerable<T> की अच्छी समझ के बिना LINQ कोड लिखना मोहक रूप से आसान है। लेकिन उस ज्ञान के बिना रखरखाव LINQ कोड लिखना इतना आसान नहीं है।

+0

दोनों कार्यक्षमता के मामले हैं कि एक अच्छा डेवलपर अधिक सादगी के साथ अधिक संक्षेप में लिख सकता है और एक और अमूर्त स्तर जोड़ता है जो आम तौर पर कोई मूल्य नहीं जोड़ता है। कभी-कभी मुझे ऐसा लगता है कि कुछ पेशेवर इसका उपयोग करते हैं ताकि वे अपनी किताबें बेच सकें। – dkretz

0

आप कई परतों के साथ प्याज की तरह .NET के बारे में सोच सकते हैं। उदाहरण के लिए .NET compact framework पूर्ण .NET का सबसेट है। इसके अलावा "एक्सटेंशन" के रूप में .NET पर शीर्ष पर "अतिरिक्त" परतें हैं जो नई सुविधाओं के लिए वैकल्पिक इंस्टॉल हैं जिन्हें अभी तक .NET उचित का हिस्सा नहीं बनाया गया है। इसका एक उदाहरण तब होगा जब माइक्रोसॉफ्ट ने ASP.NET 3.5 Extensions जारी किया था जिसे अब .NET 3.51 में घुमाया गया है।

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

तो मुझे लगता है कि यह वास्तव में आपके आवेदन के लिए आपको क्या चाहिए इसकी आवश्यकता है? यदि आप वैज्ञानिक प्रोग्रामिंग कर रहे हैं तो आप ट्रिगर कार्यों को अच्छी तरह से चाहते हैं। एक ग्राफिकल ऐप को उन कार्यों की आवश्यकता होगी जो कंसोल एप्लिकेशन नहीं करेंगे। वेब ऐप्स को शायद क्लिपबोर्ड फ़ंक्शंस इत्यादि का उपयोग करने की आवश्यकता नहीं है

मुझे नहीं लगता कि .NET में कोई भी खराब एपीआई है, केवल प्रोग्रामर जो उन्हें अनुचित तरीकों से उपयोग करते हैं।

1

कम से कम यदि आप 3.0 या उससे ऊपर लक्षित कर रहे हैं, तो रिमोटिंग आम तौर पर एक अच्छा है, और इसलिए आसानी से मैसेजिंग एंडपॉइंट्स को प्रक्रिया में होस्ट कर सकते हैं।

0

WinForms लाइब्रेरी में से बचने के लिए बहुत कुछ है।

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

बड़े डेटासेट से निपटने के दौरान मानक WinForms नियंत्रण से बचें। वे बहुत सारी डेटा कॉपी करते हैं और बड़े डेटासेट के साथ अच्छी तरह से सौदा नहीं कर सकते हैं।

"वर्चुअल" मोड में ListView से बचें क्योंकि यह बग से भरा है।

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

संबंधित मुद्दे