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.
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? –
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
Gracias Mas. Seguimos el enfoque similar al descrito por usted. Terminamos sin usar objetos del marco Entity, en cambio usamos objetos poco personalizados. –