Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Μπορώ να χρησιμοποιήσω τόσο το plugin.ble όσο και το mvvmcross.plugin.ble στο ίδιο έργο


Μπορώ να χρησιμοποιήσω τόσο το plugin.ble όσο και το mvvmcross.plugin.ble στο ίδιο έργο


Χρησιμοποιώντας τόσο το plugin.ble όσο και το mvvmcross.plugin.ble στο ίδιο έργο είναι τεχνικά εφικτό, αλλά ίσως να μην είναι η πιο αποτελεσματική ή συνιστώμενη προσέγγιση. Εδώ είναι γιατί:

1 Σκοπός και λειτουργικότητα:
- Το plugin.ble είναι ένα plugin cross-platform σχεδιασμένο για πρόσβαση στη λειτουργικότητα χαμηλής ενέργειας Bluetooth (BLE). Είναι κατάλληλο για έργα που δεν απαιτούν την αρχιτεκτονική MVVM ή πρόσθετα χαρακτηριστικά που παρέχονται από το MVVMCross.
- Το MVVMCROSS.plugin.ble, από την άλλη πλευρά, έχει σχεδιαστεί ειδικά για έργα που χρησιμοποιούν το πλαίσιο MVVMCROSS. Ενσωματώνει τη λειτουργικότητα BLE στην αρχιτεκτονική MVVM, επιτρέποντας την έγχυση εξάρτησης και άλλα χαρακτηριστικά MVVMCROSS.

2. Εξάρτηση και επικάλυψη:
- mvvmcross.plugin.ble αναφέρει πραγματικά plugin.ble εσωτερικά. Αυτό σημαίνει ότι εάν χρησιμοποιείτε mvvmcross.plugin.ble, χρησιμοποιείτε έμμεσα το plugin.ble. Ωστόσο, η χρήση και των δύο θα μπορούσε να οδηγήσει σε περιττή πολυπλοκότητα και πιθανές συγκρούσεις.

3. Χρήση και ολοκλήρωση:
- Εάν το έργο σας είναι κατασκευασμένο με MVVMCROSS, χρησιμοποιώντας το MVVMCROSS.plugin.ble είναι πιο απλή επειδή ενσωματώνεται καλά με το μοτίβο MVVM και επιτρέπει την έγχυση εξάρτησης. Μπορείτε να επιλύσετε τις υπηρεσίες ibluetoothle και iAdapter χρησιμοποιώντας το δοχείο IOC της MVVMCROSS.
- Εάν προτιμάτε μια απλούστερη προσέγγιση μη-MVVM, το plugin.ble μπορεί να είναι αρκετό. Ωστόσο, εάν αποφασίσετε να χρησιμοποιήσετε και τα δύο, βεβαιωθείτε ότι διαχειρίζεστε προσεκτικά τις περιπτώσεις και τις λειτουργίες τους για να αποφύγετε συγκρούσεις.

4. Πιθανά ζητήματα:
- Η χρήση και των δύο plugins θα μπορούσε να οδηγήσει σε σύγχυση στη διαχείριση των περιπτώσεων και στις λειτουργίες χειρισμού BLE. Μπορεί να καταλήξετε σε πολλαπλούς προσαρμογείς ή υπηρεσίες BLE που εκτελούνται, οι οποίες θα μπορούσαν να προκαλέσουν απροσδόκητη συμπεριφορά ή σφάλματα.

5. Σύσταση:
- Εάν το έργο σας χρησιμοποιεί MVVMCROSS, κολλήστε με mvvmcross.plugin.ble για συνέπεια και ευκολία ολοκλήρωσης.
- Εάν το έργο σας δεν χρησιμοποιεί MVVMCROSS, το plugin.ble είναι μια απλούστερη επιλογή.
- Αποφύγετε να χρησιμοποιείτε και τα δύο, εκτός αν έχετε μια συγκεκριμένη απαίτηση που απαιτεί τη συνδυασμένη χρήση τους και βεβαιωθείτε ότι χειρίζεστε προσεκτικά την ενσωμάτωσή τους.

Συνοπτικά, ενώ είναι τεχνικά δυνατή η χρήση και των δύο plugins στο ίδιο έργο, γενικά δεν συνιστάται αν δεν έχετε έναν επιτακτικό λόγο να το κάνετε. Η επιλογή πρέπει να βασίζεται στην αρχιτεκτονική και τις συγκεκριμένες ανάγκες του έργου σας.

Αναφορές:
[1] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-shouth
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[4] https://forum.ionicframework.com/t/both-ble-bluetoothle-plugins-seem-not-to-boaded-at-all/176776
[5] https://www.nuget.org/packages/mvvmcross.plugin.ble/2.2.0-pre5
[6] https://www.npmjs.com/package/cordova-plugin-bluetoothle
[7] https://github.com/mrozema/xamarin-bluetooth-le
[8] https://community.qlik.com/t5/qlikview-app-dev/multiple-versions-of-similar-data-for-le-table-in-data-model/td-p/468796
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble