TFS(Team Foundation Server)介绍



关于MSDN上TFS介绍请点击:http://msdn.microsoft.com/zh-cn/library/ms253108.aspx程序员

在本文的两个部分中,我将介绍Team Foundation Server的一些核心特征,重点介绍在本产品的平常应用中是如何将这些特性结合在一块儿使用的。数据库

做为一名软件开发人员,在个人职业生涯中,我常常会用到支持软件开发过程的大量开发工具,如版本控制工具、漏洞跟踪包、生成脚本语言、单元测试框架和需求分析工具等等。在.NET平台上,大量的支持工具可以很好地独立工做,可是,为了使得各类工具之间都够互相协做,仍是常常须要一些手动工做。windows

随着Visual Studio产品线中Team Foundation Server组件的发布,微软使得开发团队在僵化的软件工程实践应用中取得了巨大进步。这并非由于该产品包含的各类新增特性必定是最好的,关键因素是它的集成性。浏览器

Team Foundation Server起步安全

Team Foundation Server(TFS)是这样一种服务器产品,它须要部署到软件开发环境中,这样开发人员就可使用它提供的各类服务。由于TFS是设计用于大规模团队,于是有两种拓扑结构供选择:双服务器和单服务器。服务器

在单服务器部署中,TFS被安装在Windous 2003 server上,且该机器上已安装了SQL Server 2005数据库服务器、Web服务器IIS以及windows SharePoint Services。这种类型的安装能够知足大量用户需求,而且适用于大部分条件。框架

双服务器部署将SQL Server 2005 的数据库引擎和分析服务组件分开安装在不一样的机器上,这样就能够实现可扩展性(经过增大用于大量用户注册操做的空间以及将处理负载的不一样数据仓库安装在不一样的机器上实现,这种机器最大可达64位。)编辑器

安装了TFS服务器后,客户端能够经过安装Team Explorer来访问服务器。Team Explorer是一组组件,它包括简单版本的Visual Studio 2005(若是是在已经安装了Visual Studio 2005的机器上就仅仅是再添加更多功能)和大量用于微软的Excel和Project的插件,利用Excel和project能够访问存储在Team Foundation Server数据库中的数据。工具

Team Explorer可用于访问Team Foundation Server的如下特性:性能

  • 过程引导
  • 工做项跟踪
  • 版本控制
  • 自动生成
  • 报告

建立一个团队项目

在开发团队可使用Team Foundation Server以前,必须先建立一个团队项目,团队项目表明了一个全部团队活动都在这里发生的管理单元。为了建立一个团队项目,Team Foundation Server管理员须要打开Visual Studio 2005和 Team Explorer工具窗口(从视图菜单)。当打开Team Explorer 窗口后,就能够创建一个到服务器的链接。

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

右键单击树状视图中的服务器节点,TFS管理员就能够选择“新建团队项目”。事实上,这个选项一般是隐藏的,可见须要新建一个团队项目的状况是不多的。绝大部分状况下,一个软件开发团队在一个大型软件的生命周期中仅有一个团队项目。

Team Foundation Server原理与入门:第一部分

建立团队项目时,开发小组须要作的第一件事情是决定使用那个开发模型。

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

选择开发模型

Team Foundation Server容许开发小组选择他们想要使用的任何特定软件开发方法。下面的列表中提供了两种开发模型:

  • 敏捷模型驱动软件开发
  • 能力成熟度集成模型软件开发

每一个开发模型都有一组特有的定制特性,包括定义工做项(要作的事情、要肯定的事情、需求等等),过程管理和报告。下表显示了两个默认的开发模型中不一样工做项的分解:

敏捷模型驱动软件开发

能力成熟度集成模型软件开发

 

漏洞

服务要求的质量

风险

场景

任务

漏洞

改变请求

问题

需求

回顾

风险

任务

在这种状况下即便工做项的数目和名称存在差别,也应该指明使用这两种开发模型通用方法,而不是开发小组来推测他们该如何使用这些工做项类型,开发模型能够包含一些可选的过程管理页面。

Team Foundation Server原理与入门:第一部分

 

若是对话框中的模型不适合你的具体要求,能够订制它们以知足你的要求。事实上,已经有大量能够得到的第三方开发模型,如Scrum and process MeNtOR。 

访问工做项存储器

建立了团队项目后,开发小组须要作的第一件事是分解已经建立的初始工做项集。这些工做项帮助开发人员完成一系列可使得软件项目成功开始的活动,而且依据不一样的开发模型选择不一样的工做项。经过展开团队项目节点,就能够看到工做项文件夹,继续展开而后打开查询文件夹可看到所有或部分工做项。

Team Foundation Server原理与入门:第一部分

书写定制得工做项查询

最后须要书写一个新的工做项查询列表。新定义的查询能够放在“团队查询”和“个人查询”这两个文件夹的任何一个。团队查询是一个可被项目小组中的全部开发人员访问的全局可访问容器,个人查询是一个由每一个程序开发员全部的私有查询集。

