अक्सर भ्रम होता है: C# एक प्रोग्रामिंग भाषा है, जबकि .NET एक सॉफ्टवेयर फ्रेमवर्क है।
.NET फ्रेमवर्क
- माइक्रोसॉफ्ट द्वारा विकसित सॉफ्टवेयर डेवलपमेंट प्लेटफॉर्म।
- CLR (Common Language Runtime): वर्चुअल मशीन जो कोड निष्पादित करती है (JIT कंपाइलेशन, गार्बेज कलेक्शन, एक्सेप्शन हैंडलिंग)।
- BCL (Base Class Library): विशाल क्लास लाइब्रेरी (कलेक्शन, IO, नेटवर्किंग, क्रिप्टोग्राफी, आदि)।
- बहुभाषी: C#, VB.NET, F#, C++/CLI, आदि सभी .NET पर चलते हैं।
- सभी भाषाएँ MSIL (Microsoft Intermediate Language) में कंपाइल होती हैं।
C# भाषा
- .NET के लिए प्राथमिक भाषा (एंडर्स हेजल्सबर्ग द्वारा डिज़ाइन)।
- ऑब्जेक्ट-ओरिएंटेड, टाइप-सेफ, मैनेज्ड।
- .NET फीचर्स का उपयोग करती है: गार्बेज कलेक्शन, असेंबली वर्जनिंग, डेलीगेट्स, इवेंट्स, लिन्क (LINQ), async/await, पैटर्न मैचिंग, रिकॉर्ड्स, आदि।
मुख्य संबंध
| पहलू | C# | .NET |
|---|---|---|
| प्रकृति | प्रोग्रामिंग भाषा | रनटाइम + लाइब्रेरी + टूल्स |
| कंपाइलर | Roslyn (csc.exe) | MSIL जनरेट करता है |
| निष्पादन | CLR पर | CLR प्रदान करता है |
| भाषा स्वतंत्र | नहीं | हाँ (कई भाषाएँ) |
| वर्जनिंग | C# 1.0 → 12.0+ | .NET Framework 1.0 → .NET 8+ |
महत्वपूर्ण नोट
- .NET Framework (विंडोज़-ओनली, लीगेसी, 4.8 अंतिम) बनाम .NET Core / .NET 5+ (क्रॉस-प्लेटफॉर्म, ओपन सोर्स, वर्तमान)।
- C# 12 (.NET 8 के साथ) नवीनतम स्थिर संस्करण (2024 तक)।