Lilypie Primer PicLilypie Primer Ticker

miércoles, 28 de febrero de 2007

MS SQL Server 2005 Service Pack 2

Microsoft ha liberado el segundo Service Pack para el SQL Server. A decir de MS se han corregido muchos errores e introducido mejoras en Analysis Services, Reporting Services, Integration Services, etc. Este service pack puede ser descargado aqui:

Service Pack 2 de SQL Server

Service Pack 2 de SQL Server Express

También se han actualizado los Books online que pueden ser descargados aqui:

SQL Server Books online (Febrero 2007)

lunes, 26 de febrero de 2007

Sincronizar el desplazamiento de dos DataGridViews

Uno siempre aprende nuevas cosas colaborando en los foros.

Hoy un compañero preguntó como se podia tener dos DataGridViews con las columnas visibles sincronizadas, es decir, que si uno se desplaza horizontalmente utilizando el scrollbar de uno de los datagridviews, el otro también se desplace exactamente igual que el primero

La solución resultó ser bastante simple, todo es cuestión de actualizar la propiedad HorizontalScrollingOffset de un DataGridView, desde el evento Scroll del otro.

Primero manejamos el evento Scroll del dataGridView1, actualizando la propiedad HorizontalScrollingOffset del dataGridView2, asi:

private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
dataGridView2.HorizontalScrollingOffset = e.NewValue;
}

ahora a la inversa:

private void dataGridView2_Scroll(object sender, ScrollEventArgs e)
{
dataGridView1.HorizontalScrollingOffset = e.NewValue;
}

Nada más, ahora podremos desplazarnos con el scrollbar de cualquiera de de los datagridviews y el otro se desplazará automáticamente.

Un código muy simple, con muchas posibles aplicaciones.

jueves, 22 de febrero de 2007

Mas Trafico en el Blog

Retomo el blog luego de unas cortas vacaciones quasi obligadas por un viaje de trabajo y las infaltables fiestas carnavaleras.

Atraer más tráfico a nuestro sitio es siempre una preocupación, y googleando por ahí encontré este blog con varios consejos para tal efecto. Algunos de ellos son más útiles que otros, pero vale la pena leerlos todos, ahi les va el link

http://www.blogmundi.com/2006/06/04/56-formas-de-atraer-trfico-a-tu-blog/

Saludos

viernes, 9 de febrero de 2007

Infragistics WPF Beta 1

Fue agradable encontrar esta mañana un mail de Infragistics en que anuncia la disponibilidad de la versión Beta de una colección de controles basados en WPF, se ven realmente bien, y creo que vale la pena probarlos, aqui van unos screenshots


XAMDatagrid


XAMCarouselListBox


Mas detalles: http://www.infragistics.com/hot/wpf.aspx

jueves, 8 de febrero de 2007

Apple iPhone

Ya es noticia vieja, pero no podía dejar de incluir una mención a este nuevo gran 'chiche' de Apple: el iPhone.

A primera vista ma llama mucho la atención el diseño: simple y elegante. Ni un solo botón!! todo funciona en base a su pantalla multi-touch.

Sirve de reproductor de MP3, Video, Navegador de Internet, y por si fuera poco... también de teléfono.

Creo que valdría la pena gastar el dinero que no tengo en conseguir uno cuando esté a la venta :)

www.apple.com/iphone

miércoles, 7 de febrero de 2007

WLW - Windows Live Writer

Como ya dije, me he propuesto tener este blog en permanente actividad. Me gustó mucho el nuevo Blogger Beta, trae muchas ventajas. Por ejemplo, nos evita tener que sumergirnos en las profundidades del código HTML para incluir los links o los anuncios de AdSense, ahora el procedimiento es tan simple como arrastrar y soltar, gran mejoría.

Por otro lado, por fin tengo instalado el Windows Live Writer Beta, debo estar entre los últimos en adoptar esta herramienta. Esta herramienta está destinada a hacerles la vida mas facil a los bloggers. tiene un editor muy interesante en que uno escribe los posts, y luego se conecta al sitio del blog para publicar automáticamente las entradas. Soporta múltiples sitios que hostean blogs (blogspot incluido, por supuesto),

