我们正在使用团队基础服务器来进行源代码控制.我经常将文件放入我的项目(在源代码管理下),并且就TFS而言忘记"添加"它们.在某些情况下,TFS不会获取新文件(在项目中复制和粘贴文件).
有没有办法列出所有未标记为"添加"的文件,以便我可以验证是否所有预定的签到都会发生?
这真让我抓狂!我们还没有为这个项目设置持续集成,而且我一直在丢失文件.我找不到,直到有人问我文件在哪里.
在Subversion中,这很简单.
我知道一个解决方案是签出第二个副本,但这不是一个真正的最佳解决方法.
我似乎无法获得XPath表达式来适应我的场景.我想找到所有类型为"EndDevice"的"Device"节点.我能够计算所有"设备"节点,并且我还能够找到具有"EndDevice"属性的所有"设备"节点.但是,我似乎无法将它们结合起来!
count(//Device) //works
//Device[@xsi:type='EndDevice'] //works
count(//Device[@xsi:type='EndDevice']) //doesn't work
Run Code Online (Sandbox Code Playgroud)
如果重要,我正在使用XPathBuilder.
在最新的MVC预览中,我使用此路由获取旧版URL:
routes.MapRoute(
"Legacy-Firefox", // Route name
"Firefox-Extension/", // URL with parameters
new { controller = "Home", action = "Firefox", id = "" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
问题是这两个URL都有效:http : //example.com/Firefox-Extension http://example.com/Firefox-Extension/
我只希望第二个工作(对于SEO).此外,当我创建指向该页面的链接时,路由引擎会返回一个没有尾部斜杠的URL.
这是我用来生成链接的代码:
<%= Html.ActionLink("Firefox Extension", "Firefox", "Home")%>
Run Code Online (Sandbox Code Playgroud)
我相信可以通过使用HTTP处理程序来执行301重定向到具有尾部斜杠的URL来解决第一个问题.但是,我想链接到带有斜杠的URL,我希望不必使用斜杠对该版本进行硬编码.
有谁知道如何强制路线使用尾部斜线?
我很好奇是否有一种有效的方法可以等待网站的首页加载,然后预加载我知道网站上其他网页可能需要的CSS和脚本文件.
我希望网站的首页尽可能快(精益和平均).用户可能不会立即点击链接.由于可能会有一些空闲时间,这似乎是预加载一些外部资产的合适时机.预加载应该使它们被缓存.当用户点击另一个页面时,所需的唯一请求将是内容和可能的一些图像等.
有没有人这样做过?这是个坏主意吗?有没有一种优雅的方式来实现它?
我认为委托实例可以与函数实例互换.
请使用以下代码:
delegate int AddDelegate(int a, int b);
AddDelegate DelegateInstance;
public void DoStuff()
{
//I can call this without a delegate "instance":
MethodThatTakesAdd(Add);
//I can also call it WITH a delegate "instance"
DelegateInstance = Add;
MethodThatTakesAdd(DelegateInstance);
}
public int Add(int a, int b)
{
return a + b;
}
public void MethodThatTakesAdd(AddDelegate addFunction)
{
Console.WriteLine(addFunction(1, 2).ToString());
}
Run Code Online (Sandbox Code Playgroud)
两种方式称它为APPEAR是等价的,如果你只使用C#,你将永远不会看到差异(至少我还没有达到这一点).但是,我最近是一个回调到这个托管代码的非托管代码,它们的处理方式不同.例如,在一个场景中,如果我直接将函数用作回调(即使我的对象实例被保留),我也会得到错误"对垃圾收集的委托进行了回调".使用"委托实例"可以解决问题.
那里有人知道有什么区别吗?
既然LINQ已经拥有了巨大的功能,我想知道哪种语法更可取.例如,我发现了以下方法(只是认为这是一个很好的例子):
foreach (FixtureImageServicesData image in _fixture.Images)
{
if (image.Filename != _selectedFixtureImage.Filename && image.IsPrimary)
{
image.IsPrimary = false;
image.IsChanged = true;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我们将它转换为LINQ方法,它看起来像这样(未经测试):
_fixture.Images.Where(x => x.Filename != _selectedFixtureImage.Filename && x.IsPrimary).ForEach(x => { x.IsPrimary = false; x.IsChanged = true; });
Run Code Online (Sandbox Code Playgroud)
您更愿意看到和维护哪一个?这是疯狂还是天才?
简短版本:我们能否以多线程方式从数十个或数百个表分区中读取数据,以提高数量级的性能?
长版本:我们正在开发一个在Azure表存储中存储数百万行的系统.我们将数据分区为小分区,每个分区包含大约500条记录,代表单位的一天数据.
由于Azure没有"总和"功能,为了提取一年的数据,我们要么必须使用一些预缓存,要么自己在Azure Web或辅助角色中对数据求和.
假设如下: - 读取分区不会影响另一个分区的性能 - 读取分区有一个基于网络速度和服务器检索的瓶颈
然后我们可以猜测,如果我们想要快速总结大量数据(1年365个分区),我们可以使用大规模并行算法,它几乎可以完美地扩展到线程数.例如,我们可以使用具有50个以上线程的.NET并行扩展,并获得巨大的性能提升.
我们正在努力设置一些实验,但我想看看之前是否已经完成.由于.NET端基本上处于等待高延迟操作的空闲状态,因此这对于多线程来说似乎是完美的.
我最近创建了一个node.js应用程序,它可以访问社交媒体网站并缓存我们的公共供稿.我正在使用一些现有的npm模块来方便访问社交媒体API.它在我的开发环境中就像一个魅力,但在我们的生产环境中,请求超时是因为它们需要通过代理.
无需修改npm模块,如何使出站请求通过代理?
我最近一直在使用Mercurial进行一些开发并一直喜欢它.
我很好奇,微软是否在内部使用任何形式的分布式源代码控制,和/或他们是否以任何方式向它发展?
我找到了这篇文章:http: //maratux.blogspot.com/2009/03/microsoft-uses-git-for-version-control.html
它说微软正在使用Git进行版本控制,但我没有任何证据表明它是合法的.
有什么想法吗?谣言?内幕消息?
我使用了大量的依赖注入,但我想在运行时获得有关如何处理用户信息的输入。
我有一个连接到 com 端口的类。我允许用户选择 com 端口号。现在,我将该 com 端口参数作为构造函数参数。原因是该类没有该信息就无法运行,并且它是特定于实现的(此类的模拟版本不需要 com 端口)。
另一种方法是使用一个“Start”方法来接收 com 端口,或者使用一个设置 com 端口的属性。这使得它与 IoC 容器非常兼容,但从类的角度来看它不一定有意义。
看起来逻辑路线与依赖注入设计冲突,但这是因为我的 UI 正在获取特定类型类的信息。
其他替代方法包括使用 IoC 容器,让我传入额外的构造函数参数,或者仅在顶层构造我需要的类而不使用依赖注入。
对于此类问题,是否有普遍接受的标准模式?