การเดินทางอันยาวนานของ .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 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) มาสู่อุปกรณ์พกพาด้วย
แต่แนวทางการควบรวม Mono/Xamarin รอบนี้แตกต่างไปจากการควบรวม .NET Core/.NET Framework เพราะ .NET Core เป็นการเขียนเฟรมเวิร์คขึ้นมาใหม่เพื่อใช้ทดแทน .NET Framework ตัวเก่าได้เลย
กรณีของ .NET 5 ต่างไปเพราะใช้ระบบรันไทม์คู่ 2 ตัว นักพัฒนาสามารถเลือกได้ระหว่าง CoreCLR (รันไทม์ของ .NET Core ที่ไมโครซอฟท์ทำเอง) หรือ Mono (รันไทม์ที่ Xamarin ทำ) โดยไมโครซอฟท์สัญญาว่าจะพัฒนาให้รันไทม์ 2 ตัวสามารถใช้ทดแทนกันได้ทันที (drop-in replacement)
รันไทม์ทั้ง 2 ตัวสามารถสลับไปมาได้ตามต้องการ ยกเว้นบางกรณีที่ต้องคอมไพล์แบบ AOT เท่านั้น เช่น การพัฒนาแอพ iOS ที่ต้องเป็นเนทีฟ และ WebAssembly
ไมโครซอฟท์ยังประกาศแผนการออก .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