vtortola.NET Logo
Pensando en asíncrono - BlogEngine.Core.Category

Ordenaciones personalizadas con LINQ

por vtortola viernes, 12 de septiembre de 2008

Esta mañana necesitaba ordenar los elementos de una tabla en función de uno de los campos, pero el problema era que la comparación no era alfabética ni similar, era en función de unos criterios propios; uno de los parámetros que aceptan los métodos extensores OrderBy, OrderByDescending, ThenBy and ThenByDescending es un IComparer<>, probé y funcionó, asignaba un peso a cada valor y luego comparaba en el método Compare los pesos de los dos parámetros de entrada, pero aún asi no me gustaba como quedaba, no me gustaba lo de tener que escribir una clase solo para este propósito... buscaba algo más... compacto... asi que con ayuda de mi compañero use un delegado anónimo primero que directamente devolvia el peso en TKey inferido como Int32, que es en lo que LINQ basaria la ordenación y luego lo substituí por una expresión lambda; es realmente interesante como LINQ te facilita la vida :D

Leer el artículo completo...

Be the first to rate this post

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

Tags:

C# 3.0 | .NET 3.5

Update-Select en un DataTable con LINQ

por vtortola jueves, 11 de septiembre de 2008

Últimamente ya no escribo nada, estoy totalmente inmerso en el mundo LINQ con el C# 3.0 y LINQ de Octavio Hernandez y el LINQ en Action ... y poco hay que contar que no este en libros ó en los cientos de blogs que llevan escribiendo sobre LINQ desde hace mucho tiempo. Aún asi por lo menos iré escribiendo alguna cosilla sobre LINQ aunque solo sea para que no se me olvide como hacer ciertas cosas y tener que volverlas a buscar :P

Este es un ejemplo simple de como lanzar una consulta Update-Select con LINQ sobre un DataTable, apoyandonos en el ya famoso método extensor ForEach ... (que según me ha comentado un compañero es posible que aparezca en la BCL próximamente), lo que hace es en cada DataRow que cumple con las condiciones dadas introduce en la columna "Initial" la primera letra del nombre... (nada complicado vamos xD)

EmployeesTable.AsEnumerable()
   .Where(EmployeeRow => !EmployeeRow.IsNull("Country") && 
                  EmployeeRow.Field<String>("Country") == "UK" &&
                  !EmployeeRow.IsNull("FirstName") &&
                  EmployeeRow.Field<String>("FirstName") != String.Empty)
   .ForEach(EmployeeRow => EmployeeRow.SetField<String>("Initial", 
                                EmployeeRow.Field<String>("FirstName").Substring(0, 1)));

También empezaré ahora a escribir sobre WPF... que me toca ponerme las pilas :D

Be the first to rate this post

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

Tags: ,

C# 3.0 | .NET 3.5

Evento: Windows Communication Foundation al Descubierto en SNUG

por vtortola miércoles, 26 de marzo de 2008

El próximo 1 de Abril podréis asistir a un nuevo Webcast en el que podréis sacar el máximo provecho de sistemas, tanto nuevos como ya existentes, a través de Windows Communication Foundation. Para esta nueva charla, contaremos con la presencia de Hadi Hariri como ponente de excepción, que nos deleitará con todo lo que esta nueva herramienta nos puede ofrecer.

El evento será a las 19:30 - 21:30 (GMT+1), y como en las anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting.

  • Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace.
  • Podéis registraros en el evento en el siguiente enlace.

Yo para variar, me lo perderé en directo porque será mi segundo día en Dublin y tengo clase hasta las 19:00, pero lo bueno de estos eventos es poderlos ver a posteriori en diferido :D y este en concreto me interesa muchísimo.

Be the first to rate this post

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

Tags: ,

.NET 3.5

Forzando la captura de excepciones no manejadas en WPF

por vtortola miércoles, 19 de marzo de 2008

En .NET 2.0 y WinForms había una forma que ahora ya no es del todo válida en WPF ya que han desaparecido el método Application.SetUnhandledExceptionMode y el evento Application.ThreadException, en su lugar tenemos Application.DispatcherUnhandledException:

<Application x:Class="KiosimWPF.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="Window1.xaml" 
    DispatcherUnhandledException="App_DispatcherUnhandledException">
    <Application.Resources>
         
    </Application.Resources>
</Application>

Luego en el handler del evento podemos evitar que la excepción tumbe la aplicación:

Leer el artículo completo...

Be the first to rate this post

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

Tags: ,

C# 3.0 | .NET 3.5

Cursos gratis en Microsoft Learning

por vtortola martes, 18 de marzo de 2008

