.NET 10 Preview 6 Gây Tranh Luận Trong Cộng Đồng Developer Về Vấn Đề Tooling và Hướng Phát Triển Hệ Sinh Thái

Nhóm Cộng đồng BigGo
.NET 10 Preview 6 Gây Tranh Luận Trong Cộng Đồng Developer Về Vấn Đề Tooling và Hướng Phát Triển Hệ Sinh Thái

Microsoft đã phát hành .NET 10 Preview 6 vào ngày 15 tháng 7 năm 2024, mang đến một số cải tiến đáng chú ý bao gồm tối ưu hóa code generation của JIT và tính năng thực thi tool một lần. Mặc dù bản cập nhật giới thiệu các tính năng hữu ích, phản hồi từ cộng đồng developer cho thấy những lo ngại đang diễn ra về độ tin cậy của tooling và hướng chiến lược của nền tảng có thể ảnh hưởng đến quyết định áp dụng.

Các tính năng chính của .NET 10 Preview 6

  • Cải tiến JIT: Nâng cao khả năng tạo mã cho các tham số struct với các thành viên được thăng cấp trong thanh ghi chia sẻ
  • Thực thi công cụ một lần: Lệnh dotnet tool exec để chạy các công cụ mà không cần cài đặt
  • Hỗ trợ công cụ đa nền tảng: Các công cụ giờ đây có thể đóng gói các tệp nhị phân cho nhiều RuntimeIdentifiers (RIDs)
  • Xuất bản tệp thực thi gốc: Các ứng dụng dựa trên tệp hỗ trợ xuất bản thành tệp thực thi gốc thông qua dotnet publish app.cs
  • Cải tiến bảo mật JSON: Tùy chọn mới để không cho phép các thuộc tính JSON trùng lặp trong quá trình deserialization
  • Đầu ra CLI Schema: Tùy chọn cli-schema mới cung cấp biểu diễn JSON của cây lệnh CLI
Tổng quan về bản phát hành .NET 10 Preview 6 và các tính năng chính của nó
Tổng quan về bản phát hành .NET 10 Preview 6 và các tính năng chính của nó

Tính Năng Thực Thi Tool Một Lần Giải Quyết Nhu Cầu Scripting Lâu Nay

Việc giới thiệu dotnet tool exec cho phép các developer chạy .NET tools mà không cần cài đặt chúng cục bộ hoặc toàn cục. Tính năng này đặc biệt có lợi cho các pipeline CI/CD và các tình huống sử dụng tạm thời. Các thành viên cộng đồng đã hoan nghênh sự bổ sung này, lưu ý rằng nó đưa C# gần hơn với khả năng scripting mà F# đã được hưởng thông qua dotnet fsi. Tính năng này cho phép các developer thực thi các file C# như scripts mà không cần bước build, làm cho ngôn ngữ này phù hợp hơn cho các tác vụ tự động hóa nhanh và các tiện ích sử dụng một lần.

Các Vấn Đề Tooling Dai Dẳng Gây Khó Chịu Cho Trải Nghiệm Phát Triển

Mặc dù có các tính năng mới, các developer tiếp tục báo cáo những vấn đề đáng kể với trải nghiệm phát triển. Chức năng hot reload trong dotnet watch vẫn không đáng tin cậy, với các thay đổi CSS đôi khi không được phát hiện ngay cả khi sử dụng flag --no-hot-reload. Người dùng Visual Studio báo cáo các vấn đề đang diễn ra với syntax highlighting và IntelliSense cho các component Blazor, những vấn đề đã tồn tại qua nhiều phiên bản. Những vấn đề tooling này tạo ra sự không chắc chắn trong quá trình phát triển, khiến việc phân biệt giữa lỗi coding thực sự và trục trặc của tool trở nên khó khăn.

Tất cả những gì tôi muốn là dotnet watch hoạt động theo cách có thể dự đoán được. Trong .NET 9, ngay cả khi sử dụng —no-hot-reload, đôi khi các thay đổi CSS đối với components không được nhận diện trên các component Blazor.

Các Tool Định Dạng Code Tụt Hậu So Với Tiêu Chuẩn Ngành

Hệ sinh thái .NET vẫn thiếu một code formatter có quan điểm rõ ràng được áp dụng rộng rãi có thể so sánh với Prettier trong thế giới JavaScript. Mặc dù các tool như CSharpier tồn tại và đã có được một số sức hút, nhiều team doanh nghiệp vẫn do dự trong việc áp dụng formatting tự động. Lệnh dotnet format tích hợp sẵn cung cấp các tùy chọn cấu hình mở rộng nhưng yêu cầu thiết lập đáng kể để đạt được formatting nhất quán. Sự phân mảnh này buộc các team phải dựa nhiều vào formatting đặc thù của IDE, tạo ra thách thức trong các môi trường phát triển hỗn hợp nơi các thành viên team sử dụng các editor khác nhau.

Các công cụ định dạng code được cộng đồng đề cập

Công cụ Loại Mức độ áp dụng Tính năng chính
CSharpier Bên thứ ba Đang phát triển (2k sao GitHub) Định dạng theo quan điểm riêng, mang tính quyết định
dotnet format Chính thức của Microsoft Tích hợp sẵn Có thể cấu hình cao, tích hợp với các trình phân tích
StyleCop Đang suy giảm Thực thi bố cục tệp và quy tắc đặt tên
Roslynator Trình phân tích Đang hoạt động Phân tích và sửa lỗi code

Mối Quan Ngại Về Việc Áp Dụng Nền Tảng Giữa Các Lựa Chọn Công Nghệ Của Chính Microsoft

Các cuộc thảo luận cộng đồng tiết lộ mối quan ngại ngày càng tăng về việc áp dụng .NET trong tương lai, đặc biệt là với các lựa chọn công nghệ của chính Microsoft trong các dịch vụ Azure. Nhiều dự án CNCF mà Microsoft đóng góp được viết bằng Go hoặc Rust thay vì .NET, đặt ra câu hỏi về sự hỗ trợ nội bộ của nền tảng. Quyết định viết lại tooling TypeScript bằng Go thay vì tạo một phiên bản .NET đã làm thất vọng một số developer, những người coi đây là cơ hội bị bỏ lỡ để thể hiện khả năng của nền tảng.

Các Cuộc Tranh Luận Về Vòng Đời Framework Tiếp Tục

Cộng đồng vẫn chia rẽ về chu kỳ hỗ trợ ba năm của Microsoft cho các phiên bản .NET. Trong khi một số developer đánh giá cao các cập nhật thường xuyên và thấy việc nâng cấp tương đối dễ dàng, những người khác lại thích sự ổn định của .NET Framework 4.8 với timeline hỗ trợ dài hơn. Sự khác biệt về kích thước deployment vẫn là một mối quan ngại thực tế, với các ứng dụng .NET Framework thường tạo ra các file thực thi nhỏ hơn do framework được cài đặt sẵn trên các hệ thống Windows, trong khi các ứng dụng .NET Core có thể đạt 70-80MB khi self-contained.

Sự đón nhận trái chiều của .NET 10 Preview 6 làm nổi bật khả năng kỹ thuật của nền tảng cùng với những thách thức dai dẳng trong trải nghiệm developer và định vị chiến lược. Mặc dù các cải tiến hiệu suất và tính năng mới thể hiện sự đổi mới liên tục, việc giải quyết độ tin cậy của tooling và tính nhất quán của hệ sinh thái có thể là yếu tố quan trọng để duy trì niềm tin của developer và thu hút người dùng mới đến nền tảng.

Tham khảo: .NET 10 Preview 6 brings JIT improvements, one-shot tool execution