Pri porovnávaní MVVMCross.plugin.Be a plugin.ble sa obidve používajú na prístup k funkciám s nízkou energiou Bluetooth (BLE) na rôznych platformách, ako sú Android, iOS, MacOS a Windows. Slúžia však rôzne účely a majú zreteľné prístupy k riešeniu operácií BLE.
mvvmcross.plugin.ble
Tento doplnok je špeciálne navrhnutý na použitie v rámci MVVMCross Framework, ktorý je rámcom MVVM v priebehu platformy. Bezpínavo integruje funkčnosť BLE do aplikácií MVVMCross registráciou `ibluetoothle` a` iAdapter` ako lenivých initializovaných singletonov. To umožňuje ľahké vstrekovanie a riešenie týchto služieb v rámci MVVMCross.
Jednou z kľúčových výhod používania mvvmcross.plugin.Be je jeho integrácia s rámcom MVVMCross, čo uľahčuje správu operácií BLE v aplikáciách MVVMCross. Nerieha však do podstaty konkrétne problémy, ktoré plugin.ble nemusí zvládnuť, pretože sa spolieha na doplnok.
plugin.ble
** Plugin.Be je všeobecnejší doplnok BLE, ktorý sa dá použiť v rôznych aplikáciách založených na .NET vrátane projektov .NET MAUI. Poskytuje API medzi platformami pre operácie BLE, ale nezahŕňa funkcie špecifické pre MVVM.
** Plugin.Be má niekoľko obmedzení, najmä v systéme Android, napríklad vyžadovanie, aby sa vykonávali charakteristické zápisy na hlavnom vlákne a presadzovali vykonanie postupného príkazu BLE, aby sa predišlo chybám GATT [2]. Okrem toho odporúča proti charakteristikám ukladania do vyrovnávacej pamäte alebo inštanciám služieb medzi pripojenými reláciami, aby sa zabránilo neplatným odkazom [2].
Konkrétne problémy, ktoré riešili MVVMCross.plugin.ble
Zatiaľ čo MVVMCross.plugin.ble neopravuje problémy, ktoré sa plugin.ble nerieši, poskytuje štruktúrovaný spôsob riadenia služieb BLE v rámci MVVMCross Framework. To môže pomôcť zmierniť problémy súvisiace s rozlíšením služieb a injekciou závislosti, ktoré by mohli vzniknúť pri použití priamo.
Napríklad MVVMcross.plugin.Be pomáha vyhnúť sa problémom „NullReferenceException“ zabezpečením správneho registrovania a vyriešenia služieb v rámci MVVMCross [3]. Ide však skôr o rámcovú integráciu, než o riešenie konkrétnych obmedzení funkčnosti BLE.
Záver
Stručne povedané, mvvmcross.plugin.Ble ponúka pohodlnú integráciu funkčnosti BLE do aplikácií MVVMCross, využívajúc doplnok. Pre základné operácie BLE. Aj keď konkrétne neopravuje problémy, ktoré sa plugin.ble nerieši, poskytuje štruktúrovaný prístup k správe služieb BLE v rámci MVVMCross Framework. Ak vyvíjate aplikáciu, ktorá používa MVVMCross, MVVMCross.plugin.BLE, je lepšou voľbou. V prípade iných typov aplikácií, ako sú projekty .NET Maui, môže byť vhodnejší doplnok.
Citácie:[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-should-ilize-utize-for-bluetooth-mow-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