Oscar J. Berroterán

Visual Basic no es un lenguaje... es un estilo de vida

September 2007 - Posts

ADO .Net 2.0 - Guia de inicio rápido. Parte II

Hola.

Tal como les prometí, aqui estoy de nuevo..

Lamentablemente, para los lectores sin tiempo, debo hacer una pequeña reseña de ADO .NET2.0.

Para conocer el presente, es imperativo que sepamos de donde venimos... es por ello que inicio con una breve introducción a ADO .Net 1.0

ADO .Net 1.0

Con el lanzamiento del Framework 1.0, Microsoft presenta un nutevo modelo de acceso a datos: ADO .NET. ADO .Net es la evolución del modelo anterior mejor conocido como ADO (ActiveX Data Object), aunque ADO .Net no es Activex, se mantuvo el nombre ADO para "mostrar que es la nueva versión de ADO".

ADO .Net 1.0 soportaba comunicación con origenes de datos vía ODBC u OLEDB, pero también proporcionaba la opción de trabajar con proveedores de datos especificos para ciertos origenes de datos, llamados Proveedores Administrados. Estos proveedores administrados ofrecian (y ofrecen) un mejor performance  ya que "hablaban directamente con el origen de datos".

ADO.Net nos presentó un modelo de objetos completamente nuevo:

  • Connection: objeto responsable por establecer (y mantener) la comunicación con el origen de datos
  • Command: este objeto almacena las consultas (query) que van a ser ejecutadas contra el origen de datos
  • DataReader: proporciona un acceso rápido, hacia adelante y de solo lectura (parecido al recorset no?)
  • DataSet:proporciona un mecanismo de almacenamiento para datos desconectados. Es capaz de mantener en "su interior" datos que provienen de múltiples origenes de datos. Para entenderlo rápidamente, les recomiendo que piensen en el como un repositorio en memoria para almacenar los datos que provienen de cualquier base de datos...
  • DataAdapter: establece un puente entre el dataset y el origen de datos, en otras palabras  es el responsable de obtener los datos del objeto Command y llenar el dataset con los mismos. Tambien se encarga de manejar el tema de la persistencia de los cambios realizados en el dataset (envío de cambios a la base de datos)

Otro tema importante que introdujo ADO .Net 1.0, fue el manejo de pool de conexiones (connection pooling), con esta caracteristicas se acabo con el costo excesivo que traía consigo el mantenimiento de una conexión abierta o la creación y destrucción de la misma.  Con ADO .Net cuando una conexión es destruida en el código el Framework  la mantiene viva (o abierta¿?) en un "pool", de manera que la próxima vez que se necesite establecer nuevamente una conexión (con las mismas credenciales) , la conexión es tomada del pool, sin que se necesite crear una nueva.

Si deseas conocer más acerca de las muchas nuevas características de ADO .Net, te recomiendo que revises la documentación en MSDN

ADO .NET 2.0

El lanzamiento del Framework 2.0, trajo consigo una nueva versión de ADO .Net. Pero tranquilos. La transición es sencilla, casi que sin impacto :-p.

En primer lugar ADO .Net 2.0, es 100% compatible con el código escrito para ADO .Net 1.0 :-D. En ADO .Net 2.0 el diseño básico del modelo de objetos es el mismo. Sólo se agregaron varias características nuevas para hacer las tareas comunes, más fáciles de realizar.

Una de las cosas nuevas que trajo ADO .Net 2.0 fue un mejor diseño y funcionamiento del pool de conexiones y el manejo de la serialización XML.

Otro ejemplo es la capacidad de obtener notificaciones cuando los datos cambian, esto elimina la necesidad de de periodicamente recargar los datos para asegurarnos de que los datos del usuario estan actualizados. También se incorporó la capacidad de ejecutar múltiples queries  al mismo tiempo y recibir una serie de resultados (MARS=MULTIPLE ACTIVE RESULTS). Eliminando "la ida y vuelta", a nivel   de la comunicación , que es necesaria para ejecutar un query  y esperar por su resultado aumenta el performance de una aplicación que necesita ejecutar múltiples queries una trás otra; así p. ej. si el usuario quiere hacer otra tarea mientras se espera por los datos, es posible disparar un comando en modo asincrono. Esto también ha sido simplificado con ADO .Net 2.0.

Se ha incluido también una nueva API de "descubrimiento de bases de datos" para examinar el esquema de una base de datos. También tenemos la opción de escribir código de acceso a datos independiente del proveedor de datos, así tenemos la posibilidad de ofrecer aplicaciones que se pueden conectar a cualquier origen de datos...

