Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Những thay đổi đã được giới thiệu trong MVVMCROSS 6.4.2 có thể ảnh hưởng đến tải plugin


Những thay đổi đã được giới thiệu trong MVVMCROSS 6.4.2 có thể ảnh hưởng đến tải plugin


MVVMCROSS 6.4.2 là một bản cập nhật trong loạt MVVMCROSS 6, đã giới thiệu một số thay đổi và cải tiến cho khung. Mặc dù các thay đổi cụ thể trong bản thân 6.4.2 không được chi tiết trong kết quả tìm kiếm, nhưng hiểu được bối cảnh rộng hơn của MVVMCROSS 6 và cơ chế tải plugin của nó có thể giúp xác định các tác động tiềm năng đối với tải plugin.

Những thay đổi chính trong MVVMCROSS 6

1. Phát triển plugin đơn giản hóa: Bắt đầu từ MVVMCROSS 6.0, phát triển plugin trở nên đơn giản hơn. Để tạo một plugin, bạn cần tạo một thư viện tham chiếu gói MVVMcross chính, thêm một loại kế thừa từ `imvxplugin` và chú thích nó bằng` mvxpluginattribution`. Phương thức `load` của plugin được gọi tự động trong quá trình thiết lập ứng dụng, trong đó bạn nên đăng ký các dịch vụ và các lớp với thùng chứa IOC [4].

2. Cải tiến IOC: MVVMCROSS 6 bao gồm các cải tiến trong hệ thống IOC (đảo ngược của điều khiển), chẳng hạn như khớp trình xây dựng tốt hơn cho các dịch vụ, có thể ảnh hưởng đến cách các plugin được tải và đăng ký [9].

3. Hỗ trợ nền tảng: MVVMCROSS 6 hỗ trợ các nền tảng khác nhau, bao gồm Xamarin IOS, Android, Forms, Windows và Mac. Hỗ trợ rộng này đảm bảo rằng các plugin có thể được sử dụng trên các nền tảng khác nhau, nhưng điều đó cũng có nghĩa là các vấn đề cụ thể về nền tảng có thể phát sinh nếu không được xử lý đúng cách [2].

Các vấn đề tiềm năng với tải plugin

- Tải lắp ráp: Trong MVVMCROSS 6, các plugin được tải bằng cách quét các cụm cho các loại được chú thích bằng `mvxpluginattribution`. Nếu các tập hợp chứa các plugin không được tham chiếu hoặc tải đúng cách, điều này có thể dẫn đến các vấn đề với tải plugin [1] [4].

- Các ngoại lệ tham chiếu NULL: Như đã thấy trong một số trường hợp, các ngoại lệ tham chiếu null có thể xảy ra nếu các cụm plugin không được xác định chính xác hoặc nếu có vấn đề với quy trình đăng ký IOC [1].

- Khả năng tương thích phiên bản: Đảm bảo rằng tất cả các gói và plugin MVVMCROSS nằm trên cùng một phiên bản là rất quan trọng để tránh các vấn đề tương thích. Điều này bao gồm kiểm tra xem tất cả các gói NUGET được cập nhật lên các phiên bản tương thích mới nhất [7].

Thực tiễn tốt nhất để tải plugin trong MVVMCROSS 6.4.2

- Ghi đè `LoadPlugins` chính xác: Nếu tùy chỉnh tải plugin, hãy đảm bảo rằng phương thức` LoadPlugins` được ghi đè đúng trong các lớp Cài đặt dành riêng cho nền tảng để xử lý bất kỳ logic tùy chỉnh nào [1] [7].

- Sử dụng `imvxpluginmanager`: Sử dụng` imvxpluginmanager` để quản lý tải plugin và đảm bảo rằng các plugin được đăng ký chính xác với thùng chứa IOC [4].

- Giám sát nhật ký và ngoại lệ: Sử dụng các công cụ như nhật ký thiết bị trên Mac hoặc Windows để theo dõi mọi ngoại lệ có thể xảy ra trong quá trình tải plugin [3].

Tóm lại, trong khi MVVMCROSS 6.4.2 không đưa ra các thay đổi cụ thể đối với tải plugin so với các phiên bản trước trong loạt 6, hiểu quy trình phát triển plugin đơn giản hóa và đảm bảo tải trọng lắp ráp và đăng ký IOC là chìa khóa để tránh các vấn đề về tải plugin.

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://www.nuget.org/packages/mvvmcross/6.4.2
[3] https://github.com/mvvmcross/mvvmcross/issues/4364
[4] https://www.mvvmcross.com/documentation/plugins/plugins-development
[5] https://github.com/MVVMCROSS
[6] https://www.nuget.org/packages/plugin.ble/
[7] https://stackoverflow.com/q/33774785
[8] https://www.nuget.org/packages/mvvmcross.forms/6.4.2
[9] https://www.mvvmcross.com/mvvmcross-6.4.0-release/