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++”则清晰地指示了文档内容的重点是围绕着C++语言展开的。 关于...
在提供的"20个Java开源项目源码下载"压缩包中,包含了多个知名的Java项目,这些项目可以帮助开发者深入理解Java编程、软件架构以及特定领域的最佳实践。以下是这些项目的简要介绍: 1. **ExoPlayer-r2.18.5.zip**:...
在Android开发领域,GitHub是一个宝贵的资源库,汇聚了大量的开源项目,极大地推动了开发者的创新和学习。以下是一些流行的Android开源项目,它们提供了各种功能和解决方案,帮助开发者提高效率,增强应用体验。 1....
"liugh-openResources"这个文件名可能指的是一个开源项目或资源库,其中包含了与Java Web相关的各种组件、文档、示例代码和配置文件。这个压缩包可能包含了一个完整的Web项目实例,或者是一些用于教学或参考的开源...
在Java的生态系统中,存在诸多著名的开源项目,这些项目各有特色,为Java开发人员提供了丰富的开发工具和应用架构。以下是对一些Java著名开源项目的详细介绍,它们分别在不同的开发领域中扮演着重要角色。 首先,...
【标题】"经典开源项目1"揭示了我们讨论的主题,这是一个关于开源软件的集合,特别是针对安卓平台。开源项目在IT行业中占据着重要的位置,它们促进了技术创新,为开发者提供了学习和改进现有技术的机会。这些项目...
这个开源项目为开发者提供了丰富的工具和API,便于进行二次开发,实现高效的企业级流程自动化。在这个sunny-activiti-master压缩包中,我们很可能是得到了一个基于Activiti7的工作流项目的源代码,下面将详细介绍...
QQ开源项目Carlos_V是一个由开发者Carlos.V在博客园分享的Android项目,主要目的是为了展示如何对QQ客户端进行一些定制化开发或修复可能存在的问题。这个开源项目为其他开发者提供了一个学习和研究QQ客户端内部机制...
7. 开源文化:开源项目意味着源代码公开,鼓励社区参与开发和改进。jandre-dockerpc的开源性质让其他开发者可以学习、修改和贡献代码,促进了技术共享和创新。 综上所述,“jandre-dockerpc”项目融合了Docker容器...
标题 "开源项目-dotnet-cli.zip" 提到的是一个与 .NET 开源命令行接口(CLI)相关的项目。.NET CLI 是微软开发的用于构建、管理和部署 .NET 应用程序的工具集,它支持跨平台操作,可以在 Windows、Linux 和 macOS 上...
"wxyyxc1992"分享的开源项目"Awesome-Links.zip"是一个集合了各种优质资源的仓库,特别关注的是Go语言的Gopher图片链接。Gopher是Go语言的吉祥物,以其可爱的形象深受程序员喜爱。这个压缩包中的"Awesome-Lists-...
"golang值得学习的优秀开源项目4合1"正是这样一份资源,它包含了四个精选的Go语言开源项目,旨在帮助新手深入了解Go语言的实践应用。 1. **项目一:Beego** Beego是一个快速开发Web应用的Go框架,它借鉴了Python的...
这个开源项目被称为"embbnux-kails",显然受到了Ruby on Rails的启发,Rails是Ruby语言的一个著名框架,以其“约定优于配置”(Convention over Configuration, CoC)和“开发人员快乐原则”(developer happiness)...
在J2EE开发中,许多开源项目被广泛应用于构建企业级应用,以提高开发效率和系统性能。以下是一些常用开源项目的详细介绍: 1. **持久层框架**: - **Hibernate**:这是一个强大的ORM(对象关系映射)框架,允许...
【oschina_git_java 开源项目】是一个集合了Git与Java技术的开源项目,它主要针对的是软件开发领域的版本控制和编程语言应用。Git是目前最流行的分布式版本控制系统,而Java则是广泛使用的编程语言,尤其在企业级...
【开源项目-kataras-iris.zip】是一个包含开源项目源代码的压缩文件,重点在于它提到了Gorilla Mux与Iris web框架的集成。Iris是一个由希腊开发者Kataras创建的高性能、功能丰富的Go语言Web应用框架。Gorilla Mux是...
虽然这个特定的开源项目由于上传问题无法获取,但我们可以深入探讨一下SSH框架本身以及它们在实际开发中的应用。 1. **Struts框架**: Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它...
描述中的“不是同一个项目,内涵多种项目”意味着这个压缩包可能集合了多个独立的开源项目,涵盖了不同的领域,如内容管理系统(CMS)、电子商务平台、博客系统、论坛软件、社交网络等。同时,“一目十行---保证头疼...
【描述】:“Small GraphQL server with golang and MongoDB”指出,这个开源项目专注于创建一个轻量级的服务器,它利用Golang作为后端开发语言,MongoDB作为数据存储解决方案。MongoDB是一款流行的NoSQL数据库,以...
"rxjava+retrofit开源项目"则揭示了该项目在实现上采用了RxJava和Retrofit这两个流行的Android开发库,它们分别用于处理异步操作和网络请求,为项目的高效运行提供了基础。 【标签】"安卓gank"是关键词,用于搜索和...