Curso de Introducción a .NET con Visual Basic 2010

Embed or link this publication

Description

Curso de Introducción a .NET con Visual Basic 2010

Popular Pages


p. 1



[close]

p. 2

bienvenido al curso de introducción a .net con visual basic 2010 en este curso podrás aprender a desarrollar aplicaciones windows con visual studio 2010 y terminaremos desarrollando una aplicación real con los conceptos aprendidos al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de visual studio 2010 este curso le enseñará entre otras cosas las características fundamentales del lenguaje visual basic cómo crear aplicaciones windows con visual studio 2010 utilizar controles en sus aplicaciones trabajar con imágenes y gráficos en 2d y 3d desplegar las aplicaciones que desarrolle utilizar las clases que se incluyen en la librería de .net acceder a datos provenientes de una base de datos conocer en qué consiste linq y como utilizarlo en visual basic cómo exponer funcionalidad a otras aplicaciones mediante servicios web te recomendamos también que veas la aplicación msdn video que desarrollaremos al finalizar el curso y de la que podrás consultar su código fuente y videos explicativos recuerda que si quieres poner en práctica este curso tienes disponible una versión sin limitaciones de visual basic 2010 express que incluye la base de datos sql server 2005 express puedes descargarla en el área de versiones express ¡disfruta del curso acerca de los autores guillermo som guillermo som más conocido como el guille es microsoft mvp most valuable professional de visual basic desde 1997 mantiene el sitio web www.elguille.info dedicado a la programación con visual basic y todo lo relacionado con punto net también es autor de varios libros sobre visual basic .net y c y escribe para revistas y otros medios especializados en programación también es miembro de ineta speakers bureau latin américa y mentor de solid quality mentors unai zorrilla lleva 10 años desarrollando software como consultor independiente y en diversas empresas privadas realizando las tareas de arquitectura de software bajo la plataforma .net abarcando desde el desarrollo con dispositivos móviles y entornos web hasta el desarrollo con windows forms es microsoft mvp de compact framework colabora activamente con microsoft en eventos de formación y es autor de numerosos artículos técnicos en revistas especializadas como mtj.net msdn online y dotnetmanía actualmente trabaja como consultor de gran empresa en plain concepts empresa de la cuál es socio fundador.

[close]

p. 3

jorge serrano jorge serrano es mvp de visual basic y trabaja activamente con la comunidad de desarrollo en españa y andorra mantiene el sitio web www.portalvb.com y es escritor de varios libros sobre internet y tecnologías de desarrollo microsoft además de colaborador asiduo de las revistas especializadas del sector.

[close]

p. 4

este módulo presenta con carácter general la plataforma .net y cómo ésta se diferencia de otros sistemas de desarrollo tradicionales como asp lección 1 introducción a la plataforma .net ¿qué es la plataforma .net el entorno de ejecución clr lección 2 el lenguaje intermedio y el cls el lenguaje intermedio la especificación común de los lenguajes .net el sistema de tipos comunes lección 3 la biblioteca de clases de .net la bcl los espacios de nombres lección 4 acceso a datos con ado.net ado.net la arquitectura de ado.net capa conectada de datos capa desconectada lección 5 linq introducción a linq lección 6 aplicaciones windows forms introducción wpf lección 7 aplicaciones web forms introducción silverlight

[close]

p. 5

