小编Jos*_*ris的帖子

Team Foundation Server - 使用历史记录移动源

我想知道将源代码从历史记录中移动到一个团队项目到另一个团队项目的最佳方法是什么.我不关心工作项,报告或SharePoint站点,因为我们要恢复的系统没有使用这些功能.想要转移到另一个团队项目的原因还在于原始实现(从第三方维护的备份恢复)使用我们不希望使用的第三方流程模板往前走.我们希望在迁移完成后开始使用工作项跟踪和报告.

TFS集成平台似乎是一个可能的方案.根据文档,它可用于更改流程模板.但是,如果tf.exe移动语法可能有效,我很好奇吗?就像是:

tf.exe移动$/ProjectA $/ProjectB

我的理解是这个命令的操作很像重命名操作,而在Source Control Explorer中使用"Move"上下文菜单项移动更像是删除和添加操作.此外,tf.exe移动路径是否会将文件夹下的代码与相应的Team Project相关联,假设$/ProjectA是一个项目的根源控制文件夹,而$/ProjectB是另一个项目的根源控制文件夹?关键是如果可能的话,能够保存历史.

任何建议或提示将不胜感激!

编辑 - 可以分支到另一个项目来处理这种情况 - 就像微软在分支指导文档中讨论的那样?我认为这可能是答案,因为历史可能会被分支机构保留下来.但是,我目前无法访问Team Foundation Server 2008实例来测试它.

version-control tfs

57
推荐指数
2
解决办法
4万
查看次数

Team Foundation Server源控制结构

我一直致力于为新一年的Team Foundation Server部署标准化源代码控制结构.我已经开始使用CodePlex上提供的Microsoft Team Foundation Server分支指导文档.

我希望得到一些反馈,并回答我对拟议结构的一些具体问题.在TFS中构建源代码控制时,我了解到有很多"标准"可供选择,因为没有真正的标准.

首先,我将概述和描述决策和用法.

$/                                                
    {Team Project}/                               
        {Subproject}/                             
            Development/                          
                Trunk/                            
                    Source/
                    Tests/
                    Sandcastle/
                    TeamBuildTypes/
                        {Build Name}/
                Branches/
                    {Branch Name}/
                        Source/
                        Tests/
                        Sandcastle/
                        TeamBuildTypes/
                            {Build Name}/

            Integration/
                Source/
                Tests/
                Sandcastle/
                TeamBuildTypes/
                    {Build Name}/
            Production/
                Releases/
                    {Release Version}/
                        Source/
                        Tests/
                        Sandcastle/
                        TeamBuildTypes/
                            {Build Name}/
                Branches/
                    {Branch Name}/
                        Source/
                        Tests/
                        Sandcastle/
                        TeamBuildTypes/
                           {Build Name}/
Run Code Online (Sandbox Code Playgroud)

一般逻辑是团队项目可以包含单个逻辑项目(没有{Subproject}条目的地方)或产品或工具套件形式的多个相关项目.三大容器称为Development,IntegrationProduction.

Development容器的Trunk中,可以为Source文件夹中的产品组成项目,并在文件夹中提供相应的单元测试Tests.大多数次要开发都会发生在主干中,通过Trunk文件夹的兄弟Branches文件夹提供分支,该文件夹充当分支容器.一个或多个解决方案文件将存在于其中Trunk,允许该级别的分支捕获解决方案,源和单元测试.

该 …

version-control tfs team-project

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

创建本地用户帐户c#和.NET 2.0

如何使用.NET 2.0和c#创建本地用户帐户,并且还能够将"密码永不过期"设置为永不.

我尝试使用Process.Start使用"Net.exe"并传递其参数,但似乎"net user"无法将"Password never expires"设置为never.

.net c# account

20
推荐指数
2
解决办法
3万
查看次数

数据库中的名字变体

