AWS Developer Tools Blog

Phát hành chính thức AWS SDK for .NET phiên bản 4.0

Tác giả: Norm Johanson – Ngày 28 tháng 4 năm 2025 

Chuyên mục: .NET, AWS SDK for .NET

Phiên bản 4.0 của AWS SDK for .NET đã chính thức được phát hành. V4 đã được phát triển trong hơn một năm qua trên kho GitHub công khai của SDK, với tổng cộng 13 bản xem trước được tung ra. Phiên bản mới này mang lại các cải tiến về hiệu suất, sự nhất quán với các SDK khác của AWS, cùng với việc sửa lỗi và nâng cao khả năng sử dụng – những yếu tố yêu cầu phải nâng cấp phiên bản chính. Từ thời điểm phát hành chính thức này, AWS SDK for .NET V4 sẽ tuân theo lịch phát hành đồng bộ với các SDK AWS GA khác..

Cập nhật lên V4

AWS SDK for .NET là tập hợp các gói NuGet có tên bắt đầu bằng AWSSDK, ví dụ như AWSSDK.CoreAWSSDK.S3 Trước khi cập nhật lên V4, hãy tham khảo hướng dẫn chuyển đổi (migration guide) tại đây. V4 được thiết kế như một bản nâng cấp có tính tiến hóa, tức là hầu hết các ứng dụng chỉ cần biên dịch lại mà không cần thay đổi đáng kể nào.

Lưu ý: Không thể sử dụng đồng thời cả gói V3 và V4 trong cùng một ứng dụng. Nếu trộn các gói V3 và V4, sẽ xảy ra xung đột – chẳng hạn giữa AWSSDK.Core và các gói dịch vụ như AWSSDK.SQS. Khi cập nhật, hãy đảm bảo rằng tất cả các gói AWSSDK. đều được nâng lên từ phiên bản 4.0.0 trở lên*.

Chuẩn bị cho thuộc tính tập hợp (collection) null

Như được đề cập trong hướng dẫn chuyển đổi, các thuộc tính dạng tập hợp (collections) trong các đối tượng request và response sẽ mặc định là null, thay vì là một tập hợp rỗng như ở V3. Thay đổi này được thực hiện để cải thiện hiệu suất và giúp phân biệt rõ ràng giữa:

  • Thuộc tính chưa được thiết lập, và
  • Thuộc tính được thiết lập nhưng là rỗng.

Bài blog Preview 1 đã phân tích sâu hơn về lợi ích hiệu suất của thay đổi này.

Đây có thể là điểm khó khăn nhất khi cập nhật lên V4, vì nó thay đổi hành vi runtime. Ví dụ dưới đây có thể gây ra lỗi NullReferenceException nếu không có nhóm bảo mật nào:

var response = await client.DescribeSecurityGroupsAsync(request);

// This could cause a NullReferenceException if there are no security groups

foreach(var group in response.SecurityGroups)

{

    Console.WriteLine(group.GroupId);

}

Nếu bạn không chắc ứng dụng của mình có tương thích với thay đổi hành vi này hay không, có thể sử dụng thuộc tính tĩnh Amazon.AWSConfigs.InitializeCollections = true. Điều này sẽ khiến SDK hoạt động giống như V3 – khởi tạo các thuộc tính tập hợp với giá trị rỗng. Tuy nhiên, nếu dùng cách này:

  • Hiệu suất sẽ không được cải thiện, và
  • Bạn không thể phân biệt được giá trị null hay rỗng mặc định

Thời gian hỗ trợ cho V3

AWS vẫn sẽ tiếp tục hỗ trợ V3 với tần suất cập nhật dịch vụ AWS như hiện tại trong một khoảng thời gian. Thời gian hỗ trợ này phụ thuộc vào AWS Tools for PowerShell, vốn được xây dựng trên SDK V3.

Một phiên bản chính mới của AWS Tools for PowerShell sử dụng SDK V4 đang được phát triển (hiện đã ra bản Preview 3). Khi phiên bản GA mới được phát hành:

  • Cả SDK V3 và AWS Tools for PowerShell phiên bản cũ sẽ bắt đầu giai đoạn hỗ trợ 6 tháng.
  • Sau thời gian 6 tháng, SDK V3 sẽ chuyển sang chế độ bảo trì, chỉ xử lý lỗi nghiêm trọng và bảo mật.

Thông báo chính thức sẽ được đưa ra khi AWS Tools for PowerShell V4 chính thức phát hành và khung thời gian 6 tháng bắt đầu.

Kết luận

Chúng tôi khuyến khích cộng đồng AWS .NET sớm cập nhật lên V4 để tận dụng các cải tiến hiệu suất và nhận được hỗ trợ lâu dài. Nếu gặp bất kỳ câu hỏi hay sự cố nào khi cập nhật, bạn có thể sử dụng trình theo dõi sự cố (issue tracker) hoặc diễn đàn thảo luận trên GitHub của SDK để được hỗ trợ.

Đối với các gói .NET khác có phụ thuộc vào SDK .NET, chúng tôi cũng đang tiến hành cập nhật để hỗ trợ V4 nhằm gỡ bỏ rào cản nâng cấp. Nếu bạn gặp phải vấn đề phụ thuộc ngăn cản cập nhật, hãy thông báo để chúng tôi có thể hỗ trợ thêm.

Leave a comment