Avalon ya esta disponible para bajarse!

Avalon, la nueva tecnologia de presentacion de Microsoft, ya esta disponible para bajarse desde este link. Avalon iba a estar disponible en un principio solo como parte de Windows Longhorn, la proxima version del sistema operativo de escritorio de Microsoft, pero en vistas de que el lanzamiento de Longhorn va a tomar tanto tiempo, decidieron que iba a estar disponible desde antes, para poder instalarse como parte de Windows XP y Windows 2003 Server.
Un articulo muy interesante en MSDN les explica que se puede hacer con este SDK y como evaluarlo.

Tendencias en la instalacion del .NET Framework

Recien leido en Brad Adams [MSFT]

Estas son estadisticas que indican como se esta distribuyendo el .NET Framework en las instalaciones actuales de Windows. Es uno de los principales problemas que limita a .NET para convertirse en la plataforma de desarrollo por default para Windows, como en su momento lo fue Visual Basic cuando comenzo a distribuirse el VBRUN (la libreria necesaria para correr programas en VB) en todas las instalaciones basicas de Windows.

1. Mas de 120 millones de copias del .NET Framework fueron bajadas e instaladas (usando tanto Microsoft Downloads como Windows Update)
2. Mas del 85% de las PCs hogareñas vendidas en el 2004 ya vienen con el framework instalado. Mas del 58% de las PCs de negocios tenian el .NET Framework preinstalado o precargado.
3. Cada nuevo dispositivo de imagenes hogareño de HP (impresora, scanner, camara) ya viene con una aplicacion en codigo manejado (es decir, requiere el .NET Framework), cada CD de software del Microsoft Intellipoint, que acompaña a los mouse Microsoft, viene con el .NET Framework.
4. Entre el 3er cuatrimestre del 2003 y el 2do cuatrimestre del 2004 hubo un incremento del mas del 30% de instalaciones del .NET Framework en el segmento de negocios.
5. La mayoria de las instalaciones del .NET Framework son en maquinas con Windows XP y Windows 2000.
6. Mas del 95% de la gente que tiene Microsoft Internet Explorer, tiene la version 5 o mayor.
7. Windows 98 y Windows ME son menos de un tercio del mercado de PCs hogareñas.

Igual, queda un largo camino por transitar, no veo a alguien bajando 25 megas de Internet (el .NET Framework) solo para probar un juego o una aplicacion shareware/freeware. Y es este mercado, lamentablemente, el que va a hacer que el framework se desparrame por todas las maquinas del mundo o no… Encima, faltan unos largos años hasta Longhorn, que era mi esperanza de tener una version desktop de Windows con .NET preinstalado.

Ebook gratis: diseccionando una aplicacion en C#

Esta disponible en esta URL el ebook en ingles Disecting a C# Application: SharpDevelop que les recomiendo leer. Es una muy interesante recopilacion de la experiencia que reunio el equipo de desarrollo de SharpDevelop (para quienes no lo sepan, es un entorno de desarrollo para .NET gratuito y libre), y hay bastante material para leer de las experiencias ajenas de desarrollo con estas tecnologias, en una aplicacion de un tamaño considerable.

DotText Password Hashing

Volviendo un poco a temas mas mundanos, mientras termino la configuracion de un nuevo site de weblogs con DotText, y revisando un poco el codigo, me encontre con la necesidad de cambiar un password de usuario en uno de los weblogs creados.

DotText guarda los passwords de usuario/administracion como un hash en Sql Server, asi que extraje esta parte del codigo del DotTextHelper que es la aplicacion que viene por default para crear los weblogs en la base de datos.

using System;
using System.Text;
using System.Security.Cryptography;

namespace DotTextPasswordHasher
{
	class Class1
	{
		[STAThread]
		static void Main(string[] args)
		{
			if(args.Length == 0 || args.Length > 1)
			{
				Console.WriteLine("Error: only one parameter expected, that is, the password to hash");
			}
			else
			{
				string cleanString = args[0].ToLower();
				byte[] buffer1 = new UnicodeEncoding().GetBytes(cleanString);
				byte[] buffer2 = ((HashAlgorithm) CryptoConfig.CreateFromName("MD5")).ComputeHash(buffer1);
				Console.WriteLine(BitConverter.ToString(buffer2));

			}
		}
	}
}

Pueden bajar la version compilada desde aqui.