Net架构必备工具列表

N 多年前微软官网曾发了.Net 下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了。而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要,工具与工具之间是否有联系?等等,阐述得并不明确。

  这里,我想从另一个角崖,重新归纳一个更新的更实际的武器库。更新,是因为有很多最近几年才出来的工具/框架库,更实际,是因为我自己的项目就完全依赖使用。

  Visual Studio

  这个似乎是不言而喻的,只是从严谨的角度,也列在这。实际上,现在也有一个开源的 IDE 开发环境发展也不错,叫 SharpDevelop。我并没有仔细看,不敢妄评。而我因要用到之后会讲的 Resharper,也迫使我只能用 VS。

  Resharper ---重构必备

  无论是从其名称,还是实际功能,Resharper 绝对称得上利器,一旦你用熟了你就再也离不开它了。我去年换工作,很大一部分原因就是因为原单位不让我使用 Resharper。几个面试,我也总在重复提出我这一要求。直至最新版本6.1为止,Resharper 已经是个多面手。早期,它还只是个重构的工具,如今它是反编译器(原来的 Reflector.Net 就用不上了),还是个代码审查工具(代码规范审查),还是代码生成器(Code Smith 又用不上了),最后,它对键盘快捷键的组织使用,对无鼠标操作极其有益。一句话,Resharper 能极大提高编码的效率,利器更是重器。

  Fluent nHibernate --- 域驱动 DDD 必备

  这件武器其实分为两部分,一个是 Fluent,一个是 nHibernate (这不是废话)。nHibernate 知道了解的人很多,就是一个 ORM 工具,而加上 Fluent 之后就知之甚少了。从功能上,Fluent 只是在原来 ORM 工具基础加上一层封装,以 Fluent Interface 形式提供了使用 nHibernate 的 API。可是别小看这一层封装,从使用体验和效率提高方面,Fluent nHibernate 有着卓越的功效。就我个人经历,就是在 Fluent nHibernate 之后,才真正使用,喜爱上 nHibernate 本身。让大多数人比较头疼的创建映射 XML 文化,被全部 C# 文件代替,甚至可以完全省略。可以说这两部分是一个完美的结合,后者提供强大的基础功能,前者提供完美的使用接口。这不是一个成功软件必须的两个要素吗? 什么是 ORM,不会吧,放狗搜搜就知道了。我只想强调的是,不要把它仅仅看作一个功能库,它更是个架构设计的利器。从架构的角度,它把业务域和数据层隔离,使得数据模型和业务域模型独立设计成为可能。这一点的影响是非常深远的。

  nUnit + Machine Specification + Rhino Mock + AutoMocking --- 单元测试必备

  啊呀,不得啦。上一武器,我一下子介绍俩,这一次白送四个。这也体现我写本文的指导思想,从开发使用的角度来叙述而不是从工具提供者来还分。这四个套件在一起实在是太完美了!nUnit 又是一个众所周知的测试框架,它提供了测试的基础功能和概念。MSpec 从 BDD 的角度,封装了一下 nUnit,也可以说是重构了一下语法,使测试可具有可读性,提供良好的测试组织结构,进而可以测试完了,直接生成一个完美的测试结果文档。Rhino Mock 也是一个熟客了,但是旧中有新,新的几个版本也加入了一些可圈可点的新性能,如所谓 AAA 语法(Arrange, Action, Assert 这与 MSpec 的 Establish, Because, It 关键词完全契合)。而从我的角度,看到的亮点仍然是可读性的改进。最后,AutoMock 的出现又让事情更加简单了,连创建 Mock 对象的语句都省掉,只要你把依赖类的接口,在被测试的类的构造器中声明传入,AutoMock 就自动为你创建 Mock 对象就,如同它的名字所表达的一样自动 Mock。当然,还有高级应用,暂不赘叙。

  SQLite  --- 集成测试必备

  什么,数据库也算?是的,不过这里 SQLite 不是我的产品数据库,而是用它的内存数据库做集成测试的工作,可以说是集成测试的利器。I\O读写历来是性能的瓶颈,而敏捷编程对测试的高度依赖,也是对测试性能的高度要求。即使是高度覆盖率的单元测试也仍然不够,我们依然希望能在持续构建(CI)中,每次能自动运行集成测试。而如果要有真正独立、干净的集成/用例测试,最好是每个测试用例完全重建数据库,重置测试数据,这样的要求,只有内存数据才能得到良好的性能。使用 SQLite 证的内存库后,不光集或服务器可以轻快的完成集成测试。开发人员本地,也把集成测试很快的运行完。这样,我们的敏捷流程中不仅包括单位测试必须通过,甚至也包括了集成测试。它的名字叫用户故事。

  不过这个工具有个小小的问题,因为 SQLite 是基于C开发的,针对 32 位和 64 位系统,它分别发布了两套控件,所以你必须根据自己的平台,3引用不同的 Dll 文件。而且,VS 项目编译设置还必须明确指明是 x86 还是 x64,不能设为 Any CPU。就为这个由题,我很是头疼了几天,最后才找到这个解决方安案。使用上,由于前面使用了 Fluent nHibernate,除了配置,不用对代码做任何改动。如果要改改了,也就不是真正的集成测试了,不是吗?

  Git  --- 源代码管理必备

  如果你能一天就把代码写完,你就不需要源代码管理,你能吗?做为一个源代码管理的新秀, Git 的发展是极其迅猛的。我看好它,是它优秀的底层设计,优秀的业务模型. 如果要了解什么是 DDD,Git 是一个非常好的典范。一般的源代码管理,都是基于单个文件的版本控制,而 Git 一开始设计就是基于每个提交(代码文件树)来追溯版本。你可能会不赞同我的说法,因为,很多代码控制仍然提供了项目级的分支或者版本,其实那只是一个假像。VSS,SVN,TFS 的最底层,都先是文件版本控制,在这个基础之上,再提供项目版本的功能。而 Gif 却恰恰相反。这个很重要吗?是的,区别非常之大。引用 DDD 的思维,即然,从用户的角度,代码控制版本是基于文件树的,为什么你的业务模型却不是呢?所以,我把耙 VSS,SVN 等的这种实现方式,看作打补丁/修补方式,总有一天,补了摞补了,至于最后,再也不能修补了。还有一点 Git 是分布式代码管理库。

  TeamCity  --- 持续构建必备

  嘘(抹汗),总算到讲到最后一个,已经写得太长太多了,写者累,看者烦。从 CI 工具的鼻祖 CCNet 升级到 TeamCity 之后,感觉确实不一样,鸟枪换炮。为什么要 CI,好像不是我这一篇短文可以讨论清楚的。

  TC 的好处,第一:是商业软件并且免费,一般这两点很难同时出现。当然有个限制,如果你只使一个编译代理服务的话,这个对我来说已经足够。第二:它对很多三方工具支持做得很好。如, nUnit, MSpec,Git 等。最重要的是它是 CI 服务器!

  好了,这就是目前我的兵器,已经足够了,让开发的流程顺畅,让你新的想法得以实现。敏捷在哪里,就在这些工具里。是否对你有用,欢迎点评,反馈。仍然还在看一些其它的工具,希望在真正使用获益之后,再为这个推荐列表添加更多成员。

