2010-12-22 16 views
7

Ahora que Microsoft ha renovado su marco de flujo de trabajo en Windows Workflow Foundation 4, ¿cuáles son sus pensamientos y experiencias con este nuevo marco?Pensamientos y experiencias con Workflow Foundation 4

He estado trabajando con WF4 durante unos meses, y me he encontrado con algunas trampas:

  • No hay manera de hacer cumplir una interfaz con los servicios de flujo de trabajo (Xamlx).
  • Cuando se produce un error en el flujo de trabajo, ya sea con comunicación, correlación, persistencia o alguna excepción no controlada en el flujo de trabajo, es casi imposible determinar qué fue lo que salió mal porque los registros de seguimiento no indican nada relevante. Por ejemplo, tenía un objeto Entity Framework como una variable de flujo de trabajo y la persistencia del flujo de trabajo tenía problemas para serializarlo. Desafortunadamente, ninguno de los errores en los archivos de rastreo indicó que este era el problema. Pasé muchas horas de prueba y error antes de darme cuenta de lo que salió mal.
  • Algunas de las actividades proporcionadas son insuficientes. Por ejemplo, tuve que extender la actividad Enviar para admitir puntos finales dinámicos. Desafortunadamente, no pude hacerlo completamente dinámico, por ejemplo, el nombre de la interfaz no puede ser dinámico.
  • Si un flujo de trabajo es demasiado grande, el diseñador se vuelve muy lento. ¡Un flujo de trabajo de más de 100 KB llevó más de un minuto en cargarse! Y olvídate de depurar un flujo de trabajo de este tamaño.
  • No hay proveedor de persistencia para Oracle.

A pesar de las dificultades, estoy muy impresionado con las capacidades de persistencia de la base de datos, la facilidad de combinar actividades en el diseñador y la facilidad de configurar los servicios WCF como servicios de flujo de trabajo.

Tengo curiosidad acerca de las experiencias de los otros desarrolladores que utilizan Workflow Foundation 4.

Editar:

yo era capaz de resolver el problema de la extremadamente lento diseñador para grandes flujos de trabajo. Resultó que existían Importaciones no resueltas, lo que aparentemente causa mucho estrés al diseñador.

I posted on the MSDN forums about this issue.

actualización

Hay una serie de problemas que nos enfrentamos con AppFabric, ahora que nos estamos quedando en la producción. Es claro para mí que los Servicios de flujo de trabajo de AppFabric, a partir de ahora, no están listos para su uso. Me mantendría alejado de esto hasta que se publiquen nuevas versiones.

+1

También estoy enfrentando un problema con la persistencia de la variable del objeto entidad (Entity framework) en el flujo de trabajo de Windows 4.5. ¿Puede decirnos qué enfoque adoptó para este problema de persistencia? –

+1

Nuestro enfoque fue nunca utilizar un objeto entidad como variable de flujo de trabajo o argumento. Siempre lo convertimos en un objeto de datos interno. Puedes usar entidades son variables o argumentos. Solo tienes que asegurarte de que las entidades estén separadas. Supongo que nuestro problema fue que sacamos algunas entidades de la base de datos, pero seguimos unidos a un contexto que ya no existía. En WF persistió, intentó serializar la entidad y sus referencias, que no pudieron ser consultadas porque el contexto ya no existía. Si va a hacer que las entidades persistan con un flujo de trabajo, debe tener cuidado. – Mas

+0

Gracias Mas. Seguimos el enfoque similar al descrito por usted. Terminamos sin usar objetos del marco Entity, en cambio usamos objetos poco personalizados. –

Respuesta

4

Creo que hizo un muy buen resumen de los problemas de WF4.

Mi punto principal es la incapacidad de cambiar la definición de flujos de trabajo en proceso. Eso se está solucionando en la próxima versión, aunque por ahora es un gran problema.

+0

Puedo entender que desee cambiar la definición de flujos de trabajo en proceso, pero parece una incongruencia lógica, como cambiar una definición de clase a mediados de la ejecución. Debo hacer alguna razón, pero ¿no es la respuesta para ejecutar la definición 'antigua' en paralelo a la 'nueva' definición mientras terminan los 'viejos' flujos de trabajo? ¿Tienes algún enlace bueno a algo que explique el problema? –

+2

Un flujo de trabajo es solo otra parte de su código y puede contener errores. A veces realmente necesitas arreglar esos errores en lugar de dejarlos. Consulte la sesión de futuros de WF de Rin Jacobs para más información http://player.microsoftpdc.com/Session/3b87c17b-a218-40d3-984f-78adee – Maurice

3

También tuve dificultades con las excepciones en los flujos de trabajo, principalmente determinando por qué ocurrieron, la fuente y una descripción o mensaje. Me mejoré con esto a medida que obtuve más experiencia, y si comenzara otro proyecto de flujo de trabajo, podría depurarlo de manera mucho más eficiente. Es solo un paradigma diferente, por lo que no se puede abordar de la misma manera que el código directo.

Otro problema que tuve con WF 4.0 fue la prueba unitaria con WorkflowInvoker; los detalles se me escapan, pero las dependencias burlonas y los flujos de trabajo entre padres e hijos fueron un verdadero dolor de cabeza.

Generalmente me gusta mucho WF 4.0, una mejora masiva sobre 3.5.Ejecutar en modo de depuración puede ser muy lento, la depuración en el diseñador es más problemática de lo que vale, pero el marco es excelente y muy útil.

Cuestiones relacionadas