Code Segment

¿Quien dijo miedo?

Jan 26 2007 by csegura @ 13:03

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.

Os dejo unas fotos de la sesión

David, hablando de WCF.

Iñaki, mostrando el simulador (totalmente programado en C# y DirectX) - hizo una demo con un sensor de movimiento - ESPECTACULAR


Sergio, hablando de WCF


El menda, hablando de cocina y WF

El staff de NavarraDotNet muy cool para la ocasión, el reverso de la camiseta .... be a pointer my friend ...

Comments (0)

Wfpad, para rtm, el mejor ejemplo para integrar el diseñador workflows en nuestras aplicaciones

Jan 25 2007 by csegura @ 22:54

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.

Así que ya sabéis que este es un punto de partida estupendo para incorporar Vuestro propio diseñador de flujos de trabajo dentro de las aplicaciones, también os recuerdo que no hace mucho Unai, nos dejo un ejemplo de como albergar el Diseñador de reglas.

Dos ejemplos a tener en cuenta.

Comments (0)

Versiones RTM del SDK de WSS 3.0 y MOSS 2007

Jan 25 2007 by csegura @ 20:36

No sé pero últimamente me ha dado por las siglas ... Bueno que ya tenemos las versiones finales para descargar...

Windows SharePoint Services 3.0: Software Development Kit (SDK)

The Windows SharePoint Services 3.0 software development kit (SDK) contains conceptual overviews, programming tasks, samples, and references to guide you in developing solutions based on Microsoft Windows SharePoint Services 3.0.

Versión en línea

SharePoint Server 2007 SDK: Software Development Kit and Enterprise Content Management Starter Kit

The Microsoft Office SharePoint Server 2007 Software Development Kit (SDK) contains conceptual overviews, programming tasks, code samples, references, and an Enterprise Content Management (ECM) starter kit to guide you in developing solutions based on Microsoft Office SharePoint Server 2007.

Versión en línea

 

Comments (0)

Tagged

Jan 15 2007 by csegura @ 18:03

Tagged by Mark Kruger

1- I used to read 4 or 5 books at time and they are all over my home; in the kitchen, in the bathroom, in the sitting room ...
2- Many years ago I’m able to read and understand Englishg books but I’m unable to speak English (at moment)
3- My favourite films are the old black & white movies like the Maltese Falcon (1941) and muy soundtrack is Once Upon a Time in America by Ennio Morricone
4- I like grunge music, specially Pearl Jam, Nirvana, Alice in Chains and Soundgarden
5- I love cooking and good meals (as good Navarro I am).

1- Puedo leer entre 4 y 5 libros al mismo tiempo, los voy dejando por toda la casa, en la cocina, en el baño, el cuarto de estar etc…
2- Leo inglés desde hace muchos años pero soy incapaz de hablarlo (por el momento)
3- Mis películas favoritas son las de blanco y negro, mi película favorita es el Halcón Maltes (1941) y mi banda sonora cinematográfica es la de “Erase una vez en América” de Ennio Morricone.
4- Me gusta el grunge, en especial  Pearl Jam (esto supongo que es conocido), NirvanaAlice in Chains y Soundgarden
5- Me encanta la cocina y la buena mesa (como buen Navarro)

Os a tocado: Gustavo Velez, Luis Du Solier, Iñaki Ayucar, Ander Muñoz y Elena Santacana

Comments (0)

WF1 - Workflow scheduling services

Jan 12 2007 by csegura @ 13:37

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).


El DefaultWorkflowSchedulerService, que es el servicio por defecto, crea y maneja los hilos de ejecución de forma asíncrona sobre el runtime. Conforme se van creando instancias de los flujos de trabajos, estas se almacenan en una cola que mantiene este servicio, más tarde cuando la instancia se ejecuta, este servicio solicitará un nuevo hilo (al .Net CLR) para ejecutar dicha instancia.


Otro importante aspecto es que nosotros podemos establecer el número máximo de hilos (MaxSimultaneousWorkflows)  que queremos que mantenga en uso este servicio, por defecto son 5. Si queremos establecerlo en 2:

DefaultWorkflowSchedulerService defaultWorkflowSchedulerService = new DefaultWorkflowSchedulerService(2);
workflowRuntime.AddService(defaultWorkflowSchedulerService);

De modo que el resto de instancias, tendrán que esperar a que se libere alguno de los hilos antes de empezar a funcionar.

Este hecho es el que nos obliga en cierta medida a lanzar el AutoResetEvent.Set() para indicar que ese hilo ha quedado liberado.

Cuando digo en cierta manera, lo digo porque generalmente se han de dar dos casos, el primero que necesitemos acceder al mismo objeto o recurso en el mismo hilo, o que necesitemos manejar eventos. 

AutoResetEvent, pone en el estado de no-señlizado automáticamente después de que un hilo haya sido liberado. Si tenemos distintos hilos que intentan acceder a un recurso y no queremos que lo hagan a la vez para que no se prodúzcanlos casos de exclusión, estos se quedarán esperando a que termine el que esta accediendo que estará señalizado, en ese momento el estado del hilo pasará a no-señalizado, permitiendo el acceso a el siguiente hilo.

Por otro lado disponemos también de un servicio manual como he comentado antes, este servicio es ManualWorkflowSchedulerService,  será el runtime quien cederá a la instancia un hilo para su ejecución,  de modo que la instancia se ejecutará sobre un único hilo (en modo síncrono) bloqueando la ejecución del host, mientras la instancia del flujo de trabajo este activa.

Para hacer esto, tendremos que arrancar cada una de las instancias manualmente, usando RunWorkflow y pasándole el Id de la instancia.

ManualWorkflowSchedulerService manualWorkflowSchedulerService = new ManualWorkflowSchedulerService(false);
workflowRuntime.AddService(manualWorkflowSchedulerService);

.....

instance1.Start();
manualWorkflowSchedulerService.RunWorkflow(instance1.InstanceId);

Hace algún tiempo leí (no he conseguido encontrar la referencia) que el uso manual, tendría sentido cuando el host funcione sobre ASP.NET o Servicios Web.

Comments (2)