Posts Tagged VB.NET

Buscar un elemento y si no está, usar el anterior

Pues eso… otro articulillo/truco que acabo de publicar en mi sitio sobre cómo buscar "algo" y si no se encuentra, quedarse con el anterior, usando instrucciones de LINQ.

 

Aquí tienes el enlace y la descripción…

 

Buscar un elemento y si no está, usar el anterior

 

Buscar un elemento y si no está, usar el anterior… En este ejemplo he usado LINQ para realizar la búsqueda con Where y accediendo al elemento por medio del método extensor Last.

 

Espero que te sea de utilidad.

 

Nos vemos.
Guillermo

Tags: , , ,

Buscar datos con LINQ sin tener en cuenta mayúsculas/minúsculas

Pues eso… un articulillo que acabo de publicar en mi sitio sobre cómo hacer una búsqueda insensible a mayúsculas y/o minúsculas (case insensitive, pero usando instrucciones de LINQ.

 

Aquí tienes el enlace y la descripción…

 

Buscar datos con LINQ sin tener en cuenta mayúsculas/minúsculas

 

Buscar datos con LINQ sin tener en cuenta mayúsculas/minúsculas. O lo que es lo mismo buscar datos case insensitive usando instrucciones de LINQ (ya sea para objetos en memoria como los contenidos en los procedentes de una base de datos).

 

Espero que te sea de utilidad.

 

Nos vemos.
Guillermo

Tags: , , ,

Adaptar nuestra aplicación al tamaño y posición del escritorio de Windows

Pues eso… un articulillo que acabo de publicar en mi sitio sobre cómo saber las coordenadas y tamaño del área utilizable del escritorio de Windows.

Aquí tienes el enlace y la descripción…

 

Adaptar el formulario al tamaño y posición del escritorio

 

Cómo averiguar las coordenadas y posición del área de trabajo del escritorio o pantalla del usuario de nuestra aplicación mediante la propiedad WorkingArea de la propiedad PrimaryScreen de la clase Screen.

 

Espero que te sea de utilidad.

 

Nos vemos.
Guillermo

Tags: , ,

Código de ejemplo de Fluent Interface para CSharp y Visual Basic

Pues eso, que ya está el código de ejemplo para que lo puedas descargar desde mi sitio:

.NET/VB6: Código de ejemplo de cómo usar Fluent Interface en C#, Visual Basic .NET y Visual Basic 6.0

Como puedes ver por el título, están los ejemplos para C#, VB.NET y VB6, además el de VB.NET está para la versión 2010 (VB10) y 2008 (VB9) cuyo código también es válido para la versión 2005 (VB8) y supongo que también para las anteriores, aunque no lo he probado… aunque lo mismo algún día lo pruebo… al menos en el VS2003, es decir para VB7.1.

Nos vemos.
Guillermo

P.S.
Si quieres leer el artículo o post que publiqué hace un par de días en este mismo blog, lo puedes hacer desde este enlace:
Fluent Interface no es solo simular el WITH de VB

Tags: , , , , ,

Fluent Interface no es solo simular el WITH de VB

Pues eso, que a raíz de leer un artículo en el blog de mi amigüita Gisela Torres (amiga de feisbúc, ya que no la conozco personalmente aunque en la última cena/reunión de MVP anduvo por allí cerca, pero como yo estaba castigado contra la pared no le vi ni sus ojos… ya sabes que algunos ojos me encandilan, jeje) comentando cómo Crear Fluent Interface en C# y en uno de los comentarios al post decían que se parecía mucho al uso de la instrucción (o bloque) WITH de Visual Basic.

Después en la página que tiene CampusMVP en feisbúc se vuelve a comentar lo mismo, y en realidad es que ese ejemplo concreto es muy parecido al uso de un bloque With de VB (ya sea VB para .NET como el VB6, en ambos existe esa construcción).

 

El código de ejemplo

Sin entrar en demasiados detalles (y con el permiso de Gisela) te muestro el código de uso en C# del ejemplo de interfaz fluida (o fluent interface si lo prefieres en inglés -estos dos enlaces o links son de la wikipedia y en el de español sólo hay ejemplos para C# y C++, mientras que en inglés hay ejemplos para Object Pascal, PHP, Java, JavaScript, C#, etc., eso sí, para VB no hay… ¡faltaría más!-) que puso en su artículo, y después te muestro el correspondiente en Visual Basic usando un bloque With.

 

Nota:
Para entender mejor este ejemplo, te recomiendo que veas el código completo que muestra Gisela en su artículo.

 

El código de uso de Fluent Interface en C#:

new Computer()
    .AddProcessor("Intel i7 920")
    .AddRAM(6)
    .TurnOn()
    .Test()
    .TurnOff();

 

El código de uso de Fluent Interface en VB

(pero sin crear la interfaz que implementa la clase Computer de C#, por eso en este ejemplo la clase se llama ComputerSimple):

With New ComputerSimple()
    .AddProcessor("Intel i7 920")
    .AddRAM(6)
    .TurnOn()
    .Test()
    .TurnOff()
End With

 

Como puedes comprobar, escribiendo el código de C# de esa forma es fácil confundirlo con una construcción (o bloque) With de Visual Basic, pero como comenté en la página de CampusMVP: sin End With y con punto y coma… ;-)

 

Aunque ese "parecido" con With es sólo por la forma de escribir ese código en C#, ya que si lo escribiésemos todo junto y sin cambios de líneas, sería lo que se conoce como encadenamiento de métodos, de forma que se puede llamar a un método de una clase partiendo de la llamada a otro método y esto no se puede hacer con un With, ya que esa instrucción lo que permite es hacer llamadas a diferentes miembros de un objeto (ya sean métodos, propiedades o cualquier cosa que se pueda usar en un objeto) sin necesidad de tener que indicar el objeto en cuestión, es decir, el With nos permite crear un bloque que hace referencia a un objeto, y al estar dentro del "bloque" podemos acceder a cualquier miembro de ese objeto.

 

El código de llamada a la clase "Computer" que simula un With en C# en realidad se podría escribir así:

Nota:

En el blog es posible que se corte el código, pero lo que hay después del comentario podría/debería estar en una sola línea.

Gracias a mi amigo Dani (Seara) por recordarme que no había puesto el código.

 

// Todo en una línea:
new Computer().AddProcessor("Intel i7 920").AddRAM(6).TurnOn().Test().TurnOff();

 

Por tanto, si queremos una funcionalidad como la indicada en los ejemplos de encadenamientos de métodos, tendríamos que crear un código parecido al indicado en el artículo de Gisela, es decir, crear una interfaz en los que sus métodos devuelvan la propia interfaz en lugar de un tipo más concreto.

 

 

Fluent Interface no solo es encadenamiento de métodos

Pero si hacemos caso a Martin Fowler, a esta forma de usar Fluent Interface se conoce como method chaining (o encadenamientos de métodos), pero la "fluidez" no es sólo porque se puedan encadenar métodos… aunque yo aquí no te voy a contar lo que él ya te cuenta en su sitio, allí podrás leer más sobre nested functions (anidamiento de funciones) o de object scoping (alcance -cobertura- de los objetos) que son otras de las "gracias" de todo esto de las interfaces fluidas (fluent interface).

 

Reflexiones

En cualquier caso, todo esto está muy bien… y el que quiera usarlo que lo use y el que no, que haga como yo, que se va a dar una vuelta por la playa (o equivalente, también vale un parque o un banco en una esquina) o suda un poquillo corriendo o jugando al tenis… jejeje, que no, que es broma, es que después de un año casi sabático, tantas cosas nuevas, que no son tan nuevas, pero que ahora es cuando yo me estoy enterando de muchas de ellas, porque se usan en los lenguajes que me interesan: en general todos los incluidos en .NET Framework… la cuestión es que hay mucha información en poco tiempo y la verdad es que prefiero "emplear" sólo una parte de ese tiempo en cosas concretas o bien que me llamen la atención como ha sido la de este artículo de Gisela. ¡Gracias Gisela por hacer que le dedique un rato a esto de la programación en vez de estar pensando que podría estar en la playa refrescándome! (de todas formas esta tarde no tocaba playa, así que… bien empleado está el tiempo, jejeje)

 

Despedida y cierre

Bueno, voy a escribir el código de ejemplo y ponerlo más arriba, que sólo he dejado el espacio para que no se me fuera la idea, que con estas calores, hasta las ideas se evaporan… jejeje

 

Nos vemos.

Guillermo

P.S.

El código de ejemplo completo lo pondré en otro momento… ¿vale? pues eso… y además añadiré el correspondiente para usar esto mismo en Visual Basic .NET y si me da el punto -y se puede- también lo haré para Visual Basic 6.0

P.S.2 (23/Jul/2010 05.27)

Ya está el código de ejemplo para que lo puedas descargar desde mi sitio:

.NET/VB6: Código de ejemplo de cómo usar Fluent Interface en C#, Visual Basic .NET y Visual Basic 6.0

Tags: , , ,

Mis libros con descuento del 75% en el día del libro

Pues eso… que hoy 23 de Abril es el día del libro y para que te regales uno (o dos) he conseguido que la editorial (SolidQ) haga un descuento del 75%

Es decir, que si el libro vale normalmente 15 euros, y le aplicamos el 75% de descuento (11,25), resulta que el libro te cuesta sólo 3,75 euros, que si le añades el 4% del IVA, resulta que por menos de 4 euros (3,9) tienes uno de estos dos libros:

Novedades de Visual Basic 9.0
Aprenda C# 3.0 desde 0.0 – Parte 3, lo nuevo

 

Pues ya sabes… pulsa en esos enlaces y te llevará a la página descriptiva del libro y te indicará qué cupón debes usar para tener ese magnifico descuento…

 

Muchas gracias.

 

Nos vemos.
Guillermo

 

 

Esta oferta finaliza a las 23.59 GMT+2 (hora de España peninsular) del domingo 25 de abril.

 

Tags: , ,

Un foro de ayuda para convertir de VB6 a VB.NET

Pues eso… a raíz del comentario de Claudio sobre esto de seguir usando VB6 en vez de pasarse definitivamente a VB2005 (o cualquier otra versión de Visual Basic para .NET) y de que sería conveniente tener un sitio de "debate" sobre el tema, pues… he creado un foro (en mis foros) sobre este tema de "Convertir de VB6 a VB.NET", este es el link:

http://foros.elguille.org/Mensajes.aspx?IDForo=16

 

Espero que te sea de utilidad… ;-)

 

Nos vemos.
Guillermo
P.S.
POR FAVOR no uses este comentario para hacer preguntas sobre cómo convertir código de VB6a  VB.NET, para eso está ese foro, además de que allí he puesto unos cuantos enlaces de cosas que te pueden interesar sobre la conversión de VB6 a VB.NET, que encontrarás en mi sitio… incluso para funciones del API…

Este es el post en el que están esos enlaces:
http://foros.elguille.org/Mensajes.aspx?ID=52500

Tags: ,

Descuento del 20% hasta final de marzo en mis libros electrónicos

Pues eso… que en este mes de marzo puedes comprar mis dos libros electrónicos (en formato PDF) con un 20% de descuento.

El descuento es aplicable tanto para el de Novedades de Visual Basic 9.0 como para el de Aprenda C# 3.0 desde 0.0 – Parte 3, lo nuevo, aunque el cupón a usar es diferente, para el libro de Visual Basic usa: elGuille20 y para el de C# tienes que usar este otro: elGuilleCS20.

 

Recuerda que estos libros son electrónicos, por tanto NO son en papel… si los quieres en papel… deberías imprimirlos tú mismo… pero mejor que no… que así ahorras tiempo y dinero… y los puedes leer mientras usas el ordenador (o computadora).

Pues eso… para que quedes avisado y no digas nada después de que no avisé… ;-)

 

