2009-06-16 9 views
27

Nos estamos preparando para comenzar la remodelación de una aplicación empresarial interna de gran antigüedad. Hemos decidido usar ASP.NET MVC, pero bajo consideración es a qué asignación relacional de objetos (ORM) elegir. Por supuesto, hay una gran cantidad de implementaciones ORM de código abierto y pago disponibles. Sin embargo, parece tener la mayor cuota de conocimiento, mientras que Entity Framework es el nuevo calor de Microsoft.Selección de ASP.NET MVC y ORM

Mientras investigamos y jugamos con ambos quisimos explicar a la comunidad qué ORM (NHibernate, Entity Framework u otro) prefieren y por qué.

Preguntas Stackoverflow algo similar

Lectura .NET ORM adicional

+0

Sin ánimo de ofender, pero parece que esto se ha preguntado antes: http://stackoverflow.com/search?q= .net + orm. http://stackoverflow.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net-closed se cerró como un duplicado. –

+0

Wow, no sé cómo no encontré esa pregunta cuando estaba buscando. Tanto Google como la búsqueda SO me fallaron. No se ofende en el cierre ya que de lo contrario no habría hecho la pregunta. :) – ahsteele

+0

Como estoy de acuerdo en que probablemente debería cerrarse, ¿es mejor eliminar la pregunta o votar que se cierre? – ahsteele

Respuesta

13

Usted debe echar un vistazo a Sharp Architecture un marco de aplicación ASP.NET MVC que utiliza NHibernate.

He usado algunos O/RM en los últimos años y no hay forma de elegir nada más que NHibernate.

  1. Es el más maduro.
  2. Tiene un gran conjunto de características.
  3. Tiene una buena comunidad detrás.
  4. Tiene algunos proyectos auxiliares fantásticos como Fluent NHibernate.

No sé qué más información la gente podrá darle una y otra vez en las preguntas que ha vinculado.

+2

Puntos de enlace a un dominio no existente – Storm

+0

@Storm Gracias, parece enlace de podredumbre. He actualizado la url para que apunte al repositorio de github. –

2

Crazy talk answer: none.

Esto no quiere decir que los ORM no son piezas increíbles de tecnología cuando se usan correctamente. Pero en 2011, se están convirtiendo rápidamente en el martillo universal donde no todos los problemas son clavos. Y están sucediendo muchas cosas en los ORM modernos que, especialmente para las personas que no están familiarizadas con ellos, pueden confundir las cosas más que ayudar. O, a veces, las cosas son lo suficientemente simples como para que SQL directo sea una mejor alternativa. No importa cuán bueno sea el ORM, la abstracción tendrá una fuga de en algún momento.

La otra cara de las cosas a mirar es todo el movimiento NoSQL. La tecnología aún es un poco nueva, pero para los nuevos trabajos es una estrategia de acceso a los datos que uno debe considerar, ya que se necesita mucho para crear su aplicación.

+3

El OP indicó claramente que estaban rediseñando sus aplicaciones empresariales, sin comenzar a aprender algo. Y cuando quiere persistencia, la mayoría de las veces ORM es la solución más fácil. –

0

Respuesta corta: uso los dos (yo realmente uso los dos) ...

Con ORM existen múltiples posibilidades, todo depende de lo que desea.

Como un verdadero asignador de ORM Se lo recomiendo encarecidamente NHibernate y Fluido NH asignaciones. Necesita mucha investigación para armar una arquitectura agradable, pero entonces nada se interpone en su camino. Con compromisos mínimos, obtienes flexibilidad real.

EF6x (el núcleo no es prod.-listo en mi humilde opinión) se llama ORM, pero lo que genera está más cerca de un DAL. Hay algunas cosas que no puedes hacer de manera efectiva con EF6. Aún así, esta es mi herramienta favorita para un modelo de lectura, mientras que sí lo combino con NHibernate (donde NH uso para un modelo de DDD/escritura).

Ahora a rendimiento - siempre pro y contras. Si profundizas en ORM arquitectura (mira mi artículo: avoid ORM bad habits) entonces encontrarás intuitivamente las formas de hacerlo más rápido. Aquí está mi otro artículo sobre cómo hacer EF6x 5x más rápido (al menos para situaciones de lectura): EF6.x 5x faster