Ugyanazon projektben mind a plugin.ble, mind az mvvmcross.plugin.ble használata technikailag lehetséges, de lehet, hogy ez nem a leghatékonyabb vagy ajánlott megközelítés. Így van:
1. Cél és funkcionalitás:
- A plugin.ble egy platformok közötti beépülő modul, amely a Bluetooth alacsony energiájú (BLE) funkcionalitás elérésére szolgál. Olyan projektekhez alkalmas, amelyek nem igényelnek MVVM architektúrát vagy az MVVMCross által biztosított kiegészítő funkciókat.
- Az mvvmcross.plugin.ble viszont kifejezetten az MVVMCross keretrendszer használatával kapcsolatos projektekhez tervezték. Integrálja a BLE funkciókat az MVVM architektúrába, lehetővé téve a függőség injekcióját és más MVVMCross tulajdonságait.
2. Függőség és átfedés:
- mvvmcross.plugin.ble valójában hivatkozik a plugin.ble -re. Ez azt jelenti, hogy ha az mvvmcross.plugin.ble -t használja, akkor közvetett módon a plugin.ble használatát is használja. Mindkettő kifejezetten történő használata azonban szükségtelen bonyolultsághoz és potenciális konfliktusokhoz vezethet.
3. Használat és integráció:
- Ha a projektet az MVVMCross -szal építették, akkor az mvvmcross.plugin.ble használata egyértelműbb, mert jól integrálódik az MVVM mintához, és lehetővé teszi a függőségi injekciót. Az Ibluetoothle és az IADapter szolgáltatásokat az MVVMCross IOC konténerével oldhatja meg.
- Ha az egyszerűbb, nem MVVM megközelítést részesíti előnyben, akkor a plugin.ble elegendő lehet. Ha azonban úgy dönt, hogy mindkettőt használja, ügyeljen arra, hogy gondosan kezelje példányait és funkcióit a konfliktusok elkerülése érdekében.
4. Potenciális kérdések:
- Mindkét beépülő modul használata zavart okozhat a példányok kezelésében és a BLE műveletek kezelésében. Előfordulhat, hogy több adapter vagy BLE szolgáltatás fut, ami váratlan viselkedést vagy hibát okozhat.
5. Ajánlás:
- Ha a projekt az MVVMCross -ot használja, ragaszkodjon az mvvmcross.plugin.ble -hez a konzisztencia és az integráció megkönnyítése érdekében.
- Ha a projekt nem használja az mvvmcross -ot, akkor a plugin.ble egyszerűbb választás.
- Kerülje el mindkettőt, hacsak nem rendelkezik olyan konkrét követelménysel, amely megköveteli a kombinált használatukat, és gondoskodjon az integrációjuk gondos kezelésében.
Összefoglalva: bár technikailag lehetséges mindkét beépülő modul használata ugyanabban a projektben, általában nem ajánlott, hacsak nincs kényszerítő oka erre. A választásnak a projekt architektúráján és konkrét igényein kell alapulnia.
Idézetek:[1] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-sould-iilile-for-bluetooth-low-e
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andsetup
[3] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[4] https://forum.ionicframework.com/t/both-ble-bluetoothle-plugins-seem-not-to-be-loaded-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-ofsimilar-data-for-all-tables-in-data-model/td-p/468796
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble