net mvc framework first español ejemplo asp .net orm

.net - first - mvc entity framework español



¿Es más fácil aprender y usar.NET ORM framework? (6)

¿Has verificado el ORM de OpenAccess de Telerik ? Recientemente adquirieron Vanatec y su producto ORM. Es compatible con múltiples plataformas de bases de datos (incluido Oracle), soporte LINQ, mapeo directo e inverso, está integrado con Visual Studio, y en mi opinión (me concedo un poco parcial) es un reemplazo adecuado para LINQ a SQL si ese es el tipo de " facilidad de uso "que está buscando.

Nota: Cualquiera que tenga esta pregunta ahora, tenga en cuenta la fecha. Esta pregunta tiene casi 4 años y la información está relativamente desactualizada. En mi experiencia NHibernate ahora es relativamente fácil de usar (con la interfaz fluida), Entity Framework es un contendiente legítimo, y MicroORMS como Dapper y Massive se están haciendo muy populares.

Estamos reescribiendo una de nuestras aplicaciones web principales y finalmente obtuve todo lo claro de la administración para reemplazar el horrible enredo de procedimientos almacenados con un marco ORM para implementar nuestra capa de acceso a datos.

Hurra para mi. Ahora tengo que elegir uno.

He jugado un poco con lo siguiente

Ahora sé que NHibernate es la verdadera opción de Alt.Netty, pero el problema es que estoy trabajando con contratistas que, hasta donde sé, nunca han oído hablar de él, y NHibernate tiene una reputación de tener una curva de aprendizaje bastante amplia. Subsónico, mientras tanto, parece ser un enfoque mucho más directo. También estoy al tanto del Marco de Entidades, pero desconfío de su recepción ''meh'' y de Linq para Oracle, pero desconfío de que apenas haya escuchado nada al respecto.

Entonces las preguntas son:

  1. ¿Hay más marcos que debería considerar?
  2. ¿Cuál recomiendan para mi situación?

Algunas consideraciones más:

  • Cuando digo que he jugado un poco con estos frameworks, lo digo en serio. Los configuré y los utilicé para extraer algunos datos para asegurarme de que todo funciona. Esa es la extensión de eso.
  • Esta es una base de datos Oracle (como habrás adivinado a partir de la inclusión de Linq2Oracle)
  • Como se trata de una reescritura, la base de datos ya existe y tiene un esquema estable
  • No estoy demasiado preocupado por el rendimiento. Nuestra aplicación generalmente sirve como mucho un par de personas a la vez.
  • Ustedes son los que van a tener que responder el torrente de preguntas que voy a tener

Me inclino por Subsonic, pero tengo curiosidad por saber qué dirán las personas.


CoolStorage.NET es mi recomendación. Si estás atrapado haciendo .NET es la solución completa de la característica más simple.


Bueno, el problema cuando se considera un ORM es

  • encontrando buena información al respecto. Ejemplos, materiales de aprendizaje.
  • ¿lo usan suficientes personas (es el producto maduro)? Cuantas más empresas lo usen, más probable es que se hayan encontrado los errores.

Cuando miro el mercado de ORM para .Net, estoy encontrando más y más material en NHibernate

Enlaces a material útil sobre Nhibernate <- Videos, herramientas y mejores prácticas

Castle está construido en la parte superior de NHibernate (está utilizando el patrón Active Record)

Obtenga un google para ver si los ORM tienen alguna herramienta que lo ayude a desarrollarse más rápido.

  • Telerick dice que viene con integración de VS
  • Nhibernate tiene un par de herramientas para aplicar ingeniería inversa a un DB en clases, también hay NHProf (no gratuito) que supervisa el SQL entre NH y SQL.

si no está en los archivos de mapeo XML, vea si puede encontrar mapeos Fleunt. Lo que debería significar comprobar el tiempo de compilación (algunas personas encuentran que es más fácil depurar / refactorizar el código)

nhibernate fluido

HTH

Huesos


NHibernate te permitirá desacoplar las entidades de tu dominio de tu capa de datos. Lo hace con los archivos de mapeo XML para describir la relación, y Castle DynamicProxy utiliza las propiedades mágicas que la carga lenta.

NHibernate está varias generaciones por delante de los demás en términos de rendimiento, flexibilidad y capacidad de configuración. Sin embargo, como dijiste, es complejo. SubSonic es muy directo, pero básicamente genera clases proxy estáticas basadas en su base de datos, por lo que realmente no tendrá la RM fuera de ORM. IMO SubSonic, L2S y Castle ActiveRecord son todos generadores DAL, no ORM.

IMO todo depende de tus necesidades. Si está hablando de 2 niveles, entonces opte por uno de los generadores DAL. Le hará avanzar más rápido, y su modelo probablemente no sea tan complejo que no pueda generarlo desde su esquema db. Si tienes n-tier, recomendaría NHibernate. Claro, la curva de aprendizaje es más alta (no es ciencia espacial, pero tampoco es un botón), sin embargo, en realidad puede manejar el trabajo que necesitas, y si usas uno de los otros, terminarás haciendo una gran cantidad de cosas de todos modos de todos modos.


Yo reconsideraría su evaluación de Entity Framework de Microsoft. Puede usar el proveedor DotConnect de DevArt para Oracle como solución hasta que Oracle libere su propio proveedor en el futuro. Al utilizar Entity Framework, no usaría "Linq to Oracle", sino "Linq to Entities", que es una solución mucho mejor.

He obtenido MUY buenos resultados de mis pruebas de operaciones de lectura utilizando Entity Framework, donde las operaciones de lectura eran ~ 700% más rápidas que su equivalente SqlCommand / SqlDataReader.


Checkout XmlDataMapper un ORM libre simple (Licencia LGPL) que deja una huella de memoria baja en comparación con los otros gigantes. El proyecto de ejemplo proporcionado debe ser lo suficientemente bueno para comenzar.

Para integrar XmlDataMapper todo lo que necesita hacer es 4 pequeños pasos

  1. Crear una Entidad comercial / DTO para las tablas
  2. Cree un archivo XML con la información de asignación entre la tabla y el DTO.
  3. Especifique el archivo DTO y xml en la configuración.
  4. Simplemente llame al DTOConverter.Convert (dataReader) y a otros métodos para convertir su registro de base de datos a DTO / Business Entity