Có gì mới trong Visual Studio 2022?

Có gì mới trong Visual Studio 2022?

Visual Studio 2022 hiện đang trong bản xem trước, được phát hành vào tháng 11 năm 2021 cùng với .NET 6, mà nó sẽ hỗ trợ. Nó bao gồm nhiều tính năng và cải tiến mới, chẳng hạn như AI IntelliCode có thể tự động hoàn thành các đoạn mã cho bạn.

Bạn có thể tải xuống bản xem trước  từ trang web của họ. Mặc dù nó vẫn đang ở trạng thái “thử nghiệm” và chưa sẵn sàng sản xuất, nó vẫn còn là Visual Studio, vì vậy, trừ khi bạn phụ thuộc vào các tiện ích mở rộng chưa được cập nhật, đừng ngại thử.

Chúng tôi sẽ đề cập đến những thay đổi quan trọng nhất kể từ Bản xem trước 3, nhưng nếu bạn muốn đọc các ghi chú về bản vá từng dòng một, bạn có thể làm như vậy từ tài liệu của Microsoft . Ngoài ra còn có một lộ trình mô tả hướng đi tổng thể.

Là ứng dụng 64bit

Các ứng dụng Visual Studio trước đó luôn là 32bit, có nghĩa là nó đã bị giới hạn ở 4 GB RAM trong quá trình chính. Nó thường không vượt quá ngân sách này cho các dự án thông thường, nhưng một số người dùng có thể gặp phải trường hợp ngoại lệ Hết bộ nhớ với các giải pháp đặc biệt lớn.

Tải ứng dụng Viettel Money – Chuyển tiền và mua bán

Với VS 2022, nó đã được sửa và hiện là ứng dụng 64 bit. Microsoft đã thử nghiệm các dự án với 1600 dự án và 300k tệp, và nó hoạt động tốt.

Về lý thuyết, 64-bit sẽ chạy nhanh hơn và nó có vẻ nhanh hơn một chút trong thời gian khởi động, nhưng Microsoft cũng đã nghiên cứu về hiệu suất nói chung, vì vậy thật khó để biết điều này thực sự ảnh hưởng đến nó như thế nào. Dù bằng cách nào, một sự thay đổi tốt.

Tất nhiên, bạn vẫn có thể phát triển các ứng dụng 32-bit với VS 2022. Điều này chỉ áp dụng cho trình chỉnh sửa.

AI IntelliCode thật tuyệt vời

Visual Studio 2022 có một bản nâng cấp nghiêm túc cho công cụ tự động hoàn thành IntelliCode của họ . Nó có thể tự động hoàn thành toàn bộ dòng và đoạn mã, và nó hoạt động rất tốt.

Nó hơi khác với Copilot của GitHub , thực hiện công việc tương tự. Copilot sẽ tạo ra toàn bộ các đoạn mã và hoạt động tốt nhất cho các chức năng nhỏ, có chứa một giải pháp rõ ràng. Nó tuyệt vời, nhưng nó có những vấn đề riêng, chủ yếu là mã mà nó tạo ra không được đảm bảo thậm chí là những gì bạn muốn (và có thể kéo mã từng chữ từ các repos GitHub ngẫu nhiên, đây là một vấn đề hoàn toàn khác).

IntelliCode có cách tiếp cận hạn chế hơn nhiều và chỉ cần hoàn thành một dòng duy nhất, có tính đến một số yếu tố sau:

  • Tên và vị trí biến
  • Các thư viện bạn đang sử dụng
  • Các hàm trong mã xung quanh
  • Danh sách thả xuống của IntelliSense, mà bạn thực sự có thể tab xuống để cung cấp thêm đề xuất cho IntelliCode

Sau khi sử dụng nó trong hai tuần, đó thực sự là điều bạn phải thử cho mình. Nó thông minh một cách đáng kinh ngạc, và nhiều lần trong khi sử dụng nó, tôi thấy mình đang nghĩ “wow, tôi sắp gõ cái đó!”

Ví dụ: viết một hàm nhận một số từ 1 đến 12:

Để hiểu và cung cấp kết quả này, IntelliCode đang làm nhiều việc hơn là chỉ tự động hoàn thành cú pháp; Nó hiểu rằng tôi đang mong đợi một ngoại lệ, khá rõ ràng vì tôi đang nhập “throw” và nó có thể phát hiện ra rằng ngoại lệ này chỉ được ném ra nếu một phép so sánh kích thước số nguyên không thành công. Nó biết rằng đó Widthlà một đối số đang được kiểm tra trước khi mã chạy và tôi đang ném một ngoại lệ vì có điều gì đó sai với đối số.

Biết tất cả những điều này, cần phải có một dự đoán cực kỳ chính xác về ý định của tôi và quyết định rằng ArgumentOutOfRangeException phải là những gì tôi đang cố gắng nhập, trước khi tôi thậm chí có thể bắt đầu nhập “mới”.

Và, nếu bạn trang xuống, bạn có thể điền kết quả cho các tùy chọn khác nhau. Nó vẫn còn một chút mâu thuẫn (nó quyết định mã hóa “Width” và sau đó được sử dụng sau đó nameof) nhưng nhìn chung, nó hoạt động tốt.

IntelliCode chạy mọi lúc và tất cả những gì bạn phải làm là nhấn tab-tab để chấp nhận nó, nếu không, bạn có thể tiếp tục nhập. Hiện tại, nó chỉ hoạt động cho C #, nhưng nhiều ngôn ngữ khác “sẽ sớm ra mắt”.

THAM KHẢO ĐĂNG KÝ ỨNG DỤNG NÓI TIẾNG ANH TỐT NHẤT

Đăng ký

Hỗ trợ .NET 6

