小编Cod*_*ack的帖子

NuGet和TFS最佳实践

我们在TFS的项目组织如下:

$\DefaultCollection\ProjectName\Source  <-- source code goes here

$\DefaultCollection\ProjectName\SharedAssemblies <-- 3rd party binaries go here
Run Code Online (Sandbox Code Playgroud)

现在NuGet已经出现了,有没有理由改变我们的方法并使用NuGet的packages文件夹来获取来自NuGet感知项目的dll?我反对这个因为

1)它创建了两个必须寻找依赖关系的地方2)它让我们对一个开发人员更新包并打破一些依赖关系开放

也就是说,如果有人能够报告在TFS环境中开始使用NuGet的充分理由,我很乐意将您的想法呈现给我的团队,好像他们是我自己的(笑话).

tfs nuget

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

NuGet和多种解决方案

我们有两个解决方案:foo.sln和bar.sln

我有一个foo和bar都使用的公共库.两者都使用Common.csproj.

如果我打开foo并更新nuget引用,Common.csproj中的所有引用都指向foo/packages /.如果我稍后打开bar并更新nuget引用,则所有引用都将设置为bar/packages /中的引用.当然,这会让foo团队感到愤怒,因为它会导致Common.csproj和Foo特定的东西之间不兼容,比如Foo.Data.csproj,它仍然指向foo/packages.

必须有一些明显的解决方案,除了:"创建一个包含所有项目的巨大解决方案,如果你需要触摸nuget,只能从该解决方案中做到."

在codeplex上似乎存在一个问题,(顺便提一下,这是最高投票的问题),但显然我太过于无法理解这个问题是如何解决的.有人可以解释如何解决这个问题吗?

projects-and-solutions nuget nuget-package

41
推荐指数
3
解决办法
9909
查看次数

.NET的规则引擎

我们有业务要求让高级用户编辑保险费率和注册规则.我们需要一个web ui,让他们说"这个产品只适用于人们<55,除非他们来自德克萨斯州并拥有一只贵宾犬"或其他什么.编辑澄清:保险是疯了.规则因产品,州与州而异,并且不断变化.

我们查看了几个规则引擎,但商业规则引擎是100K +,开源代码似乎不是,完成了.如果我们提前创建规则,Windows Workflow会起作用,但在运行时构建它们似乎需要绕过代码访问安全性.那太可怕了.

我们难以重新发明这个轮子吗?对.net有更好的选择吗?

c# rules drools

24
推荐指数
2
解决办法
1万
查看次数

从客户端检测到一个潜在危险的Request.Form值(wresult ="<trust:RequestSecuri ...")

使用WIF时,我也收到了请求验证错误.我被正确地发送到STS,但在回来的路上,我得到了这个验证错误.

我遵循了所有指示.

<httpRuntime  requestValidationMode="2.0" />
Run Code Online (Sandbox Code Playgroud)

校验!

    [ValidateInput(false)]
Run Code Online (Sandbox Code Playgroud)

校验!

<pages validateRequest="false" >
Run Code Online (Sandbox Code Playgroud)

校验!

我尝试了一个自定义验证器,但它永远不会被实例化.

错误堆栈:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (wresult="trust:RequestSecuri...").]
   System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +11396740
   System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +82
   System.Web.HttpRequest.get_Form() +212
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.IsSignInResponse(HttpRequest request) +26
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request, Boolean onPage) +145
   Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +108
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
Run Code Online (Sandbox Code Playgroud)

有什么建议?

wif single-sign-on asp.net-mvc-3

16
推荐指数
1
解决办法
2万
查看次数

Html.BeginForm中的Ajax.BeginForm

我有一个用于编辑东西的视图,比如订单.订单包含可以任意添加的订单项.所以主视图和嵌套的偏见视图.

每个部分应该有一个ajax表单,用于调整每个行项目的数量或其他.

从而:

