Datapayasadas

diciembre 11, 2012

Workflow Foundation 4.0

Filed under: .Net, C#, Desarrollo, WF4 — Etiquetas: , , , — pabloide86 @ 11:57 pm

Buenasss amigosss! Hacía muchísimo que no escribía por acá!

El pasado Jueves 22 de Noviembre fui invitado por la cátedra de .NET de la UTN para disertar en las Mini Charlas Tecnológicas!

El tema que elegí fue Procesos de Negocios con Workflow Foundation 4.0. Me topé con esta tecnología a mediados del 2010 como parte del desarrollo de un proyecto en el que estaba trabajando. En ese proyecto estaban usando BizTalk 2000 y se estaba haciendo una migración hacia .NET, entonces WF4 surgió como un reemplazo natural a esta tecnología.

A continuación, un breve resumen de la charla.

(more…)

Anuncios

julio 17, 2010

Un poquito de Generics

Filed under: .Net, C#, Desarrollo, Generics, Software — Etiquetas: , — pabloide86 @ 1:12 pm

Hola mis queridos List<Amigos>

Hoy vamos a hablar un poco sobre el mundo de los Generics. Vamos derecho al código…

Supongamos que necesitamos un método que devuelve un objeto Persona:

public Persona GetPersonaByID(int idPersona)
{
     var persona = new Persona();
     // Aquí va el codigo para armar el objeto
     return persona;
}

Para llamar a este método lo hacemos de la forma:

Persona objeto = GetPersonaByID(5);

Hasta aquí ninguna novedad. Ahora bien, supongamos que queremos hacer que el mismo método trabaje con cualquier tipo de objetos:

//T: parámetro de tipo
public T GetEntityByID<T>(int idEntity)
{
    // Aquí va el código para armar el objeto. Veremos mas adelante qué necesitamos
    // para instanciar un objeto T
    // ahora se complica un poco mas porque no sabemos bien que tipo de objetos es T
    return entity;
}

Y ahora cuando llamamos a este método le vamos a indicar con qué tipo de objetos tiene que operar:

Persona p = GetEntityByID<Persona>(5);
Ticket t = GetEntityByID<Ticket>(8);
Auto a = GetEntityByID<Auto>(19);

(more…)

abril 10, 2010

Relanzar Excepciones

Filed under: .Net, C#, Desarrollo, Excepciones — Matías @ 6:52 pm

Me encontraba buscando la causa de porque perdía el stack trace al relanzar excepciones capturadas y finalmente logre dar en el clavo, las estaba usando mal… shame on me!.

No recuerdo de donde tomé la mala costumbre, pero lo que venía haciendo hasta ahora era:

try
{
    // Algo de código
}
catch (Exception ex)
{
    // Hago algo con ex
    throw ex;
}

Resulta que al hacer esto no estamos relanzando la excepción original, estamos iniciando un nuevo camino para la excepción usando la misma instancia de ex.

Para solucionarlo, es decir, no perder el stack trace debemos modificar el código para que quede así:

try
{
    // Algo de código
}
catch (Exception ex)
{
    // Hago algo con ex
    throw;
}

¿Soy el único pavote que lo hacía mal?

Quiero creer que no 🙂

abril 9, 2010

Atacando dos frentes: Serialización de objetos y transporte sobre UDP

Filed under: .Net, C#, Desarrollo, Serialización, UDP — Etiquetas: , , — Matías @ 10:10 pm

Hola!, hoy voy a contarles un poco sobre el protocolo UDP y luego mostraré un ejemplo para aprovechar la serialización de objetos de la que les hablé hace unos días.

Como siempre, vamos a empezar por lo más básico.

(more…)

abril 5, 2010

Una de eventos y suscriptores

Filed under: .Net, C#, Eventos — Matías @ 12:19 pm

Navegando por StackOverflow me encontré con una pregunta interesante de alguien que buscaba la forma de disparar eventos sin la necesidad de comprobar primero la existencia de suscriptores. Si no lo conocen al sitio, les recomiendo que le peguen una miradita porque es realmente útil, es sencillamente un sitio de preguntas y respuestas para programadores.

(more…)

abril 1, 2010

Serializando y deserializando objetos

Filed under: .Net, C#, Serialización — Etiquetas: — Matías @ 11:03 am

Todos hemos escuchado hablar alguna vez la palabra serialización, pero posiblemente nunca nos hemos preocupado lo suficiente como para saber que es, en que consiste y cual es su utilidad.

