1.1- Introducción al Curso
Dentro de estos articulos a entregarles son aquellos que fueron utilizados como base para dessarrollar los cursos de aprendizaje del Visual Studio 2008, el primer modulo consta de 8 laboratorios, donde en el cual se encontrara breves descripciones de las Funcionalidades del IDE de VS2005, Clases, Objetos, controles, etc. luego del cual encontrara unos ejemplos que visualice mejor los conceptos descriptos anteriormente.
Al realizar estos laboratorios se trato de enfocarlo didácticamente para que el estudiante no tuviera problemas en el uso de las clases que proporciona el Framework.
Esta serie de laboratorios se enfocara en los siguientes puntos:
- Características fundamentales del lenguaje Visual Basic
- Uso de las clases que se incluyen en la librería de Framework.
- Creación de aplicaciones Windows con Visual Studio 2005
- Uso y Creación de controles en sus aplicaciones
- Ejecución y Control de las aplicaciones que desarrolle
- Acceso a datos provenientes de una base de datos en Access y SQL Server.
- Realizar Aplicaciones para comunicación con Servicios Web.
1.2- Introducción a la plataforma .NET
Plataforma .NET?? Framework??.... Para simplificar los conceptos de estos términos nuevos para nosotros, podríamos primero decir que La Plataforma .NET es la tecnología que nos permite integrar las personas, dispositivos, servicios e información en cualquier escenario y en cualquier instante.
Mucho mas a un podríamos realizar desarrollos para aplicaciones distribuidas ya que tiene como soporte un amplio conjunto de bibliotecas y estas puedan obtener de manera automática características avanzadas de seguridad, rendimiento, etc.
En realidad la plataforma .NET ofrece un entorno gestionado de ejecución de aplicaciones, nuevos lenguajes de programación y compiladores, además permite el desarrollo de todo tipo de aplicaciones: pasando por programas de consola, servicios Windows y hasta aplicaciones para dispositivos móviles, igualmente desarrollos de escritorio, para Web.
Y ahora que es el Framework??? El Framework es el soporte, paquete de software fundamental de la plataforma .NET, el cual incluye el entorno de Ejecución (Runtime), Bibliotecas de Funcionalidad Reutilizable (Class Library). En síntesis podríamos decir que el Framework es:
El "Framework" o marco de trabajo, constituye la base de la plataforma .NET y denota la infraestructura sobre la cual se reúnen un conjunto de lenguajes, herramientas y servicios que simplifican el desarrollo de aplicaciones en entorno de ejecución distribuido.
Los componentes que forman el Framework lo podríamos dividir en lo siguiente: la Arquitectura del .Net Framework, El Entorno de Ejecución (CLR), la Biblioteca de Clases, el Lenguaje Común de Especificaciones (CLS), el CLI, el CTS, y el Modelo de Ejecución.
Arquitectura del .NET Framework
1.3 El entorno de ejecución CLR
El Framework realiza la ejecución de aplicaciones a través del Common Language Runtime o CLR, Lo que realiza el CLR es definir un entorno virtual que se ocupa de hacer posible la ejecución y uso de la aplicación, desde la gestión de memoria. La vida de los objetos, pasando por la seguridad de acceso a nivel de objetos incluso métodos que este ofrece, y la gestión de subprocesos.
Los servicios que ofrece el CLR debido a su arquitectura computacional, lo convierten en una herramienta para nuestro tiempo de tecnología de punta en algo realmente extraordinario, puesto que en teoría cualquier aplicación escrita para funcionar con el CLR puede ejecutarse en cualquier tipo de arquitectura de hardware, para esto Microsoft dispone de implementación 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.
Arquitectura del CLR
- Compilación Just-In-Time (JIT) del MSIL a código nativo
- Gestión automática de memoria Garbage Collector.
- También llamado recolector de basura, el cual identifica los objetos no utilizados para gestionar la memoria
- Gestión de errores consistente Excepciones.
- Realiza la captura de errores no gestionado mediante el CLR y no afecta a otras aplicaciones que se estén ejecutand
- Ejecución y Administración basada en componentes Assemblies o Ensamblados, que son los tipos conocidos como DLL, EXE’s.
- Gestión de Seguridad
- Permite establecer políticas de seguridad, Roles, Miembros
- Soporte de Hilos Multithreading
- Proporciona mecanismos de sincronización y acceso concurrente a recursos compartidos, ahora podemos programar hilos a través de código VB.Net.
Anteriormente cuando trabajamos en otras versiones y en distintos lenguajes cada uno era independiente y la comunicación entre dichos programas no era transparente. La plataforma .NET no esta 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, C# o J#.
Es decir cualquier componente desarrollado en estos lenguaje puede ser utilizado en forma transparente por otro lenguaje de la plataforma .NET, he incluso es posible ejecutar el código .NET en diferentes plataformas y sistemas operativos.
Y como se logra esto??.. Bueno es por que todos al final caen a un lenguaje intermedio llamado IL que se comporta como un traductor, y desde ahí se puede implementar en otro lenguaje de la plataforma .NET.
¿Cómo se consigue esta potente capacidad?
Dentro del Framework 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.
Para esta porción de código:
Private Sub Button1_Click(ByVal sender As System.Object, . . .
MessageBox.Show("Bienvenido a Visual Studio 2005")
End Sub
Su código intermedio será el siguiente:
Para visualizar el código intermedio se tendría que abrir la consola que viene con Visual Studio y dentro de el escribir el comando Ildasm, en el cual luego se tiene que seleccionar el EXE, DLL que queremos revisar.
Figura 6
El lenguaje llamado IL (Intermediate Language o Lenguaje Intermedio) fue desarrollado para que trabajara en forma independiente al procesador en el que se vaya a ejecutar. Este lenguaje es similar 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 en cualquier lenguaje ya sea VB, C#, C++ u otro, lo que el compilador realmente es generar 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 componente fundamental del CLR es el compilador JIT (just-in-time). Lo que realiza este compilador es 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.
1.5 La especificación común de los lenguajes y el sistema de tipos comunes
Una de las cosas que regula el CLS se encuentra la nomenclatura, la forma de definir los miembros de los objetos, los metadatos de las aplicaciones, los tipos de datos compatibles, etc.
Cuando se ha trata de llamar a una DLL escrita en C++ desde Visual Basic 6.0 se vera que los tipos de datos son diferentes o incompatibles según se quiera usar, Para evitar este tipo de problemas y poder gestionar de forma eficiente y segura el acceso a la memoria, la 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.
Sobre la sintaxis, cada lenguaje .NET utiliza una sintaxis diferente para cada tipo de datos. 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 dentro del lenguaje intermedio.
El CLS los tipos de datos los agrupa en dos bloques, los tipos por valor (como los enteros que hemos mencionado o las enumeraciones) y tipos por referencia (como las clases). Con el siguiente grafico tendremos mejor la idea en que se puede diferenciar un tipo por valor y tipo por referencia:
Los tipos de datos y sus equivalentes en el IL con sus descripciones son los siguientes:
1.6 La Biblioteca de Clases
Es el conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluidos en el .NET Framework, representa el centro de todo, donde esta incluido y ordenadamente todos los objetos del Framework agrupado según su funcionalidad, es decir están organizados en jerarquías lógicas de nombres, denominados Namespaces o espacios de nombres como “System.Web” o “System.XML”.
Estas clases son independientes del lenguaje de programación de alto nivel que se desee utilizar tanto para C#, VB.NET, J#, etc. Estas clases son extensibles y totalmente orientadas a objetos, es decir ahora si VB.NET es orientado a Objetos.
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.
Principales Operaciones que se pueden manejar con la biblioteca de clases de .NET
- Interacción con los dispositivos periféricos.
- Manejo de datos (ADO.NET).
- Administración de memoria.
- Cifrado de datos.
- Transmisión y recepción de datos por distintos medios (XML, TCP/IP).
- Administración de componentes Web que corren tanto en el servidor como en el cliente (ASP.NET).
- Manejo y administración de excepciones.
- Manejo del sistema de ventanas.
- Herramientas de despliegue de gráficos (GDI+).
- Herramientas de seguridad e integración con la seguridad del sistema operativo.
- Manejo de tipos de datos unificado.
- Interacción con otras aplicaciones.
- Manejo de cadenas de caracteres y expresiones regulares.
- Operaciones aritméticas.
- Manipulación de fechas, zonas horarias y periodos de tiempo.
- Manejo de arreglos de datos y colecciones.
- Manipulación de archivos de imágenes.
- Aleatoriedad.
- Generación de código.
- Manejo de idiomas.
- Auto descripción de código.
- Interacción con el API Win32 o Windows API.
- Compilación de código.
1.7 Los espacios de nombres
Dada la gran cantidad de clases que existen se debe de organizarlas de un modo coherente. Se debe tener en cuenta que podemos adquirir más funcionalidades (que se traducen en clases) a otros fabricantes con el mismo nombre de clase o conjunto de clases, 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 escalonado o jerárquico a las clases que estén contenidas en él así como otros espacios de nombres dentro de él.
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...
Para comprender mejor los espacios de nombres, son clases, tipos, espacios de nombres, etc. Que están agrupados por funcionalidades similares como conjuntos, y esto quiere decir que cuando creamos una aplicación Windows en .Net, solo se cargan clases básicas para el funcionamiento de la aplicación y para ser usadas en la aplicación:
Figura 11
Este gran universo se llama System y se cargan todas las clases que se encuentran en ella, pero no las que están contenidas dentro de un espacio de nombres. Para usar una clase que no esta cargada en nuestra aplicación, se usa la palabra reservada Imports.
Figura 12
Por ejemplo si queremos usar una clase llamada SqlConnection, cuya clase se encuentra dentro del espacio de nombre System à Data à SqlClient, tendríamos que escribir el siguiente código:
Imports System.Data.SqlClient
Dim xCon As SqlConnection
Pero esto significa que no solo se carga la clase SqlConnection sino todas las clases que se encuentra en el espacio de nombre: System.Data.SqlClient.
Figura 13
Si queremos evitar esto, tendríamos que declarar la variable indicando la ruta de donde se saca esta clase:
Dim xCon As System.Data.SqlClient.SqlConnection
1.8 Ensamblados
Los ensamblados son ficheros con forma de EXE o DLL que contienen toda la funcionalidad de la aplicación de forma encapsulada. Con los ensamblados ya no es necesario registrar los componentes de la aplicación.
Figura 14
No hay comentarios:
Publicar un comentario