Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio VisualStudio分支_Visual Studio_Tfs_Azure - Fatal编程技术网

Visual studio VisualStudio分支

Visual studio VisualStudio分支,visual-studio,tfs,azure,Visual Studio,Tfs,Azure,我们公司正在开发一个普通的ASP.Net应用程序。 现在,我们需要将应用程序转移到将在WindowsAzure下运行的云应用程序。 因此,我们将有两个版本的应用程序 IIS上的正常安装 在WindowsAzure下运行 我的问题是如何管理TFS分支机构。我应该为每个版本创建两个TFS分支,并对每个分支进行两次更改,还是有其他方法来处理此问题 提前感谢您的帮助。 < P>如果分支之间的差异很小,请考虑使用条件编译来切换不同的平台——这消除了分支的需求,并且当您处理分支的代码的部分时,很容易看到。类

我们公司正在开发一个普通的ASP.Net应用程序。 现在,我们需要将应用程序转移到将在WindowsAzure下运行的云应用程序。 因此,我们将有两个版本的应用程序

IIS上的正常安装 在WindowsAzure下运行 我的问题是如何管理TFS分支机构。我应该为每个版本创建两个TFS分支,并对每个分支进行两次更改,还是有其他方法来处理此问题


提前感谢您的帮助。

< P>如果分支之间的差异很小,请考虑使用条件编译来切换不同的平台——这消除了分支的需求,并且当您处理分支的代码的部分时,很容易看到。类似地,您可以为每个平台使用带有具体实现的抽象类,这是一种比在大量小代码块上使用#if更干净的方法

如果分支,那么我将使用两种方法中的一种:如果差异是孤立的,可能考虑重构代码来将差异收集到代码库的一小部分中,并只将该位分支。或者插入一个根级别的文件夹并在那里分支,这样所有的东西都被分支了


当您在一个分支中进行更改时,您必须将这些更改合并到另一个分支,这就是为什么我会尽量减少分支的范围,以减少合并的需要。

如果分支之间的差异很小,考虑使用条件编译在不同的平台之间切换-这消除了分支的需要,并且当您正在处理分支的代码的部分时,很容易看到。类似地,您可以为每个平台使用带有具体实现的抽象类,这是一种比在大量小代码块上使用#if更干净的方法

如果分支,那么我将使用两种方法中的一种:如果差异是孤立的,可能考虑重构代码来将差异收集到代码库的一小部分中,并只将该位分支。或者插入一个根级别的文件夹并在那里分支,这样所有的东西都被分支了


当您在一个分支中进行更改时,您必须将这些更改合并到另一个分支,这就是为什么我要尽量减少分支的范围,以尽量减少合并的需要。

我们做了一个这样的项目,其中两个版本的应用程序(常规IIS部署和Azure)必须并行维护。尽管这两个版本之间有很大的差异,但我们使用了一个代码库。这个结果很好,我认为如果我们决定使用分支,我们会有更多的问题

以下几点提示可使使用单一代码库更容易跨旧版和Azure部署:

1:使用动态检查很容易实现代码中行为的差异

if (RoleEnvironment.IsAvailable)  
{  
   // Azure specific code  
}
else 
{
    // normal IIS code
}
UI中的任何差异都可以通过隐藏/取消隐藏页面中的元素来实现

2:为a)IIS生产部署、b)IIS调试、c)Azure生产和d)DevFabric创建单独的项目和解决方案配置。使用web.config转换可以绕过web.config中的任何差异


3:在DevFabric下调试时,使用web.config的基本版本(即非转换版本)。我发现更容易使您的基本web.config不经修改地用于DevFabric环境(即,您将为DevFabric创建的转换为空)。这使得在DevFabric下调试变得容易。其副作用是,它使在Callipso下调试变得不可能。作为Callipso问题的解决方法,在您的开发设备上安装普通IIS,并使用WebDeploy将使用IIS调试配置构建的包发布到本地IIS实例。

我们执行了一个类似这样的项目,其中两个版本的应用程序(常规IIS部署和Azure)必须并行维护。尽管这两个版本之间有很大的差异,但我们使用了一个代码库。这个结果很好,我认为如果我们决定使用分支,我们会有更多的问题

以下几点提示可使使用单一代码库更容易跨旧版和Azure部署:

1:使用动态检查很容易实现代码中行为的差异

if (RoleEnvironment.IsAvailable)  
{  
   // Azure specific code  
}
else 
{
    // normal IIS code
}
UI中的任何差异都可以通过隐藏/取消隐藏页面中的元素来实现

2:为a)IIS生产部署、b)IIS调试、c)Azure生产和d)DevFabric创建单独的项目和解决方案配置。使用web.config转换可以绕过web.config中的任何差异


3:在DevFabric下调试时,使用web.config的基本版本(即非转换版本)。我发现更容易使您的基本web.config不经修改地用于DevFabric环境(即,您将为DevFabric创建的转换为空)。这使得在DevFabric下调试变得容易。其副作用是,它使在Callipso下调试变得不可能。作为Callipso问题的解决方法,在您的开发设备上安装普通IIS,并使用WebDeploy将使用IIS调试配置构建的包发布到本地IIS实例。

+1:与我们所采用的方法完全相同,而且效果很好。我们还在自己的类中包装了配置,以便我们可以对某些设置使用
web.config
app.settings
,对其他设置使用Azure配置。我认为这是我们将遵循的方法。+1:与我们遵循的方法完全相同,并且效果很好。我们还将配置包装在自己的类中,这样我们就可以对某些设置使用
web.config
app.settings
,对其他设置使用Azure配置。我认为这是我们将遵循的方法。