template smartadmin smart c# .net workflow workflow-foundation

c# - smartadmin - ¿Por qué usar Windows Workflow?



smartadmin github (6)

Hay algo de soporte de diseñador razonablemente bueno en Visual Studio que preferiría no tener que rodar para mí, y es un marco respaldado por otra persona más que por mí, lo que significa que alguien soluciona los errores de arquitectura y hace las pruebas principales, dejándome probar solo mi flujo de trabajo. Quiero decir, podría lanzar mis propias versiones de llamadas GDI +, pero preferiría no hacerlo. Lo mismo ocurre con mi propio marco de serialización, analizador XML o algún otro elemento del framework .NET.

Cuando se trata de eso, estas cosas se proporcionan como un conjunto de herramientas. Si elige usar una herramienta o no, depende por completo del problema que está resolviendo, la idoneidad de la herramienta y el tiempo y los recursos que tiene disponibles para lograr el objetivo.

¿Cuál es el beneficio de utilizar la base de flujo de trabajo de Windows (WF) frente a la creación de su propio marco de flujo de trabajo?

Por lo que puedo decir, WF solo proporciona un motor de tiempo de ejecución bastante escueto, un conjunto de clases y un esquema (basado en XAML) para definir flujos de trabajo. Todo lo que es difícil, como la persistencia, proporcionar un proceso de host para el tiempo de ejecución e implementar flujos de trabajo distribuidos (en todos los procesos), depende de usted.

