2010-06-07 23 views
6

Como he estado aprendiendo sobre el desarrollo de software en los últimos 2 años, cuanto más aprendo, parece que más áreas grises me encuentro. Un área gris con la que tengo problemas ahora es intentar decidir cuántas capas debe tener una aplicación. Por ejemplo, en una aplicación MVVM de WPF, ¿qué moda de capas está bien? ¿Está lo siguiente demasiado separado? Cuando menciono capas, me refiero a crear una nueva biblioteca de clases para cada capa.¿Cuántas capas son demasiadas?

  • Presentación (Ver)
  • Ver Modelo
  • Capa de negocios
  • de acceso a datos
  • modelo de capas
  • capa Utilidad

O para una aplicación que no es MVVM es esto también ¿apartado?

  • presenation
  • negocios
  • de acceso a datos
  • modelo de capas
  • capa Utilidad

es aceptable para funcionar capas juntas y simplemente crear carpetas para cada capa? Cualquier coloración de esta área gris sería apreciada.

+1

Otra pregunta que puede hacerse es, ¿cuántas capas son muy pocas? –

+1

Wiki de la comunidad? No hay una respuesta "correcta" para esto ... ¿cómo es eso para el área gris? :) –

+9

la respuesta es, por supuesto, 42 –

Respuesta

1

Layered Architecture: Este artículo describe una arquitectura de ejemplo concreta para .NET/WPF Rich Client Applications. Además, la arquitectura muestra en qué capa se encuentran los participantes del patrón Model-View-ViewModel (MVVM).

2

La respuesta es, depende. En primer lugar, una biblioteca de clases separada no siempre significa una "capa" separada. Una capa es una agrupación conceptual de funcionalidades relacionadas, que puede o no manifestarse en un solo ensamblaje.

Cuántas capas crea realmente depende de su problema. Tradicionalmente, una aplicación WPF MVVM contendrá al menos las 3 capas (Modelo, Vista, Modelo de Vista) pero realmente puede variarse. Muchas veces veo las Vistas y los Modelos de Vista en el mismo conjunto y los modelos en su propio conjunto (generalmente porque los objetos del Modelo son POCO que se usan en otros contextos)

No hay una bala de plata que responda a su pregunta, es completamente dependiente de tu problema La ventaja de la "estratificación" y la separación es aumentar la capacidad de mantenimiento, promover la reutilización del código y aumentar la claridad general (por nombrar algunos).

Yo diría que si no está alcanzando estos objetivos con su solución de estratificación actual, entonces tiene espacio para mejorar. Si aumenta las capas es disminuyendo la claridad o mantenibilidad, entonces ha ido demasiado lejos. Si solo tiene una sola "capa" y se está hinchando, entonces tiene la oportunidad de agregar una capa.

La conclusión es que no se debe realizar una ingeniería excesiva para seguir un "patrón" estricto. Si el patrón tiene claras ventajas para usted y su problema, impleméntelo, pero comprenda por qué lo hace y cuál es el objetivo de cada "capa".

2

considerar las siguientes áreas:.

  • velocidad
  • Reutilización
  • legibilidad
  • El tiempo de desarrollo
  • velocidad
  • Modificación (las palabras adecuadas para describir este momento me están escapando Editar - Capacidad de mantenimiento era lo que estaba buscando [robado de la respuesta de alguien más])
  • Huella de la aplicación (escala y l tamaño iteral)
  • Su equipo de desarrollo

... y luego ajustar su arquitectura basada en cuál de estos valoras. Probablemente me faltan algunas otras partes importantes, pero entiendes la idea. Realmente no hay una respuesta correcta o incorrecta a esto.

1

Una aplicación solo tiene demasiadas capas si las propias capas se convierten en un obstáculo para la mantenibilidad del proyecto en lugar de mejorar la capacidad de mantenimiento.

+0

En la práctica, mis sistemas siempre consisten en: 'proxy frontal' cualquier cosa que acepte peticiones de los usuarios como un controlador MVC; 'business' maneja la orquestación de * sequence * en acción; 'compute' maneja todo el trabajo algorítmico, la agregación de datos y demás; y 'acceso a datos' que maneja todas las llamadas sql, solicitudes web remotas, sistema de archivos, etc. –

1

El número exacto de capas que es demasiado es 1 más de lo necesario.

Cuestiones relacionadas