尽管过了相当长的时间,花费了不少资源,微软和.NET社区还是在最近几年加入到了开源运动的阵营中来了,这令人相当惊讶,因为两大阵营一直都是经常对立的。然而,事实是依靠开源,微软社区中的开源开发工具日益发展壮大。本文将深入了解.NET领域的开源项目,介绍七个在全球受到数百万.NET开发者拥戴和欢迎的开源项目。
AJAX 控件工具包
仅仅五年时间,自从AJAX的概念提出来以后,使用JAVASCRIPT,XML和异步通信去提升用户的在线体验已经从新颖的想法变为实在的需要。因为AJAX驱动的要求已经变得很普通,不久开发者们都投入到开发AJAX框架中去,这使得像日历和客户端表单验证这样的功能变得很容易实现。
.NET开发者在处理AJAX方面有ASP.NET AJAX Control Toolkit工具包这个很好的解决方案。它由微软公司和开发者社区联合开发,提供了多种功能强大的控件,如评分控件,模态弹出窗口,密码强度验证器,可拖拉的面板。
可以查看ASP.NET主页上该项目的主页,上面有控件示例的清单和例子,除此之外,还有大量的导学文章,能指导如何充分利用工具包的很多特性。
ASP.NET MVC
MVC的架构在现在的Web开发中起着重要的作用,象Ruby on Rails,Zend Framwork等框架都是使用MVC框架进行开发的。多亏有了ASP.NET MVC框架,.NET开发者也能够拥有一个功能强大的MVC框架了。ASP.NET MVC框架提供了MVC的良好分层,测试驱动以及“约定优先”的最佳实践,为.NET开发者构建复杂的网页提供了强大的解决方案。因为是基于.NET构建的,开发者能充分利用ASP.NET的诸如数据缓存和表单验证等功能。你还可以发现不少其他项目也是基于ASP.NET MVC构建,并且提升了其功能,象MvcContrib,它扩展了ASP.NET MVC的功能,还包括象UI helper和模型绑定器等功能。
ASP.NET MVC框架的网站提供给新手一系列学习资源,包括了视频系列导学,它们通过示范搭建应用程序的方法去指导读者学习。
CruiseControl
现在软件的复杂性使得软件开发团队不得不重新考虑软件开发的过程,这要引入既能缩短开发时间又能提高软件质量的方法。这使得出现了大量的软件开发最佳实践,它们越来越广泛应用在企业中,象测试驱动和持续集成。其中持续集成在整个软件开发过程中,通过有计划和严格地整合工程的组件,并能尽可能减少在这方面付出的时间和精力。这使得开发者能尽早发现和解决在整合过程中的问题,而不是等问题变得越来越复杂再去解决。
更准确来说,持续集成包含了软件开发过程中的自动化过程,包括定期运行测试,在每次开发者向工程代码库提交代码时,重新编译构建项目。因为这个自动化的阶段包含了大量的象文件移动等操作,近年来,很多能完成自动持续化集成的解决方案出现了,其中包括开源项目CruiseControl,CruiseControl提供了自动化构建的工具,可以查看构建的结果,并且生成报告。CruiseControl现在已变成一个十分流行的持续集成解决方案。在众多的第三方持续集成工具中,可以找到象JCCTray这样的工具,它是一个桌面运行的应用程序,可以直接了解你的构建服务器的状态,并且BigVisibleCruise这个工具,使用可视化的提示显示构建服务器上所有受管理的工程的状态。
DotNetNuke
随着越来越多的公司正把它们的商务活动迁移到在网上,这需要功能强大的网站内容管理系统,而不仅是简单更新一下网页内容。实际上,现在的网站不仅是卖商品,同样也管理销售机会和其他合同等,也要维护文档和提供如图片和视频等多媒体服务。最有效去管理这些大量的内容的是采用集中的内容管理系统。其中最著名的解决方案是DotNetNuke,它是一个功能强大的基于 .NET的内容管理系统,已在全球500强中很多企业和众多开发者中被采用。
DotNetNuke虽然已经有了多个版本,但开源的社区版本提供了数百个特性,如它们能让公司去管理通告,实现论坛交互,而这些都不需要有任何的编程知识。如果公司需要自定义一些新功能的话也能按它们的需要去扩展。
Mono
2002年,.NET 1.0的出现是软件开发领域中的一个分水岭,在众多特性中,它可以让开发者使用任何支持.NET公共运行时的语言去开发应用。当然,微软将WINDOWS平台作为.NET运行的主要平台,这对象LINUX等其他系统来说是个噩梦。然而因为.NET是基于一系列公开的标准的,一些企业组织的开发者开发了Mono项目,能让.NET可以运行在非微软平台上。
现在由于Novell公司的大力支持,Mono项目这些年发展得相当迅速,它不但能让.NET跑在非微软的平台上,也支持在LINUX上运行Sliverlight技术(目前代号为Monnlight),甚至开始研究在使用C#语言去编写iPhone上的应用。
可以到Mono的主页上去查看更多的相关信息,除此之外还可以去下载Mono专门为Visual Studio开发的插件工具。
NAnt
无论是JAVA还是.NET的开发者对代码的编译部署过程都是十分熟悉的,这个过程随着工程项目变得越来越复杂,从而也会耗费不少时间。为了应对这一问题,开发者James Davidson编写了ANT这一自动构建工具,它在JAVA开发者社区阵营中开始应用得越来越普遍,不久,NET阵营中的NANT项目也随之诞生。使用NANT,你可以建立构建脚本,不论是执行单元测试还是创建文档等其他.NET的构建周期,都可以自动执行这些脚本。
NHibernate
尽管在软件开发中,关系数据库的应用是很普遍了,但开发者和数据库之间还是存在一些壁垒。问题关键在于如何高效地在应用和数据库之间以各自支持的格式转换数据。开发者尽了很大的努力创造了很多方便转换的工具,其中最著名的是象Hibernate这样的对象关系映射框架(ORM)
.NET开发者在处理ORM方面有NHibernate这样的工具,自从2005年它出现后,广为受到开发者的欢迎。NHibernate能完成.NET开发者面对的大量枯燥的数据日常操作,不仅在映射应用的模型到数据表上很有作用,而且能根据预先定义好的数据模型去产生表的模型定义。
NHibernate的网站上提供了大量的有用的资源,能帮助你去了解这个强大的ORM解决方案框架。
小结
如果你是.NET开发者而且还没开始进入庞大并且日益发展的开源阵营的话,那么你应该去看看了。花点时间去研究本文提到的几个开源项目,我保证你会马上看到生产效率的提高的,有可能这还会引领你去向开源社区贡献你自己的开源项目呢,如果你使用了本文没提到的开源项目工具,可以在评论中告诉我。