MVVMCross.plugin.Ble ve Plugin.ble karşılaştırılırken, her ikisi de Android, iOS, macOS ve Windows gibi farklı platformlarda Bluetooth düşük enerji (BLE) işlevselliğine erişmek için kullanılır. Bununla birlikte, farklı amaçlara hizmet ederler ve BLE operasyonlarını ele almaya farklı yaklaşımlara sahiptirler.
mvvmcross.plugin.ble
Bu eklenti, platformlar arası bir MVVM çerçevesi olan MVVMCross çerçevesinde kullanılmak üzere özel olarak tasarlanmıştır. BLE işlevselliğini, tembel initize edilmiş singletonlar olarak `` Ibluetoothle` ve `iadapter '' i kaydederek MVVMCross uygulamalarına sorunsuz bir şekilde entegre eder. Bu, bu hizmetlerin MVVMCross çerçevesinde kolay enjeksiyon ve çözünmesini sağlar.
MVVMCross.plugin.ble kullanmanın temel avantajlarından biri, MVVMCross çerçevesi ile entegrasyonudur ve MVVMCross uygulamalarında BLE işlemlerini yönetmeyi kolaylaştırır. Bununla birlikte, altta yatan BLE işlevselliği için eklenti.ble'a dayandığı için eklenti.ble'ın işleyemeyeceği belirli sorunları doğal olarak ele almaz.
Plugin.ble
** Plugin.ble, .NET MAUI projeleri dahil olmak üzere çeşitli .NET tabanlı uygulamalarda kullanılabilen daha genel amaçlı bir BLE eklentisidir. BLE işlemleri için platformlar arası bir API sağlar, ancak MVVM'ye özgü özellikleri içermez.
** Plugin.BLE, özellikle Android'de, ana iş parçacığında gerçekleştirilmesini ve GATT hatalarını önlemek için sıralı BLE komut yürütmesini zorlamak gibi çeşitli sınırlamalara sahiptir [2]. Ayrıca, geçersiz referansları önlemek için bağlantı oturumları arasındaki önbellek veya hizmet örneklerine karşı önermektedir [2].
Mvvmcross.plugin.ble tarafından ele alınan belirli sorunlar
MVVMCross.plugin.Ble, eklenti.Ble'ın ele almadığı sorunları doğal olarak çözmezken, MVVMCross çerçevesinde BLE hizmetlerini yönetmek için yapılandırılmış bir yol sağlar. Bu, doğrudan kullanılırken ortaya çıkabilecek hizmet çözünürlüğü ve bağımlılık enjeksiyonu ile ilgili sorunları azaltmaya yardımcı olabilir.
Örneğin, mvvmcross.plugin.ble, hizmetlerin MVVMCross çerçevesi içinde uygun şekilde kaydedilmesini ve çözülmesini sağlayarak `nullreferenceException 'sorunlarından kaçınmaya yardımcı olur [3]. Bununla birlikte, bu daha çok belirli BLE işlevsellik sınırlamalarını ele almak yerine çerçeve entegrasyonu ile ilgilidir.
Çözüm
Özetle, MVVMCross.plugin.Ble, BLE işlevselliğinin MVVMCross uygulamalarına uygun bir entegrasyonunu sunar ve altta yatan BLE işlemleri için eklenti.Ble'dan yararlanır. Plugin.ble'ın ele almadığı sorunları özellikle çözmese de, MVVMCross çerçevesinde BLE hizmetlerini yönetmek için yapılandırılmış bir yaklaşım sağlar. MVVMCross kullanan bir uygulama geliştiriyorsanız, mvvmcross.plugin.ble daha iyi bir seçimdir. .NET Maui projeleri gibi diğer uygulama türleri için Plugin.Ble daha uygun olabilir.
Alıntılar:[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--i-Utility-for-foretooth-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