Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ποιες αλλαγές εισήχθησαν στο MVVMCROSS 6.4.2 που μπορεί να επηρεάσουν τη φόρτωση του plugin


Ποιες αλλαγές εισήχθησαν στο MVVMCROSS 6.4.2 που μπορεί να επηρεάσουν τη φόρτωση του plugin


Το MVVMCROSS 6.4.2 είναι μια ενημέρωση εντός της σειράς MVVMCROSS 6, η οποία εισήγαγε αρκετές αλλαγές και βελτιώσεις στο πλαίσιο. Ενώ οι συγκεκριμένες αλλαγές στο 6.4.2 δεν περιγράφονται λεπτομερώς στα αποτελέσματα αναζήτησης, η κατανόηση του ευρύτερου πλαισίου του MVVMCross 6 και του μηχανισμού φόρτωσης του plugin μπορεί να βοηθήσει στον εντοπισμό πιθανών επιπτώσεων στη φόρτωση του plugin.

Αλλαγές κλειδιών στο MVVMCROSS 6

1. Απλοποιημένη ανάπτυξη plugin: Ξεκινώντας από το MVVMCross 6.0, η ανάπτυξη του plugin έγινε απλούστερη. Για να δημιουργήσετε ένα plugin, πρέπει να δημιουργήσετε μια βιβλιοθήκη που αναφέρει το κύριο πακέτο MVVMCross, προσθέστε έναν τύπο που κληρονομεί από το `imvxplugin` και το σχολιάζει με το` mvxpluginattribute '. Η μέθοδος `Load` του plugin ονομάζεται αυτόματα κατά τη διάρκεια της ρύθμισης εφαρμογών, όπου θα πρέπει να καταχωρίσετε υπηρεσίες και κλάσεις με το δοχείο ΔΟΕ [4].

2. Βελτιώσεις IOC: Το MVVMCROSS 6 περιλαμβάνει βελτιώσεις στο σύστημα IOC (αναστροφή του ελέγχου), όπως η καλύτερη αντιστοίχιση κατασκευαστών για υπηρεσίες, οι οποίες μπορεί να επηρεάσουν τον τρόπο φόρτωσης και καταχωρημένων plugins [9].

3. Υποστήριξη πλατφόρμας: Το MVVMCROSS 6 υποστηρίζει διάφορες πλατφόρμες, συμπεριλαμβανομένων των Xamarin iOS, Android, Forms, Windows και Mac. Αυτή η ευρεία υποστήριξη διασφαλίζει ότι τα plugins μπορούν να χρησιμοποιηθούν σε διαφορετικές πλατφόρμες, αλλά σημαίνει επίσης ότι τα θέματα που αφορούν συγκεκριμένα την πλατφόρμα μπορεί να προκύψουν εάν δεν αντιμετωπιστούν σωστά [2].

πιθανά ζητήματα με φόρτωση plugin

- Φόρτωση συναρμολόγησης: Στο MVVMCROSS 6, τα plugins φορτώνονται με συγκροτήματα σάρωσης για τύπους σχολιασμένα με `mvxpluginattribute`. Εάν τα συγκροτήματα που περιέχουν plugins δεν αναφέρονται ή φορτωθούν σωστά, αυτό θα μπορούσε να οδηγήσει σε προβλήματα με τη φόρτωση του plugin [1] [4].

- Εξαιρέσεις αναφοράς μηδενικής αναφοράς: Όπως φαίνεται σε ορισμένες περιπτώσεις, οι εξαιρέσεις αναφοράς μηδενών μπορούν να εμφανιστούν εάν τα συγκροτήματα plugin δεν έχουν εντοπιστεί σωστά ή εάν υπάρχουν προβλήματα με τη διαδικασία εγγραφής της ΔΟΕ [1].

- Συμβατότητα έκδοσης: Η διασφάλιση ότι όλα τα πακέτα και τα plugins MVVMCross είναι στην ίδια έκδοση είναι ζωτικής σημασίας για την αποφυγή προβλημάτων συμβατότητας. Αυτό περιλαμβάνει τον έλεγχο ότι όλα τα πακέτα Nuget ενημερώνονται για τις τελευταίες συμβατές εκδόσεις [7].

Βέλτιστες πρακτικές για φόρτωση plugin στο MVVMCROSS 6.4.2

- Παράκαμψη `loadplugins` σωστά: Εάν προσαρμόσετε τη φόρτωση του plugin, βεβαιωθείτε ότι η μέθοδος` loadplugins` είναι σωστά υπερβολικά παρακάτω στις κατηγορίες ρυθμίσεων για την αντιμετώπιση οποιασδήποτε προσαρμοσμένης λογικής [1] [7].

- Χρησιμοποιήστε το `imvxpluginmanager`: χρησιμοποιήστε το` imvxpluginmanager` για να διαχειριστείτε τη φόρτωση plugin και να βεβαιωθείτε ότι τα plugins είναι σωστά καταχωρημένα με το δοχείο IOC [4].

- Παρακολούθηση αρχείων καταγραφής και εξαιρέσεων: Χρησιμοποιήστε εργαλεία όπως το αρχείο καταγραφής συσκευών σε Mac ή Windows για παρακολούθηση για τυχόν εξαιρέσεις που μπορεί να συμβούν κατά τη φόρτωση του plugin [3].

Συνοπτικά, ενώ το MVVMCROSS 6.4.2 δεν εισάγει συγκεκριμένες αλλαγές στη φόρτωση του plugin σε σύγκριση με προηγούμενες εκδόσεις της σειράς 6, η κατανόηση της απλοποιημένης διαδικασίας ανάπτυξης του plugin και η διασφάλιση της σωστής φόρτωσης συναρμολόγησης και της εγγραφής IOC είναι το κλειδί για την αποφυγή προβλημάτων με τη φόρτωση του plugin.

Αναφορές:
[1] https://stackoverflow.com/questions/73128508/how-to-load-plugins-when-updating-nvvmcross-6-4-2-from-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/mvvmcross/blob/develop/changelog.md
[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/