.NET framework ดอตเน็ตเฟรมเวิร์ก คือโครงร่างเพื่อใช้ในการพัฒนาโปรแกรม

image title

.NET framework ประกอบด้วย

  • class library ต่างๆ ซึ่งเป็นชุดคำสั่งพื้นฐานของการแก้ปัญหาทั่วไปในการเขียนโปรแกรม .NET ได้รวม base class libary ที่สามารถมาหยิบใช้ได้เลย class libary เหล่านี้ครอบคลุมการทำงานหลายอย่าง เช่น user interface, website, windows app, algrithms network, IO ในขั้นตอนเขียนโปรแกรม เราก็จะนำ base class ที่ .NET มีมาให้ใช้ร่วมกับคำสั่งที่เราเขียนขึ้นมาเอง
  • มีระบบที่มีลักษณะการทำงานเป็น virtual machine เปรียบเหมือนระบบปฏิบัติการจำลองที่เป็นตัวควบคุมการทำงานของโปรแกรมที่เขียนด้วย .NET framework ระบบนี้มีชื่อเรียกว่า .NET Runtime หรือ Common Language Runtime

.NET เป็นเทคโนโลยีที่ Microsoft สร้างขึ้นมาเพื่อใช้ในการพัฒนาโปรแกรมในรูปแบบต่างๆ ได้อย่างครบวงจร ไม่ว่าจะเป็น Winddows App, Web App, Web Service, Mobile App หรือ Silverlight .NET ถูกออกมาโดยเน้นเรื่องของ productivity ทำให้พัฒนาโปรแกรมได้ง่ายและรวดเร็ว Microsoft ได้สนับสนุนการเขียนโปรแกรมสำหรับ Windows Platfrom ด้วย .NET

แล้วดอตเน็ตเฟรมเวิร์กเกี่ยวกับ C# อย่างไร ?

จริงๆ แล้ว ดอตเน็ตเฟรมเวิร์กได้เตรียมหลายภาษาให้เราได้ใช้ในการเขียนโปรแกรม หนึ่งในนั้นคือ ภาษา C# ภาษาอื่นที่สามารถเขียนได้ใน environment ของ .NET ได้แก่ VB.NET, Visual C++, J#, JScript, F# และอีกกว่า 30 ภาษา สิ่งที่ทำให้เราสามารถเขียนโปรแกรมด้วย .NET framework ได้หลายภาษา เนื่องจาก .NET ได้ทำการ สร้าง .NET framework ตามข้อกำหนดที่เรียกว่า Common Language Infrastructure (CLI)

Common Language Infrastructure (CLI)

CLI หมายถึง ข้อกำหนดหรือ spec ให้สามารถเขียนโปรแกรมใน environment ของ .NET ได้หลายภาษา และไม่ยึดติดกับ platform เขียนคำสั่งด้วยภาษาหนึ่งสามารถนำไปใช้ในร่วมกับภาษาอื่นที่อยู่ภายใต้ .NET ได้

สิ่งที่ทำให้เราสามารถเขียนได้ภาษาได้เนื่องจากโปรแกรมที่เขียนด้วยภาษาใดก็ตาม ไม่ว่าจะเป็น C# หรือ VB.NET จะถูก compiler (ตัวแปรภาษา) แปลงไปเป็น Common Intermediate Language (CIL) ซึ่งเป็นภาษากลางของทุกภาษา เมื่อถึงขั้นตอนเรียกใช้งานโปรแกรมครั้งแรก จะมีระบบที่ควบคุมการทำงานของโปรแกรมที่เรียกว่า Common Language Runtime ที่มี Just In Time compiler ทำหน้าที่แปลง CIL ไปเป็นภาษาเครื่องหรือ machine code ให้โปรแกรมที่เราเขียน ทำงานได้บน platform ต่างๆ เช่น Windows, Mac หรือ Linux

ภาพอธิบาย CLI image title

common type system

ภาษาใน .NET ต้องยึดมาตรฐานประเภทข้อมูลเดียวกัน เพราะหากไม่มีมาตฐานเดียวกันการส่งข้อมูลจากโปรแกรมที่เขียนด้วยภาษาหนึ่งไปอีกภาษาหนึ่งก็จะมีปัญหา ประเภทข้อมูลทุกต้วต้องมี class แม่ที่ชื่อว่า system.object สิ่งนี้เองทำให้ประเภทข้อมูลทุกตัวจะมี method ToString ซึ่งได้รับมาจาก object class

ภาษา C# เป็นภาษาที่ถูกออกแบบตามมาตรฐานของ CLI ดังนั้นรูปแบบของภาษาและประเภทข้อมูลจึงเป็นไปตามมาตรฐานของ CLI

CLI ไม่ได้กำหนดมาตฐานของ compiler ดังนั้น ถ้าพูดในแง่ทฤษฏีแล้ว compiler ก็สามารถที่จะแปลง C# ให้เป็นภาษาเครื่องได้เช่นกับภาษาอื่น เช่น C, C++

ใครมีคำถาม ข้อสงสัยเกี่ยวกับ .NET framework เขียนเป็น comment มาได้เลยนะครับ