Khi nâng cấp lên MVVMCROSS 6, một số thay đổi và cân nhắc liên quan đến các plugin rất quan trọng cần lưu ý:
1. Cấu trúc plugin và không gian tên: Trong MVVMCROSS 6, cấu trúc plugin đã được tái cấu trúc. Không gian tên cho các plugin đã thay đổi từ `mvvmcross.plugins. {Pluginname}. Thay đổi này đơn giản hóa việc quản lý plugin nhưng yêu cầu cập nhật trong mã của bạn nếu bạn trực tiếp tham khảo các không gian tên này [4].
2. Tệp Bootstrap: MVVMCROSS 6 Không còn sử dụng các tệp bootstrap cho các plugin. Thay vào đó, các plugin được tải bằng thuộc tính `[mvxplugin]` và bằng cách kế thừa từ `imvxplugin`. Điều này đơn giản hóa quá trình thêm và quản lý các plugin trong ứng dụng của bạn [7].
3. Tài liệu tham khảo rõ ràng: Trong một số trường hợp, các plugin có thể không được tải trừ khi chúng được tham chiếu rõ ràng trong mã của bạn. Điều này đặc biệt có liên quan nếu dự án của bạn không sử dụng trực tiếp các loại từ plugin, vì trình biên dịch có thể không bao gồm cụm plugin trong đầu ra xây dựng [5].
4. Khả năng tương thích phiên bản: Đảm bảo rằng tất cả các gói MVVMcross, bao gồm các plugin, được cập nhật lên cùng một phiên bản để tránh các vấn đề tương thích. Điều này rất quan trọng vì MVVMCROSS 6 yêu cầu .NET Standard 2.0 và tất cả các thành phần phải phù hợp với yêu cầu này [4] [7].
5. Tải các plugin: Phương thức `LoadPlugins` được sử dụng để tải các plugin trong quá trình khởi động ứng dụng. Nếu bạn gặp sự cố với các plugin không tải, bạn có thể cần ghi đè phương thức này trong tệp `setup.cs` của bạn để đảm bảo thủ công rằng các plugin được tải chính xác [1] [2].
6. Các plugin cụ thể: Mặc dù không có plugin cụ thể nào yêu cầu sự chú ý, các plugin như plugin Messenger có thể cần cập nhật để phù hợp với phiên bản MVVMcross bạn đang sử dụng. Ví dụ: khi nâng cấp từ MVVMCROSS 6.4.2 lên 8.0.1, hãy đảm bảo rằng plugin Messenger cũng được cập nhật lên phiên bản 8.0.1 để tránh các vấn đề về độ phân giải [9].
Tóm lại, nâng cấp lên MVVMCROSS 6 liên quan đến việc cập nhật các không gian tên plugin, xóa các tệp bootstrap, đảm bảo các tham chiếu rõ ràng đến các plugin nếu cần thiết, duy trì khả năng tương thích phiên bản và tải plugin theo cách thủ công nếu cần.
Trích dẫn:[1] https://stackoverflow.com/questions/73128508/how-to-load-plugins-when-updating-to-mvvmcross-6-4-2-from-5-6-2
[2] https://stackoverflow.com/q/33774785
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[5] https://github.com/mvvmcross/mvvmcross/issues/2923
[6] https://github.com/aalice072/mvvmcross/blob/master/changelog.md
[7] https://www.mvvmcross.com/mvvmcross-6.0.0-release/
[8] https://github.com/mvvmcross/mvvmcross/issues/3531
[9] https://stackoverflow.com/questions/68214000/mvvmcross-upgrade-from-6-4-2-to-8-0-1
[10] https://github.com/mvvmcross/mvvmcross/releases
[11] https://www.nuget.org/packages/mvvmcross.plugin.ble/