Claro, esto es solo una muestra de las cosas que podemos hacer. Muchas de ellas son temas avanzados que no vamos a tocar en esta serie; así que manos al MSDN si desean mayor información sobre ADO .Net 2.0.

Bueno, hasta aqui esta bueno de teoría. En el próximo post les prometo que veremos algo de código :-)

Cambio y fuera

Oscar

Soporte para Silverlight en Linux

Sip. En el blog de Scott Guthrie informa sonbre la liberación 1.0 de Silverlight y se anuncia Silverlight para Linux!!!

Allí el amigo Scott anuncia formalmente la alianza con Novell para proporcionar una implementación de Silverlight para Linux. Microsoft se encargará de elaborar el codec Silverlight Media para Linux y Novell va a construir un runtime 100% compatible con Silverlight  llamado "Moonlight".

Moonlight va a correr en todas las distribuciones y va a soportar los navegadores FireFox, Opera y Konqueror. Moonlight va a soportar tanto el modelo de desarrollo basado en JavaScript asi como el modelo de programación .Net (disponible en Silverlight 1.1)

Si deseas leer el artículo completo clic aqui.

Miguel de Icaza (Novell-Proyecto Mono) también se hace eco de la noticia en su blog, para leer su artículo clic aqui.

Para los poco creyentes les dejo este screenshot que tome del blog de Miguel de icaza:

Acá también hay un link a CNNMoney donde hacen referencia a esta noticia: http://money.cnn.com/news/newsfeeds/articles/prnewswire/AQW07105092007-1.htm

Quien lo prueba?

Cambio y fuera

Oscar

Sitio Open Source de Microsoft

Pues eso (disculpame por fusilarte Guille!!!), via MSDN Flash me acabo de enterar que Microsoft ha lanzado el sitio  Open Source at Microsoft.

Desde allí podremos estar al tanto de las iniciativas de MS para el tema de Open Source incluyendo eventos, programas y ofertas (¿?).

Allí hay un link intersante de Getting Started para los investigadores,  desarrolladores y emprendedores que quieran iniciarse en la plataforma MS..

Interesante no?

Cambio y fuera

Oscar

Guia sobre Equipos de desarrollo con Team Foundation Server

TeamDevTFSGuidePues siguiendo con mi proceso de documentación sobre VSTFS encontré la versión final de esta guía (ya la tenia en version beta).

Principalmente esta guia nos presenta una cantidad considerable de principio y mejores prácticas que nos ayudarán a crear un ambiente de desarrollo utilisando TFS. Es un material largo pero que sin duda vale la pena leer.

El materia esta libre para descarga (incluyendo los diagramas utilizados en la guía) en el sitio de P&P en Codeplex. Para ir al sitio de descarga de este valioso material  clic aqui.

Cambio y fuera.

Oscar

RoadMap de Team Foundation Server

Hola....

Desde la semana pasada he estado trabajando en un proyecto de implementación de Team Foundation Server por lo que mi semana en la web ha sido de busqueda constante de información sobre este tema.

Pues, buscando por alli encontre una info sobre el roadmap de Team Foundation Server en el blog de Brian Harry. El post no tiene desperdicio por lo que les recomiendo que no duden en leerlo...

Espero les sea de utilidad

Cambio y fuera

Oscar

ADO .Net 2.0. Guía de inicio rápido en el manejo de datos con VB .Net

Desde mis días de programador con RPG II, pasando por Cobol, TurboPascal, FoxBase, Clipper Summer 87 y 5.0 y un largo etc. en el 90% de los trabajos que he realizado siempre han estado ligados al proceso de consumir información proveniente de un almacén de datos.. de hecho, creo que ese es mi fuerte.

Para los adultos contemporaneos (mayorcitos quiero decir :-p) saben que no les miento al decir que para los que desarrollamos en ambientes diferentes a Windows (P.ej. DOS) sentimos un alivio con la aparición de los lenguajes visuales y las nuevas tecnologías de acceso a datos. Recuerdo que sentí ver a Dios (o algo parecido) cuando vi como funcionaba un control llamado "Data Control" en conjunto con cuadros de texto, comoboxes, grid's, etc.  en Visual Basic 3... en comparación a como hacía algo parecido en ambiente caracter con Clipper 5 era realmente impresionante... Lástima que pronto aprendí a que ese controlcito no era la panacea, pero igual, siempre resultaba más facil que con Clipper....

Hoy día, he venido evolucionando (¿?) con VB, desde el 3, ya estoy montado en .Net 2005 (VB8)  y ya comenze a probar la versión 9...