Generalmente cuando empezamos a programar aplicaciones que deben interactuar remotamente con otras (o con ella misma) es ahí cuando deberemos invertir unos minutos en comprender este concepto, muy importante por cierto y de extrema utilidad.
(more…)

febrero 16, 2010

Entity Framework: The version of SQL Server in use does not support datatype ‘datetime2’.

Filed under: .Net, C# — Etiquetas: , , — pabloide86 @ 10:09 am

Holasss amigosss! Dando los primeros pasos con Entity Framework me encontré con el siguiente error:

The version of SQL Server in use does not support datatype ‘datetime2’.

Googleando un poco encontré el siguiente artículo el cual voy a resumir y traducir:

Éste error se produce cuando generamos el Modelo a partir de SQL 2008 y luego utilizamos SQL 2005… es decir, Visual Studio genera el modelo por única vez basándose en los tipos de datos de SQL 2008 (que incorpora date y datetime2). Al cambiar el conection string de la conexión a SQL se produce éste error ya que el modelo no se actualiza solo.

Para actualizarlo a mano es sencillo:

  1. Dentro de la solución de Visual Studio hacer click derecho sobre el archivo EDMX y hacer click en “Open with…”
  2. Seleccionar la opción XML Editor
  3. Modificar el valor del atributo ProviderManifestToken de 2008 a 2005
  4. Volver a compilar y listo

De todas formas es siempre recomendable utilizar la misma configuración en todos los entornos (desarrollo, testing y producción) pero hay casos en que no es posible…

Espero que les haya servido…saludos!

octubre 25, 2009

Actualizador (2da Parte)

Filed under: .Net, C#, Desarrollo — Etiquetas: , — Matías @ 12:11 am

En el artículo previo (Actualizador 1era Parte) llegamos a definir la estructura iba a tener nuestro archivo de actualizaciones, ahora solo nos falta descargar esa información, parsearla y hacer algo útil con ella.

Recuerden que el formato a utilizar en dicho archivo será el siguiente:

ruta relativa y nombre de archivo : versión

donde la primer parte antes de caracter : es la ruta relativa tanto remota como local; y la segunda es la última versión disponible.
Veamoslo con un ejemplo que va a ser más fácil de entender. Suponiendo que mi programa consiste de los siguientes archivos:

C:\Mi Programa\EjecutablePrincipal.exe
C:\Mi Programa\una_carpeta\OtroArchivo.dll
C:\Mi Programa\otro path con espacio\Lala.dll

En el servidor de actualizaciones tendríamos:

http://miservidor.algo/actualizaciones.txt
http://miservidor.algo/EjecutablePrincipal.exe
http://miservidor.algo/una_carpeta/OtroArchivo.dll
http://miservidor.algo/otro path con espacio/Lala.dll

(more…)

octubre 22, 2009

Pimp my Visual Studio / Enchúlame el Visual Studio

Filed under: Boludeces, Desarrollo, Herramientas — Etiquetas: — Matías @ 12:34 pm

Levante la mano aquel que todavía no se cansó de ese fondo blanco con letras negras y colores apagados con el que Visual Studio nos tiene acostumbrados desde tiempos inmemoriales. O si sos uno de esos que ya no aguanta más tener los ojos en compota cada vez que te quedas hasta tarde programando, donde la única fuente de luz es la brillante pantalla de tu notebook o desktop; o si simplemente mirabas Pimp My Ride y te gusta llevarlo a cada extremo de tu vida, hoy tengo la solución para ustedes, y no involucra ningún ¡llame ya!.

Ragnarok Grey

Ragnarok Grey

(more…)

octubre 20, 2009

Actualizador (1era Parte)

Filed under: .Net, C#, Desarrollo — Etiquetas: , — Matías @ 10:17 am

Buenas,

Esta es la primera parte de una serie de artículos en los que voy a mostrarles como hacer su propio Actualizador para utilizar en sus programas. Todavía no he decidido de cuantas partes va a constar, porque en realidad no he planificado nada, así que si después terminan siendo solo dos, ¡quedan avisados de antemano!.

Comencemos

Por lo general, siempre que creamos un programa y lo liberamos al público, vemos al (poco) tiempo la necesidad de hacerle algunos retoques ya sea por la aparición de bugs (si, si, aparecen de la nada, no es que estaban y los pasamos por alto, jajaja) que nos reportan nuestros usuarios o porque queremos agregarle nuevas funcionalidades. Sea por lo que sea, una parte importante para mantener un software estable es la capacidad del mismo para informar la existencia de nuevas versiones o mejor aún, auto actualizarse simplificándole la vida al usuario.

(more…)

Older Posts »

Blog de WordPress.com.