是否有人在.NET 4.0中使用代码约定实现企业库VAB?
如果是这样,你能分享一些见解吗?它对性能有帮助吗?还需要考虑其他因素吗?
答案 0 :(得分:5)
两个框架都有不同的范围,因此可以轻松地在同一个项目中使用。但是,您必须阻止在域实体中使用代码约定。执行此操作时,所有调用方必须确保它们不设置无效值(执行此操作时将发生编译时错误)。但是,使用验证应用程序块,必须允许您的实体具有(暂时)无效状态。否则VAB无法检测到无效对象。
让我说不然,Code Contracts旨在防止编程错误,而不是用户错误,它为此提供编译时支持。 VAB可以防止用户错误,而不是编程错误*并为此提供运行时支持。
*好的,VAB也可以用于编程错误(事实上,我确实以这种方式使用它)但主要场景是用户输入IMO。