Het gebruik van zowel plugin.ble als mvvmcross.plugin.ble in hetzelfde project is technisch mogelijk, maar het is misschien niet de meest efficiënte of aanbevolen aanpak. Dit is waarom:
1. Doel en functionaliteit:
- plugin.ble is een platformonafhankelijke plug-in die is ontworpen voor toegang tot Bluetooth Low Energy (BLE) -functionaliteit. Het is geschikt voor projecten die geen MVVM -architectuur vereisen of aanvullende functies van MVVMCross.
- mvvmcross.plugin.ble is daarentegen specifiek ontworpen voor projecten met behulp van het MVVMCross -framework. Het integreert de BLE -functionaliteit in de MVVM -architectuur, waardoor afhankelijkheidsinjectie en andere MVVMCross -functies mogelijk is.
2. Afhankelijkheid en overlapping:
- mvvmcross.plugin.ble verwijst eigenlijk intern verwijzingen naar plugin.ble. Dit betekent dat als u mvvmcross.plugin.ble gebruikt, u ook indirect plugin.ble gebruikt. Het gebruik van beide kan echter echter leiden tot onnodige complexiteit en potentiële conflicten.
3. Gebruik en integratie:
- Als uw project is gebouwd met MVVMCross, is het gebruik van mvvmcross.plugin.ble eenvoudiger omdat het goed integreert met het MVVM -patroon en afhankelijkheidsinjectie mogelijk maakt. U kunt iBluetoothle- en IADapter -services oplossen met behulp van de IOC -container van MVVMCross.
- Als u de voorkeur geeft aan een eenvoudigere, niet-MVVM-aanpak, kan plugin.ble voldoende zijn. Als u echter besluit om beide te gebruiken, zorg er dan voor dat u hun instanties en functionaliteiten zorgvuldig beheert om conflicten te voorkomen.
4. Potentiële problemen:
- Het gebruik van beide plug -ins kan leiden tot verwarring bij het beheren van instanties en het hanteren van BLE -bewerkingen. U kunt eindigen met meerdere adapters of BLE -diensten die worden uitgevoerd, wat onverwacht gedrag of fouten kan veroorzaken.
5. Aanbeveling:
- Als uw project mvvmcross gebruikt, blijf dan bij mvvmcross.plugin.ble voor consistentie en integratie -gemak.
- Als uw project geen mvvmcross gebruikt, is plugin.ble een eenvoudigere keuze.
- Vermijd beide te gebruiken, tenzij u een specifieke vereiste hebt die hun gecombineerde gebruik noodzakelijk maakt en ervoor zorgt dat u hun integratie zorgvuldig behandelt.
Samenvattend, hoewel het technisch mogelijk is om beide plug -ins in hetzelfde project te gebruiken, wordt het over het algemeen niet aanbevolen tenzij u een dwingende reden hebt om dit te doen. De keuze moet gebaseerd zijn op de architectuur en specifieke behoeften van uw project.
Citaten:[1] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-schoughould-i-ut-for-bluetooth-low-e
[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-loaded-t-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-all-tables-in-data-model/td-p/468796
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble