Introduction
Despite the considerable time and resources Microsoft and the .NET community have invested in open source initiatives in recent years, it's surprising how often the two camps are treated as antithetical to one another. Yet the reality is that reliance upon open source development tools within the Microsoft community is significant and growing. In this article we'll shed some insight into this widespread practice, introducing seven open source solutions embraced by millions of .NET developers around the globe.
AJAX Control Toolkit
In a mere five years since the term AJAX was first coined, the practice of using a blend of JavaScript, XML, and asynchronous communications to enhance the user's online experience has grown from one of novelty to necessity. Because Ajax-driven features have become so commonplace, it wasn't long before developers were hard at work creating AJAX frameworks which would make certain functionality and controls such as calendars and client-side form validation readily available.
.NET developers have a particularly rich solution at their disposal in the ASP.NET AJAX Control Toolkit. Jointly developed by Microsoft and the developer community, the AJAX Control Toolkit offers dozens of powerful controls such as a starred rating widget, modal popup window, password strength validator, and a draggable panel.
Check out the project's page on the ASP.NET website for a comprehensive list of control demos, in addition to dozens of tutorials which show you how to take advantage of the toolkit's many features.
ASP.NET MVC
The MVC architecture plays a central role in the modern website development, with solutions such as Ruby on Rails and the Zend Framework using MVC as the fundamental basis for framework-driven development. Thanks to the ASP.NET MVC Framework, .NET developers also have a powerful open source framework solution at their disposal. Supporting MVC tier separation, test-driven development, and a series of best practices typically summarized as the "convention over configuration" paradigm, the ASP.NET MVC Framework offers .NET developers a powerful solution for building complex websites. Further, because it's .NET-based, developers can continue taking advantage of other ASP.NET features such as data caching and forms authentication. You'll also find a number of other projects created to further enhance the ASP.NET MVC Framework's capabilities, including notably MvcContrib, which extends the ASP.NET MVC framework to include features such as UI helpers and model binders.
The ASP.NET MVC Framework website provides newcomers with an impressive array of learning resources, including a video-based tutorial series which guides viewers through the creation of a sample web application.
CruiseControl
The complex nature of today's software has required the software development community to reconsider the development process, introducing practices which both reduce development time and increase quality. This reevaluation has led to numerous best practices which have become widespread within enterprise environments, notably test-driven development and continuous integration. The latter practice attempts to minimize the time and effort involved in integrating a complex project's many pieces by regularly and rigorously integrating the project's components throughout the entire development process. This allows the developers to detect and resolve integration issues quickly rather than allow the problem's complexity to grow over time.
Put into more concrete terms, continuous integration involves automating many parts of the development process, including regularly running tests and rebuilding the project every time a developer commits code to the project repository. Because this level of automation involves numerous moving parts, several solutions which facilitate the creation of a custom continuous integration process have popped up in recent years, including the open source project CruiseControl. Offering tools for automating the build process, browsing the build results, and producing build reports, CruiseControl has become such a popular continuous integration solution that a large extension ecosystem has emerged. Among the dozens of available third-party tools you'll find JCCTray, a utility which runs in your desktop application tray providing instant access to your build server status, and BigVisibleCruise, an "information radiator" which uses visual cues to display the status of all projects managed on the build server.
DotNetNuke
With businesses busy migrating all aspects of their operations online, the need for powerful web-based content management tools stretches far beyond those used to update a website's marketing copy. Indeed, today's website is often a conduit for not only selling a business' products and services, but also managing sales leads and other contacts, maintaining documentation, and serving multimedia such as pictures and video. The most effective way to manage and organize these myriad types of content is through a centralized content management tool. One of the most popular such solutions is DotNetNuke, a powerful .NET-driven content management platform used by hundreds of thousands of small businesses and Fortune 500 corporations alike around the globe.
Although available in several editions, the open source Community Edition offers hundreds of useful features allowing an organization to easily manage company announcements and facilitate forum interaction without requiring any programming knowledge of the staff. Organizations in need of custom features can easily extend the solution as necessary.
We recently devoted an entire article to an introduction of DotNetNuke's key features, so if you'd like to learn more about the project be sure to check it out.
Mono
The 2002 release of .NET Framework 1.0 represented a watershed in the history of software development, as among other features it provided developers with the ability to create applications using any language which supported the .NET Common Language Runtime. Not surprisingly, Microsoft understandably targeted the Windows operating system as the sole platform for running .NET applications, leaving those running Linux or OS X in the dark. Yet because .NET was based on a series of published standards, a group of enterprising developers created the Mono project which brought .NET capabilities to non-Microsoft platforms.
Now fostered by Novell, Mono has grown in size and ambition over the years to not only allow .NET applications to run on alternative platforms, but also support Silverlight on Linux (known as Moonlight), and even build iPhone applications using C# programming (known as MonoTouch).
Be sure to check ut the Mono project website for more information, in addition to links to developer resources such as Mono-specific tools for Microsoft Visual Studio.
NAnt
Even novice Java and .NET developers are well acquainted with the code and compile development cycle, a process which becomes increasingly time consuming and tedious as the project grows in size and complexity. Tired of dealing with a growing jumble of build difficulties, developer James Davidson created Ant, a build tool for Java projects which subsequently became the most diffuse build solution for the Java community. A subsequent tool named NAnt brings similar capabilities to the .NET community.
Using NAnt you can create build scripts which automate all aspects of your .NET project's build process, ranging from executing tests to creating documentation. See this list for a complete breakdown of natively supported tasks.
NHibernate
Despite the ubiquitous use of relational databases within all sectors of software development, the relationship between developer and database is often a rocky one. The friction arises due to the difficulties involved in effectively transforming data passed between the application and database into formats supported by the respective components. Developers have gone to great lengths to create solutions which do much of the heavy transformative lifting for them, notably within object-relational mapping (ORM) frameworks such as Hibernate.
.NET developers have long had a powerful ORM tool at their disposal in NHibernate, a popular open source project which has been actively developed since its initial 2005 release. Capable of removing many of the difficult data-oriented tasks from a .NET developer's TODO
list, NHibernate is not only useful for mapping an application's models to corresponding database tables, but can also generate the table schemas for you based on the application's defined domain models.
The NHibernate website offers an enormous number of useful resources which can help you get started using this powerful ORM solution, including a detailed manual.
Conclusion
If you're a .NET developer
and aren't already taking advantage of the large and growing open source ecosystem, what's holding you back? Take some time to learn more about the aforementioned projects; I guarantee that you'll see an immediate boost in productivity and who knows, perhaps it will even lead to making your own open source project contributions. Are you using a .NET open source project not listed here? Tell us about it in the comments!
相关推荐
“流行的c++语言开源项目”中列举了当下比较流行的c++开源项目,想开源码提升自己的可以看看。
GitHub流行的74Android开源项目。
通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处。.zip,Analysis for Popular & Hot Android open-source Applications & Libraries ...
Mybridge 总结了机器学习、深度学习领域全球流行的开源项目。作者从8800个GitHub的开源项目中筛选出30个2017年最炙手可热项目很多非常非常优秀的项目。值得每一位机器学习者收藏细细学习研究!
非常方便的谷歌开源项目,学习起来难度并不大,对提高实践能力有很大帮助
2.可以使用实验3中通过Hive抽取的软件项目事实表作为输入特征,也可以使用SparkSQL进行事实表构建,抽取尽可能多的软件项目特征 3.划分测试集和训练集,
浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例 各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的...
7个目标文件 摘要:Java源码,初学实例,EJB调用实例 各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java...
GitHub 上 57 款最流行的开源深度学习项目 开源中国社区首页动弹博客翻译资讯活动[登录|注册]GitHub 上 57 款最流行的开源深度学习项目局长
课程分享——深度学习经典论文与开源项目实战,完整版20章,提供全部数据,代码,PPT。 深度学习经典论文解读与项目实战课程旨在帮助同学们掌握当下深度学习领域最核心论文思想及其源码实现。所选论文均是计算机...
为此,CSDN特整理了GitHub上最受欢迎的Android及iOS开源项目,本文详细介绍了20个Android开源项目 GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。更何况,基于不要重复造轮子的原则,...
PHP开源的任务/项目管理系统,时间跟踪和协作开发应用程序。它拥有一个流行的Ajax操作界面,在每个项目上都可以有用户和客户。
Amaze UI 是一个轻量级、Mobile first的前端框架, 基于开源社区流行前端框架编写。为移动而生Amaze UI 采用业内先进的 mobile first 理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。组件...
小米便签开源软件是一款较为流行的备忘录软件,其由Java语言编写,基于Android操作系统进行开发运行和维护
从某种意义上来说这个项目算得上是STL的一个小作品,因为此项目所使用的数据结构和算法全部是由STL所提供的,由于大量使用STL来进行数据处理,以及在图像绘制方面使用了流行的双缓冲技术所以整个系统能够得到极高的...
开源项目-minaandrawos-Algorithms.zip,在Go中实现的流行算法和练习
禅道项目管理软件的主要管理思想基于国际流行的敏捷项目管理方法—Scrum。Scrum方法注重实效,操作性强,非常适合软件研发项目的快速迭代开发。但它只规定了核心的管理框架,还有很多细节流程需要团队自行扩充。禅道...
烧饼-Startbbs的创使人与开发者,目前靠外贸出口业务养家糊口,业余开发STB, 时间有限,但也投入了很多精力和财力在这个项目上,希望这个项目能一直进行下去。在线演示:http://startbbs.oschina.mopaas.com/ ...