Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Могу ли я использовать как Plugin.ble, так и mvvmcross.plugin.ble в одном и том же проекте


Могу ли я использовать как Plugin.ble, так и mvvmcross.plugin.ble в одном и том же проекте


Использование как Plugin.ble, так и Mvvmcross.plugin.ble в одном и том же проекте технически возможно, но это не может быть наиболее эффективным или рекомендуемым подходом. Вот почему:

1. Цель и функциональность:
- Plugin.ble- это кроссплатформенный плагин, предназначенный для доступа к функциональности Bluetooth с низкой энергией (BLE). Он подходит для проектов, которые не требуют архитектуры MVVM или дополнительных функций, предоставляемых MVVMcross.
- mvvmcross.plugin.ble, с другой стороны, специально разработан для проектов с использованием структуры MVVMcross. Он интегрирует функциональность BLE в архитектуру MVVM, позволяя инъекции зависимости и другие особенности MVVMcross.

2. Зависимость и перекрытие:
- mvvmcross.plugin.ble фактически ссылается плагин. Это означает, что если вы используете mvvmcross.plugin.ble, вы также косвенно используете Plugin.ble. Однако использование оба явного может привести к ненужной сложности и потенциальным конфликтам.

3. Использование и интеграция:
- Если ваш проект построен с MVVMcross, с помощью mvvmcross.plugin.ble является более простым, поскольку он хорошо интегрируется с шаблоном MVVM и допускает инъекцию зависимости. Вы можете разрешить услуги ibluetoothle и iAdapter, используя контейнер MVVMcross IOC.
- Если вы предпочитаете более простой, не MVVM-подход, Plugin.ble может быть достаточным. Однако, если вы решите использовать оба, убедитесь, что вы тщательно управляете их экземплярами и функциональными возможностями, чтобы избежать конфликтов.

4. Потенциальные проблемы:
- Использование обоих плагинов может привести к путанице в управлении экземплярами и обработкой операций BLE. Вы можете получить несколько адаптеров или управляемых сервисов BLE, что может вызвать неожиданное поведение или ошибки.

5. Рекомендация:
- Если ваш проект использует MVVMcross, придерживайтесь mvvmcross.plugin.ble для последовательности и простоты интеграции.
- Если ваш проект не использует mvvmcross, plugin.ble - более простой выбор.
- Избегайте использования обоих, если у вас нет конкретного требования, требующего их комбинированного использования, и гарантируйте, что вы внимательно справляетесь с их интеграцией.

Таким образом, хотя технически возможно использовать оба плагина в одном и том же проекте, обычно не рекомендуется, если у вас нет веской причины для этого. Выбор должен основываться на архитектуре вашего проекта и конкретных потребностях.

Цитаты:
[1] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-should-itize-for-bluetooth-low-e
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[4] https://forum.ionicframework.com/t/both-ble-bluetoothle-lugins-seem-not-to-be-loaded-at-all/176776
[5] https://www.nuget.org/packages/mvvmcross.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-versions-of-similard-data-for-all-tables-in-data-model/td-p/468796
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-lugins-ble-mvvmcross-lugins-ble