03.31.08

Frase del Día al Respecto de la Construcción de Software

Posted in Frase del Día at 8:46 am by Miguel

“El software es como las catedrales, primero lo construimos, luego rezamos.”

Gracias David.

Un saludo.

Miguel.

Rating 3.00 out of 5
[?]

03.27.08

Definiendo Métodos Obsoletos (Deprecated)

Posted in .NET, Buenas Prácticas, Programación at 7:58 pm by Miguel

Para los programadores que trabajáis bajo el soporte de un framework o de un conjunto de librerías de terceros os habréis encontrado en alguna ocasión que a la hora de utilizar alguno de los métodos que os brinda el conjunto de clases, alguno de ellos os lo indica como “Obsoleto” o “Deprecated”.

Los métodos obsoletos son aquellos que han caido en deshuso y que el responsable de desarrollo del framework quiere, por algún motivo (reubicación del método en otra clase, cambio del nombre del método, cambio de los parámetros, nuevos métodos más eficientes…), eliminar en futuras versiones. 

Normalmente un proveedor que pasa a indicar sus métodos como obsoletos lo suele hacer de alguna o varias de las siguientes formas:

1) Incorpora una descripción en la documentación indicando que el método está obsoleto y que en futuras versiones será eliminado.

2) A la hora de compilar la aplicación aparece una alerta (warning) indicando que el método está obsoleto. Nos avisa el compilador pero la aplicación sigue compilando.

3) Al utilizar el método obsoleto la aplicación directamente no compila.

Tras la teoría, unos ejemplos de cómo declarar métodos obsoletos con C#

Primero, cómo declarar una clase como obsoleta, dando warning recomendando usar otra clase en lugar de esta

[System.Obsolete("usar clase ClaseNueva")]
class ClaseAntigua
{
    public void Metodo() { }
}

Segundo, cómo declarar en la nueva clase un método obsoleto, dando error de compilación si se usa un método en concreto y recomendando el uso de un método alternativo

class ClaseNueva
{
    [System.Obsolete("usar MetodoNuevo", true)]
    public void MetodoViejo()  { }
    public void MetodoNuevo()  { }
}

Tercero, un ejemplo de uso de las clases

// Genera dos alertas
// (una por la instancia a la clase y otra por la llamada al constructor)
ClaseAntigua antigua = new ClaseAntigua();

// No genera ni errores ni alertas
ClaseNueva nueva = new ClaseNueva();
nueva.MetodoNuevo();

// Genera un error, terminando la compilación
nueva.MetodoViejo();

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

03.26.08

Introduciendo WorkFlow Foundation en el Framework 3.5

Posted in .NET, BPM at 2:59 pm by Miguel

Hola a todos,

En esta ocasión os presento un documento word donde podéis tener una visión completa de toda la aplicabilidad de WorkFlow Foundation utilizado bajo el Framework 3.5 de .NET.

Es una visión a alto nivel, pero creo que a estas alturas suficiente para seguir profundizando en todo lo que WF nos puede ofrecer de ahora en adelante.

Introduciendo WF en el Framework 3.5

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

03.24.08

La Paradoja de la Medalla de Bronce y la Medalla de Plata

Posted in Gestión de Recursos at 3:24 pm by Miguel

Lo lógico sería pensar que la felicidad se mide con la misma vara de medir que el triunfo, pero la complejidad de la mente humana hace que todo sea mucho más complicado.

Paradójicamente es más feliz el que gana la medalla de bronce que el que gana la de plata. El que gana la medalla de plata se compara con el que ha ganado la de oro, lo envidia y se atormenta por lo cerca que ha tenido el triunfo, casi lo ha tocado, pero no lo ha conseguido. Haber estado tan cerca le lleva a pensar que podría haber sido el mejor, haber conseguido la medalla de oro, y la frustración suele prevalecer al gozo del triunfo sobre todos los que llegaron después.

En cambio el que gana la medalla de bronce se mide con el que le sigue, el pobre que ha quedado en cuarto lugar y no tiene ninguna medalla, ningún reconocimiento a su esfuerzo. Se siente dichoso de haberlo batido y haber llegado al podio. Existen numerosos estudios que recogen esta curiosa paradoja y que refuerzan la idea de que, para ser felices, es preferible tener en cuenta nuestros propios triunfos y no medirnos con los que han conseguido superarnos.

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

03.23.08

Persistencia, Tracking, Eventos y Comunicaciones con WorkFlow Foundation

Posted in .NET, BPM at 8:29 pm by Miguel

Para empezar a entender toda la arquitectura de la gestión de Persistencia, Tracking y demás con WorkFlow Foundation he encontrado otro ScreenCast que puede seros útil.

Un detalle muy importante a la hora de trabajar con flujos es que cada uno de las actividades que la conforman puede permanecer en espera horas, días o meses. Es inevitable que necesitemos una infraestructura que nos provea de herramientas que permitan almacenar el estado de los flujos que hayamos iniciado, las actividades que se hayan lanzado, etc. Si no, en caso de parar nuestra aplicación siempre perderíamos cual era el estado de cada una de las actividades lanzadas.

Os dejo el link.

http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060323WWFIH/manifest.xml

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

03.20.08

W4, otro motor de WorkFlow

Posted in BPM at 1:49 pm by Miguel

Metidos ya de lleno con los motores de flujo, os presento un Motor de Flujo no Microsoft, W4 Workflow.

W4 Studio

