小编Cri*_*scu的帖子

Visual Studio TDD设置

我是TDD的新开发者,愿意尝试这种开发方法.

我目前的设置是Visual Studio 2010的+ ReSharper的(运行单元测试非常方便 - 建立一个单元测试会话和有运行和调试测试按钮).

尽管如此,我觉得可能有更多方法来加速TDD(例如:保存测试文件时自动运行测试).

因此,使用Visual Studio的TDD专家 - 您能否分享有关如何提高TDD流程效率的任何提示?

c# tdd visual-studio-2010

12
推荐指数
1
解决办法
1978
查看次数

另一个会话正在使用的事务上下文

我有一个名为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工作正常).

如何避免错误并成功插入记录+执行触发器?

t-sql triggers linked-server sql-server-2008-r2

12
推荐指数
1
解决办法
4万
查看次数

在单独的项目和单独的命名空间中组织代码

我在.net c#应用程序中工作,该应用程序包含2个客户端和服务器解决方案.在服务器端,有80多个项目用于分隔以下建筑图层,

  • 基础设施层
  • 集成层(外部系统)
  • 域层
  • 存储库层
  • 经理层
  • 服务层

此外,几乎每个层都有测试项目.现在,解决方案的构建时间需要2到3分钟,许多开发人员(包括我:))觉得我们需要解决这个问题.

因此,提出的解决方案是通过合并项目来减少项目数量.在我看来,这可能是一个很好的解决方案,可以最大限度地缩短构建时间,我们可以实现我们想要的目标.

提出的解决方案是我们将项目合并为3个区域,例如一个用于生产代码的库,一个用于测试代码的库,一个用于部署项目(WCF主机等)以及通过分隔命名空间在同一项目中逻辑划分的层.

但是,我担心的是

  1. 这些分离是否有利于可维护性?为每个命名空间appox提供更多类的hundread.
  2. 如果我们有共同的功能,如助手,我们把它们放在哪里?

有没有其他方法来分层解决方案?

.net c# architecture

11
推荐指数
1
解决办法
2522
查看次数

使用MongoDB聚合框架获取数组大小直方图的最快方法

我正在尝试获取具有不同大小的数组的记录数列表.我想得到所有记录的数组大小的分布,所以我可以建立这样的直方图:

          | *
          | *
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)

mongodb aggregation-framework

11
推荐指数
1
解决办法
2588
查看次数

MongoDB中的MapReduce不输出

我试图在一个集群上使用带有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)

mapreduce mongodb

11
推荐指数
1
解决办法
1084
查看次数

从域中获取SPF记录

在域上检查SPF记录的方法有哪些?

有一个网站,我可以使用 - http://www.mxtoolbox.com/SuperTool.aspx手动完成

我怎么能通过ASP.NET和C#来做到这一点?基本上我想验证/检查域上的SPF记录,如果它支持自己的邮件Web服务器.

c# asp.net spf

10
推荐指数
3
解决办法
7113
查看次数

如何在MongoDB上按字符串长度对结果进行排序

我可以在mysql上轻松完成

select * from TABLE order by length(FIELD) asc
Run Code Online (Sandbox Code Playgroud)

我怎么能在MongoDB上做到这一点?

sql-order-by mongodb

10
推荐指数
2
解决办法
4386
查看次数

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聚合有关吗?

mongodb mongoid aggregation-framework

10
推荐指数
1
解决办法
1578
查看次数

检测.NET应用程序是在Azure中还是在非Azure环境中运行

我们目前正在将我们的应用程序的一些实例移动到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的情况下进行检测?

.net c# azure azure-role-environment azure-service-runtime

10
推荐指数
1
解决办法
2254
查看次数

自定义布尔参数绑定

我有一个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价值观.目前,第二个版本将导致IsAwesomefalse输入模型.


在阅读有关该主题的各种博客文章之后,我尝试的是定义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)

c# model-binding asp.net-web-api2

10
推荐指数
1
解决办法
3900
查看次数