c# - 在多个项目之间共享数据访问层 DLL
问题描述
我们有多个共享同一个数据库的项目。我们为此数据访问层创建了 DLL。现在的问题是,为了将其作为 DLL 共享,我们在一个解决方案中保留了 3 个类库(3 层数据库访问层)。那里可能是未来数据访问层需要一些修改(迁移)的场景。那么如何保持数据库访问层支持未来的修改,目前还不是很灵活。
我们不能在类库项目中运行迁移,一种解决方法可能是拥有一个 Web 项目并在其中分别添加 3 个类库,然后使用它进行修改。这种方法有多好?
我们将数据库访问层代码保存在存储库中的不同分支中。我们需要的是,每当对分支进行一些更改时,它应该触发一些过程,该过程会提取修改后的 DLL 并将其作为参考添加到我们的项目中。
解决方案
唯一应该跨项目共享 dll 的情况是项目真的很小并且永远不会改变。在现实世界中,情况并非如此,而且很快就会变得难以管理。
有很多方法可以做到这一点。以下是您可以执行此操作的两种更好的方法:
将共享代码放入 nuget 包并在本地托管(如果您没有 azure,就像设置共享文件夹一样简单)
为共享数据创建一个微服务,并使用您调用的 api 从每个应用程序获取信息。可以轻松地制作一个作为微服务“客户端”的 nuget 包,并将其导入每个应用程序,而不是在每个应用程序中复制粘贴连接代码。
推荐阅读
- excel - 如果特定列中的单元格发生更改,则从表中复制行
- javascript - 如果它不存在,Firestore 创建文档,并收听它
- django - 如何将验证码添加到 Django 登录页面并接收它?
- r - 如何订购geom_col ggplot的条形图
- excel - 熊猫:在熊猫数据框中插入新行以填充日期
- drupal-8 - 默认情况下,有一种方法可以在古腾堡中设置“顶部工具栏”选项吗?
- javascript - 从两个数组中过滤重复项
- google-cloud-storage - @google-cloud/storage 使用 generateSignedPostPolicyV4 出错
- c# - C# Selenium 检查浏览器是否处于活动状态/焦点
- python - 在 Flask 中使用 LOGIN_USER() 变得很棘手