Refactoring Session

- 1 min read

Yesterday was the third act of NavarraDotNet, we had a session in the Public University of Navarra, where, we spoke about refactoring techniques and showing some tools as Resharper and Refactor!.

My colleague in the session Sergio Jimenez, it demonstrated how using some of this inexpensive tools, we can improve the code quality, the development of some tasks, and how is it favorable for both, programmers and companies.

Ayer tuvimos el tercer acto de NavarraDotNet, en la Universidad Publica de Navarra, en donde hablamos sobre técnicas de refactoring y pudimos ver algunas herramientas como Resharper y Refactor!.

Workflow Course 5

- 2 mins read

5o Asalto – El servicio de planificación de tareas & Hosting in ASP.Net

El servicio de planificación de tareas (WorkflowSchedulerService)  es el encargado de ejecutar los distintos flujos de trabajo dentro del motor, estos pueden ser manejados de forma asíncrona, usando el servicio que WF nos proveed por defecto (DefaultWorkflowSchedulerService) o de manera síncrona, usando un servicio manual (ManualWorkflowSchedulerService).

Al igual que el resto de servicios, también podemos crear nuestro propio servicio de planificación heredando de WorkflowSchedulerService.

Workflow Course 3a

- 1 min read

El proyecto WinHostWorkflow esta formado a su vez por dos proyectos, WinHostWorkflow contiene el motor de flujos de trabajo (WorkflowEngine.cs) y el interface de usuario (WorkflowSampleApp.cs), la carpeta ExternalDataServices, contiene los servicios de intercambio de datos del 3er asalto, (CalculatorService.cs y MessengerService.cs)

El proyecto Workflows, contiene los interfaces para los servicios de intercambio de datos (ICalculator.cs y IMessenger.cs) así como los flujos de trabajo de ejemplo.

  • WorkflowDelay.cs – Secuencial con una actividad Delay de 45seg.
  • WorkflowDelay2.cs – Secuencial con una actividad Delay de 30 seg, una actividad Code que duerme el proceso un minuto y una actividad Delay de 30 seg.
  • WorkflowLongWhile.cs - Seuencial con una actividad While que ejecuta una actividad Code.
  • WorkflowSumNumbers.cs – Uso de parámetros, recibe dos parámetros y los suma en una actividad Code.
  • WorkflowCallExternalMethod.cs - Llamada a métodos externos, usa el interface ICalculator, para realizar operaciones con parámetros.
  • WorkflowHandleExternalEvent.cs - Espera recibir un mensaje, interface IMessenger, después hace una pausa y a través del mismo interface nos lo devuelve.

Workflow Course 3

- 9 mins read

Cuando hablo de Workflow Foundation, siempre hay una parte en la que alguien me pregunta, ¿Cómo encajo todo esto en mi forma de trabajar?, bien, WF lo que nos permite es modelar procesos (pueden ser de negocio o de lo que sea).
 
Generalmente, y desde que adoptamos los modelos de n-capas, usamos una capa para albergar lo que denominamos lógica del negocio, (yo la llamo la capa lógica, a secas) y en esa capa implementamos los distintos procesos que nuestra aplicación va a realizar. En esta capa tenemos un nivel de abstracción elevado, ya que no trabajamos directamente con los datos, si no que usamos entidades que mapean los datos. A pesar de trabajar con este nivel de abstracción, en nuestro código debemos implementar gran cantidad de servicios, como: excepciones, estados, eventos, comunicaciones, transacciones. WF, lo que nos brinda es otro nivel más de abstracción mediante el cual vamos a poder centrarnos en la resolución de los problemas, liberándonos de gran parte de la carga.

Workflow Course 4

- 5 mins read

Muchos de los procesos con los que trabajamos habitualmente, requieren de datos o eventos que llegan desde el exterior. Anteriormente, vimos como WF puede comunicarse con el mundo exterior, para recibir esos datos o eventos usando el servicio de intercambio de datos.

En ocasiones, al igual que sucede en el mundo real, debemos esperar a que se produzcan esos datos o eventos para poder continuar realizando un trabajo. Este hecho hace que nuestros flujos de trabajo queden inactivos (Idle) mientras esperan esos datos.

Workflow Course 2

- 7 mins read

Bueno, en la primera parte hemos visto en que consiste el motor de flujos de trabajo, poco a poco nos iremos introduciendo en los detalles, también hemos visto que un flujo de trabajo esta compuesto de actividades. Cuando ejecutamos un flujo de trabajo dentro del motor, la representación del mismo (SequentialWorkflowActivity ó  StateMachineWorkflowActivity) en ejecución es un WorkflowInstance.

Esta instancia, se crea desde el motor, Runtime.CreateWorkflow(typeof()) y como vimos existen distintas formas de cargar los flujos de trabajo dentro del mismo, (más adelante veremos como hacerlo de otras maneras).

Workflow Course 1

- 8 mins read

Tenía que impartir un curso de Workflow Foundation que finalmente no voy a dar, ya que estoy muy liado con otros temas. Ayer por la noche pensé que era una pena desaprovechar todo este trabajo, más aún porque estaba deseando montar un curso distinto, me explico:

El curso iba a consistir de 10 clases de una hora y media de duración (usease 15 horas) que no es mucho. De modo que tenía pensado lo siguiente. Una introducción de 45 minutos explicando cosas y mostrando un ejemplo práctico, ejemplo que previamente habría diseñado para la ocasión. Los 45 minutos restantes iban a ser para (30 min) que la gente trabajara con el código del ejemplo y lo enredara (mientras yo les explicaba el código). Por último, entre todos (siguiendo unas directrices 15min) iríamos añadiéndole funcionalidad al código, para ir viendo cada cosa en profundidad en la siguiente clase.

Wtf staff

- 1 min read

Ayer tuvimos en la Universidad Pública de Navarra,  un evento de 5 horas sobre  AJAX, XNA, WF, WCF y WPF

A pesar de que el tiempo no nos acompaño,  el guru bilbaíno, le hecho un par de pelotix y se vino a Pamplona.  La asistencia no le hecho tantas pelotix así que de los 150 nos quedamos en 90, no está nada mal.

250107_UPNA_6.jpg

Lo pasamos de miedo y nos reímos un montón. Hubo buen feeling con la gente. Lo mejor es que grabamos las 5 horas en DVD así que en breve puede que las pongamos on-line.

Use Wfpad in your apps

- 1 min read

Mark Schmidt’s a puesto una última versión del WFPad, para Windows Workflow Foundation. Lo acabo de bajar para jugar un poquito, para los que aún no lo sepan, este ejemplo es el mejor ejemplo que hay sobre como integrar el Diseñador de flujos de trabajo dentro de nuestras aplicaciones.

Justito lo he compilado y añadido mi propia biblioteca de actividades (sin ir más lejos la que he creado hoy en el evento de la UPNA, mañana pondré fotos). Podéis ver FritoDeGamba y Visor de eventos.