Académique Documents
Professionnel Documents
Culture Documents
Net
Da 1
Introduccin
En este curso se tratan todas las cuestiones fundamentales que le permitirn crear aplicaciones web con Visual Studio 2010. Al final del curso sabr todo lo necesario para crear sus propias aplicaciones Web orientadas a datos y con multitud de caractersticas avanzadas.
Objetivos
El objetivo de este curso es lograr que ustedes aprendan a: Cmo crear aplicaciones web con Visual Studio 2010. A utilizar controles web y controles HTML. Los mtodos bsicos de acceso a base de datos. Los controles enlazados a datos. A manejar las sesiones desde ASP.NET. El modo de crear aplicaciones con un interfaz de usuario consistente y fcil de personalizar. Control de acceso de usuarios. Cmo exponer funcionalidad a otras aplicaciones mediante servicios Web. Trabajar con controles Ajax en ASP.NET.
Prerrequisitos
Poseer los conocimientos en:
Fundamentos de Programacin. programacin Orientacin a Objetos. Nociones de programacin Web en otras plataformas web como ASP, si bien no es indispensable. Html. Sql Server 2008 Lenguaje Sql
Temario General
Introduccin a la Plataforma .Net. Caractersticas del Lenguaje VB.NET. Fundamento de Desarrollo de Aplicaciones Web. Acceso a Datos. LINQ. Tcnicas Avanzadas de ASP.NET. Introduccin a los Servicios Web. Ajax en ASP.NET. Jquery en Asp.NET.
Que es .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 automtica caractersticas avanzadas de seguridad, rendimiento, etc... En realidad .NET es mucho ms que eso ya que ofrece un entorno gestionado de ejecucin de aplicaciones, nuevos lenguajes de programacin y compiladores, y permite el desarrollo de todo tipo de funcionalidades: desde programas de consola o servicios Windows hasta aplicaciones para dispositivos mviles, pasando por desarrollos de escritorio o para Internet.
de Microsoft de un estndar llamado Common Language Infrastructure o CLI. ste fue creado y promovido por la propia Microsoft pero desde hace aos es un estndar reconocido mundialmente por el ECMA. El CLR/CLI: define un entorno de ejecucin virtual independiente que se ocupa de multitud de cosas importantes para una aplicacin: desde la gestin de la memoria y la vida de los objetos hasta la seguridad y la gestin de subprocesos.
Cuando se compila una aplicacin escrita en un lenguaje .NET (C#, VB, J#, etc.), el compilador genera un nuevo cdigo escrito en este lenguaje intermedio. As, todos los lenguajes .NET se usan como capa de ms alto nivel para producir cdigo IL.
Arquitectura de ADO.NET
LINQ
LINQ significa Language Integrated Query, o Lenguaje Integrado de Consultas. Se trata de una de las novedades incluidas en Microsoft .NET Framework 3.5, y representa una forma nueva de desarrollo tal y como la conocamos hasta ahora. LINQ est pensado desde la orientacin a objetos, pero su objetivo fundamental es la manipulacin y trabajo con datos. Para que comprenda ms an la importancia de LINQ, diremos que la inmensa mayora de las novedades introducidas en Microsoft .NET Framework 3.5 tienen su razn de ser gracias a LINQ, y que LINQ jugar un importante papel en las prximas novedades de Microsoft .NET Framework.
LINQ
A la hora de trabajar con datos, con LINQ tenemos la posibilidad de seleccionar, manipular y filtrar datos como si estuviramos trabajando con una base de datos directamente.
Podemos usar LINQ con bases de datos, matrices y colecciones. LINQ simplifica el cdigo, acorta los tiempos de desarrollo, permite que el desarrollador desarrolle aplicaciones ms productivas y seguras a la hora de trabajar con datos y sus tipos. Intellisense juega un papel muy importante evitando que cometamos errores a la hora de escribir nuestras aplicaciones, errores como por ejemplo seleccionar el dato errneo o el tipo de dato inadecuado, ya que el compilador nos avisara de estos y otros errores.
Cdigo ASP sencillo que genera una lista de seleccin y saluda al presionar un botn.
No disponemos de forma de detectar en el servidor que se ha realizado algo en el cliente. No existe constancia del estado de los controles de cada pgina entre las llamadas. No existe el concepto de Propiedad de los controles. Los controles complejos no tienen forma de enviar sus valores al servidor.
Temario General
Introduccin a la Plataforma .Net. Caractersticas del Lenguaje VB.NET. Fundamento de Desarrollo de Aplicaciones Web. Acceso a Datos. LINQ. Tcnicas Avanzadas de ASP.NET. Introduccin a los Servicios Web. Ajax en ASP.NET. Jquery en Asp.NET.
Sistema de Tipos
Visual Basic .NET est totalmente integrado con .NET Framework, por tanto los tipos de datos que podremos usar con este lenguaje sern los definidos en este "marco de trabajo", por este motivo vamos a empezar usando algunas de las definiciones que nos encontraremos al recorrer la documentacin que acompaa a este lenguaje de programacin. A continuacin veremos los diferentes tipos de datos existentes en .NET que son: Los Primitivos, variables y constantes, Enumeraciones (contantes agrupadas) y Arrays (Matrices).
El uso de estos caracteres nos puede resultar de utilidad particularmente para los tipos de datos que no se pueden convertir en un valor doble.
Para que la inferencia de tipos sea efectiva, deberemos activar la opcin Option Infer a True, aunque por defecto, ese es el valor que tiene el compilador de Visual Basic. Sin embargo, si se hace una migracin de una aplicacin de Visual Basic a Visual Basic 2008 ( superior), el valor de esta opcin ser False.
En este ejemplo, la variable datoDeclarado, ser una variable de tipo Integer (Int32). Si deseamos cambiar el tipo de dato a un tipo Int64 por ejemplo, el compilador nos devolver un error. As, el siguiente ejemplo no ser vlido en Visual Basic 2008 ( superior) con la opcin de inferencia activada:
Ahora bien, si cambiamos el valor de Option Infer a False, el mismo ejemplo ser correcto.
Al cambiar su valor a Long, esta variable que es de tipo Object, cambia sin problemas a valor Long.
En todo este proceso, hay un problema claro de rendimiento con acciones de boxing y unboxing que no seran necesarias si tipramos la variable con un tipo concreto.
Para acceder al valor de un tipo anulable, podramos hacerlo de la forma habitual, ahora bien, si no sabemos si el valor es nulo o no, podramos acceder a su valor preguntando por l mediante la propiedad HasValue. La propiedad Value nos indicar tambin, el valor de esa variable. Un ejemplo que aclare esta explicacin es el que podemos ver a continuacin:
En este ejemplo, el compilador nos devolvera el valor 2010, ya que GetValueOrDefault sabe que la variable no posee un valor nulo y que por lo tanto, debe obtener el valor no nulo de la variable anulable.
En el caso de que no hubiramos dado ningn valor a la variable, la aplicacin obtendra el valor 2012.
Como podemos ver en el ejemplo anterior, hemos declarado un objeto al que no hemos indicado ningn tipo de dato concreto, pero a la hora de crear ese objeto, hemos creado implcitamente un miembro Nombre y un miembro Edad.
Indicando el atributo FlagsAttibute, de esta forma podremos indicar unos valores concretos para los miembros de la enumeracin.
Es decir, podemos "sumar" los valores definidos en la enumeracin. Como hemos comentado, las enumeraciones son constantes con nombres, pero esta definicin se queda algo corta. De hecho, podemos saber "el nombre" de un valor de una enumeracin, para ello tendremos que usar el mtodo ToString, (el cual se usa para convertir en una cadena cualquier valor numrico). Por ejemplo, si tenemos la siguiente asignacin:
El contenido de la variable s ser "5", es decir, la representacin numrica del valor contenido: 4 + 1, ya que el valor de la constante Azul es 4 y el de la constante Rojo es 1.
El contenido de la variable s ser: "Rojo, Azul", es decir, se asignan los nombres de los miembros de la enumeracin que intervienen en ese valor, no el valor "interno".
Por tanto cabe pensar que podemos usar cualquier valor para asignar a una variable declarada como una enumeracin, al menos si ese valor est dentro del rango adecuado. Es decir, en el ejemplo de la figura usar un 1 en lugar de Colores.Rojo.
El error nos indica que no podemos realizar esa asignacin, pero el entorno integrado de Visual Studio 2010 tambin nos ofrece alternativas para que ese error no se produzca, esa ayuda se obtiene presionando el signo de admiracin que tenemos justo donde est el cursor del mouse, pero no solo nos dice cmo corregirlo, sino que tambin nos da la posibilidad de que el propio IDE se encargue de hacerlo.
Lo nico que tendramos que hacer es presionar la sugerencia de correccin, que en este caso es la nica que hay, pero en otros casos pueden ser varias las opciones y tendramos que elegir la que creamos adecuada. El cdigo final (una vez corregido) quedara de la siguiente forma:
CType es una de las formas que nos ofrece VB.NET de hacer conversiones entre diferentes tipos de datos, en este caso convertimos un valor entero en uno del tipo enumerado Colores.
Al igual que en VBScript/VB6, podemos indicar el nmero de elementos que contendr el array:
Para averiguar el nmero de elementos de un array, tambin podemos usar la funcin UBound, que es la que nos serva en VBScript/VB6 para saber esa informacin.
Sin embargo, el uso de la funcin LBound, (que sirve para averiguar el ndice inferior de un array), no tiene ningn sentido en Visual Basic, ya que todos los arrays siempre tienen un valor cero como ndice inferior.
Los arrays son tipos de datos derivados de la clase Array y por tanto disponen de todos los miembros definidos en esa clase.
Clases y Estructuras
En la leccin anterior vimos los tipos de datos predefinidos en .NET Framework, en esta leccin veremos cmo podemos crear nuestros propios tipos de datos, tanto por valor como por referencia. Tambin tendremos ocasin de ver los distintos niveles de accesibilidad que podemos aplicar a los tipos, as como a los distintos miembros de esos tipos de datos. Adicionalmente, veremos temas relacionados con la programacin orientada a objetos (POO) en general y de forma particular los que ataen a las interfaces.
Clases y Estructuras
A continuacin veremos los diferentes temas que son: Tipos por Referencia definidos por el usuario, Definir una Clase, Crear un Objeto en la Memoria, Tipos por Valor Definidos por el Usuario, Accesibilidad y mbito, Propiedades e Interfaces.
Clases y Estructuras
A continuacin veremos los diferentes temas que son: Tipos por Referencia Definidos por el Usuario, Definir una Clase, Crear un Objeto en la Memoria, Tipos por Valor Definidos por el Usuario, Accesibilidad y mbito, Propiedades e Interfaces.
La encapsulacin nos permite abstraer la forma que tiene de actuar una clase sobre los datos que contiene o manipula, para poder lograrlo se exponen como parte de la clase los mtodos y propiedades necesarios para que podamos manejar esos datos sin tener que preocuparnos cmo se realiza dicha manipulacin.
Una vez definida la clase podemos agregar los elementos (o miembros) que creamos conveniente.
En el ejemplo, para simplificar, hemos agregado dos campos pblicos, aunque tambin podramos haber definido cualquiera de los miembros permitidos en las clases.
La definicin se hace usando la instruccin Module seguida del nombre a usar y acaba con End Module.
Cualquier miembro definido en un Module siempre estar accesible en todo el proyecto y para usarlos no tendremos que crear ningn objeto en memoria. Las clases definidas con la palabra clave Module realmente equivalen a las clases en las que todos los miembros estn compartidos y por tanto siempre disponibles a toda la aplicacin.
mbito de procedimiento: Disponible nicamente dentro del procedimiento en el que se ha declarado. mbito de mdulo: Disponible en todo el cdigo del mdulo, la clase o la estructura donde se ha declarado. mbito de espacio de nombres: Disponible en todo el cdigo del espacio de nombres.
En .NET los objetos no se destruyen inmediatamente y existe un "sistema" que se encarga de realizar esta gestin de limpieza: (Garbage Collector, GC).
Aunque en redundante.
las
estructuras,
usar
New,
sera
algo
Las estructuras siempre se almacenan en la pila, por tanto deberamos tener la precaucin de no crear estructuras con muchos campos o con muchos miembros, ya que esto implicara un mayor consumo del "preciado" espacio de la pila.
Como podemos observar, lo nico que tenemos que hacer es indicar el tipo de miembro y si recibe o no algn parmetro o argumento. Dos cosas importantes sobre las interfaces: 1. No se pueden definir campos. 2. Los miembros de las interfaces siempre son pblicos.
Para indicar que implementamos ms de una interfaz podemos hacerlo de dos formas:
En VB se siguen usando de la misma forma que en VB6, aunque seguramente siempre que hemos ledo sobre el tema aparece la palabra delegado. Y es que, aunque VB nos oculte (o facilite) el trabajo con los eventos, stos siempre estn relacionados con los delegados.
Para producir un evento en nuestra clase, y de esta forma notificar a quin quiera interceptarlo, simplemente usaremos la instruccin RaiseEvent seguida del evento que queremos producir.