Nos vemos.
Guillermo
P.S.
Esos dos links te llevarán a la página con la descripción de los libros y en esas páginas encontrarás los links que correspondan para hacer la compra.

Tags: , ,

[webcast] Lo nuevo de Visual Basic 10

Ya terminó… pero lo podéis ver en diferido



Pues eso, que los de UOC DotNetClub me han invitado para de una charla online sobre las novedades de la próxima versión de Visual Basic, la versión 10 que se incluirá en Visual Studio 2010 y que usará .NET Framework 4.0.

Este es el cartel del evento y más abajo te dejo el link (enlace) para que te registres como asistente, aunque también estará disponible de forma desconectada, pero eso será después del evento, que será el próximo martes 23 de febrero a las 20.00 (hora de la península, es decir GMT/UTC +1)

novedadesVB10_UOC
Pulsa en la imagen para registrarte para este evento

Esta es la dirección del registro:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032441987&Culture=es-ES

Y si quieres más información, puedes ir a la sección de eventos de UOC DotNetClub:
http://uoc.dotnetclubs.com/eventos

¿Te apuntas? Si es así… el 23-F nos “escucharemos” (bueno, tú me escucharás a mí, jeje)

Nos vemos.
Guillermo

Tags: , , , ,

Capítulo 4 de las Novedades de Visual Basic 9.0 (el libro del Guille)

