Guia de Testeo de Rendimiento para Aplicaciones Web

by Valeriano Tortola 31. agosto 2007 00:00

Leo através del blog de Rico Mariani que JD Meier ha anunciado la versión final de la guía Performance Testing Guidance for Web Applications, que se suma al proyecto Performance Testing Guidance.

Estas guías proponen metodologías y técnicas para hacer tests de rendimiento en aplicaciones Web y Windows por medio de las herramientas que provee Visua Studio 2005 y Visual Studio 2005 Team System.

He estado echando un vistazo y ambos tienen muy buena pinta, como muestra este How To: Identificar funciones causantes de un cuello de botella por alto consumo de tiempo de usuario de CPU en aplicaciones servidor en un entorno de producción.

Merece la pena leer este trabajo.

Tags:

.NET 2.0

Desarrolla para todos los lenguajes. CLSCompliant

by Valeriano Tortola 30. agosto 2007 01:44

Como ya había dicho anteriormente, hay un sin fin de lenguajes con los que se pueden programar en .NET, pero no todos siguen las mismas reglas, por ejemplo, hay unos que son case-sensitive(ie:C#) y otros case-insensitive (VB) ... Imaginad que escribo una librería .dll en C# y mi cliente la usará en su proyecto ASP.NET en VB (mis dos enemigos juntos xD) ..., imaginad que en esa librería he incluido dos métodos públicos con mismo nombre y parámetros que se diferencian en que uno empieza por mayúsculas y otro en minúsculas ... ¿que pasaría al abrirlo con VB? Pues que no podría diferenciarlo.

Para esto existe el CLS (Common Language Specification), que "...es una especificación estandarizada que describe un entorno virtual para la ejecución de aplicaciones, cuya principal característica es la de permitir que aplicaciones escritas en distintos lenguajes de alto nivel puedan luego ejecutarse en múltiples plataformas tanto de hardware como de software sin necesidad de reescribir o recompilar su código fuente..." (Vía Wikipedia)

Para ayudar a cumplir con el CLS existe el atributo a nivel de ensamblado CLSCompliant, que hará que el compilador nos avise en tiempo de diseño con "Warnings" en aquellos puntos donde infringimos alguna regla del CLS. Este es uno de esos casos donde ... no cuesta tanto hacer las cosas bien :D

Mas...

Tags: , ,

.NET 2.0 | C# 2.0

Efecto Matrix en C#

by Valeriano Tortola 29. agosto 2007 16:48
matrixsharp Un código en C# para generar el efecto Matrix en consola, lo que se aburre la gente en vacaciones, en fin, Ya puedes quedar como un auténtico lammer hacker con tus colegas y hacer temblar a tu jefe xD

En cualquier caso, no deja de ser un experimento curioso e intersante en un sentido intrínsecamente técnico, así que no dejeis de echar un vistazo al código de esta "utilidad" :D 

Hay hasta un video en YouTube.

¿Que será lo próximo?

Tags:

.NET 2.0 | C# 2.0

El uso de interfaces

by Valeriano Tortola 28. agosto 2007 12:12

Últimamente me estoy viendo más en la necesidad de usar interfaces y genéricos para crear clases más reusables y tipadas. En mis inicios con C# y .NET... aunque la idea de los genéricos me gustó... a las interfaces ... no les veia demasiada utilidad. A día de hoy soy consciente de la tremenda simbiosis que tienen estos dos elementos para crear código reusable.

Una interfaz, es como la carcasa que envuelve a un dispositivo, la carcasa no tiene funcionalidad en si, pero representa la funcionalidad que que tiene el dispositivo que en ella encaja (pensad en un acople funcional y no físico :P).

Mas...

Tags: ,

.NET 2.0 | C# 2.0

Objetos desechables con la interfaz IDisposable

by Valeriano Tortola 28. agosto 2007 11:06

En Julio apareció en la sección CLR Inside Out del MSDN Magazine un artículo de Shawn Farkas acerca del correcto uso de la interfaz IDisposable (en castellano), explicando el porqué de cada cosa. No puedo explicarlo mejor y más detalladamente de lo que lo ha hecho Shawn Farkas, pero si más resumido :D

Una de las cuestiones críticas a la hora de optimizar el uso de memoria es que el GC se ejecuta de forma no determinística, esto es, que no podemos predecir cuando se va a realizar, y aunque podemos invocarlo explícitamente con GC.Collect(), no es recomendable.

Mas...

Tags: , , ,

.NET 2.0 | C# 2.0

Modelo de ejecucion del .NET Framework. El CLR

by Valeriano Tortola 28. agosto 2007 04:48

Siguiendo con el artículo anterior donde explicaba que es el código administrado MSIL, voy a explicar ahora también de forma breve como el CLR (Common Language Runtime) ejecuta dicho código con la ayuda del JIT (Just In Time compiler), y cuales son las ventajas y características de este modelo de ejecución. Este es más extenso que el anterior, aunque está todo bastante resumido y explicado por encima espero que resulte interesante. 

Como comentaba, una vez generado el código administrado se compone un ensamblado junto los metadatos, el manifiesto que lo describe y los recursos que se hayan decidido incluir en él, estos datos permiten al CLR obtener información del ensamblado, sus tipos y recuperar el código administrado cuando se requiera.

El CLR es una máquina virtual, un entorno de ejecución para nuestro código MSIL, que provee las siguientes características:

Mas...

Tags: , , ,

.NET 2.0

Modelo de ejecucion del .NET Framework. El MSIL.

by Valeriano Tortola 27. agosto 2007 08:52

Voy a intentar explicar de forma breve en varios artículos como funciona el .NET Framework y que papel juegan sus diferentes partes. En esta primera parte a modo de introducción explicaré la diferencia entre el código fuente y el código administrado generado por el compilador, dejando el CLR y el JIT para una segunda parte.

  • El código fuente.

Nuestro código C# (ó cualquier otro lenguaje con el que desarrollemos en .NET... por exótico que sea), es un leguaje de alto nivel con el componemos la lógica que queremos programar.

Aquí se puede ver una extensa lista de los lenguajes con los que se puede programar en .NET.

Mas...

Tags: , , ,

.NET 2.0