2009-03-05 7 views
7

Digamos que está en una tienda de TI que no permite ninguna herramienta ORM de ningún tipo. No quieren comprar uno, y tampoco pueden usar una solución de código abierto.Herramienta de Orm no permitida: ¿Qué haces?

¿Qué harías? Renunciar a un modelo de dominio real y trabajo centrado en la mesa? Craft posee DAL?

+0

Estoy interesado, ¿cuál es el motivo para no permitir el uso de ORM? – Ree

+0

He hecho un decreto similar en el pasado, sí, hay muchos aspectos positivos para ORM, pero los patrones de ORM como el de ActiveRecord pueden ser eficientes y llevar a consultas de abuso de recursos o pérdidas completas de eficiencia. – David

+0

Supongo que no quieren usar algo que no es compatible, pero tampoco quieren tener una solución comercial. –

Respuesta

9

Opciones:

  1. rodar su propia
  2. Quit
  3. Usar una fuente abierta de todos modos sin decir a ellos, ellos muestran el prototipo cuando está trabajando bien, a continuación, pedir a reconsiderar código abierto.
+5

# 3 - el tipo de personas que limitan el uso de herramientas son probablemente el tipo de personas que despiden a sus empleados por incumplimiento de la regla. – MrChrister

+1

énfasis en la opción n. ° 2, a menos que tengan una maldita buena razón para no permitirte –

+2

n. ° 3, luego n. ° 2 si no te han despedido ya. –

4

me enrollo mi propia DAL, usando algo en la línea de Generic DAOs abstraer de una manera tal que el resto de mi código no está estrechamente unida con embargo Estoy llegando a los datos.

Eso hace que sea fácil cambiarlo por un ORM si aparecen más tarde.

3

crear su propia DAL, como lo hicimos en el tiempo atrás, hace largo tiempo ... 2004.

+0

No creo que sea un buen argumento. ¿Supongo que también abogas por utilizar .Net 1.1 como lo hicimos en 2004? –

+1

Es de sentido común; Si no puede usar una herramienta comercial, escriba la suya. las buenas prácticas de programación no deberían limitarse a las herramientas que tiene. Las herramientas ahorran tiempo y dinero, pero si no puede tenerlas, no haga las cosas mal o renuncie para tomar represalias. – MrChrister

+0

@Jason - Si le dijeron que no puede usar .Net 2.0 y superior, sí, esperaría eso. –

0

preguntar por qué de ORM no están permitidos, lo que constituye como un ORM, y luego decidir desde allí 1 de dos posibilidades:

  1. trato
  2. No hay trato (qUIT)
+0

Pienso 2 sería más divertido si dijo "No hay trato" – Powerlord

+0

Estoy de acuerdo con su opinión y lo arreglaron. – David

+2

¿No está dejando de ser un poco infantil? Crea el tuyo propio si eres programador. – MrChrister

12

En sentido estricto son sus opciones:

  1. No utilice una base de datos relacional
  2. No utilice un lenguaje de programación orientada a objetos

De lo contrario algún tipo de solución ORM es inevitable (incluso si sacas su cuenta, su todavía una capa ORM sencilla) .

+3

Usted es taaaaan derecha !!! La O en ORM es la primera O en OOP. La R en ORM es la primera R en RDBMS. Y el M es el mapeo. –

-1

Primero, de todo, encontraré la respuesta REAL para la pregunta "¿Por qué ORM de código abierto no es el caso?"

Si esto se debe a una persona que ha tomado esta decisión 1) tiene un miedo en la desaceleración del rendimiento - demostrará que no habrá ningún problema con ella. 2) si es por temor a que "no podemos permitirnos una herramienta más, porque el sistema ya es complicado", explicará por qué ORM acelera mi velocidad.

Creo que otras decisiones (codificación centrada en la tabla, propio DAL) - no son soluciones hermosas. Creo que si no se le permite usar ORM para su trabajo, no sé ... Dejaría ese proyecto, si fuera usted.

+0

¿Por qué todos están renunciando? ¿No es un poco de rabieta? – MrChrister

+1

¡Mantendré mi trabajo pero saldré de alguien más en cualquier momento! – joeforker

2

En primer lugar, es absolutamente retardado que ni siquiera puede usar uno de código abierto.

