使用visual studio.net和visual sourcesafetm进行团队开发_第1页
使用visual studio.net和visual sourcesafetm进行团队开发_第2页
使用visual studio.net和visual sourcesafetm进行团队开发_第3页
使用visual studio.net和visual sourcesafetm进行团队开发_第4页
使用visual studio.net和visual sourcesafetm进行团队开发_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用VISUALSTUDIONET和VISUALSOURCESAFETM进行团队开发本文档中所包含的信息,包括URL和其它互联网站点参考资料,随时都会在不作知会的情况下发生改变。除非额外的说明,此处用以举例的公司、机构、产品、域名、EMAIL地址、商标、人物、地点和事件纯属虚构,与任意一个实际存在的公司、机构、产品、域名、EMAIL地址、商标、人物、地点或事件没有任何联系,不适于作任何推论或联想。遵守所有有关的著作权法规是使用者应承担的责任。在不限制著作权所规定的权利的前提下,如果没有微软公司明确的书面许可,本文档的任何部分不允许复制、存储或者引入到任一检索系统中,或者以任何形式或方法(包括电子的、机械的、影印的、录音带及其它途径)进行传播,而不管出于何种目的。微软、MSDOS、WINDOWS、VISUALC、VISUALBASIC、VISUALC、VISUALSTUDIO和WIN32是微软公司在美国及其它国家的贸易商标或者注册商标。2002微软公司版权所有。版本号10此处提到的其它产品和公司名可能是其各自所有者的商标。目录目录2绪言1谁需要阅读本手册1您需要知道什么1术语2系统2内部系统和外部系统的分界线2解决方案2项目3第一章介绍团队环境4团队开发服务器和工作站5VSS服务器5构建服务器5开发工作站5数据库服务器6WEB服务器6第二章ASPNET网络应用软件开发模型7隔离模型7半隔离模型7不隔离模型7使用隔离开发模型8避免采用半隔离和不隔离开发模型8更多信息9第三章构造解决方案和项目10VISUALSTUDIONET解决方案和项目10VISUALSTUDIONET项目10VISUALSTUDIONET解决方案10解决方案和编译连接依存关系11服从源码控制的文件11不服从源码控制的文件12始终使用VISUALSTUDIONET作源码控制操作12划分解决方案和项目12尽可能使用单解决方案模型13对于较大的系统,考虑使用分块单解决方案模型14仅在绝对必要的情况下使用多解决方案模型15考虑将项目组合成解决方案16在解决方案和项目中使用一个统一的文件夹结构17定义一个通用的根文件夹17在解决方案和项目中采用“父子”文件夹结构17如何创建一个新的ASPNET网络项目17如何将一个网络应用软件分割成多个项目18如何创建一个新的非网络项目19仔细考虑命名规则19在项目和组件中使用通用的名称19使用一个通用的根域名空间名称20在VSS和本地文件夹中使用通用的名称20第四章管理依存关系21引用组件21使用项目引用21仅在必要的时候使用文件引用22在项目和文件引用中使用COPYLOCALTRUE22在单解决方案系统和分块单解决方案系统中使用文件引用23在多解决方案系统中使用文件引用23考虑使用隔离开发方案24使用虚拟驱动器盘符以获得更大的灵活性24总是使用文件引用对发布编译连接进行引用24使用引用路径以协助隔离开发和调试25如何为特定项目设置引用路径26在项目中包含外部系统组件26考虑在VSS中共享外部系统组件26使用ADDREFERENCE对话框中的NET标签26引用网络服务27在开发中确定网络服务的版本27始终使用动态的统一资源定位器(URL)27如何使用动态URL和用户配置文件28更新一个网络服务引用29引用数据库29如何为数据库连接串使用用户配置文件29数据库开发30中央数据库服务器30本地服务器30使用数据库脚本对变化进行管理30考虑VISUALSTUDIONET项目31引用COM对象31始终生成兼容的INTEROP组件31尽可能使用主INTEROP组件32如果没有主INTEROP组件,请使用TLBIMP32在本地注册COM类32调用服务组件32第五章创建过程34处理依存关系34控制集合版本34使用自动增加的版本号字35使用静态的版本号35考虑集中集合的版本号36构架服务器文件夹结构36考虑维护原有的结构36不改变创建的输出路径38创建脚本38生成创建版本号39标识源文件40析取最新的源文件40创建一个最新的文件夹40用DEVENVEXE创建解决方案40将输出拷贝到最新的文件夹中41在最新的文件夹下规划集合输出41拷贝最新的文件夹来创建一个版本文件夹41将最新文件夹改名为LATESTBROKEN42解决一个失败的创建过程42重新创建多重解决系统42EMAIL发送创建结果42创建过程打包42创建创建脚本账号43更多信息43第六章使用VISUALSOURCESAFE工作44创建一个新的解决方案和工程45怎样向VSS中添加一个新的解决方案46第一次在现有的解决方案的基础上运行47接着在现有的解决方案和工程的基础上工作48将一个新的工程添加到一个现有的解决方案中去48加载源文件到VSS中49只加载那些待建的文件49文件与文件夹的重命名和删除49对文件进行重命名49重命名一个工程50整理旧工程的文件51从VSS中删除一个文件51从VSS中删除一个工程52从VSS中删除一个解决方案52多重调出53调出解决方案文件53更多信息53创建一个开发域54没有信任关系的独立的域55有信任关系的独立域55部分的合作域55VSS服务器56构架服务器56开发工作台57VISUALSTUDIOENTERPRISETEMPLATES58备份服务器58SQL服务器59WEB服务器59安装和控制VSS59在服务器上创建一个共享数据库59用只读访问的模式共享VSS安装文件夹60至少为NETDEVELOPMENT工程创建一个新的数据库60考虑创建额外的VSS数据库60共享数据库文件夹并创建适当的许可60考虑使用VSS工程安全措施61为开发者和创建脚本添加用户账号61限制访问管理工具61发现并修补数据错误61更多信息62考虑安装FAULTTOLERANTSTORAGE系统62更多信息62在客户端安装VSS62考虑使用VSS影子目录62更多信息63BUILDITVISUALSTUDIONET的一个自动编译连接工具64下载和安装BUILDIT65对安装进行测试65用户指导67维护编译连接序号67编译连接解决方案67检查编译连接报告68重新编译连接一个解决方案68归档编译连接69用电子邮件传送编译连接结果69版本化组件69配置和操作70部署BUILDIT70配置BUILDIT71保护BUILDIT73解决BUILDIT故障73已知问题73设计和实现74问题描述74设计目标74解决方案描述75改进与提高79类引用80BUILDINITIALIZER80BUILDITSECTIONHANDLER80BUILDMANAGER81SOURCESAFEHELPER82BUILDITRESOURCEMANAGER83BUILDITCOMMANDLINEARGS83常见问题84我是否能够修改BUILDIT的源代码84我是否需要在运行BUILDIT之前安装VISUALSTUDIO84附录小结84关于作者84关于SAPIENT84合作者85反馈85合作者85其它资源85绪言本手册提供指导和建议,使您能够成功地建立一个团队开发环境并且工作于其中。如果您正要开始一个NET团队开发项目,首先需要了解在一个团队开发环境中如何完成开发过程。需要知道如何设置并且使用MICROSOFTVISUALSTUDIONET集成开发环境(IDE)提供的团队开发特性,并且还需要掌握相关开发技巧(例如如何正确地设置组件引用),开发团队成员们将遵循这些技巧以保证团队工作能顺利开展。本手册分成以下几个章节第一章,“介绍团队环境”。本章节提供了对团队环境的一个整体概述并且介绍了关键的编译连接模块和过程。阅读本章节能够大致了解本手册的范围,并且理解本文档所基于的团队开发模型。第二章,“ASPNET网络应用软件开发模型”。本章节描述了在团队开发环境中构建网络应用软件应该采取的方法。第三章,“构造解决方案和项目”。本章节解释了应该如何组织和构造VISUALSTUDIONET解决方案和项目,并且在“单解决方案”开发模型和“多解决方案”开发模型之间作出权衡。它同时也对您用于存储本地项目文件以及MICROSOFTVISUALSOURCESAFEVSS下的文件夹结构作出建议。第四章,“管理依存关系”。本章节解释了如何处理组件引用、网络引用、数据库引用和COM组件引用。第五章,“创建过程”。本章节描述了创建过程、创建服务器所起的作用以及用于生成系统编译连接结果的自动编译连接脚本。第六章,“使用VISUALSOURCESAFE”。本章节提供了一系列步骤,引领您完成一些通用的开发任务,例如如何向VISUALSOURCESAFE中添加解决方案和项目,如何从VSS中获取解决方案,以及日常操作中如何登记和调出文件等。本章节使您快速掌握一些基本任务。第七章,“建立和维护团队环境”。本章节描述了团队环境的基础架构以及环境中工作站和服务器所要求的硬件和软件配置。它同时也提供了如何创建和维护一个VSS数据库的指导。如果希望能从本手册中得到尽可能多的信息,请按顺序通读本手册的所有章节。谁需要阅读本手册本手册为开发团队的领导者、普通开发人员、测试团队成员和系统管理员提供指导。如果您计划或者是正在开发一个基于团队的NET开发项目,请阅读本手册。您需要知道什么要想使用本手册去建立一个适用于NET的团队开发环境和开发过程,需要有一些使用VISUALSTUDIONET进行开发的经验。本手册假设您曾经创建NET组件和网络服务,或者至少是熟悉它们。您也应当知道在基于团队的软件开发项目中一直存在的普遍问题和当前面临的挑战。如果有使用源代码控制系统尤其是VSS进行开发的经验那就更好了。注意本手册主要说明作为源代码控制系统的VSS60C版本(此版本封装在VISUALSTUDIONET中)的使用。然而,本手册的多数内容和其中所讨论的许多过程同样也适用于其它改动过的管理系统,它们中的许多还可以直接集成到VISUALSTUDIONET集成开发环境(IDE)当中。术语“系统”、“解决方案”和“项目”这些词汇将在本手册中广泛使用,可能造成沉重的阅读负担。以下部分说明了在本手册中使用这些词汇的上下文。系统词汇“系统”指的是您正在开发的整个应用软件。系统最终由发布到一个产品环境中的所有不同组合的组件组成。内部系统和外部系统的分界线本手册同时也引入了内部系统和外部系统分界线的概念。当开始考虑系统中的哪些组件将在中央编译连接过程中进行编译连接,哪些组件则落到了编译连接过程的范围之外,而仅仅被当作外部依存关系加以引用时,这种区分变得非常重要。以下文字对系统分界线作出了描述内部系统组件被作为系统编译连接过程的一部分进行编译连接。外部系统组件是其它所有组件,包括第三方组件和NET框架组件。图1说明了内部系统和外部系统分界线的概念。图1内部系统和外部系统分界线解决方案如果您是VISUALSTUDIONET的入门者,“解决方案”对您来说也是新的词汇。一个解决方案本质上代表了正在从事的所有工作。VISUALSTUDIONET使用解决方案作为单个项目的容纳体这些产生了您的系统组件(NET组件)。解决方案文件维护了项目的依存关系信息,主要用于控制编译连接过程。解决方案在第三章“构造解决方案和项目”的“VISUALSTUDIONET解决方案”中有更进一步讨论。项目在本手册的上下文中,有三种类型的项目一般开发项目。词汇“项目”在它最宽松的语义中指的是开发团队当前所做的工作。VISUALSTUDIONET项目。项目文件被VISUALSTUDIONET用作与个体组件相关的配置设置项的容纳体。这在第三章“构造解决方案和项目”的“VISUALSTUDIONET项目”中有更进一步讨论。VISUALSOURCESAFE项目。VSS数据库中的一个项目仅仅是文件(通常是逻辑相关)的集合体。一个VSS项目类似于一个附加了版本控制支持的操作系统文件夹。第一章介绍团队环境许多元素、过程和任务组合在一起,使得基于团队的软件开发项目变为可能。本文档主要说明了两个核心过程开发过程编译连接过程虽然这是两个独立的过程,但是它们共享许多东西,因此,开发在两种场合下都适用工作惯例和项目结构是非常必要的。团队开发环境如图11所示。图的阴影部分说明了本文档所定位的区域。请仔细研读这个图表,因为它定义了本文档的剩余章节的工作模型。图11团队开发环境团队开发服务器和工作站图11中关键服务器和工作站的任务和职责将在下面的部分中加以说明。其它基本服务器,例如备份服务器,出于简洁的目的在图中不作标示。如果想得到关于团队环境的基础架构的详细信息,包括硬件和软件需求,请参阅第七章“建立和维护团队环境”。VSS服务器这是一个中心服务器,驻留了一个或多个用于为项目源文件提供版本控制访问的微软VISUALSOURCESAFEVSS数据库。作为一个开发人员,您在微软VISUALSTUDIONET的集成开发环境(IDE)中进行登记和调出文件的日常操作时,需要与之发生交互。它也能被编译连接脚本所访问,以获得编译连接当前系统所需的最新的源代码。更多信息关于VSS项目应该如何构造的信息,请参阅第三章“构造解决方案和项目”中的“在解决方案和项目中使用一个统一的文件夹结构”。关于更多如何配置VSS服务器的信息,请参阅第七章“建立和维护团队环境”中的“安装和管理VSS”。构建服务器此服务器上运行的一个自动编译连接脚本被用来编译和连接您的整个系统。编译连接脚本对于所有的软件开发项目而言都是一个关键因素。它允许以一种自动的、一致的、可重复的方式生成您的系统的一系列连续版本。编译连接过程生成的输出组件在此服务器的文件夹中得以维护。更多信息有关引用外部组件的更多信息,请参考第四章“管理依存关系”中的“引用组件”。有关编译连接过程的更多信息,请参阅第五章“创建过程”。开发工作站所有工作站必须以一种相似的方式进行配置。这包括了VISUALSTUDIONET集成开发环境的安装和配置。企业模板能够帮助您完成这项工作。更多信息关于使用企业模板的好处,请参阅第七章“建立和维护团队环境”中的“VISUALSTUDIO企业模板”。数据库服务器这些服务器上驻留了微软SQLSERVER对象,并提供了一个中心区域,开发人员能够连接位于其上的数据库,这些数据库的模式符合当前的系统数据库设计。在一些场合中,您也需要开发工作站上的本地SOLSERVER数据库能够提供独立的单元测试。例如,本地服务器允许您管理当前的一组测试数据,并且当您在操作这些数据时,不会影响其他团队成员。更多信息关于在团队环境中使用数据库的更多信息,请参阅第四章“管理依存关系”中的“数据库开发”。关于如何在一个团队环境中灵活管理连接串的更多信息,请参阅第四章“管理依存关系”中的“引用数据库”。WEB服务器团队环境中WEB服务器的主要功能是驻留当前出于开发过程中的可扩展置标语言(XML)网络服务。当负责网络服务的开发团队在他们的本地工作站上使用微软INTERNET信息服务(IIS)开发这些服务时,可以在中央WEB服务器上发布这些服务,使得其他开发人员或团队能够从客户项目中加以引用。更多信息关于使用网络服务的更多信息,请参阅第四章“管理依存关系”中的“引用网络服务”。第二章ASPNET网络应用软件开发模型本章节描述了在一个团队环境中应该如何进行网络应用软件的开发。它推荐使用网络开发的一个隔离模型,并且将此模型与其它可选择方案进行比较。开发网络应用软件存在三种主要的模型隔离(推荐)半隔离不隔离隔离模型使用这种模型,您将在一个完全孤立的环境中,在自己的开发工作站上,使用自己的本地WEB服务器(HTTP/LOCALHOST)进行开发(编辑、调试并且运行)。对主要的源文件的访问通过一个位于网络文件共享中的微软VISUALSOURCESAFEVSS数据库加以控制。您可以选择允许或是不允许开发人员同时调出相同的文件。关于更多的信息,请参阅第六章“使用VISUALSOURCESAFE”中的“多重调出”。半隔离模型使用这种模型,您将使用一个公共的WEB服务器(HTTP/REMOTESERVER)进行应用软件开发和调试。通过一个位于网络文件共享中的VSS数据库进行文件的登记和调出。您正在工作的项目拷贝位于公共WEB服务器上的一个特定的项目文件夹当中,这也是一个微软INTERNET信息服务(IIS)的虚拟根区。每一个开发人员在这个公共WEB服务器上有一个唯一的文件夹。注意当第一次从VSS处获取一个网络项目时,微软VISUALSTUDIONET不允许将工作文件放置在一个已经包含其它网络项目的文件夹当中。如果VSS多重调出功能被使能的话,开发人员能够同时调出并且编辑同一个文件,但是只有一个开发人员能够于任意时间在WEB服务器上对应用软件进行调试。这是因为当您调试一个应用软件时,IIS是处于阻塞状态的。这就阻止了服务器为来自其它应用软件的网络请求提供服务。不隔离模型使用这个模型,您也将使用一个公共的WEB服务器(HTTP/REMOTESERVER)进行应用软件的开发和调试。然而,在服务器上将不会拥有自己的工作拷贝文件,并且所有开发人员使用一个统一的文件夹和虚拟根区,例如,HTTP/REMOTESERVER/PROJECTNAME。当保存一个文件的变化时,工作站上位于内存中的文件版本被使用超文本传输协议(HTTP)传送到服务器上。这将覆盖服务器上的已有拷贝。随后在您使用集成的源代码控制服务去登记所作的更改时,微软FRONTPAGE扩展名被用于更新文件在一个VSS数据库中的主拷贝。此三种模型如图21所示。图21网络开发模型使用隔离开发模型强烈推荐在团队开发中采用隔离开发模型,因为它提供了许多重大的优点。隔离开发的优点采用隔离开发模型能够提供以下优点您和团队成员伙伴能够彼此独立地使用网络应用软件的不同(本地)实例进行开发。能够同时开发和调试应用软件,避免在不经意中干扰了其它成员的工作。它提供了对源码控制的高级支持(与使用FRONTPAGE扩展名的不隔离模型相比)。它在一个局域网(LAN)环境中能略为快速地运行(与FRONTPAGE扩展名相比)。避免采用半隔离和不隔离开发模型在团队开发环境中使用半隔离和不隔离模型是困难的。这些应该尽可能避免使用。使用半隔离和不隔离模型的缺点使用半隔离和不隔离模型有着以下缺点非常容易在无意间干扰其它开发人员。例如,在调试一个应用软件时,调试进程将锁定公共服务器,因此会对团队的其它成员造成影响。在一个不隔离模型中,开发人员也能互相影响,因为每个网络应用软件中动态连接库的背后只存在一个唯一的代码。FRONTPAGE扩展名(没有VSS集成)仅提供有限的源码控制能力。使用不隔离开发模型。所有的开发人员使用同一个位于WEB服务器上的主拷贝。FRONTPAGE扩展名的源码控制能力提供了一个“最后登记的有效”的开发模型。如果用户A和B同时调出相同的文件,用户A作出改变并加以存储,接着用户B也存储所作的变化,那么用户A所作的更改就会丢失。一个不得不采用半隔离模型和不隔离模型的场合是,您的网络应用软件所需的特定资源只能通过公共WEB服务器取得。您在使用微软NET通行证进行开发时可能会遇到这样的情形。如果不得不采用FRONTPAGE扩展名,可以配置VISUALSTUDIONET在所有新的网络项目中都使用这个操作模式,并且能够在现有的网络项目中改变这个模式。配置VISUALSTUDIONET以使用FRONTPAGE扩展名1在TOOLS菜单上,点击OPTIONS。2点击项目文件夹。3在项目文件夹中,点击WEBSETTINGS4在右边的面板当中,选择FRONTPAGEEXTENSIONS选项。5点击OK接受改变。要改变现有网络项目的访问模式1在解决方案浏览器里右击项目,然后点击PROPERTIES。2展开公共属性文件夹,然后点击WEBSETTINGS。3改变WEBACCESSMODE设置项。4点击OK接受改变。更多信息关于在VISUALSTUDIONET中开发源码控制网络项目的更多信息,请参阅HTTP/MSDNMICROSOFTCOM/LIBRARY/ENUS/DV_VSTECHART/HTML/VETCHWEBPROJECTSSOURCECONTROLINTEGRATIONINVISUALSTUDIONETASP,“VISUALSTUDIONET中的网络项目和源码控制集成”。第三章构造解决方案和项目为了保证开发和构建过程能够在一个团队环境中有效进行,最重要的是以一个正确的项目结构为开端,该结构在您所有的开发工作站和编译连接服务器上都是统一的。本章节提供以下方面的指导划分微软VISUALSTUDIONET解决方案和项目。管理本地文件系统和微软VISUALSOURCESAFE(VSS)文件夹结构。对于项目、组件和域名空间采用一定的命名规则。VISUALSTUDIONET解决方案和项目在讨论如何组织VISUALSTUDIONET解决方案和项目之前,非常重要的事情是需要了解它们的基本原理并且懂得它们是如何为本地以及源码控制提供者通常是VSS所管理的。如果已经熟悉VISUALSTUDIONET中的解决方案和项目,并且了解组成一个项目的各种文件类型,那么可以跳过本节,直接阅读“始终使用VISUALSTUDIONET进行源码控制操作”。VISUALSTUDIONET项目VISUALSTUDIONET使用项目文件作为所有编译连接和配置设置项的容纳体,这些设置项被用来生成一个NET组件。项目文件的文件扩展名是CSPROJ或者VBPROJ,取决于项目使用的语言。存在着许多不同的项目类型以及相关的快速应用开发(RAD)模板,尽管这些项目类型能够大体上被分成两类。这两种文件类型是网络项目。一个网络项目是使用超文本传输协议(HTTP)地址创建的项目(例如HTTP/LOCALHOST/MYWEBPROJECT)。网络项目包括用于向网络浏览器传送内容的ASPNET网络应用软件和主要用于INTERNET上的数据集成的ASPNET网络服务。非网络或本地项目。非网络或本地项目是使用文件系统地址创建的项目(例如,CPROJECTSMYSYSTEMMYSOLUTIONMYWINPROJECT)。最普遍的本地项目类型是WINDOWS应用软件和类库,尽管也有许多其它的类型,包括服务、控制台应用软件、数据库项目等等。VISUALSTUDIONET解决方案解决方案文件(有SLN的扩展文件名)被用来将相关项目组合在一起,并主要是被用来控制编译连接过程。您能够使用解决方案去控制编译连接的依存关系问题,并且控制所包含的项目被编译连接的精确顺序。重要提示一个项目可以是一个或多个解决方案的组成部分,但是一个解决方案不能被包括在其它解决方案当中。图31说明了项目和解决方案之间的关系,同时也指出了VSS用于维护解决方案和项目层次的设置项的文件类型。图31VISUALSTUDIONET项目和解决方案解决方案和编译连接依存关系解决方案文件也包含了编译连接过程所使用的项目依存关系信息。例如,在前面的图中,依存关系信息指出项目A依赖于项目B,并且项目B依赖于项目C。因此,构建的顺序一定先是项目C,然后是项目B,最后才是项目A。当项目引用用于一个单个的解决方案时,VISUALSTUDIONET能够确保正确的编译连接顺序。重要提示存在两种基本类型的引用项目引用和文件应用。您可以在VISUALSTUDIONET的ADDREFERENCES对话框中设置这两种引用。因为项目引用同时也建立编译连接顺序的依存关系,因此您也应当尽可能使用项目连接。关于更多的信息,请参阅第四章“管理依存关系”中的“引用组件”。服从源码控制的文件以下的列表列出一些关键的文件类型。当一个解决方案在VISUALSTUDIONET集成开发环境(IDE)中被添加到源码控制中时,这些文件类型能够自动添加到VSS中。解决方案文件(SLN)。这些文件中所维护的关键条目包括了一个组成项目、依存关系信息、编译连接配置细节信息以及源码控制提供者细节的列表。项目文件(CSPROJORVBPROJ)。这些文件中维护的关键条目包括组件编译连接设置项、引用的组件(通过名字和路径)以及一个文件清单。应用软件配置文件。这些是基于可扩展置标语言(XML)的配置文件,用于控制项目运行期行为的不同侧面。注意对于网络应用软件,源码控制配置文件被称为WEBCONFIG。对于非网络应用软件,源码控制文件被称为APPCONFIG,并且被包含在项目文件夹里。在运行期间,VISUALSTUDIONET编译连接系统将APPCONFIG文件拷贝到BIN文件夹,并且将其重命名为YOURAPPNAMEEXECONFIG。对于非网络应用软件,一个配置文件是不会自动添加到一个新的项目当中的。如果您需要一个配置文件,就请手动加入。请确保它的文件名叫作APPCONFIG,并且将它放置到项目文件夹里。源文件(CS、VB、ASPX、ASAX、RESX、VSDISCO、CSS等等)。所有的项目源文件服从源码控制。不服从源码控制的文件以下的文件不能添加到源码控制中,因为它们是针对开发人员的解决方案用户选项文件(SUO)。这些文件包括单个开发人员对集成开发环境所作的私人化的定制。项目用户选项文件(CSPROJUSERORVBPROJUSER)。这些文件包括开发人员特定的项目选项和一个可选的集成开发环境用来定位被引用组件的引用路径。第四章“管理依存关系”中的“引用组件”一节解释了组件引用应该在一个团队环境中得到管理。网络信息文件(CSPROJWEBINFOORVBPROJWEBINFO)。这个文件跟踪记录一个项目的虚拟根区位置。这个文件不能添加到源码控制中,以便允许单个开发人员为他们各自的项目工作拷贝指定不同的虚拟根区。当这个能力存在的时候,您和所有的团队成员在开发网络应用软件时建议使用一个统一的(本地)虚拟根区位置。关于网络和非网络应用软件的推荐结构的进一步讨论,可以参阅“在解决方案和项目中使用一个统一的文件夹结构”一节。编译连接输出包括组件的动态连接库(DLLS)、INTEROP组件动态连接库和可执行文件。然而,最好将项目引用的外部系统组件添加到VSS中,这些组件不作为系统的编译连接过程的一部分进行编译连接(例如第三方控件和库文件)。关于细节,请参阅第四章“管理依存关系”中的“在项目中包含外部系统组件”。始终使用VISUALSTUDIONET作源码控制操作VSS中所有项目的创建和操作应当使用VISUALSTUDIONET中集成的VSSSUPPORT菜单进行而不要使用VSS浏览器。VISUALSTUDIONET的功能保证只将适当的文件添加到源码控制中。您的VISUALSTUDIONET项目和解决方案文件被适当的VSS特定细节所更新。例如,VISUALSTUDIONET中的VSS功能在以下几个方面更新解决方案文件(SLN)文件1在一个解决方案当中,处于源码控制下的项目的个数(这个数目包括解决方案文件本身)。2每个项目的VSS服务器。3每个项目在服务器上的存放位置。4每个项目的源代码控制提供者的名称。5每个项目相对于解决方案文件的存放位置。包含在解决方案用户文件(SUO)和项目文件(CSPROJORVBPROJ)中的其它文件也得到了更新。重要提示应当始终通过VISUALSTUDIONET接口而不是VSS浏览器与VSS进行交互。产品的紧密集成确保文件在一个团队环境中能够得到正确的管理。划分解决方案和项目用于划分解决方案和项目的方法将极大地影响您在团队环境中的开发成效和编译连接过程。有三种模型可考虑用来划分解决方案和项目1单解决方案2分块单解决方案3多解决方案重要提示除非您有非常好的理由要使用一个多解决方案模型,否则请尽量避免使用,而应当采用一个单解决方案模型。或者在较大的系统中,您可以考虑采用分块单解决方案模型。后两者与多解决方案模型相比比较容易使用,而且提供了许多重要的优点,这在以后的章节中会有进一步的讨论。尽可能使用单解决方案模型使用单解决方案模型,可以创建一个单一的VISUALSTUDIONET解决方案,并且将其用作您的应用软件所定义的所有项目的容纳体。当使用一个单一解决方案模型时,请遵循以下几点如果一个项目需要引用另外一个项目生成的组件,请使用项目引用。文件引用只在引用外部系统组件(例如NET框架组件和第三方组件)时使用,这些组件不会被编译连接到您的系统的剩余部分当中。图32单解决方案模型应当尽可能使用单解决方案模型,因为它能提供许多重大的优点。优点单解决方案模型提供了以下优点当需要引用由一个独立项目生成的其它组件时,可以使用项目引用。项目引用是对其它组件进行引用的首先方式,它确保这些组件能在团队环境中的所有开发工作站上工作。项目引用的众多优点和关于何时使用文件引用的讨论请参见第四章“管理依存关系”中的“引用组件”。避免了组件版本问题,因为VISUALSTUDIONET能够检测在何时引用组件的客户需要重新编译连接。项目引用对被引用的项目的配置变化非常敏感。这意味着您能够在项目中自动从调试编译连接切换到发布编译连接,而无需重新设置引用。系统编译连接过程和编译连接脚本变得更加简单。缺点应当尽可能地采用单解决方案模型,然而模型的伸缩性有限。如果您想在解决方案中的某个项目上开展工作,您就不得不获得这个解决方案中所有项目的源代码。即使是对单个项目中的单个源文件所作的最小改变都将导致这个解决方案中的许多项目必须根据项目间的依存关系重新进行编译连接。如果一个被引用的项目的组件接口发生了变化,您将必须重新编译连接客户项目。然而,不必要的重新编译连接工作将会非常浪费时间,尤其是对于包含了许多项目的解决方案而言。对于较大的系统,考虑使用分块单解决方案模型对于较大的系统,如果想减少每个开发工作站所需要的项目和源文件的数量,可以考虑将一些彼此独立的解决方案文件中的相关项目组合在一起。这允许您和开发成员伙伴在内部系统边界以内针对一些独立的、较小的子系统分别开展工作。注意一个单一的项目文件能够包含在一个或多个解决方案文件中,但是解决方案不能包含在另外的解决方案当中。图33分块单解决方案模型图33例示了分块单模型解决方案。请注意如何使用独立解决方案的文件,以便使您可以工作在内部系统边界以内的较小的子系统上。同时还要注意这样的操作如何导致项目被包含在多于一个的解决方案文件当中。例如,项目D和H总共位于包括主解决方案在内的三个解决方案文件当中。在分块单模型解决方案中所有的项目包含在一个主解决方案当中。这被系统编译连接过程用来重新编译连接整个系统。如果需要工作在项目文件的顶层,那么也需要工作在主解决方案的层次上。项目引用在单个项目之间使用。独立解决方案文件为选定的项目文件所引入。如果愿意,可以为系统中的每一个项目引入一个解决方案文件。每个解决方案文件包含了主项目文件、它所依赖的任何下位项目以及在依存关系链表中它所依赖的更多项目。独立的解决方案文件允许您工作在整个系统内部的较小的子系统上,但是保留了项目引用的重大好处。在每一个解决方案文件当中,项目引用被用于方案的组成项目当中。注意您不应该将两个互相引用的项目分割到不同的解决方案当中,因为这将使得文件引用的使用变得必要,而文件引用是应当尽可能避免的。关于更多信息,请参阅第四章“管理依存关系”中的“引用组件”。优点分块单解决方案模型提供了以下一些优势能够工作在小的子系统上。不需要在每一个开发工作站上都拥有整个系统的源代码和项目文件。因此,VISUALSTUDIONET中的解决方案浏览器变得不再混乱并且容易使用。能够在每个解决方案当中使用项目引用。主解决方案允许您更容易地重新编译连接整个系统。主解决方案文件可为编译连接服务器上的编译连接过程所使用。缺点分块单解决方案模型也存在以下一些缺点当添加新的项目时,必须潜在地添加它们并且在多个解决方案文件中更新所有的项目引用;例如,主解决方案文件和一个或多个其它的解决方案文件。会被划分系统的方式所限定。这是受项目依存关系所决定的。因此,如果工作在顶层项目当中,例如,表达层中的一个ASPNET网络应用软件,不得不把所有相关的项目拷贝到开发工作站上。这就可能包含了您的企业和数据层次的项目。另外,如果工作在类库或者是数据访问组件的开发过程中,仅仅需要那些单个的项目。仅在绝对必要的情况下使用多解决方案模型多解决方案模型类似于分块单解决方案模型,除了以下不同不存在主解决方案文件。文件引用使用在独立解决方案的项目之间(尽管项目引用仍然用于单个解决方案的项目之间)。运行在编译连接服务器上的系统编译连接脚本基于已知的依存关系依次编译连接每个解决方案。编译连接脚本将输出组件放置在编译连接服务器上的一个固定位置上。多解决方案模型如图34所示。图34多解决方案模型优点多解决方案模型提供了一些分块单解决方案模型所不具备的优点每个项目仅仅包含在一个单一的解决方案当中。这意味着从系统中增加和删除项目变得更加容易。能够将系统基于逻辑界线细分为多个解决方案,并且不再受到项目依存关系的驱使。例如,可以基于企业功能的不同区域作出划分。缺点多解决方案有以下一些缺点当需要引用一个由另一个独立解决方案所产生的组件时,将不得不使用文件引用。文件引用(不像项目应用)不会自动建立编译连接依存关系。这就意味着必须在系统编译连接脚本中解决关于解决方案的编译连接顺序问题。虽然这是可以被管理的,但是它增加了编译连接过程的复杂性。也不得不引用一个动态连接库(DLL)的特定配置的编译连接结果(例如,发布或是调试版本)。项目引用能对其进行自动管理并且在VISUALSTUDIONET中引用当前激活的配置。当工作在单个解决方案当中时,您能够得到其它团队成员开发的最新代码(或许在其它项目当中),以进行本地集成测试。能保证在将自己的代码登记到VSS当中,准备下一次系统编译连接之前,一切都不会出现问题。在一个多解决方案系统中,这样做要困难得多,因您仅仅能够在使用以前的系统编译连接结果的前提下测试您的解决方案。您应当能够很容易地在一个包含10、20甚至是30个项目的系统中使用单解决方案。一个解决方案中,最大的可工作项目的数量很难得到精确的定义,因为它依赖于特定的编译连接服务器和开发工作站,以及和单个项目有关的源文件的数量和大小。考虑将项目组合成解决方案解决将项目组合成解决方案的问题的最好方法是考虑您的应用软件的总体结构。例如从确定系统中的组成部件(或是组件)开始;这就定义了系统所要求的单个项目。记住,每一个组件都是由一个单独的VISUALSTUDIONET项目生成的。瞄准单解决方案模型。如果想通过分割项目来提供更高层次的分散性和控制,可以使用分块单解决方案模型。考虑一下哪个组的项目是您想进行隔离工作的,例如,一组中间层次的商业组件,以及依靠这些组件创建的独立的解决方案。如果将项目分割成了多个解决方案,并且利用分块单解决方案模型无法这样做时,请仔细考虑一下跨解决方案的依存关系,以及分隔开两个独立组件的接口的本质。当您将项目组织成独立的解决方案时,应当确定分隔系统的各个组成部分的外部接口。尽量去确定那些最不可能发生变化的接口。如果一个项目的外部接口经常发生变化,那么任意一个独立的项目在理论上都应当放置到同一个解决方案当中。如果正在使用网络服务,以便将系统中的一些组件连接在一起,网络服务接口就提供了一个良好的分界线。例如,网络服务接口的客户端项目和服务器端项目可能成为独立解决方案的一部分。在解决方案和项目中使用一个统一的文件夹结构如果使用一个通用的结构用于存储VISUALSTUDIONET的解决方案和项目的话,在团队开发环境中进行的工作在整体上要变得容易得多。为了保持事物的对称性(这样做的结果是变得更简单),请在VSS中设置一个与您的本地文件系统结构相匹配的文件夹结构。定义一个通用的根文件夹在VSS中定义一个通用的根文件夹例如,在您的文件系统中是CPROJECTS,在VSS中是/PROJECTS。这将作为所有开发系统的容纳体。在这个通用的根文件夹下,分别为每一个系统建立一个系统根文件夹例如,CPROJECTSMYCOMPANYSINSURANCEAPP和/PROJECTS/MYCOMPANYSINSURANCEAPP。在解决方案和项目中采用“父子”文件夹结构应当在解决方案和项目中采用一个“父子”文件夹结构。作到以下几点在系统根文件夹底下为您的VISUALSTUDIONET解决方案建立一个子文件夹。在解决方案文件夹下为每个组成项目专门建立一个子文件夹。在网络和非网络应用软件中采用这个通用的文件夹结构。不要将BIN文件夹或其内容添加到VSS中。注意如果使用分块单解决方案模型,请将项目文件夹放置在包含主解决方案文件的文件夹下。对于每一个您创建的子解决方案,请直接从这个位置包含项目文件。图35例示了推荐使用的文件夹结构。图35VISUALSTUDIONET和VSS文件夹结构下面的子章节描述了如何使用VISUALSTUDIONET集成开发环境去为网络和非网络应用软件创建适当的结构。如何创建一个新的ASPNET网络项目缺省情况下,当创建一个新的ASPNET网络应用软件时,项目文件被放置到位于缺省网站(通常是INETPUBWWWROOT)下的一个推荐使用的虚拟根区中,并且相关的解决方案文件被放置到MYDOCUMENTSVISUALSTUDIOPROJECTS文件夹下。这个缺省的安排在一个团队开发环境中是不够理想的,因为它打破了您的VSS项目和本地文件之间的对称结构。以下的步骤指导您根据推荐的解决方案和项目文件夹结构去创建一个新的ASPNET网络应用软件。这些步骤假定了一个被称为MYWEBAPPSOLUTION的解决方案和一个被称为MYWEBAPP的项目。如果将词汇SOLUTION(或者SOLN)包含在解决方案的名字当中,将有助于清楚地将其与项目文件名区分开来。符合要求的结构如图36所示。注意那个项目文件夹和微软INTERNET信息服务(IIS)的虚拟根区是同一个东西。图36推荐使用的网络应用软件结构要使用这个结构创建一个新的网络应用软件1打开VISUALSTUDIONET,在FILE菜单上,指向NEW,接着点击BLANKSOLUTION。2键入MYWEBAPPSOLUTION作为解决方案名称,接着将它的位置设为PROJECTSMYSYSTEM。3点击OKVISUALSTUDIONET在指定的根文件夹位置下创建MYWEBAPPSOLUTION文件夹。4使用WINDOWS浏览器在PROJECTSMYSYSTEMMYWEBAPPSOLUTION文件夹下创建一个新的称为MYWEBAPP的子文件夹。5使用WINDOWS浏览器或者INTERNET服务管理器将MYWEBAPP文件夹设成IIS的虚拟根区。注意VISUALSTUDIONET要求虚拟根区的名字和文件夹名字相匹配。6回到VISUALSTUDIONET中,在FILE菜单上,指向ADDPROJECT,并且点击NEWPROJECT。7添加一个ASPNET网络应用软件项目。8在LOCATION域,键入HTTP/LOCALHOST/MYWEBAPP,然后点击OK。项目和网络源文件将在指定的虚拟根区中创建。如何将一个网络应用软件分割成多个项目在某些情况下,您可能想将网络应用软件分成同一个解决方案中的多个项目文件,以方便团队开发。例如,如果拥有不同的团队负责同一个网络应用软件的不同部分,那么将应用软件分成多个项目是非常有用的。VISUALSTUDIONET本身就能支持这个功能,但是也能通过对虚拟根区进行一些手动操作来达到这个目的。重要提示一个单项目方案比较简单,因此只在绝对必要的情况下才将一个网络应用软件分割成多个项目典型的情况是针对非常大的网络应用软件。更多信息有关更多创建子网络项目的详细信息,请参阅文章Q307467,“在团队开发环境中,如何从多个项目中创建一个ASPNET应用软件”。此文章位于HTTP/SEARCHSUPPORTMICROSOFTCOM/上的微软知识库中。使用ASPNET后台编码文件应当知道,当调出一个网络表格(ASPX)文件或者一个后台编码文件(ASPXCS或ASPXVB)时,VISUALSTUDIONET自动调出所有的文件。这是在设计时就决定了的,因为用户接口的变化通常包括了后台编码文件中的部分代码的改变。例如,如果为一个网络表格增加一个新的控件,VISUALSTUDIONET自动在后台编码文件中为这个控件创建一个成员变量。如何创建一个新的非网络项目以下的步骤将指导您去创建一个新的非网络项目类型,例如一个基于WINDOWS的应用软件或是控制台应用软件、一个类库或是一个服务。这些步骤假定了一个被称为MYWINAPPSOLUTION的解决方案和一个称为MYWINAPP的项目。符合要求的结构如图37所示。图37非网络项目推荐使用的项目结构要使用这个结构去创建一个新的非网络应用软件1打开VISUALSTUDIONET,在FILE菜单上,指向NEW,接着点击PROJECT。2选择适当的项目类型和模板。3在NAME域中键入项目名称(本例中是MYWINAPP)。4将LOCATION域设为PROJECTSMYSYSTEM。5点击MORE按键。6选中CREATEDIRECTORYFORSOLUTION复选框。这使得项目文件在解决方案文件夹下的一个项目子文件夹内被创建出来。7在NEWSOLUTIONNAME域中键入MYWINAPPSOLUTION。8点击OK完成项目和解决方案创建过程。关于如何向VISUALSOURCESAFE添加新创建的项目和解决方案的信息,请参阅第六章“使用VISUALSOURCESAFE”中的“在VSS中登记新的解决方案”。仔细考虑命名规则在给项目、组件、文件夹以及域名空间进行命名之前,请仔细并且及早地考虑命名方式。虽然在开发周期中的迟些时候仍然能够对这些条款进行重命名,您还是应当尽量避免重命名情况的出现。有关如何重命名一个项目的更多信息,请参阅第六章“使用VISUALSOURCESAFE”。您也应当使用一组一致的名称,因为这将极大地简化项目的组织工作。有24个团队使用VISUALSTUDIONET和VISUALSOURCESAFE进行开发。在项目和组件中使用通用的名称输出组件名称应当总是和生成它的项目名称相匹配。例如,应当能够假定一个被称为MYCOMPANYUTILITIESDATADLL的组件由一个被称为MYCOMPANYUTILITIESDATA的项目生成。如果改变了一个输出组件的名称,请考虑改变项目的名称以便使它们能够匹配,反之亦然。使用一个通用的根域名空间名称将类型(结构、类、接口等等)放置到其中的根域名空间应当和项目以及组件的名称相匹配。例如,使用MYCOMPANYUTILITIESDATA作为MYCOMPANYUTILITIESDATADLL组件的根域名空间。虽然NET不需要这种协定,但是它对同步的名称比较敏感,因为它能够据此来指出哪种类型存在于哪些组件当中。注意微软VISUALBASICNET项目通过项目属性显示了根域名空间。缺省情况下,在VISUALBASIC项目中创建的类型被放置到这个域名空间当中。如果您在VISUALBASICNET项目中使用了明确的域名空间语句,就请删除根域名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论