simplificando mucho las cosas para poder dar una definición corta y comprensible se podría decir que la plataforma .net es un amplio conjunto de bibliotecas de desarrollo que pueden ser utilizadas por otras aplicaciones para acelerar enormemente el desarrollo y obtener de manera automática características avanzadas de seguridad rendimiento etc en realidad .net es mucho más que eso ya que ofrece un entorno gestionado de ejecución de aplicaciones nuevos lenguajes de programación y compiladores y permite el desarrollo de todo tipo de funcionalidades desde programas de consola o servicios windows hasta aplicaciones para dispositivos móviles pasando por desarrollos de escritorio o para internet son estos últimos de los que nos ocuparemos en este curso pero antes conviene conocer los fundamentos en los que se basa cualquier aplicación creada con .net incluyendo las que nos interesan el entorno de ejecución clr .net ofrece un entorno de ejecución para sus aplicaciones conocido como common language runtime o clr el clr es la implementación de microsoft de un estándar llamado common language infrastructure o cli Éste fue creado y promovido por la propia microsoft pero desde hace años es un estándar reconocido mundialmente por el ecma el clr/cli esencialmente define un entorno de ejecución virtual independiente en el que trabajan las aplicaciones escritas con cualquier lenguaje .net este entorno virtual se ocupa de multitud de cosas importantes para una aplicación desde la gestión de la memoria y la vida de los objetos hasta la seguridad y la gestión de subprocesos todos estos servicios unidos a su independencia respecto a arquitecturas computacionales convierten al clr en una herramienta extraordinariamente útil puesto que en teoría cualquier aplicación escrita para funcionar según la cli puede ejecutarse en cualquier tipo de arquitectura de hardware por ejemplo microsoft dispone de implementaciones de .net para windows de 32 bits windows de 64 bits e incluso para windows mobile cuyo hardware no tiene nada que ver con la arquitectura de un ordenador común.

[close]

p. 6

al contrario que otros entornos la plataforma .net no está atada a un determinado lenguaje de programación ni favorece a uno determinado frente a otros en la actualidad existen implementaciones para varias decenas de lenguajes que permiten escribir aplicaciones para la plataforma .net los más conocidos son visual basic .net o c pero existen implementaciones de todo tipo como f python fortran e incluso cobol lo mejor de todo es que cualquier componente creado con uno de estos lenguajes puede ser utilizado de forma transparente desde cualquier otro lenguaje .net además como ya se ha comentado es posible ejecutar el código .net en diferentes plataformas y sistemas operativos ¿cómo se consigue esta potente capacidad dentro del cli existe un lenguaje llamado il intermediate language o lenguaje intermedio que está pensado de forma independiente al procesador en el que se vaya a ejecutar es algo parecido al código ensamblador pero de más alto nivel y creado para un hipotético procesador virtual que no está atado a una arquitectura determinada cuando se compila una aplicación escrita en un lenguaje .net cualquiera da igual que sea vb c u otro de los soportados el compilador lo que genera en realidad es un nuevo código escrito en este lenguaje intermedio así todos los lenguajes .net se usan como capa de más alto nivel para producir código il un elemento fundamental del clr es el compilador jit just-in-time su cometido es el de compilar bajo demanda y de manera transparente el código escrito en lenguaje intermedio a lenguaje nativo del procesador físico que va a ejecutar el código al final lo que se ejecuta es código nativo que ofrece un elevado rendimiento esto es cierto también para las aplicaciones web escritas con asp.net y contrasta con las aplicaciones basadas en asp clásico que eran interpretadas no compiladas y que jamás podrían llegar al nivel de desempeño que ofrece asp.net la siguiente figura muestra el aspecto que tiene el código intermedio de una aplicación sencilla y se puede obtener usando el desemsamblador que viene con la plataforma .net.

[close]

p. 7

figura 1.1 código en lenguaje intermedio obtenido con ildasm.exe la especificación común de los lenguajes y el sistema de tipos comunes para conseguir la interoperabilidad entre lenguajes no sólo se llega intermedio sino que es necesario disponer de unas reglas del juego conjunto de características que todos los lenguajes deben incorporar y conjunto regulador se le denomina common language specification cls especificación común de los lenguajes con el lenguaje que definan un cumplir a este o en castellano entre las cuestiones que regula el cls se encuentran la nomenclatura la forma de definir los miembros de los objetos los metadatos de las aplicaciones etc una de las partes más importantes del cls es la que se refiere a los tipos de datos si alguna vez ha programado la api de windows o ha tratado de llamar a una dll escrita en c desde visual basic 6 habrá comprobado lo diferentes que son los tipos de datos de vb6 y de c para evitar este tipo de problemas y poder gestionar de forma eficiente y segura el acceso a la memoria el cls define un conjunto de tipos de datos comunes common type system o cts que indica qué tipos de datos se pueden manejar cómo se declaran y se utilizan éstos y de qué manera se deben gestionar durante la ejecución si nuestras bibliotecas de código utilizan en sus interfaces hacia el exterior datos definidos dentro de la cts no existirán problemas a la hora de utilizarlos desde cualquier otro código escrito en la plataforma .net.

