Archivo de la etiqueta: VB10

El número de decimales del tipo decimal de SQL Server

Pues eso… últimamente estoy “trasteando” en un programa (hecho con Visual Basic 2010) que accede a una base de datos de SQL Server Express 2005 y quisiera ir poniendo por aquí las cosillas que me voy encontrando mientras “tecleo” en ese programa, y lo último que he modificado es esto que te muestro, que no es que no lo hubiera detectado antes, pero haciendo pruebas hoy he visto que me había dejado “sin optimizar” un campo de una de las tablas.

El tema es el siguiente:

Cuando añades un campo a una tabla de SQL Server (en mi caso con el SQL Server Management Studio 2008 (Express)) y le indicas que es de tipo decimal, automáticamente te lo pone de esta forma:

decimal(18, 0)

El 18 es la precisión, o número de dígitos que puede tener este número, y el 0 es la “escala” o número de decimales que puede tener este número.

Como verás cero decimales no es algo que sea demasiado aceptable en valores de tipo moneda, que sí, que podía haber elegido el tipo “money” y me hubiese quitado de problemas, pero de haberlo hecho no te estaría contando esto y… puede que un día te diera por usar el tipo “decimal” por aquello de que es el más parecido al tipo “moneda” que tiene el punto net y lo mismo te preguntarías por qué narices me redondea el número cuando lo guarda en la base de datos… sí, podría ocurrirte esto… como le ocurrió a uno que me conozco…

La cuestión es que si quieres usar el tipo “decimal” de SQL Server para que acepte un número de decimales (por ejemplo cuatro decimales) tendrías que declararlo de esta otra forma:

decimal(18, 4)

 

Y debido a que a la hora de usar este valor desde la base de datos el número de dígitos decimales siempre se guarda (aunque sean todos ceros), me he creado una función que recibe un valor de tipo Object y lo convierte en cadena (String), pero quitando los ceros extras que tenga y en el caso de que el valor “total” sea cero, al menos deje un cero (pero siempre que esté a la izquierda del decimal).

 

Esta función para quitar los ceros extras que añade el SQL Server:

