Una de las coas que más me cuesta explicar cuando hablo de Windows Workflow Foundation, es el dichoso AutoResetEvent.
El AutoResetEvent, es una variable que nos ayudará en la sincronización de los distintos hilos de proceso (threads), no es más que un simple mutex (exclusión mutua), ó semáforo, que nos va a permitir es proteger ciertos datos compartidos cuando se llevan a cabo escrituras, previniendo las condiciones de carrera.
Para entender bien este concepto, revisemos como son programadas las distintas instancias de los flujos de trabajo en el runtime.
El runtime de Workflow Foundation, tiene un servicio de temporización (scheduler) que nos va a permitir ejecutar las distintas instancias que se lleven a cabo de manera Asíncrona (por defecto) ó Síncrona (utilizando el servicio manual).
En la corta vida de NavarraDotNet vamos a por nuestro segundo Evento, donde veremos lo más representativo del Framework 3.0, aquí os dejo el cartel (a mi juicio impresionante) que Sergio Jimenez a preparado así como el link de registro y la agenda del evento.
09:30 – 10:30 ASP.NET AJAX Web Development
Repasaremos la evolución en la interfaz web asíncrona desde el MSXML XMLHttpRequest hasta el momento actual y los problemas que se planteaban en el desarrollo. Veremos los nuevos controles existentes en ASP.NET y como facilitan
al desarrollador mejorar la experiencia de navegación del usuario.
Well, today the first day of 2007,I Want to thank all the people who read this blog for this stats. Also today I received my MVP award renewal. Gracias a todos los que me leéis, seguiré dando la lata
Este será casi con seguridad mi último post del 2006, pero eso no lo puedo asegurar ya que cuando me pica la curiosidad, siento esa irresistible necesidad de saciarla. Y eso es lo que me ha ocurrido esta mañana. Como había comentado antes no había usado punteros en c# y este hecho me ha picado, de modo que he tratado ver como son manejados por el CLR.
Bien, todo era normal hasta que he visto este código IL en donde no entendía el misterioso conv.u, el código que estaba usando es el siguiente:
Para añadir una nueva actividad a nuestro SPD, lo primero que debemos hacer es comenzar un proyecto de Workflow, en concreto un Workflow Activity Library (Biblioteca de actividades para el flujo de trabajo).
A partir de ese punto crearíamos nuestra actividad, para este ejemplo voy a crear una actividad que consiste en enviar un texto al visor de eventos.
publicpartialclassLogEventViewer : Activity
{
publicstatic DependencyProperty TextLogProperty =
DependencyProperty.Register(“TextLog”, typeof(string), typeof(LogEventViewer));
public LogEventViewer()
{
InitializeComponent();
}
/// <summary>/// Valor que figurará en el visor de eventos/// </summary>/// <value>Texto</value> [Description("Texto que saldrá en el visor de eventos")] [Category("User")] [Browsable(true)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]publicstring TextLog
{
get { return (string) GetValue(TextLogProperty); }
set { SetValue(TextLogProperty, value); }
}
/// <summary>/// Ejecución de la actividad/// </summary>/// <param name=”provider”>Contexto de ejecución de la actividad</param>/// <returns></returns>protectedoverride ActivityExecutionStatus Execute(ActivityExecutionContext provider)
{
EventLog eventLog = new EventLog(“Workflow”);
eventLog.Source = “SharePoint Workflow”;
try {
eventLog.WriteEntry(TextLog, EventLogEntryType.Information);
}
finally {
eventLog.Dispose();
}
return ActivityExecutionStatus.Closed;
}
}
Lo primero que hacemos es declarar una propiedad dependiente del flujo de trabajo llamada TextLogProperty, a través de la cual pasaremos el texto que deseamos visualizar en el visor de eventos.
Sin duda una de las mejores cosas de MOSS 2007 es el nuevo SPD, y dentro de este, el diseñador de flujos de trabajo, que nos permite de forma ágil y sencilla diseñar nuestros flujos de trabajo.
Aunque como he comentado en otras ocasiones, si deseamos realizar flujos de trabajo más complejos, o máquinas de estados debemos usar Visual Studio.
SPD, solo nos permite realizar workflows secuenciales con las actividades que vienen predeterminadas. Sin embargo existe la posibilidad de ampliar las actividades básicas que nos encontramos dentro de SPD, con lo cual podemos extender la funcionalidad de nuestros workflows sin llegar a realizarlos completamente en Visual Studio.
Los proveedores de servicios compartidos (SSPs), son una de las nuevas características de MOSS 2007 que reemplaza la infraestructura de Servicios compartidos de Sharepoint 2003. Los SSPs son un conjunto de servicios que pueden ser compartidos en diferentes portales y sitios. Estos servicios son el Catalogo de datos profesionales, los servicios de Excel, las búsquedas, los perfiles de usuarios, las audiencias, y los sitios personales.
De esta manera en MOSS 2007 podemos crear tantos SSPs como necesitemos en función del contenido que nuestros portales y sitios van a ofrecer a los usuarios, de modo que podríamos tener audiencias distintas en distintos portales, ú ofrecer distintos catálogos de datos empresariales en distintos sitios e incluso indexar fuentes de contenido distintas en cada uno de ellos de manera que los resultados de las búsquedas de cada sitio pueden ser distintas.
Hace un mes era solo una idea que me propuso Miguel Jimenez, hace tres semanas tuvimos nuestra primera reunión con 20 asistentes de 40 que se habían inscrito, y hoy hemos inaugurado nueva WEB. Desde luego el interés que ha mostrado la gente del grupo es espectacular y espero que esto sea algo más que la euforia de los comienzos.
A TOPE, El jueves 26, se celebro la Segunda conferencia de usuarios de SharePoint, en donde intervine durante la mañana (un poco nervioso, como es lógico ya que había 300 personas y no estoy acostumbrado a una audiencia tan numerosa), quiero dar las gracias a Rafael Sanchez, jefe de producto de SharePoint y como no a los fenómenos de preventa, Oscar y Pablo por su ayuda.
Por la tarde di una sesión sobre SharePoint Designer, y como vi que íbamos un poco justos de tiempo me salte la presentación de powerpoint y me fui directo a la demo. Como algunos me habéis preguntado por ella intentaré realizar un webcast para que os lo podáis descargar.
Do you remember?, SharePoint 2003 continues alive. This night I updated my csegSmallCalendar webpart with some new features. Now I’m designing a web site to host the NavarraDotNet.com user group and I have needed for this new features.
AdjustCurrentMonth
Now you can adjust the month that the calendar is showing, If we are in September, and you adjust the calendar with a -1 value you can view August month, same with a 1 value you can view the current month +1. Now you can display more than one month adding new webparts.