Posts Tagged Visual Basic

Si usas punteros… apúntate esta

Pues eso… un articulillo que acabo de publicar (bueno, hace ya una hora y pico) en mi sitio, sobre los punteros en C/C++ (e incluso C#), pero que también vale para el manejo de otros tipos de objetos a los que se accede por referencia…

Aquí tienes el enlace y la descripción…

 

Si usas punteros… apúntate esta

 

Cuidados que debes tener si utilizas punteros, normalmente si usas C/C++ e incluso C# (algunos dirán que Object Pascal también tiene punteros, pero yo no lo uso…).

[Este artículo es sólo apto para mentes abiertas que usen punteros o hayan querido usarlos o simplemente piensen que con los punteros sr vive mejor, aunque lo parezca, el contenido no es de guasa]

Y para aquellos que programan con Visual Basic (cualquier versión, ya sea o no para punto NET) decirles que tampoco están libres, ya que (a su manera) Visual Basic también usa punteros. …

…en realidad esto es muy útil para todos los que programan, ya sean con punteros directamente o con los punteros camuflados que hacen "referencia" a objetos…

 

Espero que te sea de utilidad.

 

Nos vemos.
Guillermo

P.S.
También puedes ver los comentarios en el enlace al artículo que he publicado con fecha de hoy en la página de elGuille en Facebook:

http://www.facebook.com/pages/elGuille/82093985818?v=app_2309869772

 

P.S.2
Mirando, mirando, el "rano" usease RFOG, tiene un artículo sobre punteros y referencias que seguro que te puede parecer interesante:

 

I – Punteros y referencias

Las similitudes y diferencias de los punteros en C++ nativo y las referencias en C++/CLI (.NET)

Ver el contenido del artículo en el blog de RFOG

 

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: , , ,

[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: , , , ,

Estudiando las novedades de Visual Studio 2010

Pues eso… que ya que esta tarde se puso a llover, aproveché para "empaparme" un poco de las cosillas nuevas (ná 2 ó 3) que traerá la nueva versión de Visual Studio… bueno, en realidad he estado liado con las cosas que traerá el .NET 4.0 y los dos lenguajes más usados de .NET: Visual Basic y Visual C# (seguramente alguno pensará que el orden este es porque se utiliza más el VB que el C#, pero la verdad es que no tengo ni idea de cuál de los dos lenguajes se usa más, y también te digo que ni me importa, he puesto primero Visual Basic porque sí, porque es el que yo uso y… eso… jejeje).

Y la verdad es que hay muchas cosas que estudiar, y como dije el otro día, hay que digerirlas bien… que si no, después ¿cómo lo explica uno si no se entera? Bueno, esta pregunta tiene respuesta: repitiendo lo mismo que has leído aunque no tengas ni idea de qué estás diciendo… que de estos hay muchos por ahí, sí, gente que se pone a explicarte cosas y en realidad no saben de qué están hablando… lo que yo te diga… bueno, mejor dejar este tema, que el que más y el que menos… (es que en dos ocasiones estuve dando unas charlas de acceso a datos y no tenía ni repajolera idea de qué es lo que ponía en las diapositivas de la presentación que me pasaron, en serio… claro que tampoco me marqué ningún farol ni hice el paripé de que sabía de qué iban esas diapositivas… simplemente pasé a otros temas, jejeje, en fin…)

Pues eso… que son muchas cosas nuevas, y todo en inglés… y además usando una máquina virtual y se hace eterno hacer cualquier prueba por simple que sea…

Lo que si es cierto es que el Visual Studio 2010 está muy bien, y por lo poco que he visto de la BETA 2 creo que ahora me va a gustar mucho más el Visual Basic de lo que ya me gustaba… no sólo por las "características del lenguaje" sino por el editor de Visual Studio para VB… que en ese aspecto la gente del "team" de Visual C# siempre iban un paso por delante… y puede que aún sigan mejorando el editor de C# con respecto al de VB, pero no te lo puedo asegurar ya que tan solo he creado un proyecto en el Visual Studio 2010 y ha sido de Visual Basic, pero está bien (el editor)… algunas cosas ya las vi en las betas y CTP anteriores, pero otras creo que son nuevas en la Beta 2… cualquier día de estos te contaré las cosillas nuevas que vaya encontrando, pero casi seguro que será después del webcast que daré el 23 de Febrero sobre las novedades de Visual Basic 2010 para UOC DotNetClub (sí, ya sé que te lo conté el otro día, pero… para que no se te olvide).

Mañana seguiré con mis "investigaciones" que ya es hora de cenar algo, leer un poquito (pero literatura normal, no técnica y en papel, que esto de mirar tantas horas la pantalla me "seca" muchos los ojos y me pican una barbaridad… ) y después de leer (o mientras hago una pausa) a ver un poco la tele, que ahora me ha dado por ver dibujos animados en Boomerang, en particular Los autos locos y Don Gato ambos dos de Hanna-Barbera (William Hanna y Joseph Barbera). Lo de ver los autos locos es que el otro día (cuando estuvimos en la Cebuchá) mi amiga San me dijo que cuando me reía algunas veces me parecía a "risitas" (el perro Patán de Pierre Nodoyuna) y un día haciendo zapping me encontré con que por las noches echaban estos dibujos, y como después (sobre las 23.30) echan Don Gato, que es otro de los dibujos que me gustaban de cuando era 2más chico" que ahora (jejeje) pues… aprovecho, ya que casi nunca me da tiempo a ver una de las pelis que empiezan a las 10 (22.00) y casi siempre acabo viendo repeticiones de Camera Café o Vaya Semanita, que están muy bien, pero para variar…

Pues nada… hasta mañana, que si no llueve, por la mañana iré a andar con Mari Ángeles, que Pili no viene y por la tarde, si no llueve y el profe lo permite, iré a pelotear un poco al tenis…

Nos vemos.
Guillermo
Terminado de escribir a las  del miércoles 27

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: , ,

Las novedades de Visual Basic 2010 y Visual C# 2010 (en inglés)

Pues eso… que he estado instalando esta mañana las versiones Express de estos dos lenguajes, que aún están en fase de Beta 2, y vi el link a las novedades de Visual Basic 2010, así que… puse el link en la página de fans del Guille en Facebook y ya que había dado con las novedades de Visual Basic 2010 (What’s new in Visual Basic 2010), me dije que los que usan los puntos y comas y me visitan también tienen derecho a saber qué hay de nuevo en C#, así que… busqué la página correspondiente y esta es: Novedades de Visual C# 2010 (What’s new in Visual C# 2010), el problema es que están en inglés, pero te digo que es una ventaja, ya que la información de las novedades de los lenguajes de Visual Studio 2008 no estuvieron disponibles hasta que salió la versión final… así que… eso que llevas adelantado… aunque en inglés… ;-)

Ahora a leerlas, analizarlas e intentar entenderlas, jejeje

Nos vemos.
Guillermo

Tags: , , , , , ,