我试图确定在数据库中查找名字变体的最佳方法.例如,我搜索比尔史密斯.显然,我希望它回归"比尔史密斯",但我还希望它能归还"威廉史密斯",或"比利史密斯",甚至"威利史密斯".我最初的想法是建立一个名字层次结构,但我不知道在哪里可以获得这样的数据,如果它甚至存在的话.

由于用户可以搜索目录,我认为这将是一个关键功能.例如,我上学的人叫我乔,但我现在总是去约瑟夫.因此,我正在寻找使用NYSIIS或Double Metaphone对姓氏进行语音搜索,然后使用此名称heirarchy搜索名字.有没有更好的方法来做到这一点 - 也许某种分级相关性使用全名搜索全名而不是对名字和姓氏进行两部分搜索?我的一部分认为,如果我将名称存储为单个值而不是多个值,它可能会以更多的搜索选项为代价,代价是能够通过名字来解决用户问题.

至于平台,我使用SQL Server 2005 - 但是,我没有问题将一些匹配转移到代码中; 例如,为用户预先播种语音键,因为它们不会改变.

任何想法或指导将不胜感激.无数的搜索几乎空了.谢谢!

编辑:似乎功能上有两个截然不同的阵营,我现在肯定坐在中间.我可以看到全文搜索的论点 - 很可能是缺乏数据规范化,而且是一个多部分方法,它对名称的不同部分使用不同的标准.

问题最终归结为用户意图.比尔/威廉的例子很好,因为它根据使用的形式显示了名字的变异.我认为构建名称层次结构是更准确(和可扩展)的解决方案,但会更加复杂.模糊搜索方法以牺牲准确性为代价更容易实现.这是一个公平的比较吗?

解决方案:在做了一些测试后,我决定采用一种方法,初始注册将采用全名,我会将其分成多个字段(forename,surname,middle,suffix等).由于我确信它不会很完美,我将允许用户编辑"部件",包括添加首页或备用名称.就搜索而言,无论是在数据库表中还是作为同义词库,我都需要使用任一解决方案来维护存在的变体.在这种情况下,两者都没有优势.我认为它将取决于性能,我将不得不实际运行一些基准来确定哪个是最好的.谢谢大家,感谢您的投入!

sql sql-server algorithm database-design data-structures

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

DDD存储库对其他存储库的意识

通常可以接受一个存储库可以访问另一个存储库吗?特别是在这种情况下,我有一个聚合根,它使用另一个聚合根来确定要添加的实体.它属于Item/Item Type关系的行.项类型是聚合根的原因是它们可以在任何单个项的范围之外的管理工具中单独维护.

如果它确实重要,我只是通过存储库工厂实现创建我的存储库实例,所以我不是通过具体的类名直接创建它.聚合器在任何时候都不知道存储库.

编辑 - 更多信息:

具体实现是我们可以将图像附加到文档.我们不仅可以管理文档上的图像,而且还有不同类型的图像(类型被定义为如何实现,例如,与扩展相对).文档聚合是系统中使用这些图像的少数几种其他对象之一,并且它们并非都使用相同的类型.虽然我们在域服务中附加规则,但更具体地说,这是针对构建文档聚合的.在构建聚合时,我们有五个特定类型的图像,以及另外两个类型的图像.我们单独提取它们是因为它们存储在聚合中的单独列表中.验证不是问题,而是限制在组装文档时评估的图像类型.

language-agnostic architecture domain-driven-design ddd-repositories

7
推荐指数
1
解决办法
1338
查看次数

ASP.NET的快速升级

我是一位经验丰富的.NET应用开发人员 我的所有开发经验都是使用WinForms/WPF的桌面应用程序.

我最后一次使用ASP是在1998年.用ASP.NET改变了很多,我意识到了这一点.我想知道什么是使用ASP.NET和WebForms(而不是MVC)快速提升的最佳资源.有什么建议?

asp.net

5
推荐指数
1
解决办法
361
查看次数

检测聚合根内实体的变化

