ไมโครซอฟท์ออกส่วนขยาย Visual Studio อัพเกรดแอพ .NET เวอร์ชันใหม่


2023-02-21 16:31:10

ไมโครซอฟท์ออกส่วนขยายของ Visual Studio ชื่อ .NET Upgrade Assistant ช่วยอัพเกรดโปรเจค .NET เวอร์ชันเก่าๆ ให้เป็น .NET เวอร์ชันล่าสุด (6 หรือ 7 หรือ 8 Preview) ภายใน Visual Studio 


ก่อนหน้านี้ ไมโครซอฟท์เคยออกเครื่องมือ .NET Upgrade Assistant ตัวเดียวกันนี้แต่เป็นเวอร์ชันคอมมานด์ไลน์ รอบนี้คือพัฒนามาเป็นส่วนขยายใน Visual Studio แล้ว โปรเจคที่รองรับการอัพเกรดคือ ASP.NET, WPF, WinForms, Class libraries, Console และในอนาคตจะเพิ่มการอัพเกรด Xamarin เป็น .NET MAUI, UWP เป็น WinUI, WCF เป็น WCF Core ด้วย


ทำไมต้องอัปเกรด 

การอัพเกรดมาใช้ .NET รุ่นใหม่เป็นสิ่งจำเป็น ไมโครซอฟท์จึงกระตุ้นให้นักพัฒนา .NET ทยอยอัพเกรดโปรเจคเก่าๆ ยุค  .NET Framework หรือ .NET Core ให้อัปเกรดรุ่นใหม่เป็น .NET 6 (รุ่นรองรับระยะยาว) หรือ .NET 7 (รุ่นรองรับระยะมาตรฐาน) ที่มีประสิทธิภาพดีกว่ามาก เข้าถึงความสามารถ แลละฟีเจอร์ล่าสุด

.NET ในช่วงหลังจะเปิดตัวเวอร์ชันใหม่ในทุกปี และรองรับทุกเวอร์ชันเป็นเวลา 3 ปี (Long Term Support หรือเรียกสั้นๆ ว่า LTS) ทำให้สามารถใช้เทคโนโลยีที่อัปเกรดล่าสุดได้ในทุกปี 


ตัวช่วยการอัปเกรด

การอัปเกรดแอปพลิเคชัน โดยเฉพาะจาก .NET Framework นั้นเป็นกระบวนการที่ซับซ้อน ทางทีม Visual Studio ยังคงสร้างต้นแบบ และปรับปรุงในด้านนี้ เพื่อให้การอัปเกรดนั้นง่ายขึ้น โดยสามารถอัปเกรดแอปพลิเคชัน .NET ทุกประเภทจากเวอร์ชันเริ่มต้นใดก็ได้ (.NET Framework หรือ .NET Core) โดยคลิกขวาที่โปรเจคของคุณใน Solution Explorer แล้วเลือก "อัปเกรด" อย่าลืมติดตั้งส่วนขยายก่อน


ประเภทแอปพลิเคชันที่รองรับ

เครื่องมือนี้ไม่ใช่แค่อัปเกรดครั้งเดียวจาก .NET Framework เป็น .NET 6/7 แต่ยังเป็นวิธีการอัปเกรดแอปพลิเคชันให้เป็น .NET ตัวล่าสุดอีกด้วย 

สิ่งที่เครื่องมือรองรับในเวอร์ชันล่าสุด:


Supported

  • ASP.NET
  • Class libraries
  • Console
  • WPF
  • WinForms

workloads เหล่านี้เทียบเท่ากับเครื่องมืออัปเกรดผู้ช่วย CLI


Coming soon

  • Xamarin to .NET MAUI migration
  • UWP to WinUI migration
  • WCF to WCF Core migration

ประเภทการย้ายข้อมูลนี้อยู่ในระหว่างการพัฒนา สามารถอัปเกรด projects นี้ได้ แต่ยังไม่มีโปรแกรมแก้ไขโค้ดสำหรับ projects เหล่านี้