Ayer martes día 20 de Octubre (en realidad anteayer, que ya es día 22) tuve un webcast para el grupo de usuarios de punto Net de Lleida, el tema de esa charla era precisamente sobre las novedades de Visual Basic 2008 (o VB9) y cuando me tocó explicar los tipos anónimos, sufrí un lapsus… vamos que me quedé en blanco a la hora de indicar cómo se definían propiedades de sólo lectura en los tipos anónimos (es que en VB se permite crear propiedades de lectura/escritura y de sólo lectura, algo que no es posible en C#), y para aquéllos que asististeis (y para el resto de criaturas que lean este post) me he decidido a poner a vuestra disposición, de forma íntegra y por la cara, el capítulo 4 de mi libro Novedades de Visual Basic 9.0.

Esta es la introducción de ese capítulo:

En este capítulo continuamos con las novedades de Visual Basic 9.0, pero en esta ocasión solo las podremos usar con la versión 3.5 .NET Framework.
Estas características (al igual que casi todas las novedades de Visual Basic 9.0) tienen su razón de ser en todo lo referente a LINQ; pero antes de ver qué es LINQ y cómo usarlo desde nuestro lengua-je favorito, veámoslas con detalle para que nos resulte más fácil comprender lo que he dejado para el final de este repaso en profundidad a las novedades de Visual Basic 9.0.
Las novedades que veremos en este cuarto capítulo son:
• Los tipos anónimos.
• Las expresiones lambda o funciones anónimas.

Como puedes comprobar, además de los tipos anónimos explico que son las expresiones lambda (o funciones anónimas), espero que te guste y te animes a comprar el libro que al ser en formato PDF el precio que tiene es bastante asequible… además de que suele haber algún que otro descuento (actualmente es un 10%), los cupones de descuento (si hay) los consigues desde la página del libro en mi sitio (el link que te puse arriba).

Capítulo 4 de Novedades de Visual Basic 9.0 (del Guille) (formato .pdf)

Y si quieres saber cuál es el contenido del libro, aquí tienes el índice en formato PDF:
Índice de Novedades de Visual Basic 9.0.

Ni que decir tiene que el contenido de estos dos PDF NO los puedes usar y/o publicar en ningún medio o forma, ni tan siquiera indicando de dónde lo has obtenido ya que están protegidos por copyright.
Lo que si puedes hacer es poner un link a esta entrada del blog, por lo cual te estaré muy agradecido.
Gracias.

Nos vemos.
Guillermo

Tags: , ,