我是TDD的新开发者,愿意尝试这种开发方法.
我目前的设置是Visual Studio 2010的+ ReSharper的(运行单元测试非常方便 - 建立一个单元测试会话和有运行和调试测试按钮).
尽管如此,我觉得可能有更多方法来加速TDD(例如:保存测试文件时自动运行测试).
因此,使用Visual Studio的TDD专家 - 您能否分享有关如何提高TDD流程效率的任何提示?
我有一个名为MyTableon 的表,我已经定义了一个触发器,如下所示:
CREATE TRIGGER dbo.trg_Ins_MyTable
ON dbo.MyTable
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
insert SomeLinkedSrv.Catalog.dbo.OtherTable
(MyTableId, IsProcessing, ModifiedOn)
values (-1, 0, GETUTCDATE())
END
GO
Run Code Online (Sandbox Code Playgroud)
每当我尝试插入一行时MyTable,都会收到以下错误消息:
Msg 3910,Level 16,State 2,Line 1事务上下文,由另一个会话使用.
我已SomeLinkedSrv正确定义为链接服务器(例如,select * from SomeLinkedSrv.Catalog.dbo.OtherTable工作正常).
如何避免错误并成功插入记录+执行触发器?
我在.net c#应用程序中工作,该应用程序包含2个客户端和服务器解决方案.在服务器端,有80多个项目用于分隔以下建筑图层,
此外,几乎每个层都有测试项目.现在,解决方案的构建时间需要2到3分钟,许多开发人员(包括我:))觉得我们需要解决这个问题.
因此,提出的解决方案是通过合并项目来减少项目数量.在我看来,这可能是一个很好的解决方案,可以最大限度地缩短构建时间,我们可以实现我们想要的目标.
提出的解决方案是我们将项目合并为3个区域,例如一个用于生产代码的库,一个用于测试代码的库,一个用于部署项目(WCF主机等)以及通过分隔命名空间在同一项目中逻辑划分的层.
但是,我担心的是
有没有其他方法来分层解决方案?
我正在尝试获取具有不同大小的数组的记录数列表.我想得到所有记录的数组大小的分布,所以我可以建立这样的直方图:
| *
| *
documents | * *
| * * *
|_*__*__*___*__*___
2 5 6 23 47
Array Size
Run Code Online (Sandbox Code Playgroud)
所以原始文档看起来像这样:
{hubs : [{stuff:0, id:6}, {stuff:1"}, .... ]}
{hubs : [{stuff:0, id:6}]}`
Run Code Online (Sandbox Code Playgroud)
到目前为止,使用聚合框架和一些帮助,在这里我想出来的
db.sitedata.aggregate([{ $unwind:'$hubs'},
{ $group : {_id:'$_id', count:{$sum:1}}},
{ $group : {_id:'$count', count:{$sum:1}}},
{ $sort : {_id: 1}}])
Run Code Online (Sandbox Code Playgroud)
这似乎给了我想要的结果,但它不是很快.我想知道我是否可以做这样的事情,可能不需要两个组呼.这里的语法是错误的,但我想要做的是将计数值放在第一个_id字段中:
db.sitedata.aggregate([{ $unwind:'$hubs'},
{ $group : {_id:{$count:$hubs}, count:1}},
{ $sort : { _id: 1 }}])
Run Code Online (Sandbox Code Playgroud) 我试图在一个集群上使用带有mapReduce的MongoDB 2.4.3(也尝试过2.4.4),每个3个副本有2个分片.我有一个问题,mapReduce作业的结果没有减少到输出集合.我尝试了增量贴图减少.我也试过"合并"而不是减少,但这也没有用.
map reduce命令在mongos上运行:( coll不分片)
db.coll.mapReduce(map, reduce, {out: {reduce: "events", "sharded": true}})
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
{
"result" : "events",
"counts" : {
"input" : NumberLong(2),
"emit" : NumberLong(2),
"reduce" : NumberLong(0),
"output" : NumberLong(28304112)
},
"timeMillis" : 418,
"timing" : {
"shardProcessing" : 11,
"postProcessing" : 407
},
"shardCounts" : {
"stats2/192.168.…:27017,192.168.…" : {
"input" : 2,
"emit" : 2,
"reduce" : 0,
"output" : 2
}
},
"postProcessCounts" : {
"stats1/192.168.…:27017,…" : {
"input" : NumberLong(0),
"reduce" : NumberLong(0), …Run Code Online (Sandbox Code Playgroud) 在域上检查SPF记录的方法有哪些?
有一个网站,我可以使用 - http://www.mxtoolbox.com/SuperTool.aspx手动完成
我怎么能通过ASP.NET和C#来做到这一点?基本上我想验证/检查域上的SPF记录,如果它支持自己的邮件Web服务器.
我可以在mysql上轻松完成
select * from TABLE order by length(FIELD) asc
Run Code Online (Sandbox Code Playgroud)
我怎么能在MongoDB上做到这一点?
样本文件:
{
_id: ObjectId('4f442120eb03305789000000'),
time: ISODate("2013-10-10T20:55:36Z"),
value:1
},
{
_id: ObjectId('4f442120eb03305789000001'),
time: ISODate("2013-10-10T28:43:16Z"),
value:2
},
{
_id: ObjectId('4f442120eb03305789000002'),
time: ISODate("2013-10-11T27:12:66Z"),
value:3
},
{
_id: ObjectId('4f442120eb03305789000003'),
time: ISODate("2013-10-11T10:15:38Z"),
value:4
},
{
_id: ObjectId('4f442120eb03305789000004'),
time: ISODate("2013-10-12T26:15:38Z"),
value:5
}
Run Code Online (Sandbox Code Playgroud)
可以轻松获得按日期分组的聚合结果.但我想要的是查询返回聚合的运行总计的结果,如:
{
time: "2013-10-10"
total: 3,
runningTotal: 3
},
{
time: "2013-10-11"
total: 7,
runningTotal: 10
},
{
time: "2013-10-12"
total: 5,
runningTotal: 15
}
Run Code Online (Sandbox Code Playgroud)
这可能与MongoDB聚合有关吗?
我们目前正在将我们的应用程序的一些实例移动到Azure,但仍将保持与非Azure托管的现有实例的向后兼容性.
是否有一种很好的方法来检测环境而无需在非Azure生产服务器上安装SDK?
我尝试过使用:
if (RoleEnvironment.IsAvailable)
Run Code Online (Sandbox Code Playgroud)
来自Microsoft.WindowsAzure.ServiceRuntime,它在本地和Azure中都可以很好地工作.但是,我需要将Microsoft.WindowsAzure.ServiceRuntime.dll设置为CopyLocal,即使这样我也得到:
无法加载文件或程序集'msshrtmi,Version = 2.2.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一
似乎没有NuGet包,我不想手动复制msshrtmi dll.
也许有一种方法可以在不依赖Microsoft.WindowsAzure.ServiceRuntime的情况下进行检测?
我有一个WebApi方法,像这样:
public string Get([FromUri] SampleInput input)
{
//do stuff with the input...
return "ok";
}
Run Code Online (Sandbox Code Playgroud)
输入定义如下:
public class SampleInput
{
// ...other fields
public bool IsAwesome { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
实际上,它可以正常工作:如果我传入&isAwesome=true查询字符串,则参数将使用值进行初始化true.
我的问题是,我想接受这两个 &isAwesome=true和&isAwesome=1作为true价值观.目前,第二个版本将导致IsAwesome被false输入模型.
在阅读有关该主题的各种博客文章之后,我尝试的是定义HttpParameterBinding:
public class BooleanNumericParameterBinding : HttpParameterBinding
{
private static readonly HashSet<string> TrueValues =
new HashSet<string>(new[] { "true", "1" }, StringComparer.InvariantCultureIgnoreCase);
public BooleanNumericParameterBinding(HttpParameterDescriptor descriptor) : base(descriptor)
{
}
public override Task ExecuteBindingAsync( …Run Code Online (Sandbox Code Playgroud)