C #, .NET, ASP, ASP.NET आदि के बीच संबंध [बंद]


143

मैं वास्तव में C #, C # .NET और ASP और अन्य '.NET' भाषाओं के बीच अंतर पर स्पष्ट नहीं हूं।

मैं जो समझता हूं, .NET एक लाइब्रेरी / फ्रेमवर्क ऑफ ... चीजें हैं। मुझे लगता है कि वे अनिवार्य रूप से विंडोज डेटा जैसे कि फॉर्म एलिमेंट्स आदि तक पहुंच सकते हैं, लेकिन यह एएसपी.नेट के लिए लागू नहीं होता है।

इसके अतिरिक्त, मैं लोगों को खुद को '.NET' डेवलपर्स के रूप में देखता हूं। क्या इसका मतलब है कि वे C #, ASP और अन्य भाषाओं में धाराप्रवाह हैं?

अंत में, मैं कभी भी बिना .NET संलग्न C # नहीं देखता। क्या C # को .NET से इतनी बारीकी से जोड़ा गया है कि उसके बिना अनुपयोगी हो सकता है?

सारांश में: .NET क्या वास्तव में प्रदान करता है? यह C # और ASP आदि से कैसे संबंधित है? '.NET डेवलपर' का क्या अर्थ है? और अंत में, आप कभी भी बिना .NET के C # क्यों नहीं देखते हैं?

[एक तरफ, मुझे लगता है कि ये कई प्रश्न हैं, लेकिन मुझे लगता है कि वे बहुत अंतर-संबंधित हैं (या कम से कम यह धारणा है कि ब्राउज़िंग प्रोग्रामर / एसओ आदि ने मुझे दिया है)]।

जवाबों:


172

मैं आपकी उलझन को समझता हूं, मेरा विश्वास है कि जावा दुनिया के बारे में मेरे पास एक ही दृष्टिकोण है! वैसे भी मैं आपके प्रश्नों को तोड़ने और उन्हें एक-एक करके निबटाने का प्रयास करूँगा ... साथ ही इसमें कुछ अन्य बिंदुओं को भी जोड़ूँगा, जो उम्मीद कर रहे हैं कि यह स्पष्ट करने में मदद करेगा:

  1. C # और C # .NET एक ही बात है ... C #
  2. .NET है, जैसा कि आप कहते हैं, कोड की एक लाइब्रेरी जो .NET भाषाओं में बात कर सकती है।
  3. .NET लैंग्वेज अलग-अलग फ्लेवर में आती हैं जैसे: C # .NET, VB.NET, Managed C ++, F #।
  4. .NET भाषाएँ CIL ( कॉमन इंटरमीडिएट लैंग्वेज ) को संकलित करती हैं, जिसका अर्थ है कि वे सभी एक ही भाषा "बोलना" शुरू करती हैं और इसलिए इंटरप्रेट कर सकती हैं।
  5. ASP.NET वेब साइटों को बनाने के लिए प्रयुक्त .NET लाइब्रेरी का हिस्सा है। ASP.NET के अन्य उपखंड हैं जैसे WebForms (वेब ​​पेज बनाने का पुराना तरीका) या तेजी से परिपक्व होने वाले MVC लाइब्रेरी जो देखने लायक भी हैं।
  6. प्रपत्र (पुरानी तकनीक) या नया WPF (विंडोज प्रेजेंटेशन फाउंडेशन) ऐसी तकनीकें हैं जिनका उपयोग आप आमतौर पर .NET में करते हैं, जिसे आप पारंपरिक डेस्कटॉप एप्लिकेशन के रूप में जानते हैं।

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

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

जिस प्रोजेक्ट पर आप काम कर रहे हैं, वह इस बात पर निर्भर करेगा कि आप कौन सी पसंद करते हैं।


7
+1, लेकिन # 2 - .NET पर एक नाबालिग "कोड का पुस्तकालय नहीं है," यह एक रूपरेखा है (जिसे आप सही ढंग से एक "वर्कफ़्लो" के रूप में परिभाषित करते हैं जो परिभाषित करता है कि आपके कार्यक्रम कैसे परिभाषित और चलाए जाते हैं)। Microsoft द्वारा प्रकाशित मानक पुस्तकालयों का संग्रह जो .NET भाषाओं के लिए उपलब्ध है। .NET बेस क्लास लाइब्रेरी (BCL) है।
20

7
ध्यान दें कि ASP का उपयोग ASP.NET के बजाय क्लासिक ASP को संदर्भित करने के लिए भी किया जा सकता है।
ब्रायन

