Az mvvmcross.plugin.ble és a plugin.ble összehasonlításakor mindkettőt a Bluetooth alacsony energiájú (BLE) funkciók elérésére használják különböző platformokon, például az Android, az iOS, a MacOS és a Windows. Ugyanakkor eltérő célokat szolgálnak, és külön megközelítéssel rendelkeznek a BLE műveletek kezelésére.
mvvmcross.plugin.ble
Ezt a bővítményt kifejezetten az MVVMCross keretrendszerben történő felhasználásra tervezték, amely egy platformok közötti MVVM keretrendszer. Zökkenőmentesen integrálja a BLE funkcionalitást az MVVMCross alkalmazásokba azáltal, hogy regisztrálja az „ibluetoothle” és az „iadapter” lusta-initializált szinguletteket. Ez lehetővé teszi ezeknek a szolgáltatásoknak a könnyű befecskendezését és megoldását az MVVMCross kereten belül.
Az mvvmcross.plugin.ble használatának egyik legfontosabb előnye az MVVMCross keretrendszerrel való integrációja, megkönnyítve a BLE műveletek kezelését az MVVMCROSS alkalmazásokon belül. Ugyanakkor nem foglalkozik velük olyan konkrét problémákkal, amelyeket a plugin.ble nem kezel, mivel a plugin.ble -re támaszkodik a mögöttes BLE funkcióhoz.
plugin.ble
** A plugin.ble egy általánosabb célú BLE-plugin, amely különféle .NET-alapú alkalmazásokban is használható, beleértve a .NET Maui projekteket is. Platformok közötti API-t biztosít a BLE műveletekhez, de nem tartalmazza az MVVM-specifikus tulajdonságokat.
** A plugin.ble számos korlátozással rendelkezik, különösen az Androidon, például a jellemző írások elvégzését a fő szálon és a szekvenciális BLE parancs végrehajtásának végrehajtása érdekében a GATT hibák elkerülése érdekében [2]. Ezenkívül azt tanácsolja, hogy a gyorsítótárazási jellemzőkkel vagy a csatlakozási munkamenetek közötti szolgáltatási példányokkal szemben álljon, hogy megakadályozzák az érvénytelen hivatkozásokat [2].
Az mvvmcross.plugin.ble által alkalmazott konkrét kérdések
Míg az mvvmcross.plugin.ble nem rejlik a plugin.ble által nem foglalkozó problémákkal, ez biztosítja a BLE szolgáltatások kezelésének strukturált módját az MVVMCross kereten belül. Ez elősegítheti a szolgáltatás felbontásával és a függőségi injekcióval kapcsolatos kérdések enyhítését, amelyek közvetlenül a plugin.ble használatakor felmerülhetnek.
Például az mvvmcross.plugin.ble segít elkerülni a „nullreferenceException” problémákat azáltal, hogy biztosítja, hogy a szolgáltatások megfelelően regisztrálódjanak és megoldódjanak az MVVMCross kereten belül [3]. Ez azonban inkább a keret integrációjáról szól, ahelyett, hogy a konkrét BLE funkciók korlátozásaival foglalkoznánk.
Következtetés
Összefoglalva: az mvvmcross.plugin.ble kényelmes integrációt kínál a BLE funkciókhoz az MVVMCross alkalmazásokba, kihasználva a plugin.ble -t az alapjául szolgáló BLE műveletekhez. Noha nem kifejezetten javítja azokat a problémákat, amelyekkel a plugin.ble nem foglalkozik, strukturált megközelítést biztosít a BLE szolgáltatások kezelésére az MVVMCross kereten belül. Ha olyan alkalmazást fejleszt, amely Mvvmcross -t használ, akkor az mvvmcross.plugin.ble jobb választás. Más típusú alkalmazásokhoz, például a .NET Maui projektekhez a plugin.ble megfelelőbb lehet.
Idézetek:[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://www.nuget.org/packages/plugin.ble/
[3] https://stackoverflow.com/questions/36522920
[4] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-sould-iilile-for-bluetooth-low-e
[5] https://punchthrough.com/android-ble-guide/
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
[7] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble
[8] https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/issues/901