หลายคนสับสนระหว่าง C# (ภาษาโปรแกรม) และ .NET Framework (เฟรมเวิร์ก) จริงๆ แล้วเป็นสิ่งที่ต่างกันแต่เกี่ยวข้องกันอย่างใกล้ชิด
C# คืออะไร?
- ภาษาโปรแกรมมิ่ง (Programming Language)
- พัฒนาโดย Microsoft นำโดย Anders Hejlsberg
- รันบน .NET Runtime (CLR)
- มีฟีเจอร์: OOP, Generics, LINQ, Async/Await, Pattern Matching, Records, etc.
.NET Framework / .NET (Core/5+) คืออะไร?
- Software Framework / Platform
- ประกอบด้วย:
- CLR (Common Language Runtime) - Virtual Machine รันโค้ด IL
- BCL (Base Class Library) - ไลบรารีมาตรฐาน (Collections, IO, Network, etc.)
- Language Compilers - C#, VB.NET, F#
- รองรับหลายภาษา: C#, VB.NET, F#, และอื่นๆ
ความสัมพันธ์
C# Source Code → Compiler (csc/roslyn) → IL Code → CLR (JIT) → Machine Code
C# เป็น หนึ่งในภาษา ที่รันบน .NET .NET คือ Platform ที่ให้บริการ Runtime และ Library
ฟีเจอร์หลักของ C# (บน .NET)
- Boolean Conditions
- Automatic Garbage Collection (โดย CLR)
- Standard Library (BCL)
- Assembly Versioning
- Properties และ Events
- Delegates และ Events Management
- Generics, LINQ, Async/Await
.NET Framework vs .NET Core vs .NET 5+
| เวอร์ชัน | ลักษณะ | Platform |
|---|---|---|
| .NET Framework 4.x | Legacy, Windows-only | Windows |
| .NET Core 1.x - 3.1 | Cross-platform, Open Source | Windows, Linux, macOS |
| .NET 5, 6, 7, 8+ | Unified Platform, LTS (ทุก 2 ปี) | Windows, Linux, macOS, Mobile, WebAssembly |
สรุป: C# = ภาษา | .NET = แพลตฟอร์ม/รันไทม์/ไลบรารี | CLR = เอนจิ้นรันไทม์