Ayer trabajando en una presentación sobre gestión del conocimiento, para una charla que daré en breve, baje al trastero a por unos apuntes antiguos, y entre la documentación que buscaba, encontré algunos diagramas que había realizado para un proyecto durante un máster en el 2002. Era un sistema de gestión de contenidos realizado en ASP (no .net) muy divertido.

Hoy he recordado que incluso este dominio, www.ideseg.com, lo cogí pensando en albergar dicho proyecto. Como pasa el tiempo.

Sharepoint Dev Tip

- 1 min read

Some days ago Eli Robillard wrote a fantastic post about how to build a sharepoint development machine it’s very similar to which I use, but in a last step, I would add a tool to maintain remote sessions. A tool as Secure Shell (ssh) or Remote Shell, I use rsh, because it’s easy for deployment and free, this comes with the Windows Services for Unix 3.5.

Using it I can install and uninstall solutions, features and webparts from my visual studio, external tools menu. Also you can add this to the post generation commands in order to deploy and get data from application pool prior to debug. (rsh machine iisapp)

Si recordáis en WSS2 teníamos una opción para ver las carpetas de una biblioteca de imágenes, que por alguna misteriosa razón, no se encontraba disponible en las bibliotecas de documentos.

En su día, con un simple truco, podíamos tener esta opción en las bibliotecas de documentos. (http://www.ideseg.com/SharePointViewAllFoldersInDocumentLibraries.aspx) he recordado esto esta mañana cuando me he dado cuenta de que esta opción ya no está disponible ni en las bibliotecas de imágenes ni en las bibliotecas de documentos.

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.