Html.BeginForm()
{%>
    Ship to: blah blah blah  
    <%
    Ajax.BeginForm("EditLineItem", "Order", new { OrderLineItemID = Model.ObjectID }, itemAjaxOptions))
    {
        Item qty blah blah blah

        <--! (ajax form's submit button, etc.)-->
    }
    %>
    <--! (ajax form's submit button, etc.)-->
<%
}
Run Code Online (Sandbox Code Playgroud)

我有一个看起来像这样的控制器:

[ActionName("Edit")]
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult Edit(int orderID)
{
    blah, blah
}

[ActionName("EditLineItem")]
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult EditLineItem(Guid orderLineItemID)
{
    blah, blah
}
Run Code Online (Sandbox Code Playgroud)

我的麻烦是,当我提交Ajax表单时,我得到Edit方法而不是EditLineItem方法.两个路由都已映射.是否有一些问题,比如"你不能在Html表单中提交Ajax表单",我不知道?

c# asp.net-mvc asp.net-ajax

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

Chef属性:文件名是否重要?

当我在cookbook的属性/attributes/default.rb中创建属性时,一切正常.

如果我在食谱中添加食谱,比如/recipes/dofubar.rb,我希望加载/attributes/dofubar.rb中定义的属性.它们似乎不是.

有没有办法为一个配方定义一组默认属性,为其他配方定义其他一组?

chef-infra chef-recipe

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

如何在TFS 2010中调试自定义构建过程?

我知道我的构建不起作用,但我无法弄清楚如何调试它.我唯一的症状是它只对解决方案中的某些项目执行get操作.将详细程度设置为诊断告诉我什么,事件日志是空的,是什么给出的?

在使用野蛮的tfsbuild.proj文件的TFS 2008下,您始终可以在本地执行构建并查看发生的情况.现在,在TFS而不是一堆意大利面条XML中,我们有一堆意大利面条XAML.有没有办法在本地执行我的构建过程模板,以便我可以看到发生了什么?

如何在TFS 2010中调试自定义构建过程?

tfsbuild tfs2010

8
推荐指数
1
解决办法
6301
查看次数

Miniprofiler:网站速度莫名其妙

我们安装了miniprofiler.它一直是一种启发性的体验,但是现在我们看到我们的数据库查询运行速度提高了3倍,启用了启动器,因为它已禁用.

我们在应用程序中更改的唯一代码是添加profiledDbConnection:

public static DbConnection GetOpenConnection(string connectionString)
{
    var cnn = new System.Data.SqlClient.SqlConnection(connectionString);  
    // wrap the connection with a profiling connection that tracks timings 
    return MvcMiniProfiler.Data.ProfiledDbConnection.Get(cnn, MiniProfiler.Current);
}
Run Code Online (Sandbox Code Playgroud)

Linq2Sql突然......快.

我不是在抱怨,但为什么会这样呢?

mvc-mini-profiler

8
推荐指数
1
解决办法
1127
查看次数

单元测试ASP.NET MVC与数据

我们有一个疯狂的数据驱动的应用程序.我们希望对应用程序进行单元测试,但由于数据量大,开发人员无法构建完全虚假的存储库.我真的不怪他们.

了解我们正在将测试改造为现有应用程序.如果我们重新开始,我们将进行大量的架构更改,以便利用虚假存储库进行更好的单元测试.

我们希望通过测试分发已知的mdf文件,复制它,并使用它来执行我们的测试.是否有批准的技术?我熟悉将资源嵌入到测试dll中,但不熟悉嵌入mdf - 如果可以的话.


一种解决方案(有点):

我最后从Andrew Tokeley关于模拟Linq数据上下文(http://andrewtokeley.net/archive/2008/07/06/mocking-linq-to-sql-datacontext.aspx)的帖子中获取了DataContextWrapper并创建了一个FakeDataContext.cs这基本上是一堆列表.

我写了一个真正野蛮的T4模板(想想"select*FROM <#= table.BaseClass.QualifiedName#>")来复制已知良好数据库中的数据,创建一个庞大的类,如:

List<Customer> _customers = new List<Customer>();
_customers.Add(new Customer(){CustomerId = 1, CustomerName = "ACME"});
Run Code Online (Sandbox Code Playgroud)

等等

这个类是25K行,但是因为t4写了所有这些行,谁在乎呢?它允许我们只模拟数据上下文,因此我们可以通过一些合理的保证测试我们的linq与假上下文,我们得到了正确的查询.最初的开发人员在回购中放置了大量的业务逻辑,因此它允许我们针对已知的良好数据测试逻辑.

asp.net-mvc integration-testing unit-testing mdf

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

ASP.NET MVC在重写的VirtualPathProvider中禁用视图缓存

我正在使用便携式区域做一些开发工作,所以我有一个被覆盖的VirtualPathProvider.

public override bool FileExists(string virtualPath)似乎每隔几分钟就会调用一次,这意味着MVC正在缓存视图.

这可能是很好的生产,但我无法弄清楚如何在开发中关闭它.我希望在VirtualPathProvider每次使用视图时调用它.

有什么建议?

asp.net-mvc virtualpathprovider

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