Tags:
Node Thumbnail

การเดินทางอันยาวนานของ .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

No Description

.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 รุ่นซัพพอร์ตระยะยาวออกปีเว้นปีนั่นเอง

No Description

ที่มา - Microsoft

Get latest news from Blognone

Comments

By: nostalgias
ContributoriPhoneAndroid
on 7 May 2019 - 10:13 #1108850
nostalgias's picture

.NET รุ่นที่เป็นเลขคี่ (เช่น .NET 6.0, 8.0)

By: Sh0ckWaveZer0
iPhoneWindows
on 7 May 2019 - 10:30 #1108855
Sh0ckWaveZer0's picture

ไฟล์ใหญ่แน่นอน

By: iamcmnut on 7 May 2019 - 12:11 #1108875
iamcmnut's picture

Don't be Oracle.

By: tom789
Windows Phone
on 7 May 2019 - 12:20 #1108878

ถ้า asp.net ยังอยุ่ ตอนนี้ ก็น่าจะเวอร์ชั่น 5

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 7 May 2019 - 13:17 #1108886 Reply to:1108878
Be1con's picture

ยังอยู่ครับ มี 2 ตัวเหมือนกันคือ ASP.NET กับ ASP.NET Core


Coder | Designer | Thinker | Blogger

By: janbin16
iPhoneWindows PhoneAndroidWindows
on 8 May 2019 - 16:48 #1109033 Reply to:1108878
janbin16's picture

น่าจะหมายถึง webform

By: Dino
iPhoneSymbian
on 7 May 2019 - 13:34 #1108890
Dino's picture

หันไปดู J2EE โดยทันที

ปอลิง ผมไม่ใช่ Fanboy ไม่ว่าจะค่ายไหนๆ ทุกอย่างก็แค่ Just a tool..... focus on get thing done ดีกว่า

By: mr_tawan
ContributoriPhoneAndroidWindows
on 7 May 2019 - 19:09 #1108929 Reply to:1108890
mr_tawan's picture

จริง ๆ มนุษย์ Java หลายคนก็บ่นนะครับว่า ทำไมตอนนั้น Google ไม่จริงจังกับการประมูลซื้อ Sun 555


  • 9tawan.net บล็อกส่วนตัวฮับ
By: massacre
AndroidUbuntu
on 7 May 2019 - 14:54 #1108901

ในเมื่อใช้ CoreCLR ทำงานบน Linux ได้อยู่แล้ว ทำไมถึงรวม Mono เข้ามาด้วยครับ

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 7 May 2019 - 15:05 #1108902 Reply to:1108901
Be1con's picture

Mono เป็นรันไทม์ที่ใช้ในการรัน .NET บนอุปกรณ์พกพา (และเป็นแกนหลักในการรัน WebAssembly ครับ)


Coder | Designer | Thinker | Blogger