VS.NET:项目引用与程序集引用

2023-11-26

关于从其他项目引用我们的公共代码库哪个更好:通过项目还是通过程序集,存在一些争论。我赞成引用该项目,特别是因为我们有自动化的单元测试,可以证明通用代码可以完成所需的工作。

另一个阵营的想法是锁定这些项目,每月只发布一次程序集或类似的东西。然后强制所有项目引用程序集。他们认为这将保护他们免于部署未经测试的代码。他们“太忙”了,无法编写自动化单元测试并配置他们的项目以进行持续集成,而我对此没有影响力,所以请不要关注这方面。

以下是我能想到的项目参考是更好解决方案的原因。我也在寻找其他意见。

PROS:

  • 引用项目可确保您使用最新的代码。您无需等待任何事情。
  • 减少重复。如果没有最新的代码,则更有可能重新发明轮子。
  • 如果开发人员需要某些东西,但无法将其添加到其所属的程序集中,那么它将在任何可用的位置创建它,从而造成许多不一致和代码重复。
  • 开发变得更加容易,因为您可以轻松查看/调试引用代码中发生的情况。
  • 我们常见的东西不会经常改变,但当改变时,它通常是有用的。为什么要增加维护和程序集发布管理的额外负担。

CONS:

  • 加载可能需要更长的时间。
  • 将项目添加到新解决方案然后添加程序集引用可能需要稍长的时间。

以下是您错过的几个优点

  • 实时更新:当您更改 API 时,智能感知等功能将在项目到项目引用之间自动更新
  • GoTo Definition:如果您有程序集引用,GoTo Definition 将带您转到实际的代码定义。通过程序集引用,它将带您到生成的元数据签名。
  • 查找所有引用:将处理项目引用中的所有代码以供参考使用。对于程序集参考,您只会看到元数据中的使用
  • 快速搜索(仅限 2010 年):与查找所有参考文献类似,只是在 P2P 参考文献中效果更好

针对你的缺点

  • 是:加载项目通常比加载参考慢。对于合理数量的项目,尽管这个时间差异并不显着,并且不会影响您的日常开发流程
  • 是的:添加项目到解决方案通常比添加引用慢。但差异以秒为单位,并且是一次性成本。我认为将此视为标准的一部分是错误的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS.NET:项目引用与程序集引用 的相关文章

