Salīdzinot mvvmcross.plugin.ble un spraudni.ble, abus izmanto, lai piekļūtu Bluetooth zemas enerģijas (BLE) funkcionalitātei dažādās platformās, piemēram, Android, iOS, macOS un Windows. Tomēr tie kalpo dažādiem mērķiem, un tiem ir atšķirīga pieeja BLE operāciju apstrādei.
mvvmcross.plugin.ble
Šis spraudnis ir īpaši paredzēts izmantošanai MVVMCROSS sistēmā, kas ir savstarpēja platforma MVVM ietvars. Tas nemanāmi integrē BLE funkcionalitāti MVVMCross lietojumprogrammās, reģistrējot “iBluetoothle” un `iadapter` kā slinku inicializētus singletonus. Tas ļauj ērti ievadīt un izšķirt šos pakalpojumus MVVMCROSS sistēmā.
Viens no galvenajiem ieguvumiem, izmantojot mvvmcross.plugin.ble, ir tā integrācija ar MVVMCross ietvaru, padarot vieglāku operāciju pārvaldību MVVMCross lietojumprogrammās. Tomēr tas pēc būtības nerisina īpašas problēmas, kuras spraudnis, iespējams, netiek apstrādāts, jo tas ir atkarīgs no spraudņa.Ble pamatā esošajai BLE funkcionalitātei.
spraudnis.ble
** spraudnis.ble ir vispārīgāks spraudnis, ko var izmantot dažādās .NET balstītas lietojumprogrammās, ieskaitot .NET Maui projektus. Tas nodrošina starpplatformu API BLE operācijām, bet tajā nav iekļautas MVVM specifiskas funkcijas.
** spraudnis.ble ir vairāki ierobežojumi, jo īpaši android, piemēram, nepieciešami raksturīgi raksti, kas jāveic galvenajā pavedienā un izpildot secīgu komandu izpildi, lai izvairītos no GATT kļūdām [2]. Turklāt, lai novērstu nederīgas atsauces [2], tas iesaka nederīgas atsauces uz kešatmiņu vai pakalpojumu gadījumiem [2].
specifiskas problēmas, kuras risina mvvmcross.plugin.ble
Kamēr mvvmcross.plugin.ble pēc būtības neizlabo problēmas, kuras spraudnis.ble nerisina, tas nodrošina strukturētu veidu, kā pārvaldīt BLE pakalpojumus MVVMCross ietvarā. Tas var palīdzēt mazināt jautājumus, kas saistīti ar pakalpojumu izšķirtspēju un atkarības injekciju, kas varētu rasties, tieši izmantojot spraudni.ble.
Piemēram, mvvmcross.plugin.ble palīdz izvairīties no “NullReferenceException” jautājumiem, nodrošinot, ka pakalpojumi tiek pareizi reģistrēti un atrisināti MVVMCross ietvarā [3]. Tomēr tas vairāk attiecas uz ietvara integrāciju, nevis pievērsties īpašiem BLE funkcionalitātes ierobežojumiem.
Secinājums
Rezumējot, mvvmcross.plugin.ble piedāvā ērtu BLE funkcionalitātes integrāciju mvvmcross lietojumprogrammās, izmantojot spraudni.ble pamatā esošajām BLE operācijām. Lai gan tas īpaši neatrisina problēmas, kuras spraudnis nav apskatīts, tas nodrošina strukturētu pieeju BLE pakalpojumu pārvaldībai MVVMCross ietvarā. Ja jūs izstrādājat lietojumprogrammu, kurā tiek izmantota MVVMCross, MVVMCross.plugin.ble ir labāka izvēle. Citiem lietojumprogrammu veidiem, piemēram, .NET Maui projektiem, spraudnis.ble varētu būt piemērotāks.
Atsauces:[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://www.nuget.org/packages/plugin.ble/
[3] https://stackoverflow.com/questions/36522920
.
[5] https://punchthrough.com/android-ble-guide/
[6] https://github.com/xabre/xamarin-luetooth-le/issues/524
[7] https://stackoverflow.com/questions/38327176/xamarin-form-plugins-ble-mvvmcross-plugins-ble
[8] https://github.com/dotnet-luetooth-le/dotnet-bluetooth-le/issues/901