[close]

p. 8

cada lenguaje .net utiliza una sintaxis diferente para cada tipo de datos así por ejemplo el tipo común correspondiente a un número entero de 32 bits system.int32 se denomina integer en visual basic .net pero se llama int en c en ambos casos representan el mismo tipo de datos que es lo que realmente cuenta system.int32 nota en asp 3.0 se suele usar vbscript como lenguaje de programación en este lenguaje interpretado al igual que en vb6 un integer representaba un entero de 16 bits los enteros de 32 bits eran de tipo long es un fallo muy común usar desde visual basic .net el tipo integer pensando que es de 16 bits cuando en realidad es capaz de albergar números mucho mayores téngalo en cuenta si usted está familiarizado con visual basic 6 o anteriores cuando empiece a programar existen tipos por valor como los enteros que hemos mencionado o las enumeraciones y tipos por referencia como las clases en el siguiente módulo se profundiza en todas estas cuestiones.

[close]

p. 9

todo lo que se ha estado comentando hasta ahora en el curso constituye la base de la plataforma .net si bien es muy interesante y fundamental por sí mismo no nos serviría de mucho para crear programas si debiésemos crear toda la funcionalidad desde cero obviamente esto no es así y la plataforma .net nos ofrece infinidad de funcionalidades de fábrica que se utilizan como punto de partida para crear las aplicaciones existen funcionalidades básicas por ejemplo todo lo relacionado con la e/s de datos o la seguridad y funcionalidades avanzadas en las que se fundamentan categorías enteras de aplicaciones acceso a datos creación de aplicaciones web toda esta funcionalidad está implementada en forma de bibliotecas de funciones que físicamente se encuentran en diversas dll bibliotecas de enlazado dinámico a su conjunto se le denomina base classes library biblioteca de clases base o bcl y forman parte integral de la plataforma .net es decir no se trata de añadidos que se deban obtener o adquirir aparte la siguiente figura ilustra a vista de pájaro la arquitectura conceptual general de la plataforma .net en ella se pueden observar los elementos que se han mencionado en apartados anteriores lenguajes clr cls y en qué lugar se ubican las bibliotecas de clases base:

[close]

p. 10

figura 1.2 distintos elementos de la plataforma .net y cómo se relacionan entre sí resulta muy útil para comprender lo explicado hasta ahora no se preocupe si hay elementos que no conoce u otros elementos que echa en falta en este gráfico más adelante estudiaremos todos los elementos y algunos que no aparecen aquí como por ejemplo linq y el cual veremos más adelante todo lo que se encuentra en la bcl forma parte de la plataforma .net de hecho existe tal cantidad de funcionalidad integrada dentro de estas bibliotecas hay más de 4000 clases que el mayor esfuerzo que todo programador que se inicia en .net debe hacer es el aprendizaje de las más importantes aumentando el conocimiento del resto a base de práctica de todos modos visual studio ofrece mucha ayuda contextual documentación intellisense y una vez que se aprenden los rudimentos resulta fácil ir avanzando en el conocimiento de la bcl a medida que lo vamos necesitando los espacios de nombres dada la ingente cantidad de clases con la que podemos trabajar debe existir alguna forma de organizarlas de un modo coherente además hay que tener en cuenta que podemos adquirir más funcionalidades que se traducen en clases de otros fabricantes por no mencionar que crearemos continuamente nuevas clases propias para solucionar este problema existen en todos los lenguajes .net los espacios de nombres o namespaces un espacio de nombres no es más que un identificador que permite organizar de modo estanco las clases que estén contenidas en él así como otros espacios de nombres así por ejemplo todo lo que tiene que ver con el manejo de estructuras de datos xml en la plataforma .net se encuentra bajo el espacio de nombres system.xml la funcionalidad fundamental para crear aplicaciones web está en el espacio de nombres system.web Éste a su vez contiene otros espacios de nombres más especializados como system.web.caching para la persistencia temporal de datos system.web.ui.webcontrols que contiene toda la funcionalidad de controles web para interfaz de usuario etc