Durante los últimos 4 años he estado dictando conferencias para profesionales y estudiantes universitarios en varias partes de Venezuela, y usualmente al final alguien se acerca y me dice algo que suena más o menos así: 

  • "oye Oscar, muy bueno eso que acabas de mostrar, pero  no dejo VB6 por el recorset. "
  • "si existiera el recordset en .Net, me cambiaría al instante.."
  • "crear aplicaciones que consuman datos es más facil con VB6, he tratado de hacer lo mismo con .Net pero no encuentro la forma..."
  • "como inserto datos en un BD, utilizando .Net?

Y así muchisimas más cosas, que irremediablemente me recuerdan la primera vez que probe Visual Basic .Net 2003 (vb7), despues de 1 hora de trastear con "eso"  me hice la pregunta del millón: "y donde ca%&@=#|  esta el recordset????"... Mal comienzo... les confieso que meses después cuando decidí entrarle nuevamente a .Net, descubri que para mi pesar... el "objeto recordset" no formaba parte del Fx1.0...

¿Por qué eliminar el recordset?. Si bien su funcionalidad era limitada, aprendimos a convivir (y hasta a depender) con él. Creamos montones de líneas de código donde usábamos este objeto. ¿Ahora además de aprender .NET, también tenemos que aprender a utilizar un nuevo modelo de acceso a datos?... y así muchísimas interrogantes más que surgían a medida que investigaba acerca de ADO .NET.

Lamentablemente la cosa no paro allí, para colmo el objeto que nos invitaban a usar en vez del recordset, solo tenía de parecido el “set” al final del nombre del objeto. Si no me creen aquí esta la definición de Dataset: “Los conjuntos de datos almacenan datos en una memoria caché desconectada. La estructura de un conjunto de datos es similar a la de una base de datos relacional; expone un modelo jerárquico de tablas, filas y columnas. Además, contiene restricciones y relaciones definidas para el conjunto de datos” (esto lo saque de la ayuda de VS2003)

Pero tranquilos, la cosa no pasa de un shock inicial, ya que las ventajas que nos ofrece ADO .NET para crear aplicaciones centradas en datos son lo suficientemente poderosas y flexibles como para dar el salto sin mirar atrás

Hoy he decidio, bueno desde hace unos meses pero apenas ahora es que medio tengo tiempo, escribir una serie de artículos sencillos, con los que pretendo responder brevemente (aunque me va a costar... :-| ) a las preguntas "estandar" sobre el acceso a datos con VB .Net 2005 (vb8). No pretendo hacer una biblia, o un compendio sobre Ado .Net, más bien pretendo hacer artículos sencillos que puedan ayudar a esos desarrolladores "que no tienen tiempo de leer un libro o leerse un artículo de 20 páginas impresas en MSDN".

Si Ud. espera un artículo 100% técnico, que muestre en profundidad las características tecnicas de Ado .Net, le recomiendo que visite MSDN. Pero si ud. lo que quiere saber es como conectarse a una base de datos, para consultar un BD o insertar un registro esta en el lugar indicado :-D. Claro, después que resuelva el problemita, le recomiendo que se de un paseito por MSDN y busque información sobre ADO .NET...

