atc*_*way 2 .net class-library visual-studio code-sharing
我有一种情况,我有要在 1 个以上应用程序中使用的功能。特别是,我Repository采用了 C# 类库的形式,其中包含 EF .edmx、存储库和 UnitOfWork 之类的内容,这些内容足够通用,可以跨应用程序使用。
我很沮丧,我不能更清楚地看到图片,因为我应该清楚地了解差异;我做到了一点。但是,我认为我无法看透每个选择的后果和整体差异。
我已阅读此链接:您如何在 Visual Studio 中的项目/解决方案之间共享代码?它提供了一些很好的建议,但这两个建议似乎都站得住脚。我想更好地了解每种产品的下游影响,并了解哪种选择适合我的需要。
我相信通过链接文件,我会在 Application-2 中创建另一个新 Repository项目,但使用链接文件作为新层的组成部分。
我相信将Repositoryfrom Application-1添加为对 Application-2的引用会起作用,但我不确定更改代码会产生什么影响。
我基本上需要知道哪种方法会产生正确的结果来满足我在 1..n 应用程序之间共享存储库层的需要?
如果你有一个 Repository/UnitOfWork 的实现,你想在多个独立项目之间共享它,你有以下选择:
将源 *.cs 文件放在某个公共文件夹中,并将这些文件作为链接添加到每个项目中。
优点:
缺点:
将公共代码提取到类库中,将编译后的 .dll 程序集作为引用包含在两个项目中。
优点:
缺点:
提取到单独的类库并包含库作为项目引用
优点:
缺点:
但同样,这完全取决于许多因素 - 您使用的是哪种版本控制,您的项目的生命周期是什么,是否有多个团队开发这些项目,这些项目将如何部署以及它们是否将被连接。这一切都会影响最终的决定。