我常用的一个有用的查询是Recycle Bin query,这个查询可用于打开最近关闭又须要从新打开的工做项(偶然关闭工做项的状况时有发生)。第一步是从工做项节点的背景菜单中选择“添加查询”。

Team Foundation Server原理与入门:第一部分

在查询编辑器打开后,简单的用户接口就能够基于某些简单的表达式从工做项列表中过滤出须要的项目。在上面的状况中,查询设置为返回当前状态为关闭的团队项目中的全部工做项。 

应用Team Foundation Server的版本控制

访问了工做项,就能够应用Team Foundation Server中的版本控制。像TFS中的其它特征同样,版本控制功能位于SQL Server 2005之上,用于提供良好的性能和可扩展性(实际上,宿主在TFS中的版本控制存储器的大小估计有千兆字节。开发小组可能遇到的第一个与版本控制相关的工做项是迁移已经存在的源代码,这个工做项提供了在迁移源代码是须要作什么的详细视图。

Team Foundation Server原理与入门:第一部分

 

配置一个工做区

在程序员将文件添加到版本控制存储器以前,须要将版本控制存储器的逻辑结构映射到本地机器上的文件系统。Team Foundation Server 引入了工做区的概念。工做区是物理位置和文件系统间的一组映射,一个文件系统与一个特殊用户和计算机组合相匹配。在文件上进行工做的程序员,他们是逻辑的进出工做区。为了创建一个工做区,程序员须要双击Team Explorer中的源码控制图标,到工做区下拉菜单。

Team Foundation Server原理与入门:第一部分

 

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

我发现将整个源代码树的根映射到本地驱动器上的一个具体位置并将其做为惟一映射是最简单的方法。我本身的方法是在个人数据驱动器的根目录上建立一个“沙盒”目录,在它的下级有一个子目录,将其命名为我链接到的TFS服务器的名字。(我链接到了多个TFS服务器,所以必定要注意避免混淆)。

创建了映射以后,浏览源代码控制浏览器将会列出源代码树上逻辑位置的本地路径。至此你就能够添加源代码到这个容器中。

程序员面对的一个局限是他们不能将文件添加到版本控制存储器的根中($/),且全部以及文件夹都直接和某个特定团队项目相关。这里面的逻辑是,一个Team Foundation Server可用于大量项目,每一个项目应该在它们本身的区域内工做。 


 

添加源代码到Team Foundation Server

在Team Foundation Server中安排源代码有无数的方式,你为何选用这种而不用另外一种,详细的缘由说明超出本文的范围。下面选择的方式仅是一个用于演示例子。特别的地方是,我选择添加了三个字文件夹:Trunk, Branches 和Releases,以下图。

Team Foundation Server原理与入门:第一部分

文件夹添加到版本控制系统后,其余的程序员并不会当即看到,他们必须像文件同样进行注册。在本例中,在注册前我将添加一组解决方案和项目文件到这个容器中,而后一块儿注册。

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

 

除了加强了性能和扩展性外,TFS将其版本控制系统安装在SQL Server 2005上,这意味着,进行原子提交和注册的方法是可能的。也就是说,要么所有注册成功,要么所有失败。注册能够在源代码控制浏览器或解决方案浏览器上执行(或者在强制改变工具窗口中进行)

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

版本控制系统和工做项存储器在注册时集成在一块儿。当注册时,能够将其与一个或多个工做项关联。例如,由于这是刚引入源代码,因此我能够浏览注册对话框中的工做项视图,选择工做项3387和它关联。注意当关联工做项时不管默认的选择如何都要将注册行为设定为 “解决”,这样作的目的是防止任务关闭工做项,所以较早创建十分有用的Recycle Bin 查询。

Team Foundation Server原理与入门:第一部分

 

创建一个注册,就叫作一个改变集,一个源代码容器不过是一系列不断彼此堆积起来的改变集。由于在数据库中改变集是一个能够区分的实体,所以能够将数据和它关联在一块儿,因此上面创建的改变集和工做项3387的关系能够在改变集中浏览或者在工做项中浏览。下面的屏幕截图显示了连到工做项的改变集。

Team Foundation Server原理与入门:第一部分

和Team Foundation Server中的版本控制相关的一个新概念是搁置集。搁置集的思想是程序员在过周末休息时,能够将在工做日作的改变放在某个安全的地方。创建一个搁置集至关简单,首先,程序员在解决方案浏览器中的背景菜单中选择“搁置必要的改变”,而后出现下面的对话框。

Team Foundation Server原理与入门:第一部分

程序员能够给搁置集一个名字,以便之后能够查找和恢复它,和注册对话框同样,搁置集也能够添加评论和关联工做项。搁置集仅包含修改过的文件,由于改变集版本是从版本控制存储器引出的,因此建立他们的至关简单。

为了恢复搁置集,能够选择背景菜单中的“解冻必要改变”选项,程序员能够查找由他们或其余程序员创建的搁置集。

Team Foundation Server原理与入门:第一部分

Team Foundation Server原理与入门:第一部分

事实上搁置集能够共享,这意味着它们能够很好的执行代码预览,加强单注册点策略,这对一个特别项目在封装时可能很十分有用。

在本文的下一部分,我将详细介绍搁置集,TFS中完善的分支支持,TFS是如何支持自动生成的并介绍一下报告功能提供的功能。

 

功能介绍一:微软最新配置管理工具

在当今的环境下,公司业务愈来愈复杂,软件开发复杂度也愈来愈高,此时发如今众多项目中时有这样的现象发生:文档散落在不一样地方,代码缺失,代码和文档不一致,同一系统多个版本,各项目采用不一样配置管理工具、无统一的规范,随着时间推移咱们的项目管理风险不断上升、项目实施难度不断增长、项目实施质量难以掌控。如何可以快速地构造出高质量的应用系统来知足不断变化的业务增加所带来的需求?咱们急须要创建一套完善的配置管理体系,来提升生产效率,提升产品质量,最终实现企业效益最大化。现阶段配置管理面临的挑战是:
统一的规范
更好的组织性,更高的开发管理水平
保护投资 :企业级的过程历史数据、经验、数字化资产
创建标准的开发环境
实现并行开发,缩短产品面市时间
自动化管理
为创造性的工做释放更多的时间
员工更加专业
    而经过微软的Team Foundation Server(TFS)实施软件配置管理能够有效解决这些问题,例如可以集中管理各项目的文档、代码,对项目中的文档、代码等的变化进行有效管理,可以方便地重现某个文件的历史版本,可以从新编译某个历史版本,使文档维护工做变得容易、可以使多团队并行开发成为现实,同时实行统一的配置管理流程可提升项目组间人员流动时的工做效率,也是对工做成果的一种有效保护。

功能介绍二:外包管理工具

随着信息技术的飞速发展,软件已进入了社会生活的方方面面,愈来愈多的企业将他们的业务系统构建在以软件为核心的系统之上,企业经过它们来为本身的客户提供快速优质的服务。正由于软件已经成为业务的基础平台,企业的核心竞争力在很大程度上取决于软件系统的质量,要求软件系统可以迅速适应业务需求的变化,同时保证软件系统的高性能、高可靠性和可维护性。然而对于大部分企业而言,软件开发并非他们所擅长的业务,加上软件系统的复杂性及很高的质量要求,大部分企业都选择将软件开发项目外包出去,由专业的软件开发(供应)商来负责软件的开发。可是软件外包并不意味着企业对于软件的开发过程放手无论,企业应该创建与供应商之间的协议,而且监控供应商的开发过程,并对供应商提交的最终系统进行全面的验收,从而完全保证供应商可以按时交付一个高质量的软件系统。
软件项目的成败在很大程度上取决于对其开发过程的控制,这包括对质量、源代码、进度、资金、人员等的控制。要进行有效的过程控制,仅仅依靠人的力量是不够的,还须要有相应的管理工具支持以实现高效的“软件生命周期管理”。然而因为历史和现实的缘由,软件生命周期管理流程和工具在我国软件行业中的应用并不普及,因为缺少必要的管理流程和工具,不少企业在软件外包项目中都会或多或少的遇到以下的问题:l 缺乏统一的开发管理流程指导,没法保证项目的质量和成功率
l  开发出来的系统不能知足用户或者业务需求
l 开发过程不透明,很难监控开发的进展状况
l 不能及时了解项目的 进度,常常致使项目延期
l  没法有效的控制项目的变动,增长了项目的风险
l 没法有效实现多地的协同开发 ,增长外包开发成本(场地,差旅费)
l  软件复用率低下,下降了企业的投资回报率
l  没法开展规范化的测试工做 ,不少问题要到验收阶段才会暴露出来
l  缺少软件开发历史数据的积累, 没法准确估算项目成本
l  缺少必要的版本管理工具,系统在构建和发布时产生问题
l  缺少相应的文档,增长了维护和升级的难度
 
这些问题致使不少企业对外包项目不能进行有效的控制或是在开发中形成过多的资源浪费(各个系统间太多的重复开发),以及开发出来的系统不能响应市场快速的变化。这些问题直接下降了发包方企业的生产力,增长了企业运营成本。要从根本上切实提升软件外包开发的管理水平,必须从多方面入手,引入先进的开发流程,借鉴业界的最佳实践,以及构筑高效的系统开发管理平台是必然的选择。
为了解决上述的外包开发管理中的常见问题,咱们基于微软最新发布的软件生命周期工具,设计了微软的软件外包开发管理解决方案,可以对多平台和地理分布的开发团队提供必要的开发流程指导,实现高效的项目管理,促进项目团队的沟通,并提供了紧密集成的变动和配置管理系统,为企业创建了先进的软件协同开发管理平台。
相关文章
相关标签/搜索