我正在寻找人们可能采取哪些方法来检测作为其聚合一部分的实体的变化。我有一些有用的东西,但我并不为之疯狂。基本上,我的存储库负责确定聚合根的状态是否已更改。让我们假设我有一个被调用的聚合根Book和一个Page在聚合内被调用的实体。ABook包含一个或多个Page实体,存储在一个Pages集合中。

首先,插入与更新场景是通过检查聚合根及其实体以确定键的存在来完成的。如果该键存在,则假定该对象曾一度保存到基础数据源中。这使它成为更新的候选者;但对于实体而言,它并不是确定的。对于聚合根,答案是显而易见的,因为只有一个并且它是入口的奇异点,所以可以假设键的存在将决定操作。在我的情况下,再次保存聚合根本身是一个可以接受的场景,以便我可以捕获修改日期。

为了帮助实体本身实现这种行为,我的EntityBase类包含两个简单的属性:IsUpdated(), IsDeleted()。这两个都默认为false。我不需要知道它是否是新的,因为我可以根据密钥的存在来做出决定,如前所述。实现上的方法(在本例中为 Page)将具有将支持数据集更改IsUpdated()为 true 的每个方法。

因此,例如,Page 有一个方法被调用UpdateSectionName(),该方法更改SectionName属性的后备值,该方法是只读的。这种方法被一致使用,因为它允许在执行该数据设置的方法中使用验证器的逻辑连接点(防止实体进入无效状态)。最终结果是我必须this.IsUpdated() = true;在方法的末尾放置一个。

当聚合根被发送到存储库中Save()(逻辑切换到 anInsert()Update()操作)时,它可以遍历 中的Pages集合Book,查找具有以下三种情况之一的任何页面:

  1. 没有钥匙。Page将插入没有键的A。
  2. IsDeleted = true;删除胜过更新,删除将被提交 - 忽略Page.
  3. IsUpdated = true; 将为页面提交更新。

这样做可以防止我盲目地更新 Pages 集合中的所有内容,例如,如果 Book 中有数百个 Page 实体,这可能会令人生畏。我一直在考虑检索这本书的副本,并进行比较并仅提交检测到的更改(根据存在和/或比较进行插入、更新和删除),但这似乎是一种非常健谈的方法.

主要缺点是开发人员必须记住在实体中的每个方法中设置 IsUpdated。忘记一个,它将无法检测到该值的变化。我曾考虑过某种自定义后备存储的想法,它可以透明地时间戳更改,这反过来可以使IsUpdated存储库可以用来聚合更新的只读属性。

存储库正在使用一个工作单元模式实现,它的操作基于将聚合根添加到它时生成的时间戳。由于可能有多个实体排队等待操作,因此在执行实体所属的聚合根操作后立即汇总并执行实体操作。我可以看到更进一步并创建另一个工作单元来处理实体操作并将它们基于实体中使用的某种事件跟踪(这就是我假设市场上的某些 ORM 产品完成类似级别的功能)。

不过,在我继续朝着这个方向前进之前,我很想听听有关这方面的想法/建议/经验。

编辑:一些可能有助于了解的其他信息:

  1. 我正在使用的当前语言是 …

c# architecture persistence ddd-repositories

5
推荐指数
1
解决办法
1476
查看次数

用于错误处理和丢失图像的HttpModule

我有一个HttpModule,我把它从一些不同的在线源码拼凑在一起,形成了(大部分)与传统的ASP.NET应用程序以及ASP.NET MVC应用程序一起工作的东西.其中最大的部分来自CodePlex上的kigg项目.我的问题是处理由于图像丢失导致的404错误.在下面的代码中,我必须通过HttpContext的Request对象中的AcceptedTypes集合显式查找请求的图像.如果我没有进行此检查,即使丢失的图像也会导致重定向到Web.config中我的部分中定义的404页面.

这种方法的问题是(除了它闻到的事实)是这只是图像.我基本上必须对可以想象的每种内容类型执行此操作,我不希望发生此重定向行为.

