大型.NET项目的目录、编译和版本管理实践 一.doc_第1页
大型.NET项目的目录、编译和版本管理实践 一.doc_第2页
大型.NET项目的目录、编译和版本管理实践 一.doc_第3页
全文预览已结束

下载本文档

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

文档简介

大型.NET项目的目录、编译和版本管理实践 一在大型项目中,Project文件非常的多,如果没有很好的规划,会造成诸如dll版本不一致,打开的Project太多编译缓慢的问题,这都直接影响了工作效率。下面我将简要介绍我们在开发大型项目中,Visual Studio Project是如何规划的,从而规避很多的问题,提高工作效率。(注:此文仅适用适用Visual Studio开发的项目,对于其他项目可能需要修改)下面的所有实践都需要一个小工具,我叫他“项目工具”,这里我没有办法提供此工具,但你们的团队完全可以按照文章中的实践方案编写出自己的软件。规律在任何软件项目的活动中,均遵循下面的规律:这里的产品单元你可以认为是一个较大的,独立管理的单元,在一个产品单元中,我们总是引用一些已有成果,例如C#项目中引用第三方组件。产品单元最重要的部分是源代码,我们会不断修改他,然后通过编译的动作,又输出成新成果。当确定无误后,我们通过“发布”的动作又发布给其他的产品单元。例如产品单元1是我们的平台组件,而产品单元2是我们具体的产品。下图演示了一个典型的产品单元活动流程(图中每个椭圆就是一个产品单元),注意,后面我们讨论到版本等活动时,会变的更复杂一些。平台时时刻刻都在编译,但你可以选择某个稳定的时候发版给平台测试,当平台测试OK后,他就又可以发布到产品中,产品开始使用新版本的平台,同样的,你可以自由选择什么时候打包,然后交付给产品测试。当然,你可以修改为产品到产品测试,然后才是打包。这个就随你自愿了。目录规划在某个产品单元下,其目录的规划非常简单,根目录来看,仅包含bin和src目录。这么简单吗?是的,为什么要搞那么复杂。我想你会又一堆的问题出现,好吧,我一一解释。外部已有成果(例如第三方组件)和新成果(当前产品单元编译的结果)都混在在bin目录下吗?是的,这样做有几个好处,首先当使用者获取此目录后,即可获取所有最新的组件,要知道,往往编译一个大的产品单元是很长时间的,我们一般每天两次在服务器上编译完毕后更新TFS上的此目录,这样程序员就可以免去很多编译的时间。其次,外部组件和内部组件都放在bin的话,程序员引用dll就很方便,不必费力的在多个目录去引用,这时我最喜欢这样设计的目的。bin下为什么没有debug和release目录是的,正如我第一点所说,我不希望C# project在引用dll时还要如此复杂。当我真的需要一个release版本时,我通常只是调整编译参数,编译,覆盖现有组件,最后上传tfs,通过某个标签我就知道哪个是release版本。(这里的tfs指的是Microsoft Team Foundation Server,如果你使用SVN这样的工具,本文也同样适用)当然,如果你是一个偏执狂,我可以告诉你一个秘诀,使用记事本打开你的project源代码,然后像我这样修改,就可以动态引用一个dll了。好吧,我有些扯远了,在下面的项目规划上我会再详细说的。src目录存放所有源代码,我们现有的方式是src下一级存放大模块,例如薪资、供应链、财务等,然后在此目录下再建各个项目,这样不至于上千的项目放在一个目录下难于查找。 你可能会问,为什么不将这些模块作为不同的产品单元,我当然想了,可是我不得不承认一件事情,这些模块都是互相引用,很难说谁更底层一些,虽然我们可以将这些模块的接口和实体部分提取出来作为独立的产品单元,可是管理成本也是我们在乎的,所以我们将他们放在一个产品单元,只不过通过建立两级目录来隔离一下。那么,我的设计文档、帮助文档放在哪里?可以放在src平级,也可以放在src的子目录,这个要看个人喜好了,我没有发现这两种方式有什么优劣势。我自己喜欢src平级的目录,因为我不喜欢目录太深。当多个产品单元需要维护时,建立多个平齐的根目录即可(就是上例的Demo Solution)。taob tbw 兰蔻bb霜 bb霜是什么 哪个牌子的bb霜好 好用的bb霜 http:/gep.cc bb.vps22.co

温馨提示

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

最新文档

评论

0/150

提交评论