''' <summary>
''' Convierte un tipo Object en un valor Decimal,
''' pero se devuelve como cadena.
''' Ese objeto es el valor leído de la base de datos
''' Si el contenido es válido se devuelve el valor
''' si no, se devuelve una cadena vacía.
''' Se quitan los ceros que haya después del signo decimal,
''' si no tiene decimales, no se muestran los ceros.
''' </summary>
Friend Function dataDecimal(ByVal obj As Object) As String
    If obj Is Nothing OrElse obj.Equals(DBNull.Value) Then
        Return ""
    Else
        ' Conversión extra para evitar "sustos"                 (06/Oct/11)
        Dim d As Decimal = 0
        Decimal.TryParse(obj.ToString, d)
        Return d.ToString.TrimEnd("0"c).TrimEnd({"."c, ","c})

        'Return CDec(obj).ToString.TrimEnd("0"c).TrimEnd({"."c, ","c})

    End If
End Function

 

Como ves, no me fio de que el valor recibido sea un valor decimal válido, por eso hago algunas comprobaciones.

La primera es saber si el valor pasado como argumento a la función es un valor nulo, ya sea “nulo de punto net” o nulo de base de datos (DBNull.Value), en ese caso, la función devuelve una cadena vacía.

La segunda es usar TryParse para no producir una excepción (o error) en el caso de que el valor de ese objeto no sea “convertible” a un tipo Decimal.

La función TryParse recibe un valor de tipo cadena que será el valor a convertir (en este caso a un tipo Decimal) y en el segundo parámetro le indicamos un valor (por referencia) del mismo tipo al que queremos convertir, de forma que si la conversión falla, se utilice el valor que previamente tenga dicha variable.

En el caso de que la conversión NO falle, se asignará a la variable de ese segundo argumento el valor que de como resultado la conversión. Por eso debe ser por referencia, para que la variable se pueda modificar dentro de la función.

 

Como queremos quitar todos los ceros que “sobren” por el final, utilizo la función TrimEnd al valor convertido (el que tiene la variable d) indicándole el carácter que quiero quitar, esa función recibe como parámetro un valor de tipo Char indicando qué carácter queremos quitar del final, y como Visual Basic permite indicar los caracteres en la forma “cadena” seguida de la letra c, pues… eso es lo que he hecho, por tanto “0”c significa que es el carácter CERO (o valor 48).

Esto seguramente ya lo sabías, pero… no está de más una aclaración.

 

Si el valor almacenado en la base de datos no tiene decimales (por ejemplo el número 205) con el TrimEnd que hemos hecho se nos quedaría la coma (o el punto) que indica que hay decimales, por tanto volvemos a hacer un TrimEnd al resultado del TrimEnd anterior, pero en este caso queremos quitar tanto las comas como los puntos, es decir, queremos quitar “dos tipos de caracteres”, en estos casos, la función TrimEnd permite indicar un array (o arreglo o matriz) de caracteres con cada uno de los caracteres a quitar del final de la cadena.

Los caracteres individuales ya sabes cómo indicarlos, y si lo que quieres indicar es un array, esos caracteres individuales los separas con comas y los incluyes entre llaves: {“.”c, “,”c}.

 

Y esto es todo.

 

Sólo me queda decirte cómo lo utilizo:

En mi caso (en este programa que estoy haciendo) lo hago de dos formas:

En una leo el valor de la tabla en un DataTable y accedo a cada valor por medio de un objeto que representa a la fila (DataRow) a la que estoy accediendo:

 

For Each r As DataRow In dt.Rows
    Dim lvi As New ListViewItem

...

lvi.SubItems.Add(dataDecimal(r("Importe")))

...

 

En la otra accedo a los valores por medio de un objeto SqlDataReader y básicamente hago lo mismo:

 

Dim re As SqlDataReader = cmd.ExecuteReader()

...

ImporteTextBox.Text = dataDecimal(re("Importe"))

...

 

Espero que te sea de utilidad.

 

Nos vemos.
Guillermo

P.S. (08/Dic/18)
Creo que esto también te interesará:
Error al guardar datos decimales: El valor del parámetro ‘xxx’ está fuera del intervalo

Martes 26, la segunda charla en Monterrey

Pues eso… que hoy martes 26 de octubre a las 10 de la mañana en el Auditorio Gumersindo Cantú Hinojosa, FACPyA que está en la Av. Universidad s/n, Ciudad Universitaria en San Nicolás de los Garza, México, será la segunda y última charla que daré en el "1er Encuentro Internacional de Tecnología de Información: Haz Click Piensa en TI", en esta ocasión el tema será sobre las novedades de Visual Basic 2010.

Espero que en esta ocasión lo pasemos igual o mejor que ayer lunes… creo que la gente se divirtió además de aprender algunas cosas nuevas… al menos los que estaban pendientes de la charla (que era la mayoría, todo hay que decirlo… y estamos hablando de que habría más de 1200 personas… sí, muchas)

 

Bueno… nos vemos allí y si no puedes asistir, pues… ya te contaré por aquí que tal ha ido o también te puedes enterar por mi página de "el Guille info en Facebook".

 

Nos vemos.
Guillermo

[webcast] Novedades VB10 para la Universidad Católica de Guayaquil – Ecuador

Pues eso, que ha sido un webcast o conferencia a través de Internet, pero en exclusiva para los alumnos de la Universidad Católica de Guayaquil en Ecuador.

El tema tratado ha sido las novedades de Visual Basic 10 (o el que se incluye con Visual Studio 2010).

La hora de este evento fue el miércoles día 4 de agosto a las 19.00 hora de Ecuador, que aquí en España eran las 02.00 del jueves día 5, es lo que tiene esto de los cambios horarios…

Antes del evento (unas cuatro horas antes) estuvimos haciendo pruebas de audio y de video, ya que la idea era conectar la cámara (webcam) y saludar a los asistentes, pero que me vieran el careto… y eso hicimos después… un saludo "dando la cara" 😉

La charla en sí, la empecé después de unos 15 ó 20 minutos, ya que allí tuvieron problemas con los altavoces, perdón, parlantes y no se oía muy bien… pero lo pudieron solucionar pronto y después todo transcurrió sin problemas de ningún tipo.

Como el tiempo del que disponían era más o menos concreto, ya que a las ocho treinta (hora local) tenían que ir a la siguiente clase, calculé para dejar unos 10 ó 15 minutos para que pudieran hacer preguntas, y sí que hicieron… es que en algunas conferencias, sobre todo en las presenciales, la gente se "corta" y no preguntan, pero cuando termina el evento se suelen acercar a preguntar…
Lo importante es que preguntaron, les respondí como buenamente pude y creo que en general la gente quedó contenta con el evento… ¡eso es lo que importa!

 

Y ya hasta el viernes por la mañana (por la tarde en España) en que volveré a contactar con la gente de Guayaquil, pero esta vez para participar como jurado… ya te contaré…

 

Nos vemos.
Guillermo

Miércoles 4, nuevamente nuevo recorrido, y más…

Pues eso… hoy hemos vuelto a cambiar el recorrido de las correrías, a ver si ya se queda así, al menos durante lo que resta de agosto y puede que de septiembre. Y el "más" del final es porque hoy no habrá (espero) sólo correrías… ya que también hay previsto tenis por la tarde y después la preparación de la charla virtual para la Universidad Católica de Guayaquil – Ecuador, además e la propia charla, aunque esa será a las dos de la madrugada de mañana, aunque en Ecuador serán las siete de la tarde de hoy miércoles 4 de agosto.

 

Esta mañana temprano (antes de las 7.25 que es cuando me he levantado) otra vez la dichosa maquina haciendo mezcla… y cuando no es esa máquina es haciendo ruido en la obra que están haciendo por allí cerca de donde vivo… y eso que se supone que al menos no deben hacer ruidos fuertes a ciertas horas que se considera de descanso, que al menos es antes de las ocho de la mañana y creo que se incluye la siesta… en fin… aunque me sirve para ir espabilándome, es un rollo… sobre todo si te acuestas después de las dos de la madrugada… 🙁

 

Como hoy habíamos quedado en el Playazo, y me he ido andando, me dije de pasarme por el paseo de la Torrecilla y "retratar" el Balcón de Europa, y eso es lo que puedes ver en la foto 1.

 

Foto2951_lr
Foto 1. El Balcón de Europa (07.43)

 

También aproveché para hacer una foto de la Torrecilla sin gente… ya que en estos tiempos es difícil verlo sin sombrillas ni toallas o esterillas ocupando espacio… después te cuento.

 

Foto2952_lr
Foto 2. La playa de la Torrecilla (07.47)
aún no había llegado la gente…

 

A la correría de la mañana hemos ido los tres habituales: Mari Ángeles (y Dandy), Antonio y yo, aunque Mari Ángeles ha ido a su ritmo, ya que el perro no la dejaba correr, ya que algunas veces se ha puesto en plan "felpudo", es decir, que se quedaba plantado en el suelo y la única forma de moverlo era arrastrándolo.

Decir que hoy nos hemos encontrado con Isabel, de Alcorcón (Madrid), que es la hija de un habitual de las mañanas del Playazo y que el año pasado me pidió un par de camisetas solidarias, y como hoy la llevaba puesta, nos hemos hecho una foto para que quede constancia (tanto del encuentro como de que tiene la camiseta solidaria del GuilleMola):

 

Foto2961_lr
Foto 3. Con Isabel y las camisetas solidarias

 

Como te he dicho, hoy hemos cambiado nuevamente el recorrido, ya que hemos quedado al principio del Playazo, y la idea era darle una vuelta y media, estirar en los cacharros esos que están en la otra punta y después darnos un baño allí mismo y volver andando. Pero eso no ha sido el recorrido final, ya que lo que hemos hecho ha sido dar una vuelta completa (hasta la sombrilla del final del césped del apartotel), y la segunda vuelta ha sido desde el principio de la playa hasta los cacharros esos en los que hemos hecho algunas abdominales (a ver si así achicamos las barrigas cerveceras estas que tenemos Antonio y yo, ya que Mari Ángeles iba por su cuenta y no tiene el barrigón que tenemos nosotros) y después nos hemos vuelto, es decir, la primera vuelta es más larga que la segunda, y estos han sido los tiempos:
Primera vuelta: la ida en 9m 32s, y la vuelta en 8m 56s. Al final de la ida, estuvimos unos minutos esperando a que llegara Mari Ángeles, y fue cuando nos dijo que siguiéramos a nuestro aire.
Segunda vuelta: la ida en 6m 58s y la vuelta en 6m 16s. Decir que en la ida de esta segunda vuelta es cuando nos encontramos con Isabel y fue ella la que impuso un poco el ritmo, ritmo que después de hacer los ejercicios aprovechamos para la vuelta, que como ves no estuvo nada mal.
En total hemos estado corriendo 31m 42s a los que hay que sumar los más de 11 minutos que hemos estado o esperando o haciendo ejercicios en los cacharros aquellos.

Y después de dar las dos vueltas nos fuimos andando para la Torrecilla a darnos un baño, que hoy si que hemos sudado y nos lo merecíamos (siempre nos lo merecemos, pero… hoy como que se agradecía más, jejeje).
El Dandy hoy no se ha metido en el agua (aunque sea sin bañarse) y se ha tenido que conformar con quedarse en las maderas esperando a que su ama saliera del agua… que hoy le ha costado más salirse ya que el agua estaba muy agradable.

 

Foto2965_lr
Foto 4. El Dandy después de haber estado jugando en la arena

 

Tras el baño, nos fuimos, y como resulta que Antonio y yo no habíamos llevado vehículos, pero sí Mari Ángeles, la acompañamos hasta el Playazo y después de dejarla sana y salva, nos volvimos por la Torrecilla y de paso le hice una foto a los "ocupas" playeros, que no veas lo pronto que se van a la playa a ocupar el terreno con un montón de sombrillas y sillas, con idea de que la gente que llegue después no les quite el espacio…

 

Foto2971_lr
Foto 5. La playa de la Torrecilla (09.38)
con unos cuantos ocupas playeros (habituales),
al menos siempre se ponen en el mismo sitio…

 

Y con esto ya hay bastante de lo que he hecho esta mañana, bueno, decir, que al medio día (sobre las tres y pico, aclaro, ya que el medio día en realidad es a las doce, pero… por aquí también suele ser "a la hora de comer") me fui a Correos, aprovechando que "en teoría" abren por la tarde, vamos que no cierran ni al medio día, y así ahorrarme alguna que otra cola, pero no… resulta que desde el 28 de junio no abren por las tardes… si no que están hasta las dos y media… en fin… si mañana tengo que ir, tendré que hacerlo antes de esa hora… mira que iba a ir a eso de la una… pero he querido aprovechar para descansar un poco, ya que esta noche tengo que estar espabilado para poder dar la conferencia para la gente de Guayaquil (Ecuador).

 

Después te cuento que tal el tenis y mañana te contaré cómo ha ido la conferencia (y las pruebas previas).

 

En el tenis hoy hemos estado casi los mismos que ayer, a falta de Manolo.
Cuando llegué estaban peloteando en la pista 1: Rafa y Álvaro, y al poco se unieron Ana y el otro muchacho de cuyo nombre no me acuerdo y puede que sea Fali o Fran o… a ver si el próximo día se lo pregunto. Como Miguel había salido a llamar por teléfono y en la pista 1 estaban peloteando los cuatro en paralelo, es decir peloteaban sólo entre los dos que estaban uno en frente del otro, así que… me fui a la pista 2 a esperar a que llegara Miguel… y me puse a pelotear contra la pared, y al ratillo casi me da una pelota en la cabeza… era San que había llegado y… bueno… su forma de avisarme para que peloteara con ella… al poco de estar peloteando con San, llegó Miguel, estuvimos un ratillo y después subimos a la pista 1 para empezar con los entrenamientos… (después te cuento de qué fue hoy lo que hicimos, que ya son menos cinco y tengo la prueba esa para la charla para la gente de Guayaquil).

 

Acabada la prueba (las diez y media), todo parece funcionar bien, subida la PPT, la pantalla compartida para que entre bien el Visual Studio 2010, con un tamaño apto para el proyector que usarán en la sala donde se reunirán los estudiantes.
Probada también la webcam para el saludo inicial (tendré que ponerme una camiseta o algo que no es plan salir con el "pesho pelo" jejeje), el problema es que como uso un monitor conectado al portátil, he tenido que "meneá" el ordenata para que apunte a mi cara… y de paso va a salir to el jaleo que tengo por casa… en fin… menos mal que tengo una cabeza que ocupará buena parte de la pantalla… jejeje

 

Bueno, sigo con la batallita del tenis. Hoy hemos "jugado" de forma que hemos formado tres parejas y el que sobra se ha puesto con la pareja que está jugando en la parte "norte" de la pista (los que están arriba), el tercero siempre está en la volea y no depende de las parejas, ya que las otras dos parejas juegan en el lado opuesto y se van turnando, jugando al que antes gane tres puntos, que resulta que lo ganan los que están con el de la volea, entra la otra pareja, que los tres puntos lo ganan los que están sacando, pues… tienen que ir echando leches para la otra parte de la pista y la pareja que espera entra y debe ganar el punto… que no siempre se gana, sobre todo porque está el de la volea que muchas veces para todas las pelotas…

Todos pasamos por la volea, de forma que las parejas iban cambiando, si bien no coincidimos todos emparejados, en mi caso empecé con San, después estuve en la volea y jugué de pareja con Rafa y el muchacho del que no recuerdo el nombre.

El siguiente entrenamiento fue el saque, con la particularidad de que Ángel puso cuatro montones de cuatro pelotas, de forma que teníamos que intentar darle a las que estaban en el cuadro de saque que correspondía… nadie tiró ningún montón de pelotas, así que… el siguiente paso fue tirarlas a mano, de forma que cada uno cogió cuatro pelotas y nos íbamos turnando para ver tirábamos algunos de los montones, de los ocho que probamos puntería (Ángel también tiró) sólo San, Rafa y yo fuimos capaces de darle a las bolas y tirar uno de los montones… pero no hubo ningún premio, ni caramelos ni ahorrarnos de recoger las pelotas, en fin…

Y para terminar la hora, un partido de dobles, o mejor dicho dos partidos de dobles, en la pista 1 nos quedamos Ana y Ángel contra San y elGuille (yo), el resto en la otra pista: Rafa con Álvaro contra Miguel y "el otro".
No recuerdo cuantos juegos nos dio tiempo a jugar, pero al menos fueron seis, ya que si no me equivoco, empezó sacando San después Ana, yo y Ángel y acabó el tiempo cuando Ana volvió a sacar. Y si no fue así y nadie lo remedia, así se quedará como si lo hubiese sido… jejeje

 

Una vez terminado el tenis, como de costumbre, San y yo nos quedamos una mijilla charlando, y después nos fuimos cada cual a su casa, yo con la intención de irme un ratillo a la playa, aunque sea a darme un chapuzón… Y eso hice, llegué a el Playazo sobre las ocho y veinticinco, que me encontré con la madre de Andrés, que lo estaba esperando para dar una vuelta por la playa, y mientras Andrés llegaba me llama mi hermano Antonio que si le había salido un aviso de un virus cuando metió una tarjeta de memoria (con fotos)… total que "eliminar" y a tomar viento fresco (el virus).
Un par de bañitos que me di, el primero al llegar y el segundo después de dar una vueltecilla, corta, las cosas como son, que las piedras que había por la orilla ya eran más grandes de la cuenta y molestaban al andar. El agua estaba de poniente con un poco de resaca, pero bastante agradable. Y a eso de las nueve me vine pa mi casa… tomé un par de fotos, pero no las he "procesado" aún, y ahora mismo no creo que me ponga a ello, que aún tengo que comer y "descansar" un poco para estar fresco para la charla que tengo a las dos de la madrugada de mañana jueves, aunque para los asistentes al acto será hoy a las siete de la tarde… ¿cómo? ¿que ya lo he dicho antes? ah, vale, perdón…
Como ya lo sabes todo, me voy con viento fresco… o lo que alcanza a dar el ventilador… 😉

 

 

Nos vemos.
Guillermo

P.S.
Aquí tienes la foto que tomé en la playa ayer tarde (ahora son las 17.06 del 05/Ago/10)

 

Foto2973_lr
Foto 6. El Playazo al atardecer (20.49)

 

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

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

Poster con las combinaciones de teclas de los lenguajes de VS2010

Pues eso, que en el blog de Lisa Feigenbaum (Visual Studio Languages Community Program Manager) ha publicado un post en su blog con los "shorcut del teclado" o lo que en el castellano de Cervantes diríamos las combinaciones de teclas o del teclado para los cuatro lenguajes incluidos en Visual Studio 2010: Visual Basic, C#, F# y C++

Y este es el link (o enlace) a ese post (o entrada) del blog de esta buena mujer:

VS 2010 Keyboard Shortcut Posters Now Available for VB, C#, F# & C++

 

Y si no quieres ir a ese post (o entrada de blog, lo que por aquí últimamente llamo crónica, si bien lo que ella cuenta no es una crónica, sino una entrada en su blog), vamos que si quieres bajarte esos "shorcuts" de forma directa, puedes usar este otro link (o enlace):

Visual Studio 2010 Keybinding Cards

 

Que usted lo combine bien… 😉

 

Nos vemos.
Guillermo

Por si quieres aportar algo al blog y sitios del Guille:

Contribuye con el Guille

Aporta tu granito de arena y ayuda a mantener el sitio del Guille…

Haz una donacion para el sitio del Guille mola. Gracias

Descarga el Visual Studio 2010 Express ¡es gratis!

Pues eso… gratis si es, pero de Visual Studio 2010 solo tiene el nombre, ya que en realidad lo que instalas son los diferentes lenguajes de forma separada e independiente… aunque todo pueda estar junto…

Desde esta página puedes efectuar la descarga:

http://www.microsoft.com/express/Windows/

 

Recuerda que en realidad te descargas el IDE de cada uno de los lenguajes por separado, pero vamos, que como es 100% funcional, te puede servir para ir practicando y para hacer tus ejercicios, etc.  de cualquier curso o libro que tengas a mano…

 

Esto es lo que dicen en esa página (en inglés, al menos por ahora):

Unleash your Creativity!

The Visual Studio® 2010 Express is a set of free tools which offers you an exciting experience with the new integrated development environment, a new editor built in Windows® Presentation Foundation (WPF) and support for the new .NET Framework 4.

Powerful Set of Free Tools

Choose the language that’s right for you.

Microsoft® Visual Web Developer® 2010 Express is an easy to use

environment for dynamic Web application development.

Microsoft® Visual Basic® 2010 Express is ideal for the

developer learning to program on Microsoft® Windows®.

Microsoft® Visual C#® 2010 Express offers a greater

combination of power and productive for Windows developers

building on .NET.

Microsoft® Visual C++® 2010 Express provides

developers the horsepower with a finer degree of control than the

other Visual Studio Express productions.

 

 

También puedes probar las versiones "trial" de Visual Studio 2010 completas, aquí tienes el link para la versión Professional:

http://go.microsoft.com/fwlink/?LinkID=186892

 

Y si prefieres la Ultimate:

http://go.microsoft.com/fwlink/?LinkID=186896

 

 

¡Que te aproveche! 😉

Nos vemos.
Guillermo

[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

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