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

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

ASP.NET 3.5 Extensions CTP Preview Lanzado ...

Lo he leído en el blog de Scott Gu, lo que muchos estábamos esperando la versión CTP de los ASP.NET 3.5 Extensions.

La estrella de este Release: El framework para desarrollo de aplicaciones ASP.NET utilizando MVC (Model, View, Controller). El mismo Scott nos tenía al tanto con algunas cosas realmente interesantes de este framework.

Este primer release incluye:

  • ASP.NET AJAX Improvements: New ASP.NET AJAX features in the ASP.NET 3.5 Extensions release include better browser history support (back/forward button integration, and server-side history management support), improved AJAX content linking support with permalinks, and additional JavaScript library improvements.
  • ASP.NET MVC: This model view controller (MVC) framework for ASP.NET provides a structured model that enables a clear separation of concerns within web applications, and makes it easier to unit test your code and support a TDD workflow. It also helps provide more control over the URLs you publish in your applications, and more control over the HTML that is emitted from them.
  • ASP.NET Dynamic Data Support: The ASP.NET 3.5 Extensions release delivers new features that enable faster creation of data driven web sites.  It provides a rich scaffolding framework, and will enable rapid data driven site development using both ASP.NET WebForms and ASP.NET MVC.
  • ASP.NET Silverlight Support: With the ASP.NET 3.5 Extensions release we'll deliver support for easily integrating Silverlight within your ASP.NET applications.  Included will be new controls that make it easy to integrate Silverlight video/media and interactive content within your sites.
  • ADO.NET Data Services: In parallel with the ASP.NET Extensions release we will also be releasing the ADO.NET Entity Framework.  This provides a modeling framework that enables developers to define a conceptual model of a database schema that closely aligns to a real world view of the information.  We will also be shipping a new set of data services (codename "Astoria") that make it easy to expose REST based API endpoints from within your ASP.NET applications.

Descarga el CTP de ASP.NET 3.5 Extensions Acá.

Para tener a la mano la información que el mismo Scott ha publicado:

Mucho que aprender estos días así que .. Happy Coding!

 

 

Actualmente calificado con 4.7 por 3 personas

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

VIDEO: Lambda Expression. Para qué son buenos... por qué utilizarlos.

Ya está Visual Studio con nosotros, y estoy más que seguro que estás a punto de dar el salto al uso de LINQ. Antes de eso sería necesario entender qué es una Lambda Expression y cómo usarla.

Este video de DavidmBush que encontré en YouTube  define de manera bastante práctica y simple tanto la conceptualización como su uso. 

 Algunas precisiones que luego de ver el video puedo puntualizar:

  • La afirmación de que las Expresiones Lambda y métodos anónimos hacen tu código dificil de leer y mantener es realmente inadecuada. Yo soy de la idea de que mientras menos código escribes siempre es mas facil realizar cualquier labor después.
  • El verdadero USO y APROVECHAMIENTO de estas características está en C#. La definición y uso que VB.NET hace de las expresiones lambda realmente me decepciona.

Si quieres revisar algo más sobre esto:

Sea el primero en calificar este post

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

Categorías

Sponsors


    Blogroll