11
मैं बिंदु 1 से असहमत हूं। C # का उपयोग बिना .NET के किया जा सकता है। इसलिए C # .NET स्पष्ट रूप से बताता है कि आप C # का उपयोग .NET फ्रेमवर्क के साथ करते हैं जबकि C # नहीं करता है। व्यवहार में, हालांकि अधिकांश लोग मानते हैं कि C # का उपयोग .NET के साथ किया जाता है।
इयान न्यूजन

23

.NET एक एप्लिकेशन डेवलपमेंट फ्रेमवर्क है - इसमें कई लाइब्रेरियाँ होती हैं जिनमें कार्यक्षमता की एक सीमा होती है।

C # .NET के साथ उपयोग के लिए बनाई गई भाषा है। यह केवल .NET- संगत भाषा नहीं है - अन्य विकल्पों में VB.NET, F #, प्रबंधित C ++, IronRuby और IronPython शामिल हैं। आप .NET फ्रेमवर्क में कार्यक्षमता का उपयोग करने के लिए अपनी पसंद की भाषा में कोड लिखते हैं।

ASP.NET .NET का एक एक्सटेंशन है, जो आपको वेब-आधारित एप्लिकेशन और वेबसाइट लिखने में मदद करता है। इस संदर्भ में समग्र ढांचा उपलब्ध है (या उदाहरण के लिए WinForms के मामले में) उपयोगी है।

[क्लासिक] एएसपी एक पुराना वेब फ्रेमवर्क है, जो माइक्रोसॉफ्ट से भी है। समान नामों के बावजूद, ASP और ASP.NET हुड के तहत काफी भिन्न हैं। एक उल्लेखनीय अंतर यह है कि ASP के लिए आपके एकमात्र भाषा विकल्प VBScript और JScript हैं। एएसपी एक पुरानी और पुरानी तकनीक है, इससे खुद को परेशान न करें।


14

सबसे पहले, .Net जावा बाइटकोड के समान एक बाइटकोड फ्रेमवर्क है। .Net हालांकि केवल BYTECODE है। ".Net" आधिकारिक भाषा नहीं है। लक्ष्यीकरण करने वाली दो मुख्य भाषाएँ .Net C # और VB.Net हैं। ASP.Net एक वेबसाइट के रूप में काम करने के लिए C # या VB.Net (या .Net लक्षित भाषाओं) में लिखे गए अनुप्रयोगों को सक्षम करने के लिए प्रदान की गई .Net लाइब्रेरी के लिए एक एक्सटेंशन है।

डेवलपर्स जो कहते हैं कि वे जानते हैं। नेट का मतलब है कि वे आमतौर पर सी # या VB.Net, या दोनों जानते हैं, और जो भी वे नहीं जानते हैं उन्हें आसानी से सीख सकते हैं (C # और VB.Net सामान्य सिंटैक्स से अलग समान भाषाएं हैं)

अंत में, एएसपी ASP.Net के समान नहीं है। उनमें भारी अंतर है


तो क्या एसी # एप्लीकेशन और एसी # .नेट एप्लीकेशन में अंतर है? मैं पूछता हूं कि आपने अपने जवाब में। # .Net से .net छोड़ दिया है। हालांकि .Net डेवलपर्स सेक्शन बहुत मददगार था।
मेगन वॉकर

5
खैर, C # वास्तव में केवल एक भाषा है, .Net के साथ बंधी नहीं। लेकिन C # का सभी वर्तमान उपयोग .Net के साथ है, इसलिए व्यावहारिक रूप से, "C #" और "C # .Net" के बीच कोई अंतर नहीं है
अर्लज़

एक ".NET" डेवलपर के रूप में, मैं दावा करता हूं क्योंकि मैं यथासंभव भाषा विशेष विधियों / सुविधाओं से बचता हूं इसलिए मैं केवल वाक्यविन्यास परिवर्तनों के साथ सभी .NET भाषाओं में कूद सकता हूं।
वेन

1
C # भाषा सिर्फ एक भाषा है। आप .NET बैकएंड या फ्रेमवर्क पर बात किए बिना C # में कुछ भी लिख सकते हैं। जो लोग मुझ पर संदेह करते हैं, उनके लिए Xamarin C # देखें: बिना किसी .NET का उपयोग किए बिना iOS और Android देशी ऐप्स लिखने का तरीका।
फिल रयान

@PhilRyan इसके लायक क्या है, यह जवाब पोस्ट किए जाने पर Xamarin का आविष्कार भी नहीं किया गया था।
19

8

चूंकि केवल एक उत्तर में विस्तार से जाने के बिना मोनो का उल्लेख है:

हालाँकि C # एक भाषा के रूप में मूल रूप से Microsoft में .NET फ्रेमवर्क के भाग के रूप में विकसित की गई थी, लेकिन बाद में इसे ECMA द्वारा मानकीकृत किया गया , जिसका अर्थ है कि भाषा के स्वतंत्र मानक-अनुरूप कार्यान्वयन विकसित किए जा सकते हैं, और वास्तव में वे थे। उनमें से सबसे प्रमुख मोनो है

