Mostrando las entradas con la etiqueta Tools. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Tools. Mostrar todas las entradas

martes, enero 29, 2008

Web Development Helper y Otras Herramientas para Desarrollo Web

El Web Development Helper es una herramienta muy útil cuando se desarrolla en ASP.NET. En este caso nos muestra con el Http Logging habilitado todos los requests que esta haciendo Interent Explorer, esto nos puede ser muy útil como por ejemplo en este caso para saber porque no estaba cargando el Xaml de una aplicación de Silverlight. Un error muy menso obviamente, pero detactado rápidamente con la herramienta, pudieron haber sido muchas otras cosas, un script que cargaba no cargaba bien el Xaml.

image

Adicional al HttpLogging, se integra bastante bien con ASP.NET de tal forma que desde ahí pudieramos ver el ViewState, Cache, Trace, tiene una consola de Script para escribir, un DOM Inspector entre otras cosillas interesantes. Puedes descargarlo desde aquí.

Otras herramientas básicas para el desarrollo en Web son:

Fiddler: monitorea el puerto 80.
IE Developer Toolbar: nos permite ver como Internet Explorer esta rendereando nuestra página seleccionando elementos en ella y explorando el DOM.
BugZilla: add-in para Firebird con excelentes características para depuración.
ScriptSharp: compilador de C# a JavaScript, el logging para JavaScript es muy útil.
Visual Studio 2008: con soporte mejorado para manejo de hojas de estilo y depuración e intellisense para JavaScript.
Aptana: IDE basado en Eclipse que con mejor soporte para depuración e intellisense para JavaScript (también sirve para Ruby).

Seguramente se me pasan algunas que no utilizo tan frecuentemente. Lo importante de estas herramientas es saber que hacen y tenerlas presentes para saber cuando usaralas.

viernes, diciembre 28, 2007

Instalando Enterprise Library en Visual Studio 2008

El proceso es realmente simple. La idea original reamente se la vole a Ezequiel así que en su post verás más información detallada. Como no encontre información de como hacer esto en la Web decidí publicarlo.

Basicamente haces lo mismo que al instalar WCSF, pero sobre el MSI de Mayo de Enterprise Library. Al estar cambiando las entradas en el RegLocator usando Orca modifica donde diga 8.0 y ponle 9.0, lo guardas y listo para instalarse.

Editare este post con Issues y soluciones conforme las vaya encontrando.

Installing Enterprise Library in Visual Studio 2008

The process is really simple. I actually took the idea on how to do this from Ezequiel so you will need to see his post for detailed information.

Basically you do the same than when installing WCSF, but do it with the EntLib May MSI and in the RegLocator change the entries that reference 8.0 for 9.0 and that's it. Save and install and have fun.

I will edit this post with issues and workarounds as I find them.

miércoles, noviembre 07, 2007

DotMSN - .NET Messenger library - Download

Es padre cuando uno programa unicamente por diversión. Digo es divertido en el trabajo y todo, pero es bueno hacer algo totalmente distinto.

Recientemente hice dos, uno es un generador de código que utiliza un Custom Tool de VS para que en lugar de crear un DataSet nos cree otro tipo de objeto, pero bueno este medio se relaciona con algo que necesitamos, pero el post de hoy habla de una librería de MSN.

Todo empezo porque estaba mandando SPAM con invitaciones para el evento de DotNetLaguna, el Tour Tecnológico Microsoft. Estaba por mandarle algunos e-mails a mi lista de contacto de MSN, sólo que esto implica muchos pasos.

Opción 1. Darle click derecho luego mandar mail, copiar el correo, ponerle subject, etc o ir copiando los mails de cada uno a un correo masivo. El maldito MSN no te permite seleccionar N contactos y luego decir algo como manda mails a todos :(
Opcion 2. Guarda la lista de contactos (Menu Contacs, Save, etc) abrir el archivo ctt que finalmente resulto ser XML, pero guardo nada de información respecto a grupos, nombres, etc, todo lo que tenía era una lista de e-mails que no me decía mucho.
Opción 3. Programarlo.

Que necesitaba. Tener un lista de mis contactos mostrando nombre, mail, grupo al que pertenecen e ir palomeando los que quiero agregar para mandar mail.

La primera idea fue usar Scripts de Plus, que ya había usado pero para interacciones básicas y como es scripting no tenía una forma fácil de agarrar los datos y meterlos en un grid.

La otra fue tratar de usar el modelo de programación anterior (Plugins) desde el cual era más fácil la interacción con .NET gracias a unos Wrappers que lamentablemente ya no existen ya que MSN Plus migro su modelo de plugins por el de scripts.

Lo obvio fue googlear, aunque ya estaba algo desesperado, para no ser el objetivo, algo que tomara más de 15 mins y no pareciera una solución clara ya era algo que pintaba para ser abandonado.

Encontre la siguiente librería DotMSN - .NET Messenger library - Download, viene medio mal documentada (solo la documentación autogenerada), pero trae un ejemplo que realiza todo lo básico como conectarte a MSN, buscar en tus contactos, etc.

Cabe acalara que esta es un API para interactuar con los servicios de MSN no para interactuar con el cliente de MSN que fue lo que pense buscar originalmente.

Lo mejor es que aún y que no tiene mucha documentación podría decir que entra en el concepto de código autodocumentado con metodos y nombres de objetos lo suficnetemente claros como para obtener todo lo que buscaba en menos de 15 mins.

Ahorita no puedo subir código, pero les pego aquí lo importante.

// En el constructor nos conectamos a nuestro servicio y cachamos el metodo login
private Messenger messenger;
public Form1()
{
InitializeComponent();
messenger = new Messenger();
messenger.Credentials.ClientID = "msmsgs@msnmsgr.com";
messenger.Credentials.ClientCode = "Q1P7W2E4J9R8U3S5";
messenger.Nameserver.SignedIn += new EventHandler(Nameserver_SignedIn);
messenger.Credentials.Account = "junk@junk.com";
messenger.Credentials.Password = "CONFIDENCIAL1234";
messenger.Connect();
}

// El connect es asincrono y el evento se lanza desde otro Thread, por lo que
// usamos el patrón de UpdateUI Method
void Nameserver_SignedIn(object sender, EventArgs e)
{
UpdateUI(delegate
{
if (!messenger.Connected)
return;
dataGridView1.SuspendLayout();
dataGridView1.Rows.Clear();
foreach (Contact contact in messenger.ContactList.All)
{
//ListViewItem item = new ListViewItem();
//item.Text = contact.Mail;
//item.Tag = contact;
dataGridView1.Rows.Add(contact.ContactGroup.Name, contact.Name, contact.Mail);
}
dataGridView1.ResumeLayout();
});
}



///
/// Invoca a un EventHandler desde el thread de la interfaz de usuario
///

///
private void UpdateUI(EventHandler action)
{
this.Invoke(action);
}

// Cuando presional button1 simplemente concatenamos lo que nos interesa y listo para Outlook.
private void button1_Click(object sender, EventArgs e)
{
StringBuilder builder = new StringBuilder();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if( row.Cells[3].Value!=null && (bool)row.Cells[3].Value)
builder.Append(String.Format("{0};", row.Cells[2].Value));
}
Clipboard.SetData(DataFormats.StringFormat, builder.ToString());
}


La verdad es que mi ejemplo es de los más simplón, pero fue divertido hacerlo y por otro lado abre una serie de oportunidades interesantes al saber que ahora cuenton con un API que podríamos explotar para algún proyecto real... Ya empiezan a surgir algunas ideas :)