ดอตเน็ตเฟรมเวิร์ก (.NET framework) คืออะไร

Tags: .NETc#

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

image title

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

  • class library ต่างๆ ซึ่งเป็นชุดคำสั่งพื้นฐานของการแก้ปัญหาทั่วไปในการเขียนโปรแกรม .NET ได้รวม base class libary ที่สามารถนำมาใช้ได้เลย class libary เหล่านี้ครอบคลุมการทำงานหลายอย่าง เช่น user interface, web app, windows app, algrithms, network, IO ตอนที่เขียนโปรแกรม เราก็จะนำ base class ที่ .NET มีมาให้ใช้ร่วมกับคำสั่งที่เราเขียนขึ้นมาเอง
  • ระบบที่มีลักษณะการทำงานเป็น virtual machine เปรียบเหมือนระบบปฏิบัติการจำลองที่เป็นตัวควบคุมการทำงานของโปรแกรมที่เขียนด้วย .NET framework ระบบนี้มีชื่อเรียกว่า .NET Runtime หรือ Common Language Runtime (CLR) ถ้าฝั่ง Java ก็ที่คล้ายกันคือ JVM (Java Virtual Machine)
  • .NET เป็นเทคโนโลยีที่ Microsoft สร้างขึ้นมาเพื่อใช้ในการพัฒนาโปรแกรมในรูปแบบต่างๆ ได้อย่างครบวงจร ไม่ว่าจะเป็น Winddows App, Web App, Web Service, Mobile App และ Game
  • .NET ถูกออกมาโดยเน้นเรื่องของ productivity ทำให้พัฒนาโปรแกรมได้ง่ายและรวดเร็ว
  • Microsoft ได้สนับสนุนการเขียนโปรแกรมสำหรับ Windows Platfrom ด้วย .NET

แล้ว .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)

รู้จัก Common Language Infrastructure (CLI) และ Common Language Runtime (CLR)

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 image title

รู้จัก Common Type System

ภาษาใน .NET ต้องยึดมาตรฐานประเภทข้อมูลเดียวกัน เพราะหากไม่มีมาตฐานเดียวกันการส่งข้อมูลจากโปรแกรมที่เขียนด้วยภาษาหนึ่งไปอีกภาษาหนึ่งก็จะมีปัญหา

ประเภทข้อมูลทุกต้วต้องมี class แม่ที่ชื่อว่า System.Object สิ่งนี้เองทำให้ประเภทข้อมูลทุกตัวจะมี method ToString ซึ่งได้รับมาจาก Object based class

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

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

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