- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 codeContracts 的新手,我喜欢它,因为它看起来很干净。
我不喜欢我需要下载一个库才能使其工作这一事实。一直不明白为什么微软没有将它作为整个框架的一部分。
我不想强制团队中的其他同事下载它。
问题:
我能否下载扩展并将 dll 添加到构建中,以便他们在获取最新版本或使用它时无事可做?
在部署内置 Codecontracts 的应用程序之前,有什么需要了解的吗?
谢谢
最佳答案
在 .NET 4.0 中,您无需下载任何库或将任何库添加到项目中即可将代码契约添加到您的代码中。下载的部分是静态分析和ccrewrite的工具。如果您使用的是旧版本的 .NET,我建议您在开始使用代码契约之前升级到 4.0。
只要您只使用静态分析功能(静态契约(Contract)检查),您就可以使用它而不会直接干扰其他开发人员的开发过程(请继续阅读)。在这种情况下,编译或部署方面没有任何变化。
如果您打算启用执行运行时契约(Contract)检查,那么您应该让团队中的每个人都使用这些工具。您还应该确保您的生成服务器能够生成与本地 Visual Studio 相同的结果。这是因为一旦启用该功能,代码契约就会开始影响运行时行为。显然,代码的行为必须对每个人都相同。
即使您决定暂时只使用静态功能,但如果团队中的每个人都不使用这些工具,也有一个缺点:他们将无法正确维护使用代码契约的代码。重构可能需要更改契约,但如果没有工具,它们可能会无意中引入大量警告,如果您是唯一拥有这些工具的人,您将不得不修复这些警告。
也就是说,我曾在共享代码库的特定部分使用过代码契约,而团队的其他成员在使用它们时没有出现任何重大问题。当然,您仍然应该与您的同事讨论,这样他们在维护您的代码时就不会遇到任何意外。唯一一次我使用代码契约迫使他们做一些额外的工作,是当他们向我定义了契约的接口(interface)添加一个方法时。契约(Contract)在实现该接口(interface)的抽象类中,这意味着他们必须向抽象类添加该新方法的最小实现。
关于c# - 在不影响其他开发人员的情况下在 .net 4.0 中使用 codeContracts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727110/
是否有用于手动测试的代码覆盖工具?比如我新写了30行代码,编译,然后运行,有什么办法可以快速验证这30行都运行了吗? 另外,后来,在我将代码 checkin 正式版本后,有什么方法可以验证测试部门在进
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我正在尝试测试 MacOS 的应用内购买。输入测试用户凭据后,App Store 提示:“当前收据无效或 ds 人员 ID 不匹配。”并且购买失败。 最佳答案 我尝试了很多方法来解决这个问题。 Get
我正在为 Jenkins 使用 ActiveDirectory 插件,因此用户必须使用他们的凭据登录到 Jenkins。然后用户在 Jenkins 中被称为 joe.doe,这很完美。 当同一个人 c
如何从 Infopath 人员/组选取器检索电子邮件地址?当我将人员/组选取器添加到 infopath 表单时,我只得到 3 个字段 DisplayName、AccountId、AccountType
在 Snow Leopard 中,可以在 iCal 事件中显示空闲/忙碌时间。我搜索了 CalStore.framework 的 header ,但找不到任何描述该字段的属性。如何检索日历事件的忙/闲
是否有人成功地从专门针对 SharePoint 2013 的新建或编辑表单中获取用户(个人或组)字段的值? 我已经尝试了通过搜索互联网找到的所有解决方案以及我自己能想到的所有解决方案,所有结果都为空白
所以我需要将一个 Twitter 帐户添加到 ABRecordRef 中。然而,最快的方法似乎是获取社交资料属性的多值引用,创建它的可变版本,查找它是否有 Twitter 条目,如果已经有,则创建
我正在尝试将使用 Tomcat(最初是 5.5,但可以与 7 一起使用)在 MyEclipse 中开发的应用程序部署到我们的演示服务器 (Sun Java Web Server 7)。不幸的是,所有设
我是一名优秀的程序员,十分优秀!