2010-06-19 7 views
8

अगर कोई .NET ढांचे के साथ शुरू कर रहा था, तो शुरू करने के लिए सबसे व्यवहार्य टेम्पलेट क्या है? और व्यवहार्य से मेरा मतलब है कि सबसे कम सीखने की वक्र और उच्चतम लाभ है। साथ.NET - ASP.NET, WPF, सिल्वरलाइट या कमांड लाइन सी # से शुरू हो रहा है?

प्रारंभ: सी # में

  • कमांड प्रॉम्प्ट अनुप्रयोगों ?
  • एएसपी.NET का उपयोग कर वेब अनुप्रयोग?
  • एक्सएएमएल/सी # में सिल्वरलाइट अनुप्रयोग?
  • डब्ल्यूपीएफ/विनफॉर्म डेस्कटॉप एप्लिकेशन?

मैं इस समय एक विशेष डोमेन में बहुत अधिक ध्यान केंद्रित नहीं करना चाहता, बल्कि .NET Framework 4.0 में सब कुछ सीखो। .NET सीखना बेहतर होगा?

उत्तर

12

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

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

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

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

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

जहां तक ​​एएसपी.नेट का संबंध है, यह ऐसा कुछ है जिसे आप सीखना नहीं चाहते हैं जब तक आपको आवश्यकता नहीं है।

+1

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

+1

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

+1

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

3

कमांड प्रॉम्प्ट शायद सबसे आसान है क्योंकि आप संदेशों और इसी तरह की चीजों को अनदेखा कर सकते हैं लेकिन आप निश्चित रूप से बहुत सीमित हैं। अगला WinForms होगा जो काफी आसान है क्योंकि आप आसानी से राज्य का ट्रैक रख सकते हैं।

लेकिन यह शायद अपने वर्तमान अनुभव पर निर्भर करता है, अगर आप पहले से ही कुछ वेब अनुभव है, WebForms उदाहरण के लिए WinForms से आप के लिए और अधिक समझ बनाने सकता है

1

अगर मैं कोई नया व्यक्ति (पूरी तरह से प्रोग्रामिंग करने के लिए नया) अध्यापन कर रहे थे तो मैं कंसोल अनुप्रयोगों के साथ शुरू होगा। यह आपको जीयूआई विकास की अतिरिक्त जटिलताओं या एएसपी.Net पृष्ठ जीवन चक्र की संभावित जटिलताओं के बिना मूल ओओ प्रोग्रामिंग अवधारणाओं को पढ़ाने का अवसर प्रदान करेगा।

मैं फिर WinForms विकास में आगे बढ़ूंगा और घटना संचालित प्रोग्रामिंग और जीयूआई पर काम करूंगा।

1

क्या प्रोग्रामिंग वातावरण आप पहले ही जानते हैं?

मैं एक मानक विंडोज एप्लिकेशन (Winforms) के साथ शुरू कर दूंगा क्योंकि आप आसानी से खिड़की पर दृश्य घटकों को खींच और छोड़ सकते हैं और कुछ अंतःक्रियाशीलता को काफी तेज़ी से और आसान बना सकते हैं।

हालांकि अधिकांश परियोजनाओं को आसानी से बनाया जा सकता है और सीधे चलाया जा सकता है, वेब अनुप्रयोगों को वेब के बारे में थोड़ी अधिक जानकारी और ज्ञान की आवश्यकता होती है।

2

क्या आपके पास कोई ऐसा एप्लिकेशन है जिसे आप चाहते हैं या विकसित करना चाहते हैं?

यदि आपके पास है, तो इसे कुछ विस्तार से परिभाषित करने का प्रयास करें और फिर आपके पास प्राप्त करने के लिए आवश्यक लक्ष्यों का एक सेट होगा।

एक बार आपके पास ये लक्ष्य हो जाने के बाद आप काम कर सकते हैं कि समस्या का समाधान करने वाली सबसे अच्छी तकनीक क्या है।

उदाहरण के लिए यदि आपके पास काफी स्थिर यूआई WinForms शायद ठीक रहेगा, लेकिन यदि आप एनिमेशन और अन्य दृश्य प्रभावों को शामिल करना चाहते हैं तो आपको WPF/Silverlight को देखना चाहिए।

1

"और सबसे अच्छे से मेरा मतलब है कि सबसे कम सीखने की वक्र और उच्चतम लाभ है। मैं इस समय एक विशेष क्षेत्र में ज्यादा ध्यान केंद्रित नहीं करना चाहता, इसके बजाय इसमें सब कुछ सीखना .NET फ्रेमवर्क 4.0। "

यदि आप थोड़ी देर के लिए .NET में प्रोग्रामिंग कर रहे हैं, तो आप जानते हैं कि ऊपर दिए गए 2 वाक्यों में ऑक्सीमोरॉन है यदि मैंने कभी एक एलओएल देखा है।

पिछली बार मैंने नेट निहित जाँच: विधानसभाओं y = 15.1x + 17,3 108

नाम स्थान y = 51.6x + 51 361

प्रकार y = 2249.3x + 626,9 14123

सदस्य वाई = 21343x + 7951.3 136009

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

0

पहले चरण के लिए, मैं कमांड लाइन अनुप्रयोगों की अनुशंसा करता हूं।

अन्य सभी के लिए, WinForm ऐप्स के साथ फ़ॉलो करें। उनके पास टूरियल आदि में व्यापक वेब कवरेज है, और बुनियादी और उन्नत सी # सुविधाओं को कवर करने वाली समस्याओं और समाधानों की एक विस्तृत श्रृंखला प्रदान करते हैं।

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

