При построении нашего набора библиотек мы учитывали расширяемость. Есть и клиенты с разной авторизацией (тип авторизации указывается в конфиге), для одного интерфейса мессаджинга есть разные реализации (IBM, rabbit, кафка, опять же, тип реализации указывается в конфиге), для общего набора интерфейсов ORM есть поддержка 5 СУБД.
Выбор взять всё как есть или отказаться — не стоит, можно начать с нуля и набрать нужный набор реализаций. Например если моё приложение использует ViennaNET.ORM и его реализацию для MsSQL, то чтобы поменять базу на PostgresQL, мне нужно просто зареференсить другую реализацию и в конфиге поменять тип базы. Более того, можно зареференсить обе реализации, указать два подключения и на уровне регистрации Entity указать, с какого коннекта его доставать — так делали при миграции данных из одной БД в другую.
Выбор взять всё как есть или отказаться — не стоит, можно начать с нуля и набрать нужный набор реализаций. Например если моё приложение использует ViennaNET.ORM и его реализацию для MsSQL, то чтобы поменять базу на PostgresQL, мне нужно просто зареференсить другую реализацию и в конфиге поменять тип базы. Более того, можно зареференсить обе реализации, указать два подключения и на уровне регистрации Entity указать, с какого коннекта его доставать — так делали при миграции данных из одной БД в другую.
Сейчас этого в репозитории нет, но позже выкатим.