design biztalk

design - ¿Por qué dividir una solución de BizTalk en múltiples proyectos?



(1)

Las soluciones de BizTalk suelen incluir esquemas, mapas y orquestaciones. Las soluciones también pueden incluir componentes de soporte, reglas comerciales, definiciones de enrutamiento y transformaciones basadas en puertos, socios comerciales y varios otros tipos de artefactos.

La gestión efectiva de todos estos artefactos tiene muchos beneficios, muchos más beneficios que inconvenientes.

Los beneficios incluyen:

  • Separación de inquietudes basadas en la agrupación lógica de artefactos (por funcionalidad o tipo de artefacto, por ejemplo). Este enfoque reduce la posibilidad de modificar aspectos de su solución que no están relacionados con el problema en el que está trabajando en ese momento.
  • Más fácil de probar: puede compilar e implementar solo los componentes que está modificando.
  • Es más fácil dividir el trabajo entre un grupo de desarrolladores.
  • Más fácil de administrar cuando la solución se hace más grande: puede llevar varios minutos cargar soluciones de BizTalk grandes en Visual Studio.
  • Admite enfoques más avanzados relacionados con las soluciones de estilo ESB (acoplamiento muy flexible). Dependiendo de su enfoque general, puede crear una solución que sea muy modular, hasta el punto en que los módulos puedan operar y actualizarse de manera completamente independiente.
  • Hace posible la versión de artefactos por separado.
  • Facilita un control más preciso sobre la seguridad y la utilización de la memoria agrupando funciones relacionadas para que las implemente para una instancia de host particular, por ejemplo (también puede administrar políticas de seguridad .NET de granularidad más fácilmente que con una solución que despliega una pocas asambleas).

El principal inconveniente de dividir su solución en varios proyectos o soluciones surge cuando está depurando su solución. Depurar las soluciones de BizTalk no es sencillo para muchos desarrolladores que son nuevos en BizTalk y tener que reducir los errores en las soluciones no facilita el trabajo. Sin embargo, puede solucionar este problema organizando de manera más efectiva su solución y utilizando estándares en cuanto a nombres, estructura de directorios, disposición de espacios de nombres y métodos relacionados para facilitar la búsqueda de dónde buscar.

Otros inconvenientes incluyen:

  • Más ensambles para firmar y desplegar en el GAC
  • Las interdependencias entre proyectos pueden generar errores de implementación que pueden ser difíciles de rastrear en soluciones mal organizadas.

Debe dedicar algo de tiempo al comienzo de un proyecto, idealmente durante el diseño, para configurar la organización básica de su solución. No existe un enfoque único para todos: debe pensar en cómo desea administrar la solución durante el desarrollo, la implementación y el mantenimiento en el contexto de la funcionalidad que la solución brinda a su organización o clientes.

Un buen lugar para comenzar es dividir su solución según el tipo de artefacto o las áreas funcionales. A medida que desarrolle su solución, comprenderá mejor cómo se relacionan los artefactos entre sí, cómo desea administrar nombres fuertes, seguridad y despliegue físico y se encontrará en una mejor posición para organizar su solución de manera más efectiva. Debe tener cuidado con este enfoque ya que podría tener que reorganizar grandes partes de la solución, lo que puede ser perjudicial si las líneas de tiempo de su proyecto son ajustadas.

He leído que es una buena práctica dividir una solución de BizTalk en múltiples proyectos, y he visto algún debate sobre la naturaleza exacta de la división, por ejemplo ...
- podría dividirse por artefactos, es decir, esquemas, orquestaciones, mapas, etc.
- podría dividirse por función

¿Pero cuáles son los beneficios / contras?