Совместное использование DLL уровня доступа к данным между несколькими проектами - PullRequest
5 голосов
/ 29 января 2020

У нас есть несколько проектов, которые совместно используют одну и ту же базу данных. Мы создали библиотеки DLL для этого уровня доступа к данным. Теперь проблема в том, чтобы разделить его как библиотеки DLL, мы сохранили 3 библиотеки классов (3 уровня слоя доступа к базе данных) внутри решение. В будущем может возникнуть сценарий, когда слой доступа к данным нуждается в некоторых модификациях (миграциях). Как сохранить уровень доступа к базе данных таким образом, чтобы он поддерживал будущие модификации, что на данный момент не очень гибко.

Мы не можем запустить миграцию в проекте библиотеки классов. Одним из способов решения этой проблемы может быть создание веб-проекта и добавление в него 3 библиотек классов отдельно, а затем использование его для изменений. Насколько хорош этот подход?

Мы сохранили код уровня доступа к базе данных в другой ветке в нашем хранилище. Нам нужно, чтобы всякий раз, когда в ветку вносились какие-то изменения, она запускала какой-то процесс, который извлекает измененный DLL и добавить его в качестве ссылки в наших проектах.

1 Ответ

0 голосов
/ 29 января 2020

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

Существует множество способов сделать это. Вот два из лучших способов сделать это:

  1. поместить общий код в пакет nuget и разместить его локально (так же просто, как настроить общую папку, если у вас нет azure)

  2. , чтобы создать микро-сервис для общих данных и иметь apis, который вы вызываете, чтобы получить информацию от каждого приложения. Можно легко создать пакет nuget, который является «клиентом» микросервиса, и импортировать его в каждое приложение, а не копировать, вставляя код подключения в каждое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...