随机推荐

  • 重定向到 Node.js 中的不同页面 url(不在 Express 或其他框架中)

    我想将用户从 Node js 中的一个页面重定向到另一个页面 普通 Node js 现实生活场景 注册后 example com sigup 成功注册后我想将用户重定向到登录页面 example com login if signUpSuc
  • 如何在 SignalR 2.x 单元测试框架中向模拟客户端添加组支持?

    我正在使用 Moq 为我的 SignalR 2 x 应用程序构建一个 UnitTest 框架 我目前正在通过以下方式嘲笑我的客户 var mockClients new Mock
  • 将 Xcode 7 与 iOS 10 结合使用

    我想在 iOS 10 中使用 Xcode 7 据我了解 使用 iOS 10 beta 需要 Xcode 8 beta 所以我应该升级我的 Xcode 但是 我的代码无法由新编译器构建 因此我想继续使用 Xcode 7 我怎样才能做到这一点
  • 如何使用 Hibernate 注释在连接表上创建索引?

    我使用 Hibernate 注释有如下关系 这是我尝试过的 public class Job OneToMany cascade CascadeType ALL JoinTable name jobs resource locations
  • 使用 pandas read_csv 时出现内存错误

    我正在尝试做一些相当简单的事情 将一个大的 csv 文件读入 pandas 数据帧 data pandas read csv filepath header 0 sep DELIMITER skiprows 2 该代码要么失败 并显示Mem
  • 最小成本流 - R 中的网络优化

    我正在尝试实施一个 最低成本网络流量 交通问题解决方案R 我知道这可以使用类似的东西从头开始实现lpSolve 不过我发现有一个方便的igraph实施 最大流量 这样一个预先存在的解决方案会方便很多 但我找不到最小成本的等效函数 有没有一个
  • 如何让 JTable 标题显示整个列名而不是缩短它们?

    我有一个 JTable 其中填充了一个扩展 AbstractTableModel 的类 问题是列太短而无法显示列名称 我已经关闭了 Jtable AutoResizeMode 属性 但缩短仍然发生 我该如何解决这个问题 您可以使用桌柱调节器
  • 从 Bash 目录中读取文件名

    我需要编写一个脚本 从目录中读取所有文件名 然后根据文件名 例如 如果它包含 R1 或 R2 它将连接所有包含的文件名 例如名称中的 R1 谁能给我一些如何做到这一点的提示 我唯一能做的就是 bin bash FILES path to t
  • 使用 boto3 列出具有特定应用程序标签的自动缩放组名称

    我试图获取应用程序标记值为 CCC 的自动缩放组 名单如下 gweb prd dcc eap w2 gweb prd dcc emc gweb prd dcc ems CCC dev ccc wer CCC dev ccc gbg CCC
  • Facebook Graph API 覆盖显式设置的隐私设置

    我在为我的应用程序代表用户创建的帖子设置隐私时遇到问题 问题是 所有帖子的隐私值都被 Graph API 设置为 ALL FRIENDS 即使我明确将隐私值设置为 EVERYONE 这是我用来提交的代码 query message urle
  • iOS启动后台线程

    我的 iOS 设备中有一个小型 sqlitedb 当用户按下按钮时 我从 sqlite 获取数据并将其显示给用户 我想在后台线程中执行此获取部分 以免阻塞 UI 主线程 我这样做 self performSelectorInBackgrou
  • 具有本地作用域的 PHP 常量

    在 PHP 中是否可以有局部作用域的常量 是的 请提供一个小例子 是的 但只使用一个类 class Foo const BAR hello world print Foo BAR 关于 Kalium 的评论 如果你使用 PHP 5 3 你确
  • 何时使用 URL/会话/cookie 变量?

    我做了很多 php 和 javascript 但我认为这是一个相对与语言无关的问题 是否有关于何时使用以下各项的最佳实践 网址变量 会话变量 cookies 我了解其中一些的固有局限性can t确实如此 但似乎它们的用途有时也可以重叠 并且
  • C++11 中的动态对齐内存分配

    posix memalign and aligned malloc在 Windows 上允许动态分配对齐的内存块 C 11中有类似的东西吗 据我所知 alignas关键字仅适用于静态分配的对象 这取决于您需要什么对齐方式 对于任何 alig
  • 超越 Python 中的工厂

    从 Java 转向 Python 后 我被告知工厂不是 Pythonic 的 因此 我正在寻找 a Python 方法来执行如下操作 我过于简化了我的目标 这样我就不必描述我的整个程序 这非常复杂 我的脚本将读取人名 以及有关他们的一些信息
  • Rails 3:belongs_to、has_one 和迁移

    我是 Rails 新手 并且有 Django 背景 我已经接受了这样一个事实 模型和数据库模式在 Rails 在线 Django 中是分开的 然而 我仍在处理迁移问题 我的问题相当简单 如何使用迁移向模型添加关系 例如 我有Artist a
  • 在 matplotlib 中反转(不是反转)颜色图?

    有没有什么好的方法invert 不是反向 这很简单 请参阅在 matplotlib 中反转颜色图 matplotlib 中的颜色图 即 我想拍摄一张 png 图像 其中具有以下形式的颜色元组 1 1 0 1 并使用 matplotlib 颜
  • 如何在 Aurelia 入门应用程序(导航应用程序)中使用 JQuery UI 组件

    我可以按照入门教程中提供的步骤运行 Aurelia 应用程序 他们在骨架应用程序中使用了引导导航栏 是否可以在 Aurelia 应用程序中使用 JQuery UI 组件 如果是 请解释一下如何实现这一目标 提前致谢 是的 这是可能的 我做了
  • 在 Python 3.4 中导入表格时出现问题

    我刚刚安装了 python 的 tabulate 以便在终端中对输出进行制表 当我尝试将 tabulate 导入 python 3 4 时 它给我一个错误 ImportError No module named tabulate 但是 每当
  • VS.NET:项目引用与程序集引用

    关于从其他项目引用我们的公共代码库哪个更好 通过项目还是通过程序集 存在一些争论 我赞成引用该项目 特别是因为我们有自动化的单元测试 可以证明通用代码可以完成所需的工作 另一个阵营的想法是锁定这些项目 每月只发布一次程序集或类似的东西 然后