Asistente P/Invoke Interop

by Valeriano Tortola 8. julio 2008 08:33

Si trabajas con p/invoke tanto habitual como eventualmente y pinvoke.net esta en tus bookmarks... esta herramienta no te va a dejar indiferente :D Leo en el blog del BCL Team:

El equipo Interop ha publicado recientemente una nueva herramienta llamada P/Invoke Interop Assistant. Esta herramienta genera automáticamente las declaraciones en C# ó VB.NET de las llamadas p/invoke nativas. Incluye una búsqueda rápida por las librerias comunes Win32 y permite generar las declaraciones para cualquier otra libreria nativa simplemente pasando la firma nativa. Esto hace mucho más facil trabajar con interop correctamente, sin tener que comprender todas las reglas y atributos usados cuando "conecta" el desarrollo administrado y no administrado. `

Mas...

Tags: ,

.NET 2.0 | C# 2.0

Recursividad y yield return. Haciendo queries a colecciones en arbol en C# 2.0

by Valeriano Tortola 6. julio 2008 00:49

Estoy disfrutando de lo que será mi último proyecto en C# 2.0 y .NET 2.0 antes de pasar a WPF, y la verdad es que se hace amargo algunas veces cuando ya conoces C# 3.0, por ejemplo se hecha de menos LINQ :D

En este artículo quiero demostrar como hacer queries a una colección de elementos en forma de arbol desde C# 2.0, de forma que se pueda definir el tipo de colección, criterio de búsqueda que se quiere usar y obtener los resultado conforme se vayan obteniendo.

Una función recursiva, es una función que se llama a si misma y controla cuando parar de hacerlo mediante una condición. Si esa condición no esta bien definida... a parte del cuelgue del hilo en cuestión lo más posible será terminar recibiendo una sonora StackOverflowException.

Mas...

Tags: , ,

.NET 2.0 | C# 2.0

Listo para empezar a trabajar en Dublin

by Valeriano Tortola 12. junio 2008 23:16

datakraftBueno pues las vacaciones se acaban y es la hora de volver a trabajar y a .NET :D El próximo día 23 me incorporo a Datakraft en Dublín como desarrollador y debo confesar que estoy bastante excitado con el tema, voy a tener la oportunidad de sumergirme en .NET 3.5, desarrollo Windows/web/back-end y metodologías ágiles.

Con esto completo mi instalación en Dublín al 100%, después de 2 meses y medio aprendiendo inglés en el LCI, encontrar casa y encontrar trabajo. Otro día contaré como ha sido el proceso a grandes rasgos, pero desde luego ha sido una aventura desde el primer día y sin lugar a dudas considero que fué una buena decisión, no solo por aprender inglés, si no por conocer gente de todo el mundo y la aventura del día a día defendiendote con lo poco que hablas y lo menos que entiendes. Ahora no hablo un inglés para tirar cohetes, pero suficiente para defenderme en el día a día (pero aún no entiendo Los Simpson en inglés xD), espero que en un par de años hablar y entender sin ningún tipo de problemas.

Desde aquí me gustaria agradecer a mis antiguas empresas Avanade y Experian por prestarse a dar referencias a mi nueva empresa sobre mi y a mi ex-compañero de Avanade Gerardo K. por prestarse a escribir una referencia técnica recomendándome.

Ahora una semana para España... que echo de menos muchas cosas... :)

Tags:

Personal

Un mal dia...

by Valeriano Tortola 4. junio 2008 01:12

Voy preparándome psicológicamente para la vuelta al trabajo... xD

Unos cuantos videos de lo que seguro algún día se nos ha pasado por la cabeza hacer alguna vez....

Mas...

Tags:

Personal

Pooling de llamadas asincronas

by Valeriano Tortola 31. mayo 2008 00:20

Hora de volver a trabajar... asi que toca quitarle el polvo al Visual Studio que tenia abandonado ya estos meses, la buena vida se acaba... xD

En determinadas ocasiones, necesitamos lanzar un cierto número de ejecuciones en paralelo y esperar a que terminen todas para devolver el resultado final. Existen diversas formas de hacerlo, y yo voy a poner la que, después de darle un par de vueltas... me parece la mejor y más sencilla, ... se puede hacer aún mejor, pero no se si más sencilla... y no se si lo que se puede mejorar merece la pena en cuanto a la complejidad que añade.

Mas...

Tags: , ,

.NET 2.0 | C# 2.0

Visual Basic .NET vs C# .NET: ¿Cual es mejor y por que?

by Valeriano Tortola 6. mayo 2008 23:30

Hoy Second Nug tiene el honor de presentar a dos ponentes de excepción, Guillermo Som (el Guille) y Marino Posadas (el Ave Fénix), en la que será una gran batalla donde dos voces con gran experiencia expondrán sus mejores bazas en un duelo sin igual: VB .NET vs C# .NET.
Sabremos por qué se decantaron por un lenguaje u otro y nos presentarán su evolución en las nuevas versiones del .NET Framework. Nos desvelaran secretos y trucos de sus defendidos y veremos si es cierto aquello de que lo que se puede hacer con uno, se puede realmente hacer con el otro.
Además los asistentes podrán resolver sus dudas preguntando a nuestros expertos y participar en el resultado final de la contienda.
El eterno dilema al descubierto. ¿Quién será el vencedor?

El evento será a las 19:30 - 21:30 (GMT+2), 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.

Tags:

Trabajando con el registro de Windows desde C# y .NET

by Valeriano Tortola 27. marzo 2008 00:50

Manejar el registro de Windows es algo... en parte tedioso por lo extenso y medianamente documentado que esta lo que contiene. En mi humilde opinión, es algo a evitar siempre que sea posible en virtud de los archivos de configuración; pero en ocasiones necesitamos crear/modificar entradas que afectan al funcionamiento de otros programas ó del propio Windows desde nuestras aplicaciones, asi que hay que arremangarse y meterle mano :D

Primero un pequeño repaso de como se estructura la información a grandes rasgos. Podemos ver el registro mediante la aplicación regedit.exe. Encontramos 5 elementos principales, que así por encima vienen a ser:

Mas...

Tags:

Windows | .NET 2.0 | C# 2.0

Evento: Windows Communication Foundation al Descubierto en SNUG

by Valeriano Tortola 26. marzo 2008 16:32

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.

Tags: ,

.NET 3.5

Chatarra a precio de oro III, Microsoft es asi

by Valeriano Tortola 25. marzo 2008 00:44

Y no se confundan, Microsoft nada pinta aquí... al menos para mi, pero si para el SAT :D  Sigo con mi lucha con la chatarra (parte I, parte II), alcanzado ahora nuevas cotas de asombro con el SAT. Una de mis reglas cuando hablo con el SAT, es ser tan humilde como pueda, prestar atención a lo que dice y evitar dar a entender que soy un usuario avanzado, en este caso... mucho menos decir que soy programador.

Una vez instalada la aplicación en red, la primera cosa que se me ocurre (yo y mis ocurrencias...), es lanzar el cliente como usuario Invitado ... a lo que recibo un error de que no puede escribir a un archivo que el programa de instalación ha dejado caer en C:\ ... nada más y nada menos, no se me ocurre otra cosa que llamar al SAT (más ocurrencias bobas...) para preguntar como ejecutar la aplicación con una cuenta desprivilegiada para que nadie pueda cargarse la máquina... la respuesta... increible:

Mas...

Tags:

Forzando la captura de excepciones no manejadas en WPF

by Valeriano Tortola 20. marzo 2008 05:18

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:

Mas...

Tags: ,

C# 3.0 | .NET 3.5