August 2011 - Artículos - El blog de Javier Torrecilla

August 2011 - Artículos

[LINQ]El método ToLookUp

Definición Según la definición de MSDN , el método ToLookUp ejecutado sobre una variable que implemente el Tipo IEnumarable<T>, va a devolver un Diccionario ( Dictionary ) a través de las condiciones de agrupación indicadas, y mostrando el dato indicado. Ejemplos de Uso Para ver la utilidad de este método, vamos a ver una serie de ejemplos basados en una lista de Ejemplo acerca de la siguiente clase: 1: class Persona 2: { 3: public string Nombre...
Publicado por Javier Torrecilla | 2 comment(s)
Archivado en: ,,

Patrón UoW Parte 2

Introducción En vista de que parece que el artículo que publique ayer sobre UoW , parecía que era demasiado simple…, y a pesar de que Lucas Ontivero ha publicado un ejemplo (Gracias), he decidido publicar un ejemplo un poco más amplio para ver su utilización. Usando el Patrón Partiendo de una clase base: 1: public abstract class cBase : INotifyPropertyChanged 2: { 3: public event PropertyChangedEventHandler PropertyChanged; 4: public void CambiarPropiedad...
Publicado por Javier Torrecilla | 17 comment(s)
Archivado en: ,

Patrón Unit of Work (UoW) o Unidad de Trabajo

Definición Este patrón tiene como objetivo tratar como una Unidad todos aquellos objetos nuevos, modificados o eliminados con respecto de una fuente de datos. Martin Fowler, ya realizó una descripción de UoW en su libro “ Patterns of Enterprise Application Architecture ”. Aproximación Una aproximación, similar a la que usa Fowler para definir el patrón, podría ser: 1: public class UnidadDeTrabajo 2: { 3: 4: List<cBase> objetosNuevos;...
Publicado por Javier Torrecilla | 10 comment(s)
Archivado en: ,

[How To] Transponer un Objeto DataTable con LINQ

Introducción Una pregunta bastante utilizada en foros MSDN es como Transponer un DataTable al igual que se puede hacer en Excel. ¿Qué es Transponer una Tabla? A simple vista será cambiar Columnas por filas. Podríamos obtener los datos modificados desde la base de datos, con algún quebradero de cabeza. Pero, me he animado a crear un método para ayudar en esta tarea. Métodos Usados Bueno, como ya he comentado alguna vez LINQ es algo que me encanta...
Publicado por Javier Torrecilla | 3 comment(s)
Archivado en: ,

[EF + ORACLE] Procedimientos almacenados EF 4.1 y la Beta 2 de Oracle

Introducción Hace un tiempo realice una serie de post acerca de usar Oracle con EF, y hace un mes os hable de la salida de la Beta 2 del Driver de Oracle para EF. En este post vamos a ver como utilizar Procedimientos Almacenados de Oracle desde Entity Framework. Usando Procedimientos Partiendo del procedimiento: 1: PROCEDURE "PROCEDURE1" ( 2: "COCHE" OUT SYS_RefCursor) IS 3: BEGIN 4: open COCHE FOR SELECT id_coche,nombre,marca FROM COCHES; 5:   6: END ; Donde vamos a devolver...
Publicado por Javier Torrecilla | con no comments
Archivado en: ,,

[CR] Usando Listas para llenar nuestros informes (II).

Introducción En el post anterior hemos visto como definir un informe en base a una clase propia y enlazarlo a una lista genérica desde VS. Otra característica que se añadio con VS 2005 y que hoy en día es bastante utilizada, son los tipos de datos “ Nullables ” o la versión de El Guille . A la hora de definir una clase que tenga este tipo de datos, nos vamos a encontrar con un problema a la hora de enlazarlo al informe en tiempo de ejecución...
Publicado por Javier Torrecilla | con no comments
Archivado en: ,,

[CR] Usando Listas para llenar nuestros informes (I).

Introducción Un tema muy común a cualquier aplicación y una de las cuestiones más preguntadas en los foros de MSDN, es acerca de los informes con Crystal Reports. Hasta la llegada de Visual Studio 2005, la forma más sencilla de rellenar con datos y definir un informe se realizaba gracias a los DataSet Tipados. Con Visual Studio 2005 se introdujeron las Listas ( List ) que son colecciones de datos. También se modificaron los asistentes de los Informes de Crystal Reports para admitir definir un informe...
Publicado por Javier Torrecilla | 8 comment(s)
Archivado en: ,,