Pri primerjavi mvvmcross.plugin.ble in Plugin.ble se oba uporabljata za dostop do funkcionalnosti Bluetooth z nizko energijo (BLE) na različnih platformah, kot so Android, iOS, MacOS in Windows. Vendar pa služijo različnim namenom in imajo različne pristope k ravnanju z BLE.
mvvmcross.plugin.ble
Ta vtičnik je zasnovan posebej za uporabo v okviru MVVMcross, ki je MVVM okvir za navzkrižno platformo. Ble funkcionalnost brezhibno vključuje v aplikacije MVVMcross, tako da registrira `ibluetoothle` in` iadapter` kot lenoinizirane singletone. To omogoča enostavno vbrizgavanje in reševanje teh storitev v okviru MVVMcross.
Ena ključnih prednosti uporabe mvvmcross.plugin.ble je njena integracija z MVVMcross Framework, kar olajša upravljanje operacij v aplikacijah MVVMcross. Vendar pa sam po sebi ne obravnava posebnih vprašanj, ki jih Plugin.ble morda ne bo spoprijel, saj se opira na Plugin.ble za osnovno funkcionalnost BLE.
Plugin.ble
** Plugin.ble je bolj splošni vtičnik BLE, ki ga je mogoče uporabiti v različnih aplikacijah, ki temeljijo na .NET, vključno s projekti .NET MAUI. Ponuja API za več platform za BLE operacije, vendar ne vključuje funkcij, specifičnih za MVVM.
** Plugin.ble ima več omejitev, zlasti na Androidu, na primer zahteva, da se značilno zapišejo na glavni nit in uveljavite zaporedno izvedbo ukaza BLE, da se izognete napake GATT [2]. Poleg tega svetuje proti predpomnjenju značilnih ali storitev med sejami povezav, da se prepreči neveljavne reference [2].
Specifična vprašanja, ki jih obravnava mvvmcross.plugin.ble
Medtem ko mvvmcross.plugin.ble sam po sebi ne odpravlja težav, ki jih Plugin.ble ne obravnava, ponuja strukturiran način za upravljanje storitev v okviru MVVMcross. To lahko pomaga ublažiti težave, povezane z reševanjem storitev in vbrizgavanjem odvisnosti, ki bi lahko nastala pri neposredni uporabi Plugin.ble.
Na primer, mvvmcross.plugin.ble pomaga preprečiti vprašanja "nullreferenceException", tako da zagotovi, da so storitve pravilno registrirane in rešene v okviru MVVMcross [3]. Vendar gre bolj za okvirno integracijo, ne pa za reševanje posebnih omejitev funkcionalnosti BLE.
Sklep
Če povzamemo, mvvmcross.plugin.ble ponuja priročno integracijo BLE funkcionalnosti v aplikacije MVVMcross, pri čemer uporaba Plugin.ble za osnovne operacije BLE. Medtem ko ne odpravlja posebej vprašanj, ki jih Plugin.ble ne obravnava, ponuja strukturiran pristop k upravljanju storitev BLE v okviru MVVMcross. Če razvijate aplikacijo, ki uporablja mvvmcross, je mvvmcross.plugin.ble boljša izbira. Za druge vrste aplikacij, kot so .NET Maui Projects, je lahko bolj primeren Plugin.ble.
Navedbe:[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-hould-i-utIle-for-bluetooth-low-e
[5] https://punchthrough.com/android-ble-guide/
[6] https://github.com/xabre/xamarin-bluetooth-le/isissue/524
[7] https://stackoverflow.com/questions/38327176/xamarin-fforms-plugins-ble-mvvmcross-plugins-ble
[8] https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/issues/901