看看下面的代码,是否有人可以推荐某种重构,这可能会使非页面请求变得更宽松?我仍然希望它们在IIS日志中(所以我可能不得不删除ClearError()调用),但我不认为破坏的图像会影响用户体验,直到将它们重定向到错误页面.

代码如下:

/// <summary>
/// Provides a standardized mechanism for handling exceptions within a web application.
/// </summary>
public class ErrorHandlerModule : IHttpModule
{
    #region Public Methods

    /// <summary>
    /// Disposes of the resources (other than memory) used by the module that implements 
    /// <see cref="T:System.Web.IHttpModule"/>.
    /// </summary>
    public void Dispose()
    {
    }

    /// <summary>
    /// Initializes a module and prepares it to handle requests.
    /// </summary>
    /// <param name="context">
    /// An <see cref="T:System.Web.HttpApplication"/> that provides access …
Run Code Online (Sandbox Code Playgroud)

asp.net error-handling asp.net-mvc httpmodule http-status-code-404

5
推荐指数
1
解决办法
6270
查看次数

单元测试中的C#扩展方法奇数

使用Visual Studio 2008/C#/ VS单元测试.

我有一个非常简单的扩展方法,它会告诉我一个对象是否属于特定类型:

public static bool IsTypeOf<T, O>(this T item, O other)
{
    if (!(item.GetType() is O))
        return false;
    else
        return true;
}
Run Code Online (Sandbox Code Playgroud)

它会被称为:

Hashtable myHash = new Hashtable();
bool out = myHash.IsTypeOf(typeof(Hashtable));
Run Code Online (Sandbox Code Playgroud)

当我在调试模式下运行代码或调试我的单元测试时,该方法可以正常工作.但是,当我在上下文中运行所有单元测试时,我神秘地为此方法获取了MissingMethodException.奇怪的是,同一类中的另一种扩展方法没有问题.

我倾向于问题不是扩展方法本身.我试过删除临时文件,关闭/重新打开/清理/重建解决方案等等.到目前为止,没有任何工作.

有没有人遇到过这个?

编辑:这是代码的简化示例.基本上,它是我能够创建的最小的可重现的例子,没有周围代码的包袱.这个单独的方法在进入单元测试时也会单独抛出MissingMethodException,如上所述.有问题的代码没有完成手头的任务,就像Jon提到的那样,它更像是我目前关注的异常来源.

解决方案:我尝试了许多不同的东西,同意Marc关于它是参考问题的思路.删除引用,清理/重建,重新启动Visual Studio不起作用.最终,我最终在我的硬盘上搜索已编译的DLL并将其从任何没有意义的地方删除.删除除TestResults文件夹中的实例以外的所有实例后,我能够成功重建并重新运行单元测试.

至于方法的内容,我在单元测试中发现了这个问题,并且从未能够使这个概念起作用.由于O是RunTimeType,我似乎没有太多访问权限,并且曾尝试使用IsAssignableFrom()来正确返回函数.此时,此功能已从我的验证方法中删除,以便在其他时间重新访问.但是,在删除之前,我仍然得到了许多其他方法开始这篇文章的原始问题.

解决后:实际的方法并不像我想象的那样复杂.这是实际的工作方法:

public static void IsTypeOf<T>(this T item, Type type)
{
    if (!(type.IsAssignableFrom(item.GetType())))
        throw new ArgumentException("Invalid object type");
}
Run Code Online (Sandbox Code Playgroud)

和单元测试来验证它:

[TestMethod]
public void IsTypeOfTest()
{
    Hashtable myTable = new Hashtable();
    myTable.IsTypeOf(typeof(Hashtable));

    try
    {
        myTable.IsTypeOf(typeof(System.String));
        Assert.Fail("Type comparison should fail.");
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# extension-methods unit-testing exception

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

将%40返回到@符号

dev%40bionic%2Dcomms%2Eco%2Euk 
Run Code Online (Sandbox Code Playgroud)

我想把上面的内容改为可读文本.谁能告诉我怎么样?谢谢

编辑原谅我的疏忽,PHP是首选语言!

html php

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