मोनो एक खुला स्रोत कार्यान्वयन है, जो .NET फ्रेमवर्क के साथ संगत CMA कंपाइलर और एक CLI कार्यान्वयन (मोनो रंटाइम, माइक्रोसॉफ्ट के CLR के बराबर - .NET फ्रेमवर्क की आभासी मशीन) सहित ECMA मानक अनुरूप उपकरणों का सेट है। इसका उद्देश्य .NET एप्लिकेशन को क्रॉस-प्लेटफ़ॉर्म चलाना है। आज तक, यह C # 4.0 का समर्थन करता है और .NET फ्रेमवर्क सुविधाओं का पर्याप्त हिस्सा है । Microsoft कार्यान्वयन को प्रतिबिंबित करने के अलावा, मोनो टीम अपने स्वयं के नवाचार भी कर रही है।

तो, हाँ, यह संभव है और बिना .NET के C # में काम करना संभव है। हालांकि इसकी संभावना नहीं है कि मोनो माइक्रोसॉफ्ट के बाजार में हिस्सेदारी और .NET फ्रेमवर्क की स्थिति को प्रतिद्वंद्वी करने में सक्षम होगा, अभी नहीं, और तत्काल भविष्य में नहीं।


किसी के लिए मोनो की व्याख्या करने के लिए इंतजार कर रहा था, गलत धारणा को सही करने के लिए जिसे आप कभी भी .NET के साथ जोड़े बिना C # नहीं देखते हैं। +1।
KChaloux

7

जॉन स्कीट की पुस्तक, सी # इन डेप्थ टूट गई। इसका उपयोग अक्सर संबंध में किया जाता है

  1. प्रोग्रामिंग लैंग्वेज (C #, VB)
  2. रनटाइम (सीएलआर) जो उन भाषाओं को संकलित करता है, जो बाईटकोड चलाता है।
  3. फ्रेमवर्क लाइब्रेरी (विंडोज फॉर्म / ASP.NET)

2

अन्य उत्तर यह समझाने का एक अच्छा काम करते हैं कि प्रत्येक तकनीक क्या है, लेकिन मुझे लगता है कि वे भ्रम के प्रमुख कारणों में से एक को याद करते हैं। C # और C # .NET मूल रूप से पर्यायवाची हैं, हालाँकि VB.NET और VB अलग-अलग हैं और ASP और ASP.NET भी अलग-अलग हैं। VB आमतौर पर VB6 और पुराने को संदर्भित करता है, और ASP क्लासिक ASP को संदर्भित करता है। इन तकनीकों को मूल रूप से .NET फ्रेमवर्क की रिलीज़ के साथ फिर से डिज़ाइन किया गया था और उत्पादों के लिए नए नामों के साथ आया। Microsoft ने .NET को बहुत अधिक सब कुछ दिया, लेकिन C # भी नया था इसलिए दोनों नाम वास्तव में एक ही चीज़ को संदर्भित करते हैं।


0

आपको भाषा, फ्रेमवर्क, सीएलआर, पैटर्न और प्रोग्रामिंग विधियों में अंतर करना है।

ASP.Net Winforms विकास के लिए एक पूरी तरह से अलग प्रोग्रामिंग पैटर्न का उपयोग करता है, हालांकि वे एक ही नींव साझा करते हैं। आप विभिन्न भाषाओं में ASP.net और .Net अनुप्रयोगों को प्रोग्राम कर सकते हैं।

तब मोनो संदर्भ में प्रयुक्त मोनो और सी # भाषा है - शायद कुछ शोध के लायक है।

इन लिंक्स को पढ़ें:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/File: Overview_of_the_Common_Language_Infrastructure.svg


"आप विभिन्न भाषाओं में ASP.net और .Net अनुप्रयोगों को प्रोग्राम कर सकते हैं।" मैं अनिश्चित हूं कि आपका क्या मतलब है बायु। आप कहते हैं कि आप विभिन्न भाषाओं में ASP.net प्रोग्राम लिख सकते हैं। लेकिन मुझे लगा कि एएसपी भाषा थी, और .NET आपके द्वारा जोड़ा गया ढांचा था।
मेगन वॉकर

ASP.net एक ढांचा है और मैं इसे एक प्रोग्रामिंग पद्धति के रूप में देखता हूं। ASP.net को किसी भी भाषा में इस सूची से कोड किया जा सकता है en.wikipedia.org/wiki/List_of_CLI_languages व्हाट्सएप ASP क्लास नहीं कर सकता।
जेरेमी

1
एएसपी एक भाषा नहीं है।
मार्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.