Hem Plugin.ble hem de MVVMCross.plugin.Ble aynı projede kullanmak teknik olarak mümkündür, ancak en verimli veya önerilen yaklaşım olmayabilir. İşte nedeni:
1. Amaç ve işlevsellik:
- Plugin.ble, Bluetooth düşük enerji (BLE) işlevselliğine erişmek için tasarlanmış platformlar arası bir eklentidir. MVVM mimarisini gerektirmeyen projeler veya MVVMCross tarafından sağlanan ek özellikler için uygundur.
- MVVMCross.plugin.Ble ise MVVMCross çerçevesini kullanan projeler için özel olarak tasarlanmıştır. BLE işlevselliğini MVVM mimarisine entegre ederek bağımlılık enjeksiyonu ve diğer MVVMCross özelliklerine izin verir.
2. Bağımlılık ve çakışma:
- mvvmcross.plugin.ble aslında Plugin.BLE dahili olarak referanslar. Bu, mvvmcross.plugin.ble kullanıyorsanız, dolaylı olarak Plugin.ble'ı da kullandığınız anlamına gelir. Bununla birlikte, her ikisinin de açıkça kullanmak gereksiz karmaşıklığa ve potansiyel çatışmalara yol açabilir.
3. Kullanım ve entegrasyon:
- Projeniz MVVMCross ile inşa edilmişse, mvvmcross.plugin.ble kullanılarak MVVM modeliyle iyi bir şekilde entegre edildiği ve bağımlılık enjeksiyonuna izin verdiği için daha basittir. MVVMCross'un IOC kablosunu kullanarak Ibluetoothle ve IADapter hizmetlerini çözebilirsiniz.
- Daha basit, MVVM olmayan bir yaklaşımı tercih ederseniz, Plugin.ble yeterli olabilir. Ancak, her ikisini de kullanmaya karar verirseniz, çatışmalardan kaçınmak için örneklerini ve işlevlerini dikkatlice yönettiğinizden emin olun.
4. Potansiyel sorunlar:
- Her iki eklentinin kullanılması, örneklerin yönetilmesinde ve BLE işlemlerinin işlenmesinde karışıklığa yol açabilir. Beklenmedik davranışlara veya hatalara neden olabilecek birden fazla adaptör veya BLE hizmeti çalıştırabilirsiniz.
5. Öneri:
- Projeniz MVVMCross kullanıyorsa, tutarlılık ve entegrasyon kolaylığı için mvvmcross.plugin.ble ile sadık kalın.
- Projeniz MVVMCross kullanmıyorsa, Plugin.ble daha basit bir seçimdir.
- Kombine kullanımlarını gerektiren belirli bir gereksiniminiz olmadığı ve entegrasyonlarını dikkatlice ele aldığınızdan emin olmadıkça her ikisini de kullanmaktan kaçının.
Özetle, her iki eklentiyi de aynı projede kullanmak teknik olarak mümkün olsa da, bunu yapmak için zorlayıcı bir nedeniniz olmadığı sürece genellikle önerilmez. Seçim, projenizin mimarisine ve özel ihtiyaçlarına dayanmalıdır.
Alıntılar:[1] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-ti--iTility-for-foretooth-low-e
[2] https://www.mvvmcross.com/documentation/adved/customizing-using-app-and-setup
[3] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[4] https://forum.ionicframework.com/t/both-ble-bluetoothle-plugins-eem-not-to-to-to-to-t-l/176777
[5] https://www.nuget.org/packages/mvmcross.plugin.ble/2.2.0-pre5
[6] https://www.npmjs.com/package/cordova-plugin-bluetoothle
[7] https://github.com/mrozema/xamarin-bluetooth-le
[8] https://community.qlik.com/t5/qlikview-app-dev/multiple-ersions-of-syaril-data-ul-uls-in-data-model/td-p/468796
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble