我们在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的充分理由,我很乐意将您的想法呈现给我的团队,好像他们是我自己的(笑话).
我们有两个解决方案: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上似乎存在一个问题,(顺便提一下,这是最高投票的问题),但显然我太过于无法理解这个问题是如何解决的.有人可以解释如何解决这个问题吗?
我们有业务要求让高级用户编辑保险费率和注册规则.我们需要一个web ui,让他们说"这个产品只适用于人们<55,除非他们来自德克萨斯州并拥有一只贵宾犬"或其他什么.编辑澄清:保险是疯了.规则因产品,州与州而异,并且不断变化.
我们查看了几个规则引擎,但商业规则引擎是100K +,开源代码似乎不是,完成了.如果我们提前创建规则,Windows Workflow会起作用,但在运行时构建它们似乎需要绕过代码访问安全性.那太可怕了.
我们难以重新发明这个轮子吗?对.net有更好的选择吗?
使用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)
有什么建议?
我有一个用于编辑东西的视图,比如订单.订单包含可以任意添加的订单项.所以主视图和嵌套的偏见视图.
每个部分应该有一个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表单",我不知道?
当我在cookbook的属性/attributes/default.rb中创建属性时,一切正常.
如果我在食谱中添加食谱,比如/recipes/dofubar.rb,我希望加载/attributes/dofubar.rb中定义的属性.它们似乎不是.
有没有办法为一个配方定义一组默认属性,为其他配方定义其他一组?
我知道我的构建不起作用,但我无法弄清楚如何调试它.我唯一的症状是它只对解决方案中的某些项目执行get操作.将详细程度设置为诊断告诉我什么,事件日志是空的,是什么给出的?
在使用野蛮的tfsbuild.proj文件的TFS 2008下,您始终可以在本地执行构建并查看发生的情况.现在,在TFS而不是一堆意大利面条XML中,我们有一堆意大利面条XAML.有没有办法在本地执行我的构建过程模板,以便我可以看到发生了什么?
如何在TFS 2010中调试自定义构建过程?
我们安装了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突然......快.
我不是在抱怨,但为什么会这样呢?
我们有一个疯狂的数据驱动的应用程序.我们希望对应用程序进行单元测试,但由于数据量大,开发人员无法构建完全虚假的存储库.我真的不怪他们.
了解我们正在将测试改造为现有应用程序.如果我们重新开始,我们将进行大量的架构更改,以便利用虚假存储库进行更好的单元测试.
我们希望通过测试分发已知的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与假上下文,我们得到了正确的查询.最初的开发人员在回购中放置了大量的业务逻辑,因此它允许我们针对已知的良好数据测试逻辑.
我正在使用便携式区域做一些开发工作,所以我有一个被覆盖的VirtualPathProvider.
我 public override bool FileExists(string virtualPath)似乎每隔几分钟就会调用一次,这意味着MVC正在缓存视图.
这可能是很好的生产,但我无法弄清楚如何在开发中关闭它.我希望在VirtualPathProvider每次使用视图时调用它.
有什么建议?
asp.net-mvc ×3
c# ×2
nuget ×2
asp.net-ajax ×1
chef-infra ×1
chef-recipe ×1
drools ×1
mdf ×1
rules ×1
tfs ×1
tfs2010 ×1
tfsbuild ×1
unit-testing ×1
wif ×1