[close]

p. 11

no obstante en nuestros desarrollos internos crearemos nuestras propias clases dentro de nombres de espacio concretos esto nos ayudará a localizar e interpretar rápidamente la división y subdivisión de nuestros objetos un aspecto a tener en cuenta es tratar de evitar crear nuestros nombres de espacio de forma idéntica a la que microsoft ha utilizado la los nombres de espacio de .net framework pero esto es algo que iremos solventando con práctica y atención.

[close]

p. 12

el acceso a fuentes de datos es algo indispensable en cualquier lenguaje o plataforma de desarrollo la parte de la bcl que se especializa en el acceso a datos se denomina de forma genérica como ado.net si usted ha programado con visual basic 6.0 ó con asp ha empleado en su código con total seguridad la interfaz de acceso a datos conocida como ado activex data objects y posiblemente lo ha combinado además con odbc open database connectivity si además es usted de los programadores con solera y lleva unos cuantos años en esto es probable que haya usado rdo o incluso dao todos ellos métodos mucho más antiguos ado.net ofrece una funcionalidad completamente nueva que tiene poco que ver con lo existente hasta la fecha en el mercado sin embargo con el ánimo de retirar barreras a su aprendizaje microsoft denominó a su nuevo modelo de acceso a datos con un nombre similar y algunas de sus clases recuerdan a objetos de propósito análogo en el vetusto ado ado.net es un modelo de acceso mucho más orientado al trabajo desconectado de las fuentes de datos de lo que nunca fue ado si bien este último ofrecía la posibilidad de desconectar los recordsets y ofrecía una forma de serialización de estos a través de las diferentes capas de una aplicación el mecanismo no es ni de lejos tan potente como el que nos ofrece ado.net el objeto más importante a la hora de trabajar con el nuevo modelo de acceso a datos es el dataset sin exagerar demasiado podríamos calificarlo casi como un motor de datos relacionales en memoria aunque hay quien lo asimila a los clásicos recordsets su funcionalidad va mucho más allá como se verá en el correspondiente módulo arquitectura de ado.net el concepto más importante que hay que tener claro sobre ado.net es su modo de funcionar que se revela claramente al analizar su arquitectura:

[close]

p. 13

figura 1.3 arquitectura de ado.net existen dos capas fundamentales dentro de su arquitectura la capa conectada y la desconectada capa conectada la primera de ellas contiene objetos especializados en la conexión con los orígenes de datos así la clase genérica connection se utiliza para establecer conexiones a los orígenes de datos la clase command se encarga de enviar comandos de toda índole al origen de datos por fin la clase datareader está especializada en leer los resultados de los comandos mientras se permanece conectado al origen de datos la clase dataadapter hace uso de las tres anteriores para actuar de puente entre la capa conectada y la desconectada estas clases son abstractas es decir no tienen una implementación real de la que se pueda hacer uso directamente es en este punto en donde entran en juego los proveedores de datos cada origen de datos tiene un modo especial de comunicarse con los programas que los utilizan además de otras particularidades que se deben contemplar un proveedor de datos de ado.net es una implementación concreta de las clases conectadas abstractas que hemos visto que hereda de éstas y que tiene en cuenta ya todas las particularidades del origen de datos en cuestión así por ejemplo las clases específicas para acceder a sql server se llaman sqlconnection sqlcommand sqldatareader y sqldataadapter y se encuentran bajo el espacio de nombres system.data.sqlclient es decir al contrario que en ado clásico no hay una única clase connection o command que se use en cada caso si no que existen clases especializadas para conectarse y recuperar información de cada tipo de origen de datos nota el hecho de utilizar clases concretas para acceso a las fuentes de datos no significa que no sea posible escribir código independiente del origen de datos todo lo contrario la plataforma .net ofrece grandes facilidades de

