EF vs. NHibernate [cerrado]

8

En los últimos 2 años desde que comencé a escribir aplicaciones empresariales (antes de que hiciera la programación de sistemas front-end de muy alto nivel o de muy bajo nivel), aprendí conjuntos de datos, linq to sql y ahora framework de entidades. Lo más lógico a considerar es NHibernate.

Las razones por las que finalmente terminé en EF son: (1) tiene el mejor soporte de diseñador y (2) es el más compatible con Microsoft.

Las razones (estos tienen elementos de suposición) Me interesa NHibernate son: (1) puede que no sea superada por una cosa totalmente diferente tan rápido como MS desplaza las tecnologías de acceso a datos (2) Parece que no es el frente. o segundo a la herramienta de ejecución frontal por lo que hace y (3) Parece ser estable y rastreable en el tiempo bastante.

¿Alguien ha publicado un compario de los dos? ¿Es uno mejor que otro para ciertos tipos de arquitecturas? ¿O es solo una cuestión de estilo y preferencia?

    
pregunta Aaron Anodide 19.08.2011 - 22:26

2 respuestas

6

En este punto, creo que las principales (¿solo?) ventajas que NH tiene sobre EF son algunas de gran precisión estrategias de recuperación . En lugar de cargar con pereza o cargar todo con entusiasmo, NH te ofrece algunas opciones intermedias muy agradables.

Habiendo dicho eso, nunca he necesitado ese nivel de control sobre el acceso a mis datos, por lo que la simplicidad de EF ha hecho que la elección sea fácil.

Tenga en cuenta que el archivo del diseñador de EF con el que es tan agradable trabajar puede convertirse en una pesadilla en el control de código fuente; no se fusiona bien, o en absoluto. Asegúrate de comprobarlo con un bloqueo explícito cuando necesites cambiar cosas.

    
respondido por el Adam Rackis 19.08.2011 - 23:22
3

Estamos realizando un proyecto en el que el arquitecto eligió NHibernate sobre EF. Me hubiera gustado que la elección hubiera sido a la inversa, ya que el requisito de editor-suscriptor estaba presente desde el principio.

Si planea usar sync framework , vaya con EF, ya que NHibernate no puede hacer frente a las actualizaciones (a las columnas que especifican de dónde provienen los datos, quién las cambió y es mi copia la más reciente) que se llevan a cabo entre bastidores.

Si necesita replicar datos de una base de datos a otra (y mantener las claves primarias iguales), la función session.Replicate está mal documentada y parece que toma más tiempo que una copia directa.

    
respondido por el Tangurena 19.08.2011 - 23:04

Lea otras preguntas en las etiquetas