时间: 2024-11-01 14:37:02

Net架构必备工具列表的相关文章

我的.Net武器库 ------ 新.Net架构必备工具列表

工欲善其事,必先利其器. N多年前微软官网曾发了.Net下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了.而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要,工具与工具之间是否有联系?等等,阐述得并不明确. 这里,我想从另一个角崖,重新归纳一个更新的更实际的武器库.更新,是因为有很多最近几年才出来的工具/框架库,更实际,是因为我自己的项目就完全依赖使用. Visual Studio 这个似乎是不言而喻的,只是从严谨的角度,也列

新.Net架构必备工具列表

N多年前微软官网曾发了.Net下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了.而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要,工具与工具之间是否有联系?等等,阐述得并不明确. 这里,我想从另一个角崖,重新归纳一个更新的更实际的武器库.更新,是因为有很多最近几年才出来的工具/框架库,更实际,是因为我自己的项目就完全依赖使用. Visual Studio 这个似乎是不言而喻的,只是从严谨的角度,也列在这.实际上,现在也有一个

转 .Net架构必备工具列表

Visual Studio 这个似乎是不言而喻的,只是从严谨的角度,也列在这.实际上,现在也有一个开源的IDE开发环境发展也不错,叫SharpDevelop.我并没有仔细看,不敢妄评.而我因要用到之后会讲的Resharper,也迫使我只能用VS. Resharper ---重构必备 无论是从其名称,还是实际功能,Resharper绝对称得上利器,一旦你用熟了你就再也离不开它了.我去年换工作,很大一部分原因就是因为原单位不让我使用Resharper.几个面试,我也总在重复提出我这一要求.直至最新版

