Мое приложение Windows может подключаться к различным РСУБД через поставщиков данных ADO.NET, установленных отдельно.Это один из рекомендуемых подходов с определенными провайдерами, обнаруженными во время выполнения через machine.config.
Однако просить моих клиентов о дополнительных настройках - не лучший способ сделать это.В последнее время я видел много Java-приложений, встраивающих в себя большинство драйверов JDBC.И последняя версия Npgsql (для Postgres) больше не устанавливает драйвер в machine.config по умолчанию.
Каковы все плюсы и минусы встроенных и общих поставщиков данных ADO.NET, когда выраспространять приложение?
Вот мой список (я постараюсь дополнить его вашими отзывами) с плюсами и минусами встраивания провайдеров, как ранних ссылок, в приложение:
Плюсы:
- Клиентам больше не нужно устанавливать драйверы отдельно.
- Нет необходимости устанавливать его в machine.config, длякоторый клиент может иметь недостаточно привилегий.
- Лучше для разработчиков, так как они могут использовать определенные расширенные функции для некоторых драйверов и определенные классы ADO.NET.
Минусы:
- Большой дистрибутив.
- Некоторые драйверы могут тормозить все приложение, если они внутренне привязываются к СУБД, не установленной на компьютере клиента.
- Вынуждают клиента использовать только одну версию и один тип поставщика данных для каждой СУБД.
- Могут возникнуть проблемы с лицензией даже для бесплатного поставщика данных.
- 32-разрядные поставщики данных могут не работать с приложениями x64, а поставщики x64 с приложениями x32.