ประเภทการอัพเกรดที่แตกต่างกัน (Different upgrade types)


  • In-place. ในกรณีนี้ project เดิมของคุณจะได้รับการอัปเกรดพร้อมกันทั้งหมด หากคุณกำลังใช้ซอร์สคอนโทรล (source control) และต้องการจัดการสำเนาด้วยตนเอง เช่น โดยใช้สาขา ตัวเลือกนี้เหมาะสำหรับคุณ


  • Side-by-side. ตัวเลือกนี้ project เดิมของคุณจะไม่ถูกแตะต้อง และสำเนาของ project จะถูกเพิ่มลงในโซลูชันซึ่งจะมีโค้ดที่อัปเกรด ประเภทนี้มีประโยชน์หากแอปพลิเคชันของคุณมีการอ้างอิงจำนวนมากซึ่งอาจใช้งานไม่ได้หลังจากการอัปเกรด ด้วยวิธีนี้คุณสามารถตรวจสอบความคืบหน้าของคุณ และไม่ต้องกังวลว่าแอปพลิเคชันจะไม่สร้าง (building)


  • Side-by-side incremental. นี่เป็นตัวเลือกที่เหมาะสำหรับเว็บแอปพลิเคชัน การอัปเกรดจาก ASP.NET เป็น ASP.NET Core ต้องใช้งานจำนวนมาก และบางครั้งต้องทำการปรับโครงสร้างใหม่ด้วยตนเอง (เนื่องจากเทคโนโลยีทั้งสองนี้แตกต่างกันมาก) ไลบรารีคลาสมักใช้ร่วมกับเว็บแอป ดังนั้นจึงจะเปิดใช้การอัปเกรดประเภทนี้สำหรับไลบรารีคลาสด้วย การอัปเกรดส่วนเพิ่มจะทำให้โครงการ .NET 6/7 อยู่ถัดจากโครงการ .NET Framework ที่มีอยู่ และกำหนดเส้นทางปลายทางที่ใช้ในโครงการ .NET 6/7 ที่นั่น ในขณะที่การเรียกอื่นๆ ทั้งหมดจะถูกส่งไปยังแอปพลิเคชัน .NET Framework วิธีนี้ทำให้สามารถรวมการอัปเกรดเข้ากับการพัฒนาคุณลักษณะ และย้ายรายการไปยัง .NET 6/7 ทีละรายการ โดยไม่เกิดความเสียหายต่อแอปของคุณ เดิมวิธีการนี้สร้างขึ้นในเครื่องมือ Microsoft Project Migrations คุณสามารถนึกถึง Upgrade Assistant ใน Visual Studio เป็น Microsoft Project Migrations รุ่นปรับปรุง และขยายใหม่ การอัปเกรดจาก .NET Core หรือ .NET 5 เป็น .NET 6/7 นั้นง่ายกว่าจาก .NET Framework มาก ดังนั้น แนะนำให้ใช้ตัวเลือก In-place ในกรณีเหล่านั้น


ตารางสถานะประเภทการอัปเกรดทั้งหมดตามประเภทโปรเจค



In-place

Side-by-side

Side-by-side incremental

ASP.NET from .NET Framework

N/A

N/A

supported

ASP.NET from .NET Core, .NET5+

supported

N/A

N/A

WinForms from .NET Framework

supported

supported

N/A

WinForms from .NET Core, .NET5+

supported

N/A

N/A

WPF from .NET Framework

supported

supported

N/A

WPF from .NET Core, .NET5+

supported

N/A

N/A

Class Library from .NET Framework

supported

supported

supported

Class Library from .NET Core, .NET5+

supported

N/A

N/A

Console from .NET Framework

supported

supported

N/A

Console from .NET Core, .NET5+

supported

N/A

N/A

Xamarin to MAUI

in development

in development

N/A

MAUI from older versions

in development

N/A

N/A

UWP to WinUI

in development

in development

N/A

WinUI from older versions

in development

N/A

N/A

Azure Functions

in development

N/A

N/A

WCF to WCF Core

in development

N/A

N/A



ที่มา : devblogs.microsoft


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