.NET Framework ดอตเน็ตเฟรมเวิร์ก คือชุดคำสั่งและเครื่องมือเพื่อใช้ในการพัฒนาการพัฒนาโปรแกรม
แล้ว .NET Framework เกี่ยวกับ C# อย่างไร ?
จริงๆ แล้ว .NET Framework มีหลายภาษาให้เราได้ใช้งาน หนึ่งในนั้นคือ ภาษา C# ภาษาอื่นที่สามารถเขียนได้ เช่น VB.NET, Visual C++, J#, JScript, F# และอีกๆ กว่า 30 ภาษา แต่ที่นิยมสูงสุดคือ C# ถือเป็น first class citizen จึงได้รับการพัฒนาเพิ่มเติมความสามารถเป็นภาษาแรก
สิ่งที่ทำให้เราสามารถเขียนโปรแกรมด้วย .NET framework ได้หลายภาษา เนื่องจาก .NET ได้ทำการ สร้าง .NET framework ตามข้อกำหนดที่เรียกว่า Common Language Infrastructure (CLI)
CLI หมายถึง ข้อกำหนดหรือ specification ให้เราสามารถเขียนโปรแกรมใน environment ของ .NET ได้หลายภาษา และไม่ยึดติดกับ platform เขียนคำสั่งด้วยภาษาหนึ่งสามารถนำไปใช้ในร่วมกับภาษาอื่นที่อยู่ภายใต้ .NET ได้ เช่น เขียน class library ด้วย F# หรือ VB.NET ก็สามารถนำไปใช้ใน project C# ได้
สิ่งที่ทำให้เราสามารถเขียนได้ภาษา ได้เนื่องจากโปรแกรมที่เขียนด้วยไม่ด้วย C#, VB.NET หรือ F# จะถูก compiler (ตัวแปรภาษา) แปลงไปเป็น Common Intermediate Language (CIL) ซึ่งเป็นภาษากลางของทุกภาษา เมื่อถึงขั้นตอนเรียกใช้งานโปรแกรมครั้งแรก จะมีระบบที่ควบคุมการทำงานของโปรแกรมที่เรียกว่า Common Language Runtime ที่มี Just In Time compiler ทำหน้าที่แปลง CIL ไปเป็นภาษาเครื่องหรือ machine code ให้โปรแกรมที่เราเขียน ทำงานได้บน platform ต่างๆ เช่น Windows, Mac หรือ Linux
ภาพอธิบาย CLI
ภาษาใน .NET ต้องยึดมาตรฐานประเภทข้อมูลเดียวกัน เพราะหากไม่มีมาตฐานเดียวกันการส่งข้อมูลจากโปรแกรมที่เขียนด้วยภาษาหนึ่งไปอีกภาษาหนึ่งก็จะมีปัญหา
ประเภทข้อมูลทุกต้วต้องมี class แม่ที่ชื่อว่า System.Object สิ่งนี้เองทำให้ประเภทข้อมูลทุกตัวจะมี method ToString ซึ่งได้รับมาจาก Object based class
ภาษา C# เป็นภาษาที่ถูกออกแบบตามมาตรฐานของ CLI ดังนั้นรูปแบบของภาษาและประเภทข้อมูลจึงเป็นไปตามมาตรฐานของ CLI
CLI ไม่ได้กำหนดมาตฐานของ compiler ดังนั้น ถ้าพูดในแง่ทฤษฏีแล้ว compiler ก็สามารถที่จะแปลง C# ให้เป็นภาษาเครื่องได้เช่นเดียวกับภาษาอื่น เช่น C, C++
ใครมีคำถาม ข้อสงสัยเกี่ยวกับ .NET Framework เขียนเป็น comment มาได้เลยนะครับ