Gracias a la lista de SNUG y a Toni Recio, me entero que hasta el 30 de Junio del 2008 Microsoft Learning ofrece un curso gratis, a parte de los que ya ofrecia "for FREE". Al registrarnos, se nos da un código con el que el precio del curso que elijamos se rebajará hasta $0 :) El código tiene validez por 30 días.

Remarcar que los siguientes cursos para desarrolladores son gratis ya de por sí, podriamos registrarnos en uno de pago mediante el descuento y realizar cualquiera de estos también:

Leer el artículo completo...

Be the first to rate this post

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

Tags:

.NET 2.0 | Microsoft | .NET 3.5

Parsear los argumentos de la linea de comando

por vtortola lunes, 17 de marzo de 2008

Para determinadas situaciones, es más útil parametrizar nuestras aplicaciones desde los argumentos que pasamos al ejecutable que desde un archivo de configuración, sobre todo si es una aplicación de consola. El problema suele ser que lo que nos llega a nuestra aplicación es un array de cadenas y nosotros debemos relacionarlas entre ellas, pudiendo haber distintos tipos de elemetos como modificadores, parámetros, parámetros de los modificadores y distintas cantidades de ambos tipos de parámetros.

Este es un ejemplo de como ordenarlos obteniendo una estructura en la que todo esta ordenado en forma jerárquica para poder consultar fácilmente parámetros, modificadores y parámetros de los modificadores, la función devuelve una clase de este tipo:

public class CommandLineArguments
{
    public List<String> Parameters { get; private set; }
    public Dictionary<String, List<String>> Modifiers { get; private set; }
 
    public CommandLineArguments()
    {
        this.Parameters = new List<String>();
        this.Modifiers = new Dictionary<String, List<String>>();
    }
}

Leer el artículo completo...

Actualmente calificado 5.0 por 1 persona(s)

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

Tags: ,

C# 3.0 | .NET 3.5

Dar el foco a una aplicacion externa

por vtortola lunes, 17 de marzo de 2008

Para dar el foco a una aplicación externa a la nuestra, se usa el método SetForegroundWindow de user32.dll mediante PInvoke:

        [DllImport("user32.dll")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);

Simplemente hay que encontrar el proceso y pasar a este método el puntero Process.MainWindowHandle, que apunta a la ventana principal de la aplicación, por ejemplo asi:

Leer el artículo completo...

Actualmente calificado 5.0 por 1 persona(s)

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

Tags: ,

C# 3.0 | .NET 3.5

File Splitter, partiendo y recomponiendo archivos

por vtortola viernes, 07 de marzo de 2008

Este es un pequeño programa que he hecho para partir cualquier archivo en fragmentos más pequeños y poder volver a reconstruirlo después como apoyo a otra aplicación que estoy desarrollando.

Aunque no tiene mucha parafernalia aún estoy asegurando que funciona bien, asi que si alguien lo quiere probar puede instalarlo desde este enlace: http://vtortola.net/FileSplitter/publish.htm (ClickOnce), cuando este requete-probaodo y haya arreglado el desastre de nomenclatura que hay en el código :D lo subo a CodePlex todo junto.

Leer el artículo completo...

Be the first to rate this post

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

Tags:

C# 3.0 | .NET 3.5

Obtener el hash de un archivo

por vtortola viernes, 07 de marzo de 2008

Esto es un ejemplo de como obtener distintos tipos de hash de un archivo,  me apoyaré en una de las nuevas características de C# 3.0, los métodos extensores, para tener más a mano esta funcionalidad. Como se puede ver en el código implementar nuevos métodos para la obtención de otros tipos de hash es sumamente sencillo.

Hay distintos tipos de hash, en este ejemplo he utilizado MD5y dos versiones de SHA, SHA-1 y SHA256. La necesidad y cualidades de cada uno nos dirán que usar en cada momento.

Leer el artículo completo...

Be the first to rate this post

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

Tags: ,

C# 3.0 | .NET 3.5

Powered by BlogEngine.NET 1.1.1.8
This theme is a variation of Mads Kristensen by Valeriano Tórtola

Valeriano Tórtola

Personal Ver perfil
E-mail Enviar correo
LinkedIn LinkedIn
Fotos Fotos
MCPD

Publicidad

Posts recientes

Disclaimer

Las opiniones mostradas aqui son mis opniones y no representan el punto de vista de mi empresa en ninguna forma.

Creative Commons License

Esta obra está bajo una licencia de Creative Commons

Locations of visitors to this page

© Copyright 2008

Sign in

Calendario

<<  octubre 2008  >>
lumamijuvido
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

Ver en calendario extendido