Si tiene que hacer su propia versión, no es un gran problema. Todavía puedes tener modelos de dominio bien. Es posible que le resulte más fácil si modela cada registro y luego crea los modelos de dominio para cargar datos a partir de ese formato intermedio.

5

Existen tres posibilidades:

  1. Sus jefes no entienden los beneficios de usar un ORM.
  2. Tus jefes están haciendo las cosas como siempre han hecho y no considerarán cambiarlas.
  3. Sus jefes tienen razones válidas para no elegir un ORM.

Es muy probable que sea una combinación de estas tres cosas. Probablemente tengan inquietudes válidas que puedan curarse mediante una mejor comprensión de los ORM. Mi consejo es intentar venderlos en ORM. Encuentre un pedazo de código particularmente desagradable que pueda ser curado usando un ORM y haga un prototipo que muestre cuánto se podría simplificar ese código. Además, esté dispuesto a comprometerse.

Si no están dispuestos a cambiar de tema, debe preguntarse si realmente es un lugar donde desea trabajar. No porque no te permitan usar ORM (que probablemente podrías vivir sin él), sino porque no te van a escuchar. No siempre se puede salirse con la suya, pero debe tener información sobre el proceso de desarrollo.

+0

¡Sí! Tener un trabajo para vivir, no vivir para ti. – MrChrister

4

Si se trata de que la empresa sea demasiado barata para comprar una, escriba la suya y, al final del proyecto, muéstreles el costo en términos de tiempo. (Supongo que están en contra de las alternativas gratuitas, en principio)

Si se trata de rendimiento, es posible que tenga que comprobar si tienen algo que decir.

Si les preocupa que agregue una capa de complejidad que otros desarrolladores tendrán que aprender, entonces muestre algunos ejemplos de código simplificados con el ORM.

Si es porque la aplicación ya está muy centrada en las tablas, también tendrá que pensar si agregar un ORM mejorará las cosas o simplemente agregará mucha complejidad innecesaria de mapeo.

(Ah, y leer esto: http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx)

+0

+1 para el enlace Vietnam of Computer Science. – joeforker

9

Sobre la base de su nombre de usuario, diría "utilizar LINQ." Está integrado en .NET y no es un ORM (estrictamente hablando).

2

Vea lo que piensan sobre iBatis (http://ibatis.apache.org/) que no es un ORM pero le ayuda a obtener objetos de las consultas de la base de datos sin magia indescriptible de ORM, aunque muchos XML.

¿Cómo están haciendo las cosas ahora?

6

Si realmente no puede usar uno de los ORM existentes, entonces no le aconsejo que cree el suyo propio. Los ORM cultivados localmente tienden a ser bestias a medio implementar, mal diseñadas y llenas de verrugas que parecen ayudar durante los primeros seis meses, y luego se convierten gradualmente en las mayores sugestiones de tiempo del proyecto.

Puede prescindir de un ORM si aplica patrones como "RowDataGateway" o "TableDataGateway" de Fowler's Patterns of Enterprise Application Architecture.

Igual terminará creciendo su propia capa de aislamiento para separar su dominio de la base de datos, pero no será tan costoso de crear como rodar su propio ORM.

-4

"ninguna herramienta ORM de ningún tipo. No quiere comprar uno, y tampoco se puede utilizar una solución de código abierto."

Sin ningún tipo ORM O fuente basta con abrir/$$$

Hay versiones libres de grandes herramientas ORM:?

+1

-1. Lea la pregunta – MrChrister

+0

He leído no solo la pregunta sino también la primera línea. Siento algún conflicto en las dos primeras oraciones. "No hay ORM de ningún tipo" O simplemente no "de código abierto o comprar uno"? Tal vez pueda usar una fuente no abierta pero libre ORM. – boj

1

rodaría mi propia solución, probablemente utilizando algún tipo de herramienta de generación de código. Técnicamente, si traduces los resultados (ya sean lectores de datos, tablas, conjunto de registros o lo que sea) a tus objetos, tienes un pequeño mapeador o/r, muy poco pero aún ... Supongo que es una cuestión de definición.

Mi objetivo principal es evitar repetir CRUD en mi código, lleva tiempo, es aburrido y es una fuente de defectos.

Como se indicó: si no se requiere una base de datos relacional, siempre se puede ir con alguna base de datos de objetos. Pero son mucho más infrecuentes y si su jefe está en contra de Orm: es poco probable que acepte eso.

Cuestiones relacionadas