NET
O que um ORM?
Voc que desenvolvedor de aplicaes orientadas a objetos, sabe que de alguma maneira precisa armazenar e recuperar informaes em bancos de dados relacionais. Um ORM (Object-Relational Mapping), nada mais do que um Framework ou um conjunto de classes que permite que voc faa este trabalho sem precisar escrever cdigos de conexo com o banco, querys de SQL a todo momento, preservando as caractersticas de orientao a objetos da linguagem face natureza relacional dos bancos de dados atuais.
Exemplo de um cdigo em .NET usando ORM: Usuario.AddNew(); Usuario.FirstName = this.txtFirstName.Text; Usuario.LastName = this.txtLastName.Text; Usuario.Save(); Exemplo de um cdigo em.NET usando classes nativas do .NET Framework: strConn = "string de conexo aqui"; SqlConnection objCon = new SqlConnection(strConn); SqlCommand objComand = objCon.CreateCommand(); objComand.CommandText = "insert into Usuario (FirstName , LastName ) values (@FirstName , @LastName )"; objComand.CommandType = CommandType.Text; objComand.Parameters.Add("@FirstName ", txtFirstName.Text ); objComand.Parameters.Add("@LastName ", txtLastName.Text ); objComand.ExecuteNonQuery(); importante ressaltar que dificilmente voc achar uma soluo que substitua 100% das classes do ADO.NET, eventualmente voc ser obrigado a fazer uma gambiarra no meio do caminho para obter determinados resultados. No entanto, seguramente os melhores Frameworks resolvero mais de 95% das suas necessidades.
DataBind a .Net controls Capacidade de fazer transaes Performance Facilidade de manuteno do cdigo (incluindo a a inteligibilidade do mesmo)
Normalmente, o frameworks que existem atuam como geradores de cdigo criando classes baseadas nas suas tabelas de banco de dados. Existem vrios frees e pagos. Os frees normalmente carecem de suporte e documentao, os pagos conseguem suprir melhor esta deficincia por um motivo bvio. Os melhores frees so o que possuem amplo apoio da comunidade ou tm um grupo de desenvolvedores bastante ativos distribuindo novos releases num curto espao de tempo. Nota do autor: Estou referenciando os frees como aqueles que voc pode usar sem pagar pela licena de uso. Isso no quer dizer que eles sejam Open Source, Software Livre, GPL ou FreeWare nem nada, ok? No estou entrando neste mrito. Veja no site do produto a forma de utilizao, licenciamento e distribuio de cada um para saber mais.
Produtos Inativos
PRODUTO DotNorm Eldorado.NET JC Persistent Framework ObjectBroker OPF.Net (Object Persistent Framework) ORM.NET Sisyphus Persistence Framework iBATIS.NET NEO SITE VERSO
http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=b03d0b52Verso Beta 0. 8d32-47a3-bdda-d84e23717d7d== http://sourceforge.net/projects/eldorado-net/ http://sourceforge.net/projects/jcframework/ http://sourceforge.net/projects/objectbroker/ http://sourceforge.net/projects/opfnet/ http://www.olero.com/ http://sourceforge.net/projects/sisyphuspf/ http://sourceforge.net/projects/ibatisnet/ http://neo.codehaus.org/ Verso 2.2 Verso 1.0 Verso 1.7 Verso 1.2.7 Verso 1.2 Verso 1.4.2
Verso Beta 0.
Nenhum releas
Produtos Frees
PRODUTO Gentle.NET SITE VERSO CARACTERSTICAS Persistncia, Querys, Cache, Relacionamento.
MyGeneration
http://www.mygenerationsoftware.com/
Verso 1.2
Gerador de cdigo baseado em templates e banco de dados. Os recursos dependem dos templates. Persistncia, Colees, Suporte a alguns bancos, Querys, Configurao rpida, Releases rpidos
Subsonic
http://www.codeplex.com/actionpack
Verso 2.0.1
NHibernate
http://www.hibernate.org/343.html
Verso 1.2
Persistncia, Herana, Relacionamento, Querys, Suporte a vrios bancos, Transaes e muito mais.
http://sourceforge.net/projects/csharpdatatier/ http://www.adapdev.com/codus/
Persistncia, Herana, Relacionamento, Suporte a vrios bancos, Querys, NUnit, WebServices, Colees, Suporte a Nhibernate/Ibatis,Gentle. IDE UML que mapeia para o ORM (Npersist e Nhibernate).
http://www.objectmapper.com/Home/Default.aspx
Produtos Pagos
PRODUTO LLBLGen Pro DataObjects.NE T NDO.NET Nolics.NET SITE http://www.llblgen.com/ http://www.x-tensive.com/Products/DataObjects.NET/ http://www.netdataobjects.com/ http://www.nolics.net/ VERSO Verso 2.0 Verso 3.9 Verso 1.2 Verso 4.2 CARACTERISTICAS
Persistncia, IDE Prpria, Suporte a vrios bancos, Relacionamento, Herana, Colees, Querys. Persistncia, Herana, Relacioname Querys, Suporte a vrios bancos, Transaes, Segurana, Remoting. Persistncia, Herana, Relacioname Querys, Suporte a vrios bancos.
Persistncia, Querys, Colees. Persistncia, Colees, Integrao c VS2003, Foco em outras linguages.
Entity Spaces eXpress Persistent Objects TierDeveloper Genome RapTier Wilson ORMapper for .NET DEV Force
http://www.entityspaces.net/Portal/Default.aspx
Verso 2007
Persistncia, Herana, Relacioname Querys, Suporte a vrios bancos. Persistncia, Colees, Suporte a v bancos, Querys, Transao, DataSo Prprio, SQL CE, LINQ, Gerao de Grids automaticamente. Persistncia, Querys, Colees, Transao.
http://www.devexpress.com/products/net/xpo/index.asp
Verso 2007.1.3
Persistncia, Herana, Relacioname Suporte a vrios bancos, Transae Ajax, WebServices, Grids. Persistncia, Querys, Suporte a SQ Oracle e DB2., Integrao com VS.N Cache, Transaes. Persistncia, Herana, Relacioname Suporte a vrios bancos, Transae Grids.
http://www.ideablade.com/
Verso 3.5
Persistncia, Herana, Relacioname Suporte a vrios bancos, WebServic Integrao com o VS, Transao, Segurana.
Concluso
Entre os Frees, e destaco os seguintes projetos que merecem um acompanhamento: NHibernate SubSonic Codus ObjectMapper
O NHibernate Subsonic so os que tm mais futuro, na minha opinio, pelo apoio da comunidade que desenvolve os projetos. Baseado no Hibernate do JAVA, o NHibernate Framework extremamento completo e poderoso, no entanto, eu particularmente no gosto de ficar configurando arquivos em XML para ele funcionar, alm dele ser um pouco mais complicado de ser mexer do que os outros. Existem alguns geradores de cdigo como o prprio MyGeneratiom e Codus que facilitam o trabalho de configurao do XML. O SubSonic tem a grande vantagem de a configurao ser quase nula. Ele l o schema do banco de dados e gera as classes de mapeamento quando voc d o primeiro build no projeto. O releases so muito rpidos permitindo que diversos bugs sejam corrigidos e as melhorias sejam implementadas num curto espao de tempo. Eu gostei muito de mexer nele, realmente muito simples. S precisa amadurecer um pouco mais. Entre os Pagos, os seguintes projetos se destacaram pelo custo/benefcio. - Entity Spaces - LLBLGen Pro - eXpress Persistent Objects Eu adquiri uma licena do Entity Spaces e est valendo o investimento. Estou em fase de aprendizado e implantao ainda. Eu particularmente gosto da idia de se pagar por um produto destes por conta da documentao que muito completa e do suporte que rpido. Enfim, escolha um deles, e divirta-se.