VIDEO: Nuevas certificaciones para desarrolladores con Visual Studio 2008.

Jose Manuel Alarcón publicó un artículo sobre la evolución de las nuevas certificaciones para Visual Studio 2008 y de qué manera podrían afectar un proceso actual de certificación.

Me resultó sorprendente la fecha de lanzamiento del examen para ASP.NET (21 de mayo) y algunas otras cosas...

 

Puedes ver el video aquí y Enlace al post completo

Actualmente calificado con 5.0 por 1 personas

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Ordenando (Sort) Colecciones con tipos genéricos y Métodos Anónimos

Ordenar una colección, podría tomarse como una de las tareas más triviales dentro del desarrollo de algo: Sobrescribir el método Sort(), implementar IComparer o IComparable, etc. Pero a veces en aras del tiempo necesitas hacerlo de forma aún más rápida, esencialmente con colecciones "inocuas" (llamo a esto una simple collección que implementa List<object> ej: OrderCollection : List<Order>). En ese momento es que encontré un uso realmente práctico a la combinación de Tipos Genéricos y Métodos Anónimos: utilizarlos para ordenar una colección.

En primer lugar tomemos una clase Order la cual contiene las propiedades: Id, CreatedDate y Value. (los nombres se han tomado simplemente para términos de explicación) definida así:

[Serializable]
    public class Order
    {
        private int _Id;
        private decimal _Value;
        private DateTime _CreatedDate;
 
        public int Id
        {
            get { return _Id; }
            set { _Id = value; }
        }
 
        public decimal Value
        {
            get { return _Value; }
            set { _Value = value; }
        }
 
        public DateTime CreatedDate
        {
            get { return _CreatedDate; }
            set { _CreatedDate = value; }
        }
    }

Y además se define la colección de items de tipo Order:

public class OrderCollection: List<Order> { }

Para uso práctico en un reporte específico necesitas ordenar la lista de órdenes que has obtenido por la propiedad CreatedDate, allí entran los métodos anónimos, inserto el código para luego explicar: 

private void BindOrders()
{
    //Obtener las órdenes de la DB.
    OrderCollection orders = Orders.GetAllOrders();
 
    //Sort - Orden por CreatedDate
    orders.Sort(
        delegate(Order x, Order y)
        {
            return Comparer<DateTime>.Default.Compare
                (x.CreatedDate, x.CreatedDate);
        }
        );
 
    //Asignación
    Repeater rptOrders = FindControls("rptOrders") as Repeater;
    if (rptOrders != null)
    {
        rptOrders.DataSource = orders;
        rptOrders.DataBind();
    }
}

Pues qué hemos hecho aqui? Espero ya hayas encontrado el punto clave y no tengas que leer el resto.

  1. Utilizamos la sobrecarga del método Sort() para utilizar un delegado, a este delegado se le asignan los parámetros x & y como objetos de Tipo Order.
  2. Creamos el método anónimo para ese delegado, allí sin más ni más. Comúnmente deberíamos generar otro método que maneje la delegación... pero podemos hacerlo allí.
  3. Retornamos en ese método anónimo la comparación de los objetos generada mediante la implementación de Comparer<DateTime> que crea una instancia "genérica" de Comparer con el tipo DateTime.
  4. El compare recibe las propiedades del objeto x & y para realizar la comparación.
  5. Listo.

Este mecanismo "elegante" como denominarían algunos podría permitirnos realizar muchas funciones de sort sin requerir ir a modificar las clases bases, especialmente si no tienes acceso al código fuente base. Como el caso de un custom framework. De esta manera podríamos tomar cualquier propiedad para realizar el Sort().

Espero que este ejemplo simple y pequeño pueda ayudarlos y aliviarles una jornada de trabajo, tal como me pasó a mí.

Happy Coding.

Actualmente calificado con 5.0 por 2 personas

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Problemas al enviar correos a Hotmail/Live con System.Net.MailMessage

Al realizar alguna aplicación la cual tenía que enviar un mensaje de email a Hotmail o Windows Live, casi siempre el mensaje se ubicaba dentro de la carpeta spam del cliente de correo.

Un problema que tenía a nuestro jefe de proyectos bastante malhumorado, y por más que implementábamos soluciones de registro en Dns, validación de IP, etc... el problema seguía presentándose.

Pues acabo de leer en Geek.ms la solución

En la que explica que el problema está en la transición de la clase MailMessage from System.Web.Mail to System.Net.Mail en algunos cambios que han realizado hacen que las cabeceras del mail se envien en minúsculas y que provocan que el servidor de correo los trate como spam.

La solución está en instalar el SP1 de NET 2.0 o pasarse a NET 3.5 que ya ha sido corregido.

Espero que esto deje tranquilo a algunos...

Happy Coding. 

Actualmente calificado con 1.0 por 1 personas

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Larga vida a Sourcesafe!

Visual Sourcesafe

Mientras todo el centro de atención sobre control de versiones estuvo puesto sobre Team Foundation Server durante los dos últimos años, es sumamente importante recordar al viejo amigo Visual Sourcesafe quien aún existe y es más esta siendo usado por miles de equipo de desarrollo alrededor del mundo.

Una actualización está disponible ahora para Visual Sourcesafe 2005 que permitirá que pueda seguir siendo usado con Visual Studio 2008 sin problemas. Esta actualización está disponible de forma gratuita para quienes sean usuarios con licencia de Visual Sourcesafe. Este update también incluye algunas mejoras adicionales como soporte total para Windows Vista y la corrección de algunos bugs.

Esta actualización esta disponible aquí y todas las novedades a encontrarse con este update están en un post del blog de Richard Berg.  

Después de haber descargado durante las últimas 4 semanas ISOs de 3, 4 GB, es refrescante ver ahora un simple update de 3.5MB jejeje. 

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

ASP.NET MVC Design Philosophy

Eilon Lipton, el desarrollador líder del proyecto ASP.NET MVC comparte algunos de sus pensamientos sobre la filosofía de diseño alrededor de la figura del nuevo framework.

A pesar de que existen muchos artículos y post que describen lo que es este framework y cómo realizar tareas, lo realmente útil es tener información a la mano que nos permita tomar decisiones al momento de tratar de implementar este framework. Así como determinar la mejor estrategia para realizar el "salto" de nuestras aplicaciones utilizando las nuevas características que Microsoft nos presenta.

Una de las características que más me interesan es el incluir el "mindset" de pruebas al desarrollar sitios y aplicaciones web. A pesar que ya existen formas de hacerlo, hacía falta algo que nos obligue a hacerlo... para muchos quienes trabajamos desarrollando aplicaciones web, el tema de pruebas no es muy tomado en cuenta.

Estoy seguro que será de gran utilidad... léanlo, realmente despeja muchas dudas.

ASP.NET MVC Design Philosophy

Eilon Lipton's Blog 

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categorías

Sponsors


    Blogroll