Datapayasadas

diciembre 21, 2011

Performance Tunning: Identificando cuellos de botella

Archivado en: .Net, ASP.NET, Herramientas — Etiquetas: , , , , — pabloide86 @ 12:45 am

Holasss amigos! Hacia muchísimo que no escribía por acá! El motivo de este post es compartir mi experiencia con respecto al tunning de performance de una aplicación, mas específicamente de una aplicación web.  Mas que nada para compartir algunas herramientas y procedimientos que me fueron muy útiles a la hora de identificar cuellos de botella en el código.

Por desgracia, este trabajo siempre suele dejarse para el final, cuando todo el trabajo ya esta hecho y estamos al horno con la entrega por lo que cualquier cambio impacta mucho! Asique manos a la obra..

(más…)

julio 17, 2010

Un poquito de Generics

Archivado en: .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);

(más…)

junio 3, 2010

this.Title.Replace(“.Net”, “Java”);

Archivado en: Uncategorized — Matías @ 6:05 pm

Porque no todo en la vida es .Net:

This slideshow requires JavaScript.

Esto es Java usando la librería gráfica SWT. Lindo, ¿no?.

Que se vea nativo en Linux, Mac OSX y Windows es kinda priceless.

abril 10, 2010

Relanzar Excepciones

Archivado en: .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

Archivado en: .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.

(más…)

abril 5, 2010

Una de eventos y suscriptores

Archivado en: .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.

(más…)

abril 1, 2010

Serializando y deserializando objetos

Archivado en: .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.
(más…)

marzo 3, 2010

Superamos las 10.000 visitas!

Archivado en: Boludeces — pabloide86 @ 2:41 pm

¡Hemos superado la marca de las 10.000 visitas!

Cuando empezamos con Matías, jamas nos imaginamos que ibamos a lograr algo así! Si bien pueden parecer pocas comparado con otros blogs mucho mas grosos, para nosotros es todo un logro! Y todo gracias a ustedes!

Esperamos seguir creciendo! Vamos a ver si llegamos a las 20.000! trataremos de seguir posteando cosas interesantes y de servirles de ayuda!

Un abrazo a todos!

febrero 16, 2010

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

Archivado en: .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!

enero 19, 2010

Feliz Cumpleaños Pabloide!

Archivado en: Uncategorized — Matías @ 11:18 am

Te deseamos con todo el equipo detrás de Datapayasadas (?!) lo mejor en tu día!, cuidado con comer mucha torta con el calor que está haciendo estos días puede caer media pesadita.
Que la pases bien!

Entradas más antiguas »

Tema Shocking Blue Green. Blog de WordPress.com.

Seguir

Get every new post delivered to your Inbox.