MySQL管理员珍藏:十大必备工具盘点

作者:dongdongzzcs 第1页: [IT168 专稿]本文的作者Daniel Nichter是MySQL工具的开发者,他为MySQL管理员推荐了十款必备工具.以下是全文内容: MySQL是一套需要大量辅助工具加以修复.诊断及优化的复杂系统.幸运的是,对于管理员来说,MySQL的高普及度吸引了大量软件开发商为其打造高品质的各类开源工具,内容涵盖MySQL系统的复杂性均衡.性能表现维持及稳定运行保障,而且其中大部分是免费工具. 下列十款开源工具对于使用MySQL的用户来说是极为宝贵的财富,其

测试管理工具列表大全

ID Name Notes 1 TestDirector/Quality Center 业界第一个基于Web的测试管理系统,它可以在您公司组织内进行全球范围内测试的协调.通过在一个整体的应用系统中提供并且集成了测试需求管理,测试计划,测试日程控制以及测试执行和错误跟踪等功能,TestDirector极大地加速测试过程.8.0后改称QC. 由于HP QC可以单独使用Defect模块,也可单独申请Defect模块的License,它也是名副其实的缺陷管理工具. 网址:http://www.mercu

net辅助工具列表

最近对.net的辅助工具比较感兴趣,网上也已经有.net的十个必备工具的帖子了,这里提供了一份全面的工具列表: Code generation NVelocity CodeSmith X-Code .NET XGoF - NMatrix / DEVerest Compilation eXtensible C# - ResolveCorp Mono DotGNU - GNU Obfuscation LSW-IL-Obfuscator - Lesser Software Demeanor for .

一个性能(压力)测试工具列表

我个人认为一个优秀的软件工程师必须掌握一定的测试技能.可能有的开发工程师认为测试是测试工程师的事情,不是开发工程师的事情.这种开发工程师是缺一条腿的,离开了测试工程师,你如何证明你的程序没有问题. 下面是我这两天搜集的性能测试工具,如果大家知道别的工具,可以在回复中分享出来. Webbench Web Bench is very simple tool for benchmarking WWW or proxy servers. Uses fork() for simulating multip

服务器必备工具软件推荐

对于经验丰富的网站管理员来说,选用何种软件工具已经不是什么难题,但对一些经验尚浅的管理员而言,选用何种工具就显得非常重要.如何能从成百上千 的工具类软件中筛选出最合适的,无疑有很多方面的考虑.下面小编就给大家推荐一些老管理员经过层层筛选遴选出的十款服务器必备工具软件,供大家参考和分 享,这十款软件可以说是服务器必备之软件了,基本涵盖了服务器维护的各个方面. 1.远程桌面连接 Remote Desktop - 远程桌面连接(以前称为“终端服务客户端”)主要是用于对远程托管的服务器进行远程管理,使用

干货 | 码农翻身提高工作效率的必备工具

要问闯荡江湖的码农最怕什么 那么,我斗胆猜测一下 一定是敲代码的 -- 速度 速度 还是速度! 速度是效率的关键 决定几点回家 几点见到心爱的妞 几点吃鸡 -- 今天,本黑就来给大家推荐一下 程序员提高效率的必备工具 1.Git 以前是有不少的版本控制工具,有好用的,同时也有不太好用的,但总的来说它们都没有很好的发展.这时候Git出现了,还有GitHub,EGit,一旦你用上了这个神奇的工具,估计你就很难再碰到更好的VCS了.还没用过Git?赶快试一下吧. 2.Stack Overflow 不开