W4 es el motor de WorkFlow de la empresa francesa W4Global (http://www.w4global.com). En concreto la imagen corresponde al W4BPMStudio para experto técnico. En esta versión, W4 provee de la herramienta W4 Studio en su versión 6.2, mediante la cual podemos dibujar los flujos y de un panel de administración donde se nos ofrece soporte para crear roles y usuarios, al mismo tiempo que nos permite llevar un control de los flujos y actividades que se han iniciado, así como su estado actual.

Un vez los flujos están creados en el motor, somos capaces de interactuar con ellos a través del API que nos provee el propio W4 (tiene versión J2EE y .NET). Disponemos de múltiples clases que nos permiten conocer las actividades, procedimientos, variables, usuarios y roles, así como interactuar con ellos. Mediante dicho API podemos a través, por ejemplo, de una aplicación web o de escritorio, llamar al motor de flujo e interactuar con él.

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

03.19.08

WorkFlow Foundation. Actividades: Validación, Valores por Defecto, Librerías

Posted in .NET, BPM at 10:34 am by Miguel

Seguimos avanzando algo más con los conceptos del post anterior al respecto de WorkFlow Foundation.

En el ScreenCast de ayer vimos ya conceptos básicos. Actividades de código, modo debug, aplicaciones de consola con workflow…

Hoy profundizamos algo más, en este lugar os dejo el link a dos ScreenCast (primera y segunda parte). Veréis que el primer trozo de la primera parte repite el proceso de creación de una actividad de código, para luego reemplazarla y empezar a usar las librerias de actividades, las propiedades en las actividades, etc. Incluso se habla del detalle de cómo reemplazar el icono que muestra una actividad en concreto.

En la segunda parte veréis algo muy interesante, la posibilidad de relacionar validadores a una actividad, pudiendo conseguir que en tiempo de compilación se valide si una actividad está bien o está mal según el código que hayáis relacionado.

Primera Parte: http://channel9.msdn.com/showscreencast.aspx?postid=381349

Segunda Parte: http://channel9.msdn.com/showscreencast.aspx?postid=388272

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

03.18.08

Conceptos Básicos de Windows WorkFlow Foundation

Posted in .NET, BPM at 6:52 pm by Miguel

Para los interesados en el tema, abro una nueva rama en el blog dedicada a los motores de flujo.

En esta ocasión empezamos con un ScreenCast en inglés de 10 minutos donde se nos muestran una serie de conceptos básicos de Workflow Foundation.

Para los que queráis empezar a meter la cabeza en el mundo, os puede dar una idea básica de cómo empezar

http://channel9.msdn.com/showscreencast.aspx?postid=122943

Saludos.

Miguel.

Rating 3.00 out of 5
[?]

Transact SQL, Debug con Visual Studio 2005 y Trazabilidad con SourceSafe

Posted in .NET, Bases de Datos, Herramientas at 12:12 pm by Miguel

Para los acostumbrados a trabajar con PL-SQL y la herramienta TOAD, lo de lanzar debugs contra procedimientos almacenados es algo totalmente natural y, por supuesto, muy pero que muy útil.

Para los que trabajan con Transact-SQL y Visual Studio 2005 no es algo tan natural. Muchos no conocen que a través de Visual Studio 2005 podemos hacer debug sobre procedimientos almacenados, y no sólo eso, si no que también somos capaces de almacenar automáticamente los scripts que vamos generando en SourceSafe, manteniendo así la trazabilidad completa de los cambios realizados contra la base de datos.

Es más común utilizar el Management Studio de SQL Server 2005 y así interactuar contra la base de datos que crear un nuevo proyecto de base de datos en Visual Studio 2005 y desarrollar desde allí. ¿Pero qué ocurre con todos los cambios que podemos ir introduciendo en el modelo relacional? Nuevas tablas, modificaciones sobre las tablas ya existentes, nuevos procedimientos almacenados, inserción de datos base en las tablas… ¿Y cómo nos lo montamos para almacenar todos los scripts de base de datos a ejecutar cuando queramos actualizar de una versión a otra de nuestra aplicación?

Los proyectos de base de datos de Visual Studio 2005 nos ayudarán a todo esto, incluyendo además la posibilidad de realizar debug sobre los procedimientos almacenados.

Os dejo un link donde se explica perfectamente cómo llevar a cabo todo esto, os recomiendo de verdad utilizar este tipo de proyecto, ahorraréis mucho tiempo, mantendréis toda la trazabilidad en SourceSafe de forma automática y claramente aumentaréis vuestra productividad.

http://www.informit.com/articles/article.aspx?p=31764&seqNum=1

Un saludo.

Miguel.

Rating 3.00 out of 5
[?]

03.12.08

Definición de Evento

Posted in Definiciones at 10:30 pm by Miguel

En el gremio de la informática y del desarrollo de software utilizamos muchas palabras de forma totalmente normal, común y hasta a veces gratuita, pero, ¿conocemos toda la extensión de la palabra?

Evento (fuente http://www.rae.es)

(Del lat. eventus).

1. m. Acaecimiento

2. m. Eventualidad, hecho imprevisto, o que puede acaecer.

3. m. Cuba, El Salv., Méx., Perú, Ur. y Ven. Suceso importante y programado, de índole social, académica, artística o deportiva.

a cualquier, o a todo, ~.

1. locs. advs. En previsión de todo lo que pueda suceder.

2. locs. advs. Sin reservas ni preocupaciones.

Rating 3.00 out of 5
[?]

« Previous entries Next Page » Next Page »