मुझे गलत मत समझो, आप सिल्वरलाइट या डब्ल्यूपीएफ ऐप्स के साथ मूल बातें भी सीख सकते हैं। लेकिन WinForm लगभग किसी भी व्यक्ति के लिए जाना जाता है जो कभी भी सी # में विकसित हुआ है, इसलिए आपको वेब पर होने वाली मुश्किल समस्याओं के बारे में अच्छी जानकारी मिल सकती है (एसओ या अन्य जगहों पर)। यहां बहुत से लोग हैं जो मुझसे ज्यादा जानकार हैं, जो आपको .NET ढांचे की गहराई का पता लगाने में मदद कर सकते हैं

एक बार जब आप इन हिस्सों में महारत हासिल कर लेते हैं, तो नए क्षेत्र का पता लगाने के लिए स्वतंत्र महसूस करें - और जल्द ही आप एक होंगे डब्ल्यूपीएफ पर मेरे सवालों के जवाब देने के लिए, जो मुझे कुछ भी नहीं पता ;-)

+0

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

+0

@ रे बर्न्स: यदि WinForms खराब प्रोग्रामिंग आदतों को एक तरफ सिखाता है तो सवाल छोड़कर, सिल्वरलाइट एट के लिए प्रोग्राम करने के तरीके के बारे में और अधिक जानकारी उपलब्ध है। अल। यही कारण है कि मैं उनके लिए जाने की सलाह देते हैं। – Treb

2

command line/console अनुप्रयोगों के साथ प्रारंभ करें।

क्यों?

आपकी पहली वस्तु उन्मुख अवधारणाओं के लिए कार्यान्वयन है जो मूल हैं लेकिन वेब एप्लिकेशन/विंडोज़ एप्लिकेशन/सेवाओं या कभी भी जटिलताओं के बिना।

Console application टेम्पलेट का उपयोग कर प्रोग्रामिंग आपको अनावश्यक जटिलताओं से दूर रखेगी और आप ढांचे और फीचर के आंतरिक कार्यों पर ध्यान केंद्रित कर सकते हैं।

जब इसके साथ किया गया और System.Collections आदि जैसी सुविधाओं/पुस्तकालयों की खोज की है तो आपको अपनी रुचि और पिछले विकास के आधार पर विशाल विकास डोमेन से चुनना चाहिए।

i-e वेब अनुप्रयोग विकास/डेस्कटॉप डेवलपर या अन्यथा।

इससे आपको यह तय करने में मदद मिलेगी कि कौन सी तकनीक आपकी रूचि के साथ समानांतर है। की तरह, अगर आप वेब अनुप्रयोग विकास में रुचि रखते हैं आप Asp.Net WebForms/Asp.Net MVC आदि के लिए जा सकते हैं और अधिक Windows Forms or WPF

आशा समय बर्बाद करने की जरूरत है donot इस मदद करता है

0

यहाँ मेरी मूल्यांकन मानदंडों के आधार पर आपके द्वारा निर्दिष्ट किया जाता है:

  • कमांड लाइन सीखने के लिए बहुत तेज़ है, लेकिन आप वास्तव में बहुत कुछ नहीं कर सकते लेकिन टेक्स्ट प्रिंट कर सकते हैं, इसलिए कुछ सरल प्रोग्रामों के साथ खेलने के बाद आप जल्दी से आगे बढ़ना चाहते हैं।

  • WPF/Silverlight कमांड लाइन के बाद दूसरा सबसे आसान है जब तक आप कुछ उदाहरणों के माध्यम से काम करना शुरू करते हैं जो डेटा टेम्पलेट्स और आइटम नियंत्रण का उपयोग करते हैं। एक बार जब आप इनके साथ सहज महसूस कर लेंगे तो आप सी # और नेट फ्रेमवर्क बेस क्लास लाइब्रेरी की जटिलताओं को सीखने पर ध्यान केंद्रित कर सकते हैं, या आप डब्ल्यूपीएफ के ग्राफिकल तत्वों का पता लगा सकते हैं। क्योंकि यह WPF/Silverlight से समझने के लिए और अधिक कठिन है

  • WinForms से परहेज किया जाता है: WPF/Silverlight में आप अपने डेटा वस्तुओं को बनाने और फिर एक राय यह है कि उन्हें प्रदर्शित करता है आकर्षित, प्लस WPF/Silverlight सभी स्थिति संभालती है और लेआउट। WinForms में आपको अपने डेटा ऑब्जेक्ट्स और यूआई ऑब्जेक्ट्स के बीच डेटा को मैन्युअल रूप से स्थानांतरित करना होगा, और आपको स्पष्ट रूप से सब कुछ व्यवस्थित करना होगा। WinForms के खिलाफ अन्य हमले यह है कि यह तेजी से अप्रचलित हो रहा है, और यह आपको कुछ बहुत खराब प्रोग्रामिंग प्रथाओं में मजबूर करता है।

  • बिना किसी संदेह के एएसपी.नेट में आपके द्वारा सूचीबद्ध सभी तकनीकों का उच्चतम सीखने की वक्र है, और मैं जितना संभव हो सके उससे दूर अपने सबसे दूर रहना चाहता हूं!

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

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

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

एक अंतिम टिप:

for(int i=0; i<10; i++) 
{ 
    Button b = new Button(); 
    ... 
    panel.Add(b); 
} 

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

0

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

व्यक्तिगत रूप से मैं एएसपी.नेट की सिफारिश करता हूं - यह थोड़ा अजीब है और आप बुरी आदतों को विकसित करेंगे।

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

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

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

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