.NET 5 เปิดตัว หลอมรวม .NET ทุกเวอร์ชันเป็นหนึ่งเดียวกัน ผนวก Mono เข้ามาด้วย

by mk
7 May 2019 - 03:08

การเดินทางอันยาวนานของ .NET หลากหลายแพลตฟอร์มกำลังจะสิ้นสุดลง เพราะไมโครซอฟท์ประกาศทำ .NET 5 ที่เป็นการรวม .NET ทั้ง 3 สายคือ .NET Framework ตัวดั้งเดิม, .NET Core เวอร์ชันโอเพนซอร์ส และ Xamarin เข้าด้วยกัน

ผลคือ .NET 5 (ใช้ชื่อ .NET เฉยๆ ไม่มีสร้อยใดๆ ต่อท้าย) จะเป็น .NET ตัวเดียวที่ทำงานได้หลากหลายแพลตฟอร์ม ตั้งแต่ Windows, Linux, macOS, iOS, Android ไปจนถึงอุปกรณ์ IoT และเอนจินเกม Unity

แท้จริงแล้ว .NET 5 คือเวอร์ชันต่อไปของ .NET Core 3.0 ที่จะออกตัวจริงในเดือนกันยายนนี้ โดยข้ามเลข 4 ไปเพราะจะสับสนกับ .NET Framework 4.x ในปัจจุบัน และมีกำหนดออกตัวจริงในเดือนพฤศจิกายน 2020

.NET 5 คือ .NET Core 3.0 + Mono

ก่อนหน้านี้เราเห็นไมโครซอฟท์พยายามหลอมรวม .NET Framework (รุ่นดั้งเดิม ทำงานได้เฉพาะบนวินโดวส์) กับ .NET Core (รุ่นโอเพนซอร์ส ทำงานได้บน 3 ระบบปฏิบัติการเดสก์ท็อป) มาสักพักใหญ่ๆ โดยเฉพาะใน .NET Core 3.0 ที่มีฟีเจอร์สำคัญคือรองรับ WinForms และ WPF ทำให้แอพเดสก์ท็อปตัวเก่าๆ สามารถข้ามมารันบน .NET Core 3.0 ได้แล้ว

ส่วนของใหม่ใน .NET 5 เป็นการก้าวไปอีกขั้นคือหลอมรวม Mono เอนจิน .NET ของบริษัท Xamarin ที่ไมโครซอฟท์ซื้อกิจการมาในปี 2016 เข้ามาด้วยอีกตัวหนึ่ง

Mono/Xamarin ถูกออกแบบมาเพื่อใช้สร้างแอพบนอุปกรณ์พกพา (iOS/Android) เป็นหลัก (เขียนด้วยภาษาตระกูล .NET แล้วแปลงมาเป็นเนทีฟบน iOS/Android) การที่มันถูกผนวกเข้ามายัง .NET 5 ทำให้จำนวนแพลตฟอร์มที่รองรับขยายจากเดสก์ท็อป 3 ตัว (Windows/Linux/Mac) มาสู่อุปกรณ์พกพาด้วย

รันไทม์ 2 ตัว CoreCLR และ Mono

แต่แนวทางการควบรวม Mono/Xamarin รอบนี้แตกต่างไปจากการควบรวม .NET Core/.NET Framework เพราะ .NET Core เป็นการเขียนเฟรมเวิร์คขึ้นมาใหม่เพื่อใช้ทดแทน .NET Framework ตัวเก่าได้เลย

กรณีของ .NET 5 ต่างไปเพราะใช้ระบบรันไทม์คู่ 2 ตัว นักพัฒนาสามารถเลือกได้ระหว่าง CoreCLR (รันไทม์ของ .NET Core ที่ไมโครซอฟท์ทำเอง) หรือ Mono (รันไทม์ที่ Xamarin ทำ) โดยไมโครซอฟท์สัญญาว่าจะพัฒนาให้รันไทม์ 2 ตัวสามารถใช้ทดแทนกันได้ทันที (drop-in replacement)

  • CoreCLR เน้นใช้สำหรับแอพบน Windows, ASP.NET, เซิร์ฟเวอร์, IoT, Machine Learning และงานที่ต้องคอมไพล์แบบ JIT (just-in-time) ที่ต้องการประสิทธิภาพสูงๆ
  • Mono เน้นใช้สำหรับแอพมือถือ iOS, Android, เกมคอนโซล, WebAssembly และงานที่ต้องคอมไพล์แบบ AOT (ahead-of-time) เน้นประหยัดทรัพยากร ขนาดไฟล์เล็ก เรียกทำงานได้เร็ว

รันไทม์ทั้ง 2 ตัวสามารถสลับไปมาได้ตามต้องการ ยกเว้นบางกรณีที่ต้องคอมไพล์แบบ AOT เท่านั้น เช่น การพัฒนาแอพ iOS ที่ต้องเป็นเนทีฟ และ WebAssembly

แผนการออก .NET ปีละรุ่น, LTS ทุก 2 ปี

ไมโครซอฟท์ยังประกาศแผนการออก .NET ในอนาคต โดยจะออก .NET Core 3.0 ในเดือนกันยายน 2019 และออก .NET Core 3.1 ในเดือนพฤศจิกายน 2019 ซึ่งเวอร์ชันนี้จะเป็นรุ่นซัพพอร์ตระยะยาว (LTS)

จากนั้นไมโครซอฟท์จะออก .NET ปีละรุ่นทุกเดือนพฤศจิกายนของทุกปี เริ่มจาก .NET 5 ในเดือนพฤศจิกายน 2020 ตามด้วย .NET 6 ในเดือนพฤศจิกายน 2021

.NET รุ่นที่เป็นเลขคู่ (เช่น .NET 6.0, 8.0) จะนับเป็นรุ่น LTS โดยอัตโนมัติ เท่ากับว่าเราจะมี .NET รุ่นซัพพอร์ตระยะยาวออกปีเว้นปีนั่นเอง

ที่มา - Microsoft

Blognone Jobs Premium