En pocos días publicaré la parte II de esta serie; mañana salgo de viaje en la madrugada :-(

Cambio y fuera

Oscar

Curso WPF

Revisando la web, me encontre con esta información de un curso de WPF del 03 de agosto (o sea esta actualizado), por falta de tiempo no lo he revisado, pero pronto lo haré y les dare mis comentarios.

En la pág. de eventos tiene esta descripcion:  "En este curso usted verá cómo crear sus primeras aplicaciones usando Windows Presentation Foundation (WPF). Le enseñaremos a utilizar los nuevos recursos de presentación de esta nueva plataforma de Microsoft con los que podrá elevar a niveles excitantes la calidad y funcionalidad de las interfaces de usuario de sus aplicaciones. Lo introduciremos en la nueva filosofía de programación declarativa con el lenguaje XAML que ayuda a separar la interfaz de presentación del código .NET en el que programe la lógica del negocio de su aplicación. Con WPF verá facilitados y enriquecidos conocidos conceptos como controles, eventos, enlace a datos, así como podrá incorporar nuevos elementos como transformaciones, plantillas, estilos, animaciones, media, 3D, documentos.

El curso está dividido en 5 capítulos, y cada capítulo en lecciones. Los capítulos y lecciones vienen acompañados de los proyectos con el código de los ejemplos, así como de videos ilustrativos que reforzarán el contenido de los temas tratados y lo ayudarán a experimentar por su cuenta."

Si quieren acceder al curso, clic aqui

De vuelta: Second Shot!!!

Second Shot is Back! Register for a Free Second Chance to Pass Your Exam (Worldwide)

Por tiempo limitado, esta de vuelta el Second Shot.

¿Que es Second Shot?, bueno, no es más que un seguro contra "no aprobación" de examenes de certificación MS, es decir si te inscribes en esta promoción presentas tu examen( Microsoft IT Professional, Developer o Microsoft Dynamics) , y si no lo apruebas tienes una segunda oportunidad, totalmente gratis. Si deseas mayor información haz clic aqui. Tambien puedes acceder a las FAQ's si tienes alguna duda.

La oferta es válida desde el 15 de septiembre de 2007 hasta el 30 de Enero de 2008.

Salu2

Cambio y fuera

Oscar

LINQ y VB

Visual Studio 2008 Logo

Amigos, apenas ahora es que comienzo a probar VS 2008... el trabajo, siempre el trabajo. Y comenzando a documentarme he conseguido algunos links bastante interesantes que quiero compartir con Uds.

Pronto espero publicar algunos ejemplos con esta tecnología que me llama mucho la atención.

Acá tienen los links que les comente:

Proyecto LINQ: la página del equipo de desarrollo de LINQ, tienen acceso a blogs interesantes, información de última hora  y videos

101 Ejemplos de Linq: ejemplos en VB 2008 bastante interesantes

LINQ Hol's: Laboratorios de LINQ con VS 2008 Beta 2. Necesitan tener instalado la Beta 2 de Orcas, disponible para descarga aqui 

Cambio y fuera

Oscar

Sidebar Gadgets for Developers!!!

Hola amigos.

Navegando por allí en busca de cosas que me hagan más fácil la vida encontré estos Sidebar Gadgets que a mi juicio están muy cool.

Son exactamente 3 gadgets:

El primero, de hecho es el que me gusta más!!! es el Code Converter, este gadget realiza conversiones de VB.Net a C# y viscersa!!!, y permite copiar el  código generado a VS, aqui tienen unos screenshots de este gadget:

 

Aqui tienen la vista de las opciones de configuracion

 

Otro de los gadgets que encontre fue el MSDN Search Gadget, su funcionalidad es básica: busca dentro de MSDN el texto que se ha escrito.. cool

Y para finalizar, tambien descargue el instalé el VS Recent Projects, que permite acceder a la lista de Proyectos Recientes de VS y abrir el que deseemos...

 

 

Bueno, espero les sea de utilidad!!!

Cambio y fuer a

Oscar

 

 

Posted: Thu, Sep 6 2007 9:59 by oscar | with no comments
Filed under: ,
Como hacer Cross-Post

Bueno, bueno,al fin… lo hice.

Después de varios intentos fallidos logre habilitar el cross post desde este blog a mi otro blog en Geeks.ms.

Les confieso que no fue tarea fácil, no sé si es que ya la edad y el cansancio están haciendo mella en mí o es que es demasiada tecnología para mí; lo cierto es que busque en varios sitios y no encontré la forma exacta de cómo habilitar esta característica… o al menos no la entendí :-(((((

Escribo este post, debido al "trauma" que dejó en mi esta experiencia y espero que ayude a alguien (espero no ser el único!!!!!!) que tenga esta inquietud. Tomen en cuenta que estos pasos solo funcionan en blogs alojados sobre Community Server

Bueno, sin más, los pasos que deben seguir para habilitar el cross-posting en sus blogs

1-Accedan el Control Panel de su blog, allí ubican la opción Spam, Ping and Cross-Posting, que se encuentra en el Menú Global Settings:

2-Una vez que hayan dado click sobre esta opción, se refresca la página y en la zona derecha aparece al final una opción donde debemos definir los blogs a los cuales queremos sea posteado (enviado) nuestros artículos de manera automática.La forma de definirlos es sencilla, hacemos click en el botón Setup a new Blog, e inmediatamente nos aparece una ventana donde debemos escribir la siguiente información:

  • URL: la dirección URL del servicio de API MetaWebLog, del blog donde queremos enviar los post
  • AppKey: el nombre del blog remoto (donde queremos enviar automáticamente nuestros post)
  • Username y Password: las credenciales que definimos para acceder al blog remoto
  • Message to add: algún mensaje que indique de donde proviene el post (opcional)

Una vez introducida esta opción, hacen click en el botón Save, y listo.

El primer paso, al menos….

3-Una vez definido el Blog donde queremos enviar automáticamente nuestra información, debemos habilitar el cross-posting de nuestro blog; esto lo logramos, haciendo click en la opción Default Post Settings del Menú Global Settings, y luego marcando la opción Enable Cross-Posting. No se olviden de hacer click en el botón Save!!!

Con esto, ya debería estar habilitado el cross-post desde sus blogs. Espero les sirva!!!!

Cambio y fuera

Oscar

Posted: Tue, Sep 4 2007 15:46 by oscar | with no comments
Filed under: , ,