Bem, irei iniciar uma série de artigos sobre como desenvolver em .NET (mas especificamente, em C#) usando somente (ou quase) ferramentas e frameworks open source.

Isto quer dizer, não usar o Visual Studio, nem SQL Server tampouco as versões Express destes softwares. Escolhi alguns destes softwares de acordo com o seguinte critério: ser Open Source.

Bem, iniciaremos essa série (?!?!) mostrando algumas ferramentas e frameworks open-source para iniciar com o desenvolvimento, principalmente voltado para a web. Alguns desses frameworks poderão também ser usados para aplicativos desktop, mas este não será o meu foco (não por enquanto).

#Develop ( SharpDevelop )

site: http://www.icsharpcode.net/OpenSource/SD/Default.aspx

Nosso primeiro software é esta IDE para C#, VB.NET e Boo. É licenciada sobre a LGPL e é muito parecida com o Visual Studio.NET, copiando muitas coisas da interface deste. Trabalha com .NET 1.1 e 2.0 (não sei direito se aceita o novo .NET 3.5). Permite a criação de projetos console, Windows e Web, apesar de não permitir visualizar o projeto web com o comando Run na própria IDE da mesma maneira que o concorrente proprietário (VS.NET).

O SharpDevelop tem um designer do tipo arrastar e soltar, que facilita a criação de aplicações visuais. 

NHibernate

site: http://www.hibernate.org/343.html

O NHibernate é um port em .NET do consagrado Hibernate para Java, o framework para persistência de dados. Dada uma descrição em XML para as suas entidades e relacionamentos, NHibernate automaticamente gera SQL para carregar e salvar os objetos.

É o principal framework para persistência de dados open-source para .NET, apesar de não ter tantos recursos como o Hibernate para JAVA. É mantido pela RedHat, que também mantém o Hibernate para Java e outros tantos produtos open-source.

Castle Project

site: http://www.castleproject.org/

O Castle na verdade é um conjunto de frameworks para .Net para desenvolvimento Web. Esse pacote compreende os seguintes frameworks:

  • Monorail: Framework web MVC inspirado no ActionPack do Ruby On Rails. O seu objetivo é facilitar, simplificar e agilizar o desenvolvimento web em .Net . 
  • ActionRecord:Framework ORM (Object Relational Mapping, ou Mapeamento Objeto-Relacional) para persistência de dados. É construído sobre o HNibernate e baseado no design pattern Active Record. Juntamente com o Monorail, é possível utilizar o recurso de scaffolding, recurso importado também do Ruby on Rails, que cria páginas CRUD (Create, Retrieve, Update and Delete) sem esforço.
  • MicroKernel e Windsor: O MicroKernel é um lightweight framework para DI (Injeção de Dependência). O Windsor agrega mais recursos ao MicroKernel, tornando-o mais adequado para aplicações do tipo enterprise.
Spring.NET
Port de outro produto líder do mundo open-source, o Spring para Java, O Spring.NET é um framework que têm por objetivo tornar mais fácil o desenvolvimento de aplicações enterprise. Compõe o Spring.NET classes para DI (Injeção de Dependência), AOP (Programação Orientada a Aspectos), integração com frameworks de persistência de dados (como Hibernate e ADO.NET), Services e Testes (com o NUnit). 
Todas estas ferramentas serão usadas em uma aplicação exemplo, a ser desenvolvida por mim e ter seu desenvolvimento mostrado aqui no blog, de forma a mostrar como integrar esses recursos numa aplicação geralmente dominada por aplicações proprietárias. Com certeza, surgirão pelo caminho outras ferramentas, também open-source, e irei atualizando este post e comentando-as assim que elas forem surgindo. Mas para este post, creio que estas ferramentas sejam o primeiro passo.Â