.NET 6 là phiên bản mới nhất, cũng đang ở dạng xem trước. VS 2022 sẽ có hỗ trợ tích hợp cho nó và tất cả các tính năng của nó và mặc định là .NET 6 cho các dự án mới.

Đáng chú ý nhất, VS 2022 sẽ có hỗ trợ đầy đủ cho .NET MAUI hoặc Giao diện người dùng ứng dụng đa nền tảng, tiêu chuẩn mới của Microsoft để phát triển ứng dụng gốc đa nền tảng.

.NET Hot Reloading

Một trong những điều khó chịu nhất trong lập trình là nhìn chằm chằm vào màn hình, đợi ứng dụng của bạn biên dịch và khởi chạy, đồng thời cập nhật những thay đổi mới nhất. Hot Reloading là một tính năng của nhiều ngôn ngữ khác như JavaScript và đã được sử dụng bởi các khung công tác web như React để thực hiện các thay đổi nhanh chóng. Tuy nhiên, cho đến nay vẫn chưa có giải pháp chuẩn hóa cho .NET.

Nó không hoàn toàn phổ biến và yêu cầu thiết lập dự án cụ thể, nhưng VS 2022 bao gồm tải lại nóng cho “WPF, Windows Forms, bản xem trước .NET MAUI, ứng dụng ASP.NET Core có mã, ứng dụng Console, WinUI 3 và nhiều ứng dụng khác.” Điều này không bao gồm các thư viện lớp được sử dụng bởi một ứng dụng khác.

Một số loại thay đổi có thể không áp dụng đúng cách, điều này sẽ nhắc bạn khởi động lại đúng cách. Bạn có thể xem danh sách đầy đủ của chúng ở đây , nhưng ý chính của nó là:

  • Không có chữ ký phương pháp sửa đổi
  • Không thêm bằng cách sử dụng câu lệnh
  • Không sửa đổi giao diện
  • Không đổi tên thành viên dưới bất kỳ hình thức nào

Về cơ bản, bạn có thể chỉnh sửa mã theo bất kỳ phương pháp nào, nhưng một khi bạn bắt đầu chạm vào cấu trúc dự án, bạn có thể phải khởi động lại.

Nó được tích hợp tốt vào trải nghiệm gỡ lỗi VS, với biểu tượng mới cho “Áp dụng thay đổi mã” sẽ kích hoạt tải lại nóng. Bạn cũng có thể sử dụng dotnet watch lệnh mới để tải lại nóng tự động khi thay đổi tệp.

Các ứng dụng web Razor / Blazor hiện có thể sử dụng tính năng tải lại nóng, nhưng Blazor WebAssembly vẫn còn một số thứ cần được giải quyết và nó hiện vẫn chưa hoạt động. Tuy nhiên, nó đang được làm việc và có thể đưa vào bản phát hành cuối cùng vào cuối tháng 11.

Kiểm tra từ xa

VS 2022 bao gồm bản xem trước thử nghiệm cho phép bạn chạy thử nghiệm trong các môi trường khác, bao gồm vùng chứa Linux, WSL và thậm chí qua SSH.

Nó có một chút thiết lập và tất nhiên bạn sẽ cần phải đảm bảo rằng môi trường của mình được định cấu hình để chạy mã đúng cách, nhưng sau khi hoàn thành, bạn sẽ có thể chọn các môi trường khác nhau khi chạy thử nghiệm của mình.

Cải tiến chung

Có rất nhiều thay đổi nhỏ cần phân tích từ các ghi chú vá , vì vậy chúng tôi sẽ liệt kê một số thay đổi thú vị nhất ở đây.

Gỡ lỗi đã chứng kiến ​​một số cải thiện về chất lượng cuộc sống, với các tùy chọn ngữ cảnh mới cho các điểm ngắt nâng cao hơn, cũng như “Buộc chạy tới con trỏ”, sẽ bỏ qua tất cả các điểm ngắt hiện có và dừng lại trên dòng mã bạn đã chọn. Điều này có thể rất hữu ích nếu bạn muốn kiểm tra thứ gì đó mà không cần xóa mọi điểm ngắt hoặc bỏ qua mọi thứ một lần nữa theo cách thủ công.

Menu ngữ cảnh điểm ngắt

Buộc chạy tới con trỏ

Các tích hợp Git của VS hiện hỗ trợ nhiều kho lưu trữ cho mỗi giải pháp và việc cam kết trên nhiều kho lưu trữ giờ đây dễ dàng hơn.

Tất cả các biểu tượng đã được thiết kế lại cho nhất quán.

Ví dụ về các biểu tượng mới với nền tối và sáng

Nhận xét XML hiện hỗ trợ các nhận xét nhiều dòng với khoảng trắng được bảo toàn và các khối CDATA.

Thông tin nhanh cho XML giữ nguyên khoảng trắng

“Tìm tất cả các tham chiếu” không còn tạo ra kết quả lặp lại rác khi ở trong một dự án nhiều mục tiêu.

Tìm tất cả các nhóm tham chiếu nhiều dự án được nhắm mục tiêu

Razor Pages / Blazor đã nhận được nhiều tích hợp chỉnh sửa và giờ sẽ hoạt động tốt hơn với IntelliSense, đánh dấu cú pháp và định dạng tốt hơn trong các khối @code. Giờ đây, bạn cũng có thể sử dụng “Mã chế độ xem” trong các tệp Razor, đây là một hạn chế khó chịu trong một thời gian.

Hỗ trợ phân loại TagHelpers

Và có một số mẫu dự án khác, bao gồm các ứng dụng Angular và React được lưu trữ trên ASP.NET Core, có thể được thực hiện tự động với tích hợp API.

Để có danh sách đầy đủ các thay đổi, bạn có thể tham khảo ghi chú bản vá VS 2022.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *