ทำความรู้จัก .NET สำหรับคนธรรมดา

สวัสดีครับ ขอเขียนอธิบายบทความเกี่ยวกับ .NET สำหรับคนธรรมดา เนื่องจากผมเองซึ่งศึกษามาทางนี้ยังรู้สึกสับสนกับความใหญ่และซับซ้อนของมัน คิดว่าอย่างน้อยก็คงมีซักคนที่อยากรู้ครับ

ศัพท์ที่ต้องรู้

Framework

คือสิ่งที่เป็นพื้นฐานสำหรับสร้างสิ่งใดสิ่งหนึ่ง ในที่นี้คือโปรแกรมหรือแอพพลิเคชั่นหรือส่วนใหญ่ๆ ภายในโปรแกรม ตัวอย่างใน .NET ถ้าเราจะสร้างบ้าน ต้องมีอุปกรณ์, แบบบ้าน,และวิศวกร/คนงาน สิ่งเหล่านี้เป็น Framework นั้นเอง

ส่วนถ้าพูดถึงรวมๆ ในวงการพัฒนาซอฟแวร์ Framework จะเหมือนชุดคำสั่งทางคอมพิวเตอร์ระดับพื้นฐานที่นำมาสร้างสิ่งใดซักสิ่งหนึ่ง เช่น Caliburn Micro เป็น Framework สำหรับสร้างโปรแกรมด้วยเทคโนโลยี WPF ด้วย ตามรูปแบบ MVVM ซึ่งภายใน Framework นี้ก็จะมีคำสั่งทั้งหมดที่จำเป็นที่จะทำให้โปรแกรมเราเป็นไปตามรูปแบบ MVVM

Library

คือเซตของคำสั่งที่เจาะจงใช้ทำอะไรอย่างหนึ่ง แต่ไม่ใหญ่ถึงขนาด Framework อาจจะเป็นสับเซตของ Framework  หรืออาจจะหมายถึงที่ๆ รวมเอา API เอาไว้ ตัวอย่างเช่น Task Parallel Library เป็นส่วนหนึ่งของ .NET Framework ประกอบด้วยคลาสต่างๆ ที่ใช้เขียนโปรแกรมแบบขนาน

API – Application programming interface

เป็นคำสั่งหรือเครื่องมือที่โปรแกรมเมอร์ใช้คุยกับคอมพิวเตอร์หรือ services ต่างๆ ในการสร้างโปรแกรมขึ้นมา แตกต่างจากภาษาโปรแกรมที่ใช้กำหนดถึงวิธีการเขียน, ไวยกรณ์ เป็นต้น

เมื่อรวมทั้ง 3 อย่างเข้าด้วยกัน เราสามารถพูดได้ว่า เราพัฒนา library สำหรับติดต่อกับบริการของผม library ตัวนี้ใช้ .NET Framework เป็นฐานในการเขียน(คือ ใช้ API ที่มีใน .NET Framework) ภายใน library นี้บรรจุ API เพื่อให้นักพัฒนานำไปใช้ทำอย่างอื่นต่อ

ต่อไปเข้าเรื่อง .NET เลยนะครับ

.NET Framework

เป็น Framework พื้นฐานสำหรับนักพัฒนาโปรแกรมบน Windows ทำได้งานแต่บน Windows เท่านั้น ปัจจุบันพัฒนาถึงเวอร์ชั่น 4.6 ซี่งมีติดมากับ Windows 10 ส่วน Windows เวอร์ชั่นต่ำกว่านี้ต้องโหลดมาลงเอง(จริงๆ ตอนนี้มีถึง 4.6.1 Windows 10 ก็ต้องโหลดมาลงด้วย) ประกอบด้วย

Framework Class Library เป็นที่บรรจุ API เอาไว้ในนักพัฒนาใช้งาน มี library แยกย่อยอีกทีนึงอีก เป็น Base Class Library(BCL) ซึ่งเป็นตัวหลักให้ library อื่นๆ ที่มาพร้อมกันอีกประเภทคือ Framework Class Library(FCL) ใช้งาน; FCL ที่มี เช่น LINQ Windows Forms, WPF, ASP.NET เป็นต้น

Compiler เอาไว้เปลี่ยนจากภาษาที่เราเขียน(ที่ .NET Framework รองรับ) เป็นภาษา Common Intermediate Language โดยจะถูกแพ็คในไฟล์ .exe หรือ .dll เรียกอีกอย่างว่า Assemblies

Common Language Runtime(CLR) หลังจากไฟล์ source code ถูก compile เป็น Assemblies แล้วเมื่อมันถูกเรียกใช้งาน Assemblies นี้จะถูก compile อีกทีหนึ่งเป็นภาษาเครื่องด้วย CLR ตรงนี้ยังมีรายละเอียดอื่นอยู่ แต่ละเอียดเกินขอไม่พูดถึงต่อนะครับ

.NET Core

เป็น Framework ที่ถูกทำขึ้นใหม่ โดยใช้แบบจาก .NET Framework แต่ถูกพัฒนาขึ้นโดยคำนึงถึงเรื่องแยกส่วน .NET Core ทำงานได้ทั้ง Windows, Linux และ OSX และ open source ด้วย

.NET Core มี 3 ส่วนหลักเหมือน .NET Framework แต่ส่วน Framework Class Library มีรายละเอียดดังนี้

dot net core stack

Unified BCL เป็น API ที่ใช้ร่วมกันไม่ว่าจะพัฒนา Windows Store App หรือ ASP.NET 5 

ASP.NET 5 เป็น framework ตัวใหม่ทั้งก้อน ที่สามารถเลือกว่าจะใช้ทำงานบน .NET Framework หรือ .NET Core ผมอาจจะยังไม่ได้บอกไปตอนต้นว่า ASP.NET ใช้ทำเว็บไซต์ฝั่งเซิฟเวอร์

Windows Store App เป็น framework ที่ทำงานบน .NET Core ใช้พัฒนาอะไรก็ตามที่เอาขึ้น Windows Store(Universal Windows Platform –  UWP)ได้

ข้อสังเกตเกี่ยวกับ .NET Core คือชื่อเวอร์ชั่นปัจจุบันคือ .NET Core 5 ซึ่งถูกนับต่อจาก .NET Framework ซึ่งในความเป็นจริงมันคือของใหม่ รวมถึง ASP.NET 5 ที่ออกแบบมาให้ใช้งานกับ .NET Core ก็เป็นของใหม่ที่ภายในอาจไม่เกี่ยวข้องอะไรกับ ASP.NET 4.6 ใน .NET Framework เลย

ด้วยเหตุนี้อนาคตจึงจะมีการเปลี่ยนชื่อดังนี้(ปัจจุบันยังไม่เปลี่ยน)

  • .NET Core 5 เปลี่ยน .NET Core 1.0.
  • ASP.NET 5 เปลี่ยนเป็น ASP.NET Core 1.0.

อีกข้อสังเกตของ .NET Core คือผู้ใช้ไม่จำเป็นต้องสนใจว่ามีมันอยู่ในเครื่อง เพราะมันจะถูกรวมมากับโปรแกรมที่เราโหลดมาจาก Windows App Store ซึ่งแตกต่างกับ .NET Framework ซึ่งจะรวมเอาแค่ส่วน 3rd party framework/library มาด้วยเท่านั้น

ข้อมูลจาก .NET Framework Wikipedia และ Introducing .NET Core

1 thought on “ทำความรู้จัก .NET สำหรับคนธรรมดา”

Leave a Reply

Your email address will not be published. Required fields are marked *