Además, hay una curva de aprendizaje para usar WF ... si creáramos nuestro propio marco de flujo de trabajo simplemente aprovecharíamos las habilidades que todos los desarrolladores ya tienen (C #, XML, SQL, etc.).

Vi este blog de un evangelista de MS que intenta explicar por qué deberíamos usar WF:

¿Por qué Workflow? ...

OMI no hace un buen trabajo para convencer, ya que solo afirma que ayuda a la "productividad del desarrollador", al tiempo que admite que los desarrolladores pueden hacer lo propio.

¿Alguna de las personas inteligentes aquí puede venir con una razón mejor?

RESUMEN DE LAS RESPUESTAS A CONTINUACIÓN:

Creo que la razón más convincente es que usar una plataforma de flujo de trabajo estandarizada como WF (en comparación con la propia) le permitirá aprovechar las herramientas actuales y futuras, como el Diseñador visual, proporcionado por MS y por terceros.

Además, debido a que es parte de la pila MS de tecnologías basadas en .NET, es probable que tenga una mejor ruta de integración / migración con futuras tecnologías MS (como Azure).

Finalmente, la cantidad de desarrolladores con experiencia en WF aumentará (ya que los beneficiará en su carrera profesional), convirtiéndola en una habilidad básica como SQL o HTML, lo que significa que será más fácil encontrar personas que puedan comenzar a trabajar con ella. Tiempo mínimo de aceleración.


He tenido que crear actividades de Workflow en mi trabajo, y ni siquiera puedo decirle la respuesta.

Una razón no muy válida es que los valores / entradas no válidos pueden determinarse y rechazarse en el momento del diseño para diagramas de flujo de trabajo, por lo que los errores en tiempo de compilación básicamente no existen (asumiendo que todo el código repetitivo que escribió no tiene errores en tiempo de compilación).


Las principales razones por las que se me ocurre inclinarme hacia el uso de WF sobre otro marco de flujo de trabajo son:

  1. Microsoft lo está apoyando como una parte central del marco, por lo que puede / será más fácil de integrar en sus otras tecnologías, como Sharepoint y Azure, "aplicaciones en la nube".
  2. Es probable que las herramientas mejoren y sean realmente ingeniosas en otras pocas versiones, lo que debería mejorar la productividad de los desarrolladores.

Respuesta corta: es gratis y hace el trabajo. Si puede implementar un mejor marco de trabajo para administrar el flujo de trabajo y desea dedicarle su tiempo, hágalo de todos modos. Pero considere que su tiempo vale dinero , entonces, ¿cuánto dinero está dispuesto a comprometerse a construir un mejor marco para gestionar el flujo de trabajo? Pude ver que encarecerse.

Además, estoy bastante seguro de que la persistencia (en el disco o SQL) se maneja de manera inmediata.


Es una tecnología nueva O puede decir lo último con la promesa de actualizar funciones constantemente.

Respeta el entorno de trabajo anterior y lo utiliza y agrega aquellas características que son muy útiles con respecto al desarrollo de los programas de larga ejecución (grandes proyectos).

Produce todas las características directamente en las manos del desarrollador que anteriormente se ejecutaban en la parte posterior y carecían de la interacción entre los conceptos del núcleo interno y el programador.

Sí, es un poco complejo pero también proporciona más poder en las manos del programador.

Puede esperar mejores marcos y características en el futuro próximo. Es el futuro de la programación, así que mejor empezamos a aprenderlo hoy.


La opción de utilizar WF requiere una evaluación y voy a tratar de proporcionar una lista bastante completa aquí sobre cuáles son los pros y los contras. Tenga en cuenta que si va a utilizar WF, no use nada que no sea WF4 + porque se ha reescrito y se ha examinado significativamente más allá de sus predecesores.

Pros

  • Costo
  • Flexibilidad
  • Durabilidad
  • Distribuibilidad
  • Futuro

Costo

Es importante tener en cuenta el costo de WF al compararlo con otros caminos. Esas rutas pueden incluir BizTalk , un marco basado en código de fuente abierta como Objectflow , o incluso el propio. Tenga en cuenta que, a menos que necesite algo significativamente simplista, rodar el suyo sería el enfoque más caro cada vez. Entonces, si necesita una funcionalidad considerable, pero también necesita control sobre el código fuente, le recomendaría un marco de código abierto.

Flexibilidad

WF es un marco muy flexible en contraste con un framework como BizTalk. En WF puede escribir sus propias actividades personalizadas y hacer lo que necesita hacer fuera del marco: esto realmente le da la potencia que necesita.

Durabilidad

WF incluye un marco de durabilidad muy poderoso. Es duradero en el sentido de que el estado de un flujo de trabajo puede persistir, el flujo de trabajo puede estar inactivo (para preservar los recursos) y luego retirarse posteriormente. Pero esa durabilidad va mucho más allá porque ya está configurada para durabilidad en una granja de servidores. En otras palabras, un flujo de trabajo puede iniciarse en un host, persistir y luego recuperarse en otro host.

Supone que los flujos de trabajo se alojan a través de un servicio web (es decir, WorkflowService).

Distribuibilidad

WF ya está configurado para distribuirse en una granja de servidores.

Supone que los flujos de trabajo se alojan a través de un servicio web (es decir, WorkflowService).

Futuro

WF es el motor de reemplazo de orquestación para BizTalk y, de hecho, está desarrollado por las mismas personas que construyeron BizTalk. Por lo tanto, WF tiene un futuro brillante en la pila de Microsoft. De hecho, en este momento, Microsoft está trabajando en la creación de componentes individuales para reemplazar todas las características de BizTalk con componentes. Por ejemplo, Windows Server AppFabric (y más específicamente el complemento a IIS) es el reemplazo de los servicios de monitoreo que existen actualmente en BizTalk.

¿Por qué Microsoft está haciendo esto? Debido a que BizTalk no es muy adecuado para la nube porque es una instalación masiva, mientras que los componentes que están creando podrían implementarse en una solución en la nube.

Contras

  • Flexibilidad
  • Supervisión

Flexibilidad

La flexibilidad de WF también puede ser una trampa porque a veces no necesitas la flexibilidad que te proporciona y, por lo tanto, pasas más tiempo desarrollando cosas que de otra manera solo querrías. A veces necesita un marco que haga muchas suposiciones y tal vez funcione fuera de la convención (por ejemplo, MVC). Sin embargo, en términos generales, he descubierto que esto no es cierto cuando se combina el marco WF4 con las extensiones de código abierto proporcionadas por Ron Jacobs.

Supervisión

El monitoreo de WF es aún muy joven y esta es su mayor trampa. Sin embargo, esto avanzará muy rápidamente con el tiempo y, mientras tanto, puede construir sus propias herramientas de monitoreo con mecanismos de seguimiento personalizados .

Recursos

Tu mejor recurso es Ron Jacobs . Nunca he conocido a alguien que esté tan dispuesto a ayudar a la comunidad de desarrolladores que tienen que usar los marcos de Microsoft que él. Créame, él ha proporcionado una gran cantidad de información sobre WF a través de numerosos canales, solo ingrese en Google y compruébelo.