Pregunta

Quiero desarrollar una aplicación empresarial que incluye una capa WindowsForms presentación, componentes de nivel medio para la lógica de negocio y acceso a datos y una base de datos del servidor MsSQL. componentes de nivel medio debe contener algunos objetos de negocio y serán llamados de capa de presentación utilizando .NET Remoting. Whitch es la mejor manera (y por qué) para hacer referencia a estos objetos de negocio de la capa de presentación?

  • A) Crear proyecto de biblioteca de clases, la implementación de los objetos de negocio. Hacer referencia a este proyecto a partir de la capa de presentación y la capa de nivel medio.
  • B) Crear proyecto de biblioteca de interfaz que define los objetos de negocio. Crear proyecto de biblioteca de clases de implementación de interfaces. proyecto de biblioteca de clases de referencia de la capa de nivel medio. Referencia interfaz de proyecto de biblioteca de capa de presentación.
  • C) Crear proyectos de biblioteca de clases separadas para de nivel medio y la capa de presentación. Proyecto de referencia correspondiente de la capa de presentación.
¿Fue útil?

Solución

Probablemente hay ningún corte claro y respuesta definitiva a esta, depende de lo que está haciendo.

  • a menudo será lo suficientemente bueno en muchos casos. Para proyectos pequeños '' con una única aplicación en realidad no hay ninguna razón por la que no sólo puede hacer referencia a la biblioteca de objetos de negocio directamente desde las dos capas de interfaz de usuario y BL. Es sin duda el más simple, ya veces la simplicidad es mejor.

  • B es, probablemente, el "mejor", se le abstrayendo sus implementaciones reales de distancia por lo que los cambios futuros son posibles sin contratos que se rompen, y la unidad de pruebas es más fácil si usted tiene interfaces. La otra ventaja de esto es que usted no lo encontrará muy difícil de pasar de B a C en el futuro si lo considera necesario.

  • C es algo excesivo en la mayoría de los casos. Dicho esto, en proyectos más grandes puede que le resulte necesario. He trabajado en grandes aplicaciones cliente-servidor N-capas que han tenido hasta tres conjuntos independientes de objetos de datos. Un conjunto utilizado en la capa de DA para mapear y almacenar en la base de datos. Un segundo conjunto en las capas de lógica de negocio y de red para el procesamiento y que pasa a través de la red, y el tercer conjunto en el cliente para la unión a la interfaz de usuario. Vale la pena considerar el uso de interfaces para C así debido a las ventajas de abstracción.

Con todo, sin saber exactamente su dominio de aplicación o alcance -. B es un buen punto de partida

Otros consejos

he visto los tres enfoques funcionan bien.

Lo que a veces puede ser bueno es empezar con A, entonces a medida que aumenta la complejidad mueven a B, entonces C

En los proyectos simples "objetos de negocio", el puede ser incluido en el mismo proyecto que las capas de presentación y persistencia - aunque pueda parecer una herejía, la definición de los objetos utilizando diferentes espacios de nombres puede proporcionar suficiente separación entre las "capas".

Es posible que desee reconsiderar el uso de .NET Remoting - WCF es, de lejos, una mejor tecnología y mucho más fácil de usar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top