[close]

p. 14

escritura de código genérico basadas en el uso de herencia e implementación de interfaces de hecho la versión 2.0 de .net ofrece grandes novedades específicamente en este ámbito existen proveedores nativos que son los que se comunican directamente con el origen de datos por ejemplo el de sql server o el de oracle y proveedores puente que se utilizan para acceder a través de odbc u oledb cuando no existe un proveedor nativo para un determinado origen de datos nota estos proveedores puente si bien muy útiles en determinadas circunstancias ofrecen un rendimiento menor debido a la capa intermedia que están utilizando odbc u oledb un programador novel puede sentir la tentación de utilizar siempre el proveedor puente para oledb y así escribir código compatible con diversos gestores de datos de forma muy sencilla se trata de un error y siempre que sea posible es mejor utilizar un proveedor nativo capa desconectada una vez que ya se han recuperado los datos desde cualquier origen de datos que requiera una conexión ésta ya no es necesaria sin embargo sigue siendo necesario trabajar con los datos obtenidos de una manera flexible es aquí cuando la capa de datos desconectada entra en juego además en muchas ocasiones es necesario tratar con datos que no han sido obtenidos desde un origen de datos relacional con el que se requiera una conexión a veces únicamente necesitamos un almacén de datos temporal pero que ofrezca características avanzadas de gestión y acceso a la información por otra parte las conexiones con las bases de datos son uno de los recursos más escasos con los que contamos al desarrollar su mala utilización es la causa más frecuente de cuellos de botella en las aplicaciones y de que éstas no escalen como es debido esta afirmación es especialmente importante en las aplicaciones web en las que se pueden recibir muchas solicitudes simultáneas de cualquier parte del mundo finalmente otro motivo por el que es importante el uso de los datos desconectado de su origen es la transferencia de información entre capas de una aplicación Éstas pueden encontrarse distribuidas por diferentes equipos e incluso en diferentes lugares del mundo gracias a internet por ello es necesario disponer de algún modo genérico y eficiente de poder transportar los datos entre diferentes lugares utilizarlos en cualquiera de ellos y posteriormente tener la capacidad de conciliar los cambios realizados sobre ellos con el origen de datos del que proceden todo esto y mucho más es lo que nos otorga el uso de los objetos dataset es obvio que no se trata de tareas triviales pero los objetos dataset están pensados y diseñados con estos objetivos en mente como podremos comprobar más adelante en este curso es bastante sencillo conseguir estas funcionalidades tan avanzadas y algunas otras simplemente usando de manera adecuada este tipo de objetos nota otra interesante característica de los dataset es que permiten gestionar simultáneamente diversas tablas relaciones de datos cada una de un origen diferente si es necesario teniendo en cuenta las restricciones y las relaciones existentes entre ellas los dataset como cualquier otra clase no sellada de .net se pueden extender mediante herencia ello facilita una técnica avanzada que consiste en crear tipos nuevos de dataset especializados en la gestión de una información concreta por ejemplo un conjunto de tablas

[close]

p. 15

relacionadas estas nuevas tipos clases se denominan genéricamente dataset tipados y permiten el acceso mucho más cómodo a los datos que representan verificando reglas de negocio y validaciones de tipos de datos más estrictas.

[close]

Comments

no comments yet