Este es el primer post que escribo utilizando esta herramienta y me pareció justo dedicarlo (el post) al WLW.

WLW puede descargarse libre de costo aqui. El instalador pesa aproximadamente 3.5 Mb (muy liviano para todas las cosas que es capaz de hacer).

Destaco dos cosas que de entrada me han llamado la atención:

Edición fuera de linea: Al momento de escribir este post, (poco después de las 11 de la noche) no tengo conexión a internet, pero WLW me permite escribir y guardar el post, para poder publicarlo mañana apenas me conecte, genial!!.

Vista Preliminar: Puedo ver el post exactamente como se verá cuando se publique,

En resumen, estaré usando WLW de hoy en adelante y ya les contaré como me ha ido. 

martes, 6 de febrero de 2007

Clonar un Control

En uno de los foros en que participo, un colega preguntó cual era la forma de crear copias idénticas ('clones') de una Caja de Edición (TextBox) en tiempo de ejecución. Intenté ver si los controles incluían algún constructor que tomara un parámetro tipo Control y creara una copia a partir de éste, lamentablemente los controles no incluyen tal constructor (pienso que sería útil)

Aqui planteo la forma de crear 'clones' de un control (en realidad, de cualquier objeto), usando Reflection.

Versión C#

private void Clonar(object src, object tgt)
{
PropertyInfo[] props = src.GetType().GetProperties();
foreach (PropertyInfo pi in props)
{
if (pi.CanWrite)
pi.SetValue(tgt, pi.GetValue(src, null), null);
}
}

No hay que olvidar incluir un using System.Reflection

Asumamos que hemos creado un TextBox llamado tbOriginal y hemos personalizado el tipo de letra, el tamaño, etc. Si queremos crear una copia idéntica usando el método Clonar definido antes, usariamos algo asi:

TextBox tbClon = new TextBox();
Clonar (tbOriginal, tbClon);

ya tenemos la copia, y solo nos quedaría modificar la posición, y añadirlo al Form

tbClon.Top += 20;
this.Controls.Add(tbClon);

Como la consulta fue hecha en un foro de VB.NET, también aqui esta la traducción. Me llevó mas tiempo traducir el código que escribir la función :) VB nunca fue mi lenguaje favorito. Aqui está el código para quien le pudiera interesar


Private Sub Clonar(ByVal src As Object, ByVal tgt As Object)
Dim props As System.Reflection.PropertyInfo()
props = src.GetType().GetProperties()
For Each pi As System.Reflection.PropertyInfo In props
If pi.CanWrite Then
pi.SetValue(tgt, pi.GetValue(src, Nothing), Nothing)
End If
Next
End Sub


Hasta la próxima

lunes, 5 de febrero de 2007

.NET Framework 3

Hola a todos.

Retomo este maltratado y quasi abandonado blog, con la promesa (tantas veces rota) de dedicarle más tiempo y escribir de forma mas consecuente, a ver si ahora puedo cumplir :)

.NET framework 3.0, ya está entre nosotros, y me han preguntado que es lo que se necesita para incursionar en ese nuevo mundo, pues aqui está lo que se requiere, afortunadamente disponible libre de costo (bueno, casi todo):

1. Windows XP SP2 o Windows Vista

2. Visual Studio 2005 RTM

3. Microsoft .NET Framework 3.0 Redistributable Package. Necesario para ejecutar aplicaciones basadas en .NET 3. No se necesita si tenemos Windows Vista instalado, pues el Framework 3.0 es parte integrante del Sistema Operativo.

4. Microsoft Windows SDK for Windows Vista Puede ser instalado online o se puede descargar el instalador completo (una imagen de DVD que mide más de 1Gb)

5. Visual Studio Extensions for .NET Framework 3.0

Los enlaces para las descargas de los puntos 3,4,5 se pueden encontrar aqui

Una vez instaladas esas extensiones ya podemos comenzar a desarrollar aplicaciones con WPF, o alguno de sus compañeros: WCF, WWF o CardSpaces (vale la pena aprenderlos todos). Cito WPF porque yo estoy iniciándome en esta plataforma, asi que estaré posteando (frecuentemente, espero) mis experiencias.