小编Fin*_*nNk的帖子

.Net 4 Code Contracts静态分析仪的任何替代品?

似乎与.NET 4.0 Code Contracts一起使用的静态分析器仅适用于Visual Studio的Team Suite版本 - 这使得它远远超出了我的团队的预算.

是否有任何替代方案(开源,免费或价格合理),通过合同样式代码(不一定使用.net代码合同)为设计提供类似的静态分析.我猜这个答案是肯定的,因为只有当BCL本身有合同时才能获得全部价值 - 但有没有哪个部分合作?

.net c# static-analysis visual-studio-2010 code-contracts

9
推荐指数
1
解决办法
1484
查看次数

"分号"的意思是作为一个单位的大小

Io主页上,它提到了它的小尺寸,但它使用了我以前从未见过的度量单位:

小vm(~10K分号)

这只是字符大小(〜字节),还是有更微妙的东西在这里?

terminology iolanguage

7
推荐指数
1
解决办法
478
查看次数

是否可以为resharper定义自定义命名约定?

我正在使用Resharper(使用StyleCop插件,虽然我不认为这与问题/答案相关)在我们的代码库中强制执行命名约定.几乎无处不在,这种方法非常出色,只有一个例外.

对于测试方法名称,我更喜欢以下约定:

ThingOrBehaviourUnderTest_Action_ExpectedOutcome

目前这导致命名警告不一致,到目前为止我只是忽略了它(我知道我可以在该文件中禁用警告,但是它会禁用所有其他命名不一致的警告).在我可以分配的样式列表中,Resharper提供了驼峰案例,这将导致:

ThingOrBehaviourUnderTestActionExpectedOutcome

或者用下划线分隔的单词:

Thing_or_behaviour_under_test_action_expected_outcome

两者都接近我想要的,但不完全在那里.我想我正在采用一种允许下划线作为驼峰测试方法名称中的有效字符的方法,或者支持自定义命名约定的方法.这可能吗?

resharper

7
推荐指数
1
解决办法
2199
查看次数

如何在内存中实现CQS更改?

观看了Greg Yound关于DDD的视频

http://www.infoq.com/interviews/greg-young-ddd

我想知道如何在内存更改时使用DDD实现命令查询分离(CQS)?

使用CQS,您有两个存储库,一个用于命令,一个用于查询.以及两个对象组,命令对象和查询对象.命令对象只有方法,没有可以公开对象形状的属性,不能用于在屏幕上显示数据.另一方面,查询对象用于向屏幕显示数据.

在视频中,命令总是转到数据库,因此您可以使用查询存储库来获取更新的数据并在屏幕上重新显示.

您是否可以在ASP.NET中使用CQS和编辑屏幕,在内存中进行更改并且在更改持久保存到数据库之前需要使用更改多次更新屏幕?

例如

  1. 我从查询存储库中获取一个查询对象并将其显示在屏幕上
  2. 我点击编辑
  3. 我从查询对象存储库中重新获取查询对象,并在编辑模式下将其显示在表单上
  4. 我在表单上更改了一个值,该值自动恢复并获取命令对象并发出相关命令
  5. 怎么做:我现在需要显示更新的对象,因为命令对计算字段进行了更改.由于命令对象尚未保存到数据库,因此无法使用查询存储库.而使用CQS,我并不是要公开要在屏幕上显示的命令对象的形状.如何通过屏幕上显示的更新更改返回查询对象.

我能想到的几个可能的解决方案是拥有会话存储库,或者从命令对象获取查询对象的方法.或者CQS不适用于这种情况吗?

在我看来,在视频中的变化会直接传递到数据库,我还没有找到一个带有CQS的DDD示例,它解决了对域对象进行批量更改以及更新修改后的域对象视图的问题.最后发出一个命令来保存域对象.

domain-driven-design repository-pattern cqrs

6
推荐指数
1
解决办法
2123
查看次数

执行 SELECT INTO 时可以指定排序规则吗

如果我从一个源选择到另一个源,我可以同时指定排序规则吗?

例如

SELECT Column1, Column2
INTO DestinationTable
FROM SourceTable
Run Code Online (Sandbox Code Playgroud)

其中“DestinationTable”尚不存在。

我知道我可以做类似的事情

SELECT Column1, Column2 COLLATE Latin1_General_CI_AS
INTO DestinationTable
FROM SourceTable
Run Code Online (Sandbox Code Playgroud)

在我的实际问题中,事先不知道列的数据类型,因此我不能只将排序规则添加到每列。它位于遗留应​​用程序的一个角落,使用大型令人讨厌的存储过程来生成 SQL,我试图让它在 tempdb 中具有不同排序规则的新服务器上运行,只需进行最小的更改。

我正在寻找类似的东西:

SELECT Column1, Column2
INTO DestinationTable COLLATE Latin1_General_CI_AS
FROM SourceTable
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

t-sql collation

6
推荐指数
1
解决办法
9953
查看次数

在 Serilog 中解构时忽略空值

在 Serilog 中,当属性值为空时是否可以忽略属性?

我尝试添加 DataMember 属性,但这些属性似乎被忽略:

[DataMember(EmitDefaultValue = false)]
public string Title { get; set; }
Run Code Online (Sandbox Code Playgroud)

进一步研究源代码,我注意到有一个AttributedDestructuringPolicy但这似乎控制渲染属性值而不是省略属性。

.net c# logging serilog

6
推荐指数
1
解决办法
1265
查看次数

连接两个向量 - 为什么长度不被视为可交换?

我正在玩伊德里斯,我遇到了一些令我困惑的事:

以下类型检查:

conc : Vect n a -> Vect m a -> Vect (n+m) a
conc [] ys = ys
conc (x :: xs) ys = x :: (conc xs ys)
Run Code Online (Sandbox Code Playgroud)

但这不是:

conc : Vect n a -> Vect m a -> Vect (m+n) a
conc [] ys = ys
conc (x :: xs) ys = x :: (conc xs ys)
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

When checking right hand side of conc with expected type
        Vect (m + 0) a

Type mismatch between …
Run Code Online (Sandbox Code Playgroud)

idris

3
推荐指数
1
解决办法
269
查看次数