zoukankan      html  css  js  c++  java
  • .net敏捷开发及常用工具

              工欲擅其事,必先利其器,能利用工具是人与动物的最大区别。然而,大多数商业化工具价格不菲,已经加入WTO好几年了,再用盗版会给企业带来很大的不确定性,并且盗版用多了,往往会失去一种程序员的自豪感,丢掉一种文化。经过几个月的摸索,本着以下原则,偶选择了一些适合中小企业开发的工具,当作自己的工具箱:

            1)适用于中小型企业,中小型项目(<500万),功能适度

            2)易用性好,具备必要的文档

            3)免费或低价

            基于这些工具,慢慢形成了一套敏捷开发过程。

     一、工具简介

             下面简单介绍这些工具,这些工具有些偶已经有相当的使用经验,有些正在使用,有些只是刚选定。除直接用于.net开发的工具中外,还包括一些开发相关的软件设计、项目管理工具。偶的主要开发经验是Web开发,桌面开发和原型开发,对Mobile开发不熟悉,也就没这方面的推荐了。

     1,运行平台

            常用的也就.net framework 1.1, 2.0, mono了,都是免费的。从功能、性能及安装基础来讲,自然.net framework要优于mono了。mono是开源的,.net framework类库可以反编译,从透明的角度讲两者都差不多。如果你想在非windows平台上开发,或者想研究运行时的实现,可以研究mono,否则还是用.net framework吧。

     2,服务器

            我用过的也就IIS5.0IIS6.0Apache加一个mod,还有monoxsp,这也没啥好比较的,自然首选IIS6.0了。不过IIS虽然免费,但是至少得windows server版本才运行得爽,至少得花几千元。XP上的IIS很不爽,据说也能装全版IIS6.0,不过还是得折腾。开发用的话,用Apache加一个.netmod,或者monoxsp,还是挺好用的。Apache的缺点是对新版.net framework的支持较IIS6.0滞后。

     3IDE

            tnnd,这个选择空间也很小。首选自然是VS 20032005,如果VS 2005速成版将来免费的话,偶就选定这个了,或者选价格并不算高的VS 2005 专业版。可恶速成版、专业版中没单元测试,在这里BS微软10000遍。坚决抵制VSTS版!

            其它可选的有SharpDevelopmono develop。对于不开发Web程序的初学者来说,用SharpDevelop其实也挺不错的,集成的NantNDocNUnit都是很有用的工具。SharpDevelop没断点调试功能,但熟用NUnit的话可以弥补这一不足。如果对类库理解得比较深入的话,采用SharpDevelop,生产力其实也挺高的――即使是进行Web开发。SharpDevelop的缺点之一是暂时没重构功能,在下一个版本里会有。缺点之二是内存占用比较大,还有性能比VS低得多,大项目,大程序可能不爽。我测试过,用SharpDevelop打开一个大于3MC#源文件(嘿嘿!是csgl还是tao的,忘了),挂了;用VS 2003打开大概要花几十秒。

            btw,我个人认为其实就用记事本写中小型(<3000行)的C#程序,效率其实也挺高的,这时候会更加注意类的设计,思路会更清晰一些,当然,速度会慢一些。

     4,类库和文档

            类库是.net平台的资产。目前.net下成熟的类库比较少,和java比,最大的不足就是这里了。最常用的类库当然是.net framework了,其它各方面的类库在网上都能搜索到一些。类库的关键资产要素是dll和文档。看文档要看一手资料,第一手资料就是源代码或反编译过来的代码,然后就是各类的原始文档,一般是chm格式的。如果看源代码习惯的话,效率会很高,并且,建议用反编译工具看代码,不建议直接看源文件,原因其一是反编译工具提供了很多有用的附加功能,其二是反编译的代码比源文件更真实。常用的反编译工具是Reflector

            .net下的文档是爽死了,比javadocpp多了。因此在写代码的时候应该注意,多写///注释,然后用Ndoc自动生成chm文档,多爽呀。

            很多开源项目提供源代码和少量的文档,但它的源代码中有大量的///注释,可用NDoc自动生成chm文档。即使没有///注释,采用NDoc生成文档也是很值的。

     5,数据库

            MS SQL Server Express版应该是免费的,但标准版和企业版价格还是不低的,还是用开源的好。对功能有要求就用PostgreSql,没要求就用MySql。偶现在是GIS项目用PostgreSql,一般项目用MySql。数据库管理用EMS MySQL Manager LiteEMS PostgreSql Manager Lite,免费,好用,界面很豪华,性能还行。

     6,设计与建模

            偶选定的UML建模工具是JUDE2M大,免费但不开源,比ArgoUML功能多、好用。比Visio UML功能不知道强大多少倍,比Together也好用。缺点就是只是建模工具,和代码不同步。另一个缺点就是不能自动生成文档。不过偶喜欢这样的工具,强大,体积小,灵活,方便。并且偶觉得它在设计时用就行了,具体的类的文档用NDoc生成。JUDE是基于java的,得安装java虚拟机。好像它跨平台也不怎么样,我在linux下没运行成功过。

            开源或免费的数据库建模工具试过很多,感觉都不成熟不好用,最后选择了一个商业软件――CASE Studio 2,价格100-300美元,功能很实用,支持很多数据库,生成的文档也很pp

     7,敏捷开发工具

           NUnit――单元测试。

           NAnt――build工具。前面已经提及。

           NDoc――文档生成。前面已经提及。

           CruiseControl.Net ――持续集成,暂时还没用过。

            NUnitNAntNDoc用的好的话,感觉非常爽,写程序会有艺术家的感觉。

     8,团队协作工具

           版本管理:CVSSVN,推荐SVN。客户端推荐用TortoiseSVN――非常可爱的小乌龟。

            Bug管理:偶选用的是BugTracker.NET,简单,用 ASP.Net写的,小项目够用了。

            需求管理、项目管理、日程、经费计算与管理:还是在用WordOutlookExcel。要免费的话可用永中Office试用版,一样好用。

     二、优势

     1,性价比高。对于10人规模的团队,看看软件成本:

            运行平台:.net framework 1.12.0,免费

            服务器:1windows 2003 server版,数千元

            IDE1VS 标准版或专业版,数千元,其它用express版就行了

            类库和文档:免费

            数据库:免费。用商业数据库,让客户掏钱。

            设计与建模:1CASE Studio 2就行了,数千元

            敏捷开发工具:免费

            团队协作工具:1MS Office(带Visio的)就行了,数千元,其它人用永中。


           
    整个下来,不足
    20000元。

    2,易用性好

            反正我的感觉是和商业软件差不多或者稍差

    3,易扩展

            上面工具大部分是开源的,并且很多工具之间协作性比较好,这样可以用来定制适合自己的生产线。老外的那一套生产线,比如RUPMSF及其相关工具,除价格贵外,其灵活性也不高,别人的生产线不一定适合自己用。这时上面工具的优势就出来了。

     三、搭建软件生产线

     流程1:项目管理流程

            Office管理需求。用SVN进行源代码管理和文档管理,BugTracker.NET进行 Bug管理和事务管理。尽量将程序、文件、文档的维护自动化。

     流程2:开发管理流程

            开发过程中所维护的文件越少越好。偶觉得应该尽量少用UML图写文档,只写最关键的部分。类的文档最好由NDoc直接生成。偶用UML工具的时间很少。写代码的过程就是类设计过程。不妨比较这两个流程:(1)用例分析->采用UML工具设计类->UML工具生成代码或撰写代码->重构代码,自动更新UML文档。(2)用例分析->撰写代码->重构代码。第一个流程只有一个优势,就是人对图形的理解比对代码的理解更加直观,但是多了很对累赘工作。第二个流程少了很多步骤,并且可以随时根据代码逆向工程出类图出来,

            我还是喜欢以代码为基础的流程。撰写代码也可分为2个过程,第一个过程是写出一个代码框架,所有的方法都是UNDO,写出属性,接口,写出///文档。这应该是设计过程。这个过程基本上只产生、维护源文件。类图可以通过visio逆向工程,类设计文档可以通过NDoc自动生成,并且提供了一个测试基础,可以根据这个测试基础写测试代码了。测试代码最好也只写个框架,但是要写好///注释,然后生成测试文档。这应该是设计过程。第二个过程是实现过程,把类文档和代码框架提交给相关人,实现、测试、重构......一切都自动进行......整个过程中只有一份东西,就是源代码,开发过程中的交付件应该都从源代码中自动生成。

            数据库脚本和文档用CASE Studio 2维护。最后提交、上线、验收都很好办,所要的东西biaji一下子都出来了。要申报著作权直接从源代码和chm文档中弄一部分出来就够了。

            开发的核心是源代码,所有文档应该体现在源代码的结构、关系和注释中。控制整个开发流程的核心工具是Nant。要是能把用例分析过程体现在源代码中就好了!

            最后,推荐书籍:Open source .Net Development, Programming with NAnt, NUnit, NDoc and More

    版权所有,欢迎转载
  • 相关阅读:
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    FFmpeg解码H264及swscale缩放详解
    linux中cat more less head tail 命令区别
    C语言字符串操作总结大全(超详细)
    如何使用eclipse进行嵌入式Linux的开发
  • 原文地址:https://www.cnblogs.com/xiaotie/p/241192.html
Copyright © 2011-2022 走看看