lunes, 27 de junio de 2011

Linq y el Metodo Distinct con IEqualityComparer

En este ejemplo no estoy usando tipos anónimos, ya que previamente definí mi clase a ocupar con Linq.

Lo primero es importar la libreria de Reflection.

using System.Reflection;

Lo siguiente es crear una clase que implemente la interface de IEqualityComparer, esta clase se usa sobre un listado del tipo de dato a utilizar

public class OCDiferentes : IEqualityComparer<OCxItem>
{
public bool Equals(OCxItem x, OCxItem y)
{
if (x == null || y == null) //optional
return false;
else
return
x.ID == y.ID;
}

public int GetHashCode(OCxItem Item)
{
return Item.ID.GetHashCode();
}
}
Dentro de esta clase tenemos el método Equals donde se compararan los valores que queremos que sean únicos. Ahora la implementación.
ListadoResultante = (ListadoOrigen
.Where(d => (d.Y- d.X) > 0) //Filtro
.Select(d => new OCxItem
{
PId = (string)d.PId,
Nombre = d.Nombre,
ID = d.ID,
Fecha = d.Fecha,
}).Distinct(new OCDiferentes())
.OrderBy(d => d.ID)).ToList(); //Ordenamiento

Dentro del llamado al metodo Distinct creamos una clase para que compare, del tipo que habíamos definido previamente “OCDiferentes


También incluyo un Where y un Order by para que se entienda como se utilizarían esas otras instrucciones.


Por ultimo tamvien estoy usando la instruccion ToList(), para que cree el listado del tipo que se define en el Select que es “OCxItem


Nota: Listado ListadoResultante y ListadoOrigen son del tipo List<OCxItem>

jueves, 16 de junio de 2011

Visual Studio 2005 ASP.NET Debug en Windows 7 y IIS 7.0

Pues hay una pequeña cuestión con el IIS 7, y es que después de un rato por default termina con nuestro debug de aplicación, y si estábamos evaluando algún valor de la ejecución, pues simple y sencillamente ya no se podía, habría que parar la ejecución y volver a iniciar el debug para poder seguir evaluando valores.

Y pues como esto no es funcional, le vengo ofreciendo, la solución a este problema!

bueno aquí están los 5 pasos para solucionarlo.

1) Entrar al IIS y seleccionar el pool donde esta nuestra aplicación

2) Entrar en las configuraciones avanzadas del pool

3)En la sección de Proccess Model, poner en Ping Enabled= False

ó

4) Modificar el valor de Ping Maximum Response Timeout que por default es 90 segundos, e incrementarlo para que siga habilitada la opción de ping (esto monitorea nuestra aplicación)

5) Guardar los cambios y salir

Y con eso debe solucionarse ese pequeño problemita!

Saluuuuuuuu2

lunes, 13 de junio de 2011

Aplicaciones para iPhone Publicación IV

Pues aquí va una nueva lista, para actualizar las recomendaciones de aplicaciones del iPhone.

featured-soundtracking SoundTraking: con esta aplicación se pueden identificar canciones que escuchamos en la radio, o postear en twitter la cancion que se esta reproduciendo en ese momento en nuestro iphone.

Dropbox Dropbox. el cliente de este servicio, directo para el iphone, la verdad esta muy completo este cliente, ya hice un post previo de este servicio y valdría la pena que lo revisaran para saber de que les hablo.

ibook iBooks: cliente nativo de la manzana, para leer pdf’s o libros que descarguemos de su appstore.

Creo que ahora no ando tan inspirado, o no he utilizado tantas aplicaciones nuevas, no mas bien creo que no ha salido nada que me impresione y que merezca ser compartido!.

Se aceptan sugerencias para ver que mas se puede compartir!