tecnologia

tecnologia
Loading...

domingo, 23 de agosto de 2009

LECCIONES PARA DESARROLLAR


LECCION Nº 1
INTRODUCCION A LA PLATAFORMA .NET
¿Qué es la plataforma .net?
-La plataforma .NET de Microsoft es un componente de software que puede ser añadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programación de aplicaciones, y administra la ejecución de los programas escritos específicamente con la plataforma.
Entorno de ejecución CLR
-Es el comando de administra la ejecución en .NET Framework .Provee servicios tales como códigos seguro y resuelve el problema de versiones de las libretas de enlace dinámico (DDL). Maneja los hilos de una aplicación y el aislamiento de memoria para las aplicaciones y administra el control de excepciones para las aplicaciones de manera mucho más eficiente.




LECCION Nº2
EL LENGUAJE INTERMEDIO Y EL CLS

El lenguaje intermedio
-Es el lenguaje de una máquina abstracta diseñada para ayudar en el análisis de los programas de computadora. El término viene de su uso en los compiladores, donde un compilador primero traduce el código fuente de un programa, en una forma más apropiada para las transformaciones de mejora del código

La especificación común de los lenguajes .NET
- La plataforma .Net, está diseñada para ser capaz de ejecutar aplicaciones desarrolladas con cualquier lenguaje que se ajuste a CLS (Common Language Specification), y que por lo tanto, genere código MSIL (Microsoft Intermediate Language).Por lo tanto, debemos tener en cuenta que los compiladores .Net, no generan código nativo, sino MSIL, es decir un código intermedio (similar al p-code de Visual Basic o al byte-code de Java).Lo novedoso de .Net, es que cualquier lenguaje que se ajuste a CLS, ya sea Cobol, Visual Basic, C#, Java, o cualquier otro de Microsoft o de terceros fabricantes, generará el mismo MSIL.




Tipos de sistemas comunes
-1.- Armazones: Sistemas que consisten en estructuras estáticas, tales como las disposiciones de los átomos en un cristal o la anatomía de un animal.
2.- Movimientos cíclicos: Sistemas dinámicos simples con movimientos predeterminados, como el reloj y el sistema solar.
3.- Sistemas cibernéticos. Aquellos capaces de autorregulación en términos de algún objeto o criterio prescrito externamente, como un termostato.
4.- Sistemas abiertos: aquellos capaces de auto mantenimiento basado en una extracción de recursos de su ambiente, como la célula viviente.
5.- Sistemas de crecimiento planificado: aquellos que se reproducen no por duplicación sino por producción de semillas o huevos que contienen instrucciones preprogmanadas para su desarrollo, tales como el sistema de la dehesa bellota-roble o el huevo pollo.
6.- Sistemas de imagen interna. Aquellos capaces de una conciencia detallada del ambiente en los cuales información se recibe y organiza en una imagen o estructura de conocimiento del entorno como conjunto, es el plano en que funcionan los animales.
7.- Sistema de procesamiento de símbolos: Aquellos que poseen conciencia de sí y por ello son capaces de emplear un lenguaje. Los Humanos funcionan (de forma compleja) en este sistema.
8.- Sistemas sociales: Aquellos que son multicéfalos, compuestos por actores que funcionan en nivel 7 y comparten un orden social común y una cultura. Las organizaciones sociales operan en este nivel.
9.- Sistemas transcendentales: aquellos compuestos por absolutos y los desconocimientos ineludibles.







LECCION Nº3
LA BIBLIOTECA DE CLASES DE .NET
La bcl
-BCL Limitada, Business Chile Plataforma, tal como su nombre lo indica, es una plataforma de negocios, que presta servicios tanto a empresas nacionales, como extranjeras que busquen negocios en Chile. Sus áreas de trabajo son las siguientes:
· Negocios Internacionales, exportaciones e importaciones, y
· Gestión Tecnológica
Los espacios de nombres
Los namespaces se usan para agrupar nombres, es decir, clases, estructuras...y otros... y esto se hace para evitar ambigüedades al momento de usarlos... es así que logré entender hasta ahora que un namespace es un set de nombres en que todos los nombres son únicos. Por ejemplo, los nombres de un grupo de personas podrían pensarse como un namespace, también los nombres de corporaciones de Trujillo, los nombres de tipo Visual Basic, o los nombres de dominios de Internet. Es decir, un espacio de nombres es cualquier conjunto lógicamente relacionado de nombres en que cada nombre debe ser único.









LECCION Nº4
ADO .NET
El ADO.NET es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el Microsoft .NET Framework. Es comúnmente usado por los programadores para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolución de la tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto enteramente nuevo.
La arquitectura de ADO.NET
ADO.NET consiste en dos partes primarias:
Data provider
Estas clases proporcionan el acceso a una fuente de datos, como Microsoft SQL Server y Oracle. Cada fuente de datos tiene su propio conjunto de objetos del proveedor, pero cada uno tiene un conjunto común de clases de utilidad:
Connection: Proporciona una conexión usada para comunicarse con la fuente de datos. También actúa como Abstract Factory para los objetos command.
Command: Usado para realizar alguna acción en la fuente de datos, como lectura, actualización, o borrado de datos relacionales.
Parameter: Describe un simple parámetro para un command. Un ejemplo común es un parámetro para ser usado en un procedimiento almacenado.
DataAdapter: "Puente" utilizado para transferir data entre una fuente de datos y un objeto DataSet (ver abajo).
DataReader: Es una clase usada para procesar eficientemente una lista grande de resultados, un registro a la vez.
DataSets
Los objetos DataSets, un grupo de clases que describen una simple base de datos relacional en memoria, fueron la estrella del show en el lanzamiento inicial (1.0) del Microsoft .NET Framework. Las clases forman una jerarquía de contención:
Un objeto DataSet representa un esquema (o una base de datos entera o un subconjunto de una). Puede contener las tablas y las relaciones entre esas tablas.
Un objeto DataTable representa una sola tabla en la base de datos. Tiene un nombre, filas, y columnas.
Un objeto DataView "se sienta sobre" un DataTable y ordena los datos (como una cláusula "order by" de SQL) y, si se activa un filtro, filtra los registros (como una cláusula "where" del SQL). Para facilitar estas operaciones se usa un índice en memoria. Todas las DataTables tienen un filtro por defecto, mientras que pueden ser definidos cualquier número de DataViews adicionales, reduciendo la interacción con la base de datos subyacente y mejorando así el desempeño.
Un DataColumn representa una columna de la tabla, incluyendo su nombre y tipo.
Un objeto DataRow representa una sola fila en la tabla, y permite leer y actualizar los valores en esa fila, así como la recuperación de cualquier fila que esté relacionada con ella a través de una relación de clave primaria - clave extranjera.
Un DataRowView representa una sola fila de un DataView, la diferencia entre un DataRow y el DataRowView es importante cuando se está interactuando sobre un resultset.
Un DataRelation es una relación entre las tablas, tales como una relación de clave primaria - clave ajena. Esto es útil para permitir la funcionalidad del DataRow de recuperar filas relacionadas.
Un Constraint describe una propiedad de la base de datos que se debe cumplir, como que los valores en una columna de clave primaria deben ser únicos. A medida que los datos son modificados cualquier violación que se presente causará excepciones.
Un DataSet es llenado desde una base de datos por un DataAdapter cuyas propiedades Connection y Command que han sido iniciados. Sin embargo, un DataSet puede guardar su contenido a XML (opcionalmente con un esquema XSD), o llenarse a sí mismo desde un XML, haciendo esto excepcionalmente útil para los servicios web, computación distribuida, y aplicaciones ocasionalmente conectadas.
Capa conectada de datos
- Contiene objetos especializados en la conexión con los orígenes de datos. 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. 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
Capa desconectada de datos
- 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.

LECCION Nº5
APLICACIÓN WINDOWS FORMS
Introducción
- Windows Forms es el nombre dado a la gráfica de interfaz de programación de aplicaciones (API) se incluye como parte de Microsoft. NET Framework, proporcionando acceso a los nativos de Microsoft Windows envolver por elementos de la interfaz de la API de Windows existentes en el código administrado. La más utilizada de ellas es la interfaz de usuario del proceso de solicitud de bloque, que es publicado por Microsoft el grupo de patrones y prácticas como una descarga gratuita que incluye el código fuente de ejemplos de inicio rápido.

LECCION Nº6
APLICACIONES WEB FORMS
Introducción
- ASP.NET es un marco de aplicaciones web desarrollado y comercializado por Microsoft para permitir a los programadores a crear sitios web dinámicos, aplicaciones web y servicios web. ASP.NET se basa en el Common Language Runtime (CLR), lo que permite a los programadores a escribir el código ASP.NET usando cualquier apoyo. NET.

CARACTERISTICAS DEL LENGUAJE
LECCION Nº1
El sistema de tipos
Tipos primitivos: Los tipos de datos originales de un lenguaje de programación, esto es, aquellos que nos proporciona el lenguaje y con los que podemos (en ocasiones) construir tipos de datos abstractos y estructuras de datos.
Generalmente ejemplos de tipos primitivos son:
char (carácter)
int (entero)
float (real (coma flotante))
Otros tipos de datos que pueden ser considerados primitivos ya que la mayoría de lenguajes de programación así los proporcionan (aunque no todos) son:
booleano (lógico: Verdadero, Falso)
string (cadena de caracteres)
Puntero (dirección de memoria)


Variables: Es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un programa.
Toda variable pertenece a un tipo de dato concreto. En la declaración de una variable se debe indicar el tipo al que pertenece. Así tendremos variables enteras, reales, booleanas, etc. Por otro lado, distinguimos tres partes fundamentales en la vida de una variable:
Declaración
Iniciación
Utilización
Constantes: Es un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el programa. Las constantes se declaran en una sección que comienza con la palabra reservada const. Después de declarar una constante ya puedes usarla en el cuerpo principal del programa. Tienen varios usos: ser miembro en una expresion, en una comparación, asignar su valor a una variable, etc.
Arrays (matrices): Es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico un arreglo se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todos los arreglos son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez arreglos (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de arreglos multidimensionales, aunque los más fáciles de imaginar son los de una, dos y tres dimensiones.
LECCION Nº2
Clases y estructuras
Clases: Son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.
Definir una clase: En programación orientada a objetos, un tipo de datos definido por el usuario que especifica un conjunto de objetos que comparten las mismas características. Un miembro de la clase (objeto) es un “ejemplo” o caso de la clase. Las clases concretas están diseñadas para citar como ejemplos, mientras que las clases abstractas, para pasar las características por herencia.
Instanciar una clase:
- Sinopsis
Existen varios conceptos y fases en la existencia de un programa que no conviene confundir: la declaración de una clase; su definición; su instanciación o concreción en un objeto-clase determinado, y la inicialización del objeto (aunque los dos últimos procesos pueden ejecutarse en la misma sentencia).
-
Definición de clase
La definición de clase es el proceso de definir cuáles serán sus propiedades y métodos; proceso que crea un nuevo tipo. Lo mismo que con las variables normales, con frecuencia la declaración y definición de una clase ocurren simultáneamente en la misma sentencia (a menos que se trate de una declaración adelantada).
La definición de la clase puede ser un proceso muy simple (caso de la herencia simple o múltiple). Ejemplo:
Class Hotel: public Pension, Residencia {};
También puede ser un proceso más elaborado:
Class Hotel {
Char nombre [30];
Int room;
Public:
Int getnom (char *nom);
Void putnom (char *nom);
Char * getroom (int num);
};
-El objeto-clase
Cuando la clase está declarada y definida, termina el trabajo del programador. A partir de aquí, el compilador traslada dicha declaración a una función-clase, que es la forma en que existe la clase en el ejecutable. Más tarde, en tiempo de ejecución, la función-clase crea un objeto-clase que representa desde este instante a la clase en cuestión. Existe un solo objeto-clase de cada clase y solo él puede crear instancias de dicha clase. Como se ha señalado, este objeto-clase tiene sus propias variables y métodos (propiedades de clase y métodos de clase). Una variable (propiedad) declarada como "de clase" existe una sola vez en cada clase y es similar a una variable definida como estática de fichero en la programación clásica. Por su parte, como veremos inmediatamente, los métodos son por definición, y por lógica [4], "de clase". Un método de clase solo puede ser ejecutado por un objeto (instancia) de dicha clase.
Por definición un objeto-clase tiene como mínimo cuatro métodos de clase: un constructor por defecto; un destructor; un constructor-copia y una función-operador de asignación operator= (). En caso que el programador no los haya definido de forma explícita, son proporcionados por el compilador.
Un objeto-clase no puede ser usado directamente, podemos figurarnos que no es un objeto concreto. Del mismo modo que para usar un entero hay que declarar uno, con un nombre, especificando que pertenece a la clase de los enteros y en su caso, iniciarlo a un valor. Para utilizar un objeto-clase hay que declararlo; en este caso más que "declarar" un objeto de la clase se dice instanciar la clase, que equivale a disponer de un objeto concreto (instancia) de la clase.
El término instancia se refiere siempre a un objeto creado por el objeto-clase en tiempo de ejecución y por supuesto, pueden tener propiedades y métodos. En este caso, se denominan formalmente propiedades de instancia y métodos de instancia.
Cada instancia (objeto) creado desde una clase tiene su propio juego de variables independientes y distintas de los demás objetos “hermanos”, pero todos pueden acceder (leer/modificar) las propiedades de clase de su ancestro, el objeto-clase. Puesto que los valores de las variables de clase del ancestro son únicos, estos aparecerán iguales para todos los descendientes, con independencia cual de sus instancias sea la que acceda a ellas
-Las funciones-miembro
Al llegar a este punto es preciso hacer una observación de la mayor trascendencia: cuando se instancia una clase, se crea un objeto que contiene un subconjunto particular de todas las variables (no estáticas de la clase a que pertenece. Pero aunque coloquialmente se dice que el objeto también "tiene" los métodos de la clase, en realidad esto no es cierto. El objeto no contiene una copia de todos sus métodos, lo que supondría una repetición innecesaria del mismo código en todos los objetos de la clase. Los métodos solo existen en el objeto-clase descrito anteriormente. En las instancias concretas solo hay una tabla de direcciones (denominada vtable) a los métodos de la clase, y el acceso a dichas funciones se realiza a través de esta tabla de punteros [1]. En el apartado dedicado al puntero this se amplía información sobre esta importante cuestión teórica y sus implicaciones prácticas.
- El resumen del proceso hasta aquí descrito puede ser sintetizado como sigue:
Programador Declaración & definición de clase (en programa fuente)

Compilador Función-clase (en fichero ejecutable)

Ejecución Objeto-clase (en memoria)

Ejecución Objeto-instancia (en memoria)

ESTRUCTURA:
Una estructura es un tipo de dato definido por el usuario, al utilizar una estructura Usted tiene la habilidad para definir un nuevo tipo de dato considerablemente más complejo que los tipos que hemos utilizado hasta ahora. Una estructura es una combinación de varios tipos de datos previamente definidos, incluyendo otras estructuras que hayamos definido previamente. Una definición simple es, "una estructura es un grupo de datos relacionados en una forma conveniente al programador y/o al usuario del programa". Como es costumbre, un ejemplo nos clarifica los conceptos:

#include
#include

struct
{
char inicial; /* Letra inicial del apellido */
int edad; /* Edad */
int calificación; /* Aprovechamiento */
}
José, miguel;

int main()
{
jose.inicial = 'J';
jose.edad = 15;
jose.calificacion = 15;
Miguel. Edad = jose.edad - 1; /* Miguel es un año menor que José */
Miguel. calificación = 16;
miguel.inicial = 'M';

printf("%c tiene %d anos y su calificación es de %d\n",
miguel.inicial, miguel. edad, miguel. calificación);
printf("%c tiene %d anos y su calificación es de %d\n",
jose.inicial, jose.edad, jose.calificacion);

getch();
}
ACCESIBILIDAD:
La accesibilidad web se refiere a la capacidad de acceso a la
Web y a sus contenidos por todas las personas independientemente de la discapacidad (física, intelectual o técnica) que presenten o de las que se deriven del contexto de uso (tecnológico o ambiental). Esta cualidad está íntimamente relacionada con la usabilidad.
Cuando los sitios web están diseñados pensando en la accesibilidad, todos los usuarios pueden acceder en condiciones de igualdad a los contenidos. Por ejemplo, cuando un sitio tiene un código XHTML semánticamente correcto, se proporciona un texto equivalente alternativo a las imágenes y a los enlaces se les da un nombre significativo, esto permite a los usuarios ciegos utilizar lectores de pantalla o líneas Braille para acceder a los contenidos. Cuando los vídeos disponen de subtítulos, los usuarios con dificultades auditivas podrán entenderlos plenamente. Si los contenidos están escritos en un lenguaje sencillo e ilustrados con diagramas y animaciones, los usuarios con dislexia o problemas de aprendizaje
PROPIEDAD:
Una propiedad aparentemente representa una variable miembro pública dentro de una clase, pero realmente oculta en su interior dos llamadas a métodos, una para la lectura y otra para la escritura. Por ejemplo, el código
Int a=un Objeto.Valor;
INTERFACES:
Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir abstracción en la programación, generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de los principales propósitos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose el trabajo de programar todo desde el principio. Las APIs asimismo son abstractas: el software que proporciona una cierta API generalmente es llamado la implementación de esa API.


LECCION Nº3
MANEJO DE EXCEPCIONES:
El manejo de excepciones es una estructura de control de los lenguajes de programación diseñada para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se desarrolla.
Por ejemplo, un programa puede admitir cierto número de errores en el formato de los datos y continuar su proceso para producir el mejor resultado posible en lugar de producir una salida aparatosa llena de mensajes de error probablemente incomprensibles para el usuario. Muchas veces, la acción asociada a una excepción es simplemente producir un mensaje informativo y terminar; otras veces, es sólo indicación de la necesidad de un cambio en la estrategia de resolución del problema.
Algunos lenguajes de programación (como, por ejemplo, Lisp, Ada, C++, C#, Delphi, Objective C, Java, VB.NET, PHP, Python, Eiffel y Ocaml) incluyen soporte para el manejo de excepciones. En esos lenguajes, al producirse una excepción se desciende en la pila de ejecución hasta encontrar un manejador para la excepción, el cual toma el control en ese momento.
Ejemplo de manejo de excepción en Java:Import java.io.IOException; // ... Public static void main (String [] args) { Try { // Se ejecuta algo que puede producir una excepción } Catch (IOException e) { // Manejo de una excepción de entrada/salida } Catch (Exception e) { // Manejo de una excepción cualquiera } Finally { // Código a ejecutar haya o no excepción }}






LECCION Nº4
EVENTOS Y DELEGADOS
EVENTOS:
En la programación existe la programación orientada a eventos, en la que un evento es un mensaje de software que indica que algo ha ocurrido, como un tecleo o un click de un mouse
En el control de procesos, un evento es una ocurrencia que ha ocurrido y que ha sido registrado
DELEGADOS:
Un delegado es una estructura de programación que nos permite invocar a uno o varios métodos a la vez. Estos métodos pueden encontrarse en la misma clase desde la que se invocan o en clases distintas asociadas a ésta. Hablando "a bajo nivel", un delegado es un puntero seguro a una función (pero sin la complejidad de la administración propia de dicho puntero).
DEFINIR Y PRODUCIR EVENTOS EN UNA CLASE:










LECCION Nº 5
ATRIBUTOS:
Característica de un archivo o carpeta que lo hace oculto, de sistema, de solo lectura, etc.En algunas versiones de Windows, se incluyen atributos avanzados como compresión, encriptación, indexado, etc. En bases de datos, un atributo representa una propiedad de interés de una entidad.Los atributos se describen en la estructura de la base de datos empleando un modelo de datos.Por ejemplo, se podría tener una entidad llamada "Alumno". Esta entidad puede estar constituida por uno o más atributos, que son propiedades de la entidad "Alumno" que interesan para almacenarse en la base de datos. Por ejemplo, la entidad "Alumno" podría tener los atributos: nombre, apellido, año de nacimiento, etc.La elección de los atributos de una entidad depende del uso que se le dará a la base de datos. El alumno puede tener una "religión", pero si no interesa al fin de la base de datos, no es necesario almacenarla en un atributo.










DESARROLLO DE APLICACIONES WINDOWS
CAPITULO 1
Uso del diseñador de Visual Studio 2005:
Visual Studio 2005 en el Diseñador de ver el Diseñador de WPF en Visual Studio 2008 Visual Studio Web Designer en vista de editor de código se utiliza Visual Studio 2005 en el Diseñador de clases viewWinForms diseñador WinForms el diseñador para crear aplicaciones GUI usando WinForms. Se pueden ser datos enlazados a datos de fuentes como las bases de datos o consultas. El diseñador genera código C# o VB.NET para la aplicación.
Diseñador WPF el diseñador WPF, nombre en clave sidra, se introdujo con Visual Studio 2008. Al igual que el WinForms diseñador es compatible con utiliza la metáfora de arrastrar y colocar. Genera código XAML para la interfaz de usuario. Diseñador Web Visual Studio también incluye un editor de sitio web y diseñador que permite a páginas web para ser creados arrastrando y soltando widgets. Se utiliza para desarrollar aplicaciones ASP.NET y es compatible con HTML, CSS y Java Script. Utiliza un modelo de código subyacente para vincular con el código ASP.NET.
El Diseñador de clases puede generar C# y líneas de código VB.NET para las clases y métodos. Diseñador de datos el Diseñador de datos puede utilizarse para editar gráficamente los esquemas de base de datos, incluyendo tablas con tipo, claves primarias y extranjeras y las restricciones. También puede utilizarse para diseñar las consultas de la vista gráfica.




CAPITULO 2
CONTROLES DE WINDOWS FORMS:

Función
Control
Descripción
Presentación de datos
Control
DataGridView
El control DataGridView proporciona una tabla que se puede personalizar para mostrar los datos. La clase DataGridView habilita la personalización de celdas, filas, columnas y bordes.
Nota
El control DataGridView proporciona varias características básicas y avanzadas que faltan en el control
DataGrid. Para obtener más información, vea Diferencias entre los controles DataGridView y DataGrid de formularios Windows Forms
Enlace de datos y desplazamiento
Componente
BindingSource
Simplifica el enlace de controles en un formulario a los datos proporcionando la administración de la moneda, la notificación de cambios y otros servicios.
Control
BindingNavigator
Proporciona una interfaz tipo barra de herramientas para desplazarse y manipular los datos en un formulario.
Edición de texto
Control
TextBox
Muestra texto escrito en tiempo de diseño que puede ser editado por los usuarios en tiempo de ejecución o ser modificado mediante programación.

Control
RichTextBox
Habilita la presentación del texto con formato de texto sencillo o de texto enriquecido (RTF).

Control
MaskedTextBox
Restringe el formato de los datos proporcionados por el usuario
Presentación de la información (sólo lectura)
Control
Label
Muestra texto que los usuarios no pueden modificar directamente.
Control
LinkLabel
Muestra texto en forma de vínculo de estilo Web y desencadena un evento cuando el usuario hace clic en el texto especial. Habitualmente, el texto es un vínculo a otra ventana o a un sitio Web.
Control
StatusStrip
Muestra información acerca del estado actual de la aplicación mediante un área con marco, habitualmente en la parte inferior de un formulario primario.
Control
ProgressBar
Muestra el progreso actual de una operación al usuario.
Presentación de página Web
Control
WebBrowser
Permite al usuario explorar páginas Web dentro del formulario.
Selección de una lista
Control
CheckedListBox
Muestra una lista desplazable de elementos, cada uno acompañado por una casilla de verificación.
Control
ComboBox
Muestra una lista desplegable de elementos.
Control
DomainUpDown
Muestra una lista de elementos de texto a través de la cual los usuarios se pueden desplazar mediante botones hacia arriba y hacia abajo.
Control
ListBox
Muestra una lista de texto y elementos gráficos (iconos).
Control
ListView
Muestra los elementos por medio de una de cuatro vistas diferentes. Las vistas son Sólo texto, Texto con iconos pequeños, Texto con iconos grandes y una vista Detalles.
Control
NumericUpDown
Muestra una lista de números a través de la cual los usuarios se pueden desplazar mediante botones hacia arriba y hacia abajo.
Control
TreeView
Muestra una colección jerárquica de objetos de nodo que pueden constar de texto con casillas

CAPITULO 3
DESARROLLO DE CONTROLES:
Puede derivar de controles comunes para:
· Reemplazar métodos, propiedades y eventos con los suyos propios en controles comunes.
· Definir métodos, propiedades y eventos adicionales para un control.
· Generar un control compuesto, como una colección de controles TextBox y Button.
· Definir la respuesta de un control a las acciones del usuario, como un TextBox que sólo acepta datos numéricos.
CAPITULO 4
TRABAJO CON IMÁGENES Y GRAFICOS:











CAPITULO 5
DESPLIEGE DE APLICACIONES:
Se ha cumplido las dos etapas mencionadas anteriormente, se dispone de un fichero war de nombre Prueba.war que engloba todos sus componentes y que se le ha hecho llegar al administrador del servidor J2EE en el que se va a desplegar.
Los componentes de la aplicación serán:
· Dos servlets: ServletPrueba.java y ServletEnlace.java
· Un fichero HTML y una imagen: FormularioPrueba.html y tomcat.gif
· Un fichero XML: web.xml


LIBRETA DE CLASES.NET
LECCION 1. COLECCIONES DE DATOS
TIPOS DE COLECCIONES .NET:
Las colecciones se basan en las interfaces ICollection, IList e IDictionary o en sus homólogos genéricos. Las interfaces IList e IDictionary derivan de la interfaz ICollection; por consiguiente, todas las colecciones se basan directa o indirectamente en esta interfaz. En colecciones basadas en la interfaz IList (como Array, ArrayList o List) o directamente en la interfaz ICollection (como Queue, Stack o LinkedList), cada elemento contiene sólo un valor.
En esta sección
Tipo de colección Array Describe las características que permiten considerar a las matrices como colecciones.
Tipos de las colecciones ArrayList y List Describe las características de las listas genéricas y no genéricas, que constituyen los tipos de colecciones más utilizados.
Tipos de las colecciones Hashtable y Dictionary Describe las características de los tipos de diccionarios basados en hash genéricos y no genéricos.
Tipos de las colecciones SortedList y SortedDictionary Describe el diccionario ordenado y los tipos híbridos que combinan funcionalidad de diccionario y lista.
Tipos de la colección Queue Describe las características de las colas genéricas y no genéricas.
Tipos de la colección Stack Describe las características de las pilas genéricas y no genéricas.

LAS CLASES BASE PARA CREAR COLECCIONES:
ArrayList es una colección simple de objetos sin ordenar.
Los métodos Add y AddRange sirven para añadir elementos al ArrayList.
Los métodos Insert e InsertRange sirven para insertar elementos en el ArrayList.
Los métodos Remove y RemoveAt sirven para eliminar elementos del ArrayList.
El indicador de la colección puede usarse para iterar por la colección.
Las interfaces IEnumerable y IEnumerator pueden usarse para iterar por la colección también.
La instrucción foreachr usa la interfaz IEnumerable para iterar sobre una colección.

COLECCIONES DE TIPO GENERIC (en breve):


Clase
Descripción
Comparer<(Of <(T>)>)

Proporciona una clase base para las implementaciones de la interfaz genérica IComparer< (Of < (T>)>) .
Dictionary<(Of <(TKey, TValue>)>)

Representa una colección de claves y valores.
Dictionary<(Of <(TKey, TValue>)>)..::.KeyCollection

Representa la colección de claves de una colección Dictionary< (Of < (TKey, TValue>)>) . Esta clase no se puede heredar.
Dictionary<(Of <(TKey, TValue>)>)..::.ValueCollection

Representa la colección de valores de una colección Dictionary< (Of < (TKey, TValue>)>) . Esta clase no se puede heredar.
EqualityComparer<(Of <(T>)>)

Proporciona una clase base para las implementaciones de la interfaz genérica IEqualityComparer< (Of < (T>)>) .
HashSet<(Of <(T>)>)

Representa un conjunto de valores.
KeyedByTypeCollection<(Of <(TItem>)>)

Proporciona una colección cuyos elementos son tipos que actúan como claves.
KeyNotFoundException
Excepción que se produce cuando la clave especificada para obtener acceso a un elemento de una colección no coincide con ninguna clave de la colección.
LinkedList<(Of <(T>)>)

Representa una lista doblemente vinculada.
LinkedListNode<(Of <(T>)>)

Representa un nodo en una colección LinkedList< (Of < (T>)>) . Esta clase no se puede heredar.
List<(Of <(T>)>)

Representa una lista de objetos con establecimiento inflexible de tipos a la que se puede obtener acceso por índice. Proporciona métodos para buscar, ordenar y manipular listas.
Queue<(Of <(T>)>)

Representa una colección de objetos de tipo primero en entrar, primero en salir.
SortedDictionary<(Of <(TKey, TValue>)>)

Representa una colección de pares clave/valor que se ordenan en la clave.
SortedDictionary<(Of <(TKey, TValue>)>)..::.KeyCollection

Representa la colección de claves de una colección SortedDictionary< (Of < (TKey, TValue>)>) . Esta clase no se puede heredar.
SortedDictionary<(Of <(TKey, TValue>)>)..::.ValueCollection

Representa la colección de valores de una colección SortedDictionary< (Of < (TKey, TValue>)>) . Esta clase no se puede heredar.
SortedList<(Of <(TKey, TValue>)>)

Representa una colección de pares clave/valor que se ordenan conforme a la clave basándose en la implementación de IComparer< (Of < (T>)>) asociada.
Stack<(Of <(T>)>)

Representa una colección LIFO ("último en entrar, primero en salir") de tamaño variable de instancias del mismo tipo arbitrario.
SynchronizedCollection<(Of <(T>)>)

Proporciona una colección segura para subprocesos que contiene objetos de un tipo especificado por el parámetro genérico como elementos.
SynchronizedKeyedCollection<(Of <(K, T>)>)

Proporciona una colección segura para subprocesos que contiene objetos de un tipo especificados por un parámetro genérico y que están agrupados por claves.
SynchronizedReadOnlyCollection<(Of <(T>)>)

Proporciona una colección de sólo lectura y segura para subprocesos que contiene objetos de un tipo especificados por el parámetro genérico como elementos.





LECCION 2
STREAMS EN .NET:
LAS CLASES BASADAS EN STREAM:
Visual Basic (Declaración)
_
_
Public MustInherit Class Stream
Inherits MarshalByRefObject
Implements IDisposable
Visual Basic (USO)
Dim instance As Stream
C#
[SerializableAttribute]
[ComVisibleAttribute (true)]
Public abstract class Stream: MarshalByRefObject, IDisposable
C++
[SerializableAttribute]
[ComVisibleAttribute (true)]
Public ref class Stream abstract: public MarshalByRefObject, IDisposable
J#
/** @attribute SerializableAttribute () */
/** @attribute ComVisibleAttribute (true) */
Public abstract class Stream extends MarshalByRefObject implements IDisposable
JScript
SerializableAttribute
ComVisibleAttribute (true)
Public abstract class Stream extends MarshalByRefObject implements IDisposable


MANEJAR UN FICHERO USANDO FILESTREAM:
Posee tres parámetros (además del nombre):
-FileMode: open, append, create
-Fileaccess: Read, Write, ReadWrite
-FileShare: Enumeración con constantes útiles para controlar
El tipo de acceso que tendrán los FileStream al archivo esta enumeración es útil cuando más de dos procesos acceden al archivo simultáneamente
READ-Permite a los otros procesos leer
WRITE-Permite a los otros procesos escribir
NONE-Rechaza las peticiones de apertura por los otros procesos
READWRITE-Permite a los otros procesos leer y escribir

MANEJAR FICHEROS CON STREAMREADER Y STREAMWRITER:
La clase System.IO (Espacio de nombres) permite leer y escribir caracteres en secuencias o archivos, o en grupos contiguos de datos, mediante el uso de codificación específica para convertir caracteres a bytes y viceversa. Incluye dos clases, StreamReader y StreamWriter, que permiten leer o escribir una serie secuencial de caracteres en un archivo. Las clases StreamReader y StreamWriter reflejan la funcionalidad de las clases BinaryReader y BinaryWriter, pero leen y escriben información en formato de texto y no en formato binario. Para obtener más información, vea Acceso a archivos mediante las clases BinaryReader y BinaryWriter.
La clase StreamReader se deriva de una clase abstracta denominada TextReader, que lee caracteres de una secuencia o archivo. La clase StreamWriter se deriva de una clase abstracta denominada TextWriter, que escribe caracteres en una secuencia o archivo.
El ejemplo siguiente escribe una línea de texto en un archivo. ‘Write text to a file Sub WriteTextToFile () Dim file As New System.IO.StreamWriter ("c:\test.txt") file.WriteLine ("Here is the first line.") file.Close () End Sub

CIFRAR Y DESCIFRAR UN FICHERO:

Cifrado
Con esto hemos obtenido un fichero de texto llamado hola.txt

Cifrado DES (binario)
Para codificarlo en formato DES (binario):
etseib@PC81-33LAB:~$ openssl des -in hola.txt -out holaCodificat.txt
Enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
Es importante recordar la contraseña introducida ya que, sin ella, seremos incapaces de volver a recuperar el fichero original
Veamos qué tipo de fichero es el fichero que hemos obtenido:
etseib@PC81-33LAB:~$ file holaCodificat.txt
holaCodificat.txt: data
Como podemos ver, el resultado obtenido no es un fichero de texto, por lo tanto, si intentamos leerlo encontraremos algo como esto:
etseib@PC81-33LAB:~$ more holaCodificat.txt

Descifrar
Para descifrar los ficheros creados lo haremos con los siguientes comandos:
DES
Para el cifrado en DES:
etseib@PC81-33LAB:~$ openssl des -d -in holaCodificat.txt
Enter des-cbc decryption password:
Hola aixo es un text

LECCION 3
ACCESO AL SISTEMA DE ARCHIVOS
LAS CLASES DE SYSTEM.IO:
IsolatedStorage Representa la clase base abstracta de la que deben derivarse todas las implementaciones de almacenamiento aislado.
IsolatedStorageException Excepción que se inicia cuando una operación del almacenamiento aislado produce un error.
IsolatedStorageFile Representa un área de almacenamiento aislado que contiene archivos y directorios.
IsolatedStorage FileStream Expone un archivo dentro del almacenamiento aislado.

CLASES PARA MANIPULAR UNIDADES, DIRECTORIOS Y FICHEROS:
Objeto
Propiedades
Valor
TextBox
Name
Text
txtDirectory
Directorio
Button
Name
Text
btnSubmit
Enviar
Button
Name
Text
btnExamine
Examinar
ComboBox
Name
Text
lstFilePick
Seleccione un archivo
CheckBox
Name
Text
Checked
chkFileLength
Longitud del archivo
True
CheckBox
Name
Text
Checked
chkLastAccess
Hora del último acceso
True
CheckBox
Name
Text
Checked
chkSave
Guardar resultados
False

CLASES PARA LEER Y ESCRIBIR EN STREAMS:


LECCION 4
ACCESO A INTERNET
LAS CLASES DE SYSTEM.NET:
-AuthenticationManager Gestiona los módulos de autenticación llamada durante el proceso de autenticación de cliente.
- Authorization Contiene un mensaje de autenticación para un servidor de Internet.
- Cookie Proporciona un conjunto de propiedades y métodos que se utilizan para gestionar las cookies. Esta clase no se puede heredar.
-CookieCollection Proporciona un contenedor de recogida de instancias de la clase Cookie.
-CookieContainer Proporciona un contenedor para una colección de objetos CookieCollection.
-CookieException La excepción que se produce cuando se comete un error añadir una galleta a un CookieContainer.
-CredentialCache proporciona almacenamiento para múltiples credenciales.
-DNS proporciona la funcionalidad simple nombre de dominio de resolución.
-DnsPermission los derechos de los controles de acceso Domain Name System (DNS) en la red.
-DnsPermissionAttribute Específica el permiso para solicitar información a los servidores de nombres de dominio.
-DownloadDataCompletedEventArgs Proporciona datos para el evento DownloadDataCompleted
-DownloadProgressChangedEventArgs Proporciona datos para el evento DownloadProgressChanged de un cliente Web.

ACCEDER A UNA PAGINA WEB:
Muchas son las maneras de llegar a un sitio web, les presentamos a continuación las formas más comunes utilizadas por los usuarios de la Web en todo el mundo:
· A través de correos electrónicos.
· A través de una búsqueda en Buscadores como Google o directorios como Yahoo.
· A través de portales informativos en Internet por medio de enlaces o links a sitios específicos.
· A través de una comunidad en línea, por ejemplo, foros, etc.
· Al leer sobre un sitio en un comunicado de prensa u otro medio de comunicación.
· El sitio ya está agregado a "Favoritos" del Navegador.
· Recomendación del sitio web por un amigo.
· Al leer un Boletín Informativo del sitio mismo o de otros.
· Al leer sobre un sitio fuera de la Web, en medios tradicionales o campañas de publicidad.
· A través de publicidad en línea como banners en otros sitios.

ACCEDER A UN SERVIDOR FTP:
Solo se puede con algún cliente FTP (mIRC, FileZilla, etc.) o con un navegador, siempre anteponiendo el protocolo FTP antes de cualquier dirección, pues se le está indicando que lo que quieres hacer es estar a un FTP y no a una web. Puede ser una dirección normal o una dirección IP, eso puede variar.Ejemplos:Sin autenticación inmediata- ftp://192.168.0.1- ftp://google.comCon autenticación inmediata- ftp: //user: pass@192.168.0.1 - ftp: //user:
pass@google.com

OBTENER INFORMACION DE LA RED:
El estado de la red LAN o red Local
El estado del módem, es decir si se encuentra activo, no si está instalado
Saber si se está conectado a un servidor Proxy
Saber si se está en línea, es decir si se está conectado a internet.

MODULO 5-ACCESO A DATOS
En este módulo, aprenderemos a trabajar con datos y fuentes de datos en Visual Studio 2005.ADO.NET es la tecnología principal para conectarse a una base de datos, nos ofrece un alto nivel de abstracción, ocultando los detalles de bajo nivel de la implementación de la base de datos de un fabricante.

En este tutorial, encontrará las cosas más importantes que debe saber, para trabajar con fuentes de datos con Visual Studio 2005.De esta manera, aprenderá en poco tiempo, a encontrarse cómodo en el entorno de clases de ADO.NET y podrá así, sacar el máximo provecho a sus desarrollos.
Las partes que forman parte de este módulo son las siguientes:

CAPITULO 1
DESCRIPCION DE ADO.NET:






CAPITULO 2
ACCESO CONECTADO A BASES DE DATOS:
Un nuevo objeto del tipo DataSet, que será el que nos permita acceder a los datos.Un objeto del tipo DataAdapter, este será el que realmente nos permita acceder a los datos físicos de la base de datos, primero para rellenar el DataSet y posteriormente para actualizar los cambios realizados en la base de datos.Es importante saber que los datos contenidos en el objeto DataSet están en memoria y se acceden y manipulan de forma independiente, sin ninguna relación directa con la base de datos original. Para que los cambios realizados en memoria se puedan reflejar de forma permanente en la base de datos, tenemos que usar el objeto DataAdapter.
CAPITULO 3
ACCESO DESCONECTADO DataSets Y DataAdapters:










CAPITULO 4
DataSets tipados:
El DataSet tipado es mas lerdo para crearse porque al crearse crea todos losobjetos para tipificarse (DataTables, DataColumn, relaciones, clavesprimarias y demás restricciones)Si el DataSet tiene muchas tablas esto se va a notar.


CAPITULO 5
ENLACES A FORMULARIOS:









SERVICIOS WEB
Contenido
Este módulo presenta al alumno los fundamentos de los Servicios Web y las Arquitecturas Orientadas a Servicios (SOA).
Tras una introducción a los servicios Web y sus conceptos asociados se ve la forma de crear y consumir servicios Web. Para la creación de un servicio utilizaremos Visual Studio 2005. Si desea más información sobre el desarrollo web puede dirigirse al curso de Desarrollo de Aplicaciones Web con ASP.NET




LECCION 1
INTRODUCCION A LOS SERVICIOS WEB
¿Qué son los servicios web?
Es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos.
COMUNICACIÓN ENTRE COMPONENTES:
Existen diversas dificultades técnicas a la hora de llevar las arquitecturas. Entre éstas están la comunicación entre las
Distintas capas y componentes que constituyen la aplicación, la gestión de
Peticiones y el balanceado de carga entre servidores cuando un mismo
Componente reside en varios de ellos (para aplicaciones muy grandes con muchos
Clientes), la gestión de transacciones entre componentes y algunas otras cosas más.
SOAP
SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.

BREVE HISTORIA DE SOAP
En el año de 1990 alcanzaron popularidad objetos como COM (Componet Object Model) introducido por
Microsoft y CORBA (Common Object Request Broker Architecture) introducido por OMG (Object Management Group).
En general, COM y CORBA son modelos para escribir y encapsular
código binario. Estos son componentes que pueden ser fácilmente llamados desde cualquier aplicación que soporte COM o CORBA.
Microsoft creo
DCOM (Distributed COM), más tarde Sun Microsystems lanzo al mercado RMI (Remote Method Invocation).
Es necesario aclarar que estos protocolos no son interoperables.
Compaq Computer Corp, Hewlett-Packard Co., IBM Corp., IONA Technologies
PLC, Lotus Development Corp.

BASES TECNOLOGICAS DE SOAP
El uso de http como protocolo principal de comunicación que hace de cualquier servidor del mercado pueda actuar como servidor SOAP, reduciendo la cantidad de software a desarrollar y haciendo la tecnología disponible inmediatamente. Además en la mayoría de los casos se puede hacer uso de SOAP a través de los cortos fuegos que defienden a las redes

DESCUBRIMIENTO DE SERVICIOS: WSDL Y UDDI
WSDL= Es un protocolo basado en XML que describe los accesos al Web Service. Podríamos decir que es el manual de operación del web service, porque nos indica cuales son las interfaces que provee el Servicio web y los tipos de datos necesarios para la utilización del mismo.
UDDI= Es un modelo de directorios para Web Services. Es una especificación para mantener directorios estandarizados de información acerca de los Web Services, sus capacidades, ubicación, y requerimientos en un formato reconocido universalmente. UDDI utiliza WSDL para describir las interfaces de los Web Services. Es un lugar en el cual podemos buscar cuales son los Servicios web disponibles, una especie de directorio en el cual podemos encontrar los Web Services publicados y publicar los Web Services que desarrollemos.

LECCION 2
CREACION DE SERVICIOS WEB
NUESTRO PRIMER SERVICIO WEB
El año era 1990 y este era el computador de Berners-Lee, el creador de las páginas web. En este viejo ordenador él creó el primer navegador y editor web, mejor conocido como la primera versión de HTML. Padre de la Wordl Wide Web fue el primero en crear un servidor web hace 18 años y lo hizo en un NeXTcube que era una estación de trabajo de la extinta NexT. Trabajaba bajo el sistema operativo NeXTSTEP, con el primer navegador de la historia WorldWideWeb.

CREAR UN PROYECTO DE TIPO SERVICIO WEB CON VISUAL STUDIO 2005
Se crea de forma predeterminada dentro de una carpeta en inetpub\wwwroot. Visual Studio .NET no proporciona ninguna funcionalidad integrada para cambiar este comportamiento para poderse crear proyecto Web en una carpeta diferente. Este artículo muestra cómo a solución, se proyecta este problema para realizar Visual Studio .NET que crea Web dentro de cualquier carpeta que se elija.

Antes de crear su proyecto Web en Visual Studio. NET, realice estos pasos:1 Cree una carpeta nueva en la que desea que residan sus archivos de proyecto Web.2 Convierta la carpeta en un directorio virtual que utiliza IIS.3 Si la carpeta está en una partición NTFS, concede el < machine name> Leer y ejecutar de usuario , Mostrar el contenido de la carpeta y lectura \ASPNET a esta carpeta (los privilegios predeterminados de acceso). Abra Visual Studio .NET y realice estos pasos:1 Cree un proyecto nuevo Web. 2 En el cuadro de texto Ubicación en el cuadro de diálogo Nuevo proyecto, proporcione el nombre de carpeta que creó de directorio virtual. Visual Studio .NET continuará para crear el proyecto Web en la carpeta especificada.

CREAR UN SITIO WEB CON SOLO UN FICHERO
Vamos a empezar viendo cómo crear un servicio Web que incluye todo lo que necesita en un mismo fichero, después "desglosaremos" el contenido del servicio Web para que podamos crear un ensamblado con el código.
Lo primero que haremos es crear un fichero con la extensión .asmx, esta es la extensión usada para los servicios Web, en nuestro ejemplo, el fichero se va a llamar: Northwind.asmx
En este fichero vamos a crear una clase llamada Northwind con un solo método: Empleados.Este método recibirá un parámetro del tipo String en el que podemos indicar la cadena de selección o bien podemos usar una cadena vacía, en cuyo caso se usará una cadena de selección que devolverá algunos campos de la tabla Employees. El valor devuelto por esa función será un objeto DataSet con los datos indicados en la cadena de selección.
ELIMINAR FICHEROS DE UN PROYECTO
Vamos a quedarnos con este fichero en nuestro proyecto, por
tanto el resto de los ficheros que tenemos creados podemos eliminarlos, esto lo
haremos desde el propio explorador de soluciones, del cual podemos eliminar
Todos los ficheros salvo el que vamos a usar en el ejemplo, por tanto dejaremos el fichero HolaMundoSW.asmx.
ANALIZANDO EL CONTENIDO DE UN SERVICIO WEB
Los servicios web creados con la ayuda de ASP.NET mejoran esta situación proporcionando una solución de análisis de HTML que permite los programadores analizar el contenido de una página HTML remota y exponer los datos resultantes mediante programación. Una vez obtenido el permiso del editor del contenido del sitio web, y suponiendo que no cambie el diseño del contenido, se puede usar el análisis de HTML para exponer servicios web que los clientes pueden aprovechar

ATRIBUTOS APLICABLES A LOS SERVICIO WEB
El atributo WebService es totalmente opcional, pero siempre deberíamos incluirlo
en nuestros servicios Web, por dos razones:
1. Nos servirá para indicar el espacio de nombres en el que estar á nuestro
Servicio Web.
Este espacio de nombres no tiene relación directa con los espacios de
nombres de nuestras clases, ya que solo se utiliza para identificar los servicios Web
DEFINICION DE LA CLASE A USAR E EL SERVICIO WEB
La definición de la clase que será el corazón del servicio Web, (recordemos que un servicio Web en el fondo es una clase que utilizamos desde un sitio de Internet), la haremos como es habitual en Visual Basic, aunque si queremos utilizar ciertas características propias de las aplicaciones ASP.NET como es acceder a objetos Session o Application, podemos derivarla a partir de la clase WebService, aunque esto es totalmente opcional y no influye en la creación de nuestro servicio Web.

AÑADIR METODOS PARA USARLOS EN EL SERVICIO WEB

Los métodos los declararemos de la forma habitual, pero si queremos que sean expuestos como parte del servicio Web, debemos utilizar el atributo WebMethod. Con este atributo le estamos indicando a la "infraestructura" que hay detrás del osservicios Web, que tenga en cuenta ese método para utilizarlo desde nuestra clase. No vamos a entrar en detalles de que es lo que ocurre tras el telón, pero debemos saber que sin ese atributo, nuestro método será totalmente invisible al mundo exterior, aunque aún así lo podríamos seguir usando desde nuestra clase o desde cualquier otra clase que tengamos en nuestro proyecto, ya que al fin y al cabo es "sólo" un método más.


PROBAR NUESTRO SERVICIO WEB
La forma más fácil de hacerlo es mostrándolo en el navegador. De esta forma sabremos si funciona e incluso podemos verlo en "acción”. Para mostrar el servicio Web en el navegador, lo seleccionamos en el Explorador de soluciones, presionamos con el botón secundario del mouse y del menú desplegable que nos muestra, seleccionamos Ver en el explorador.

LECCION 3
CONSUMO DE SERVICIOS WEB
DESDE UNA APLICACIÓN WINDOWS
Para que nuestro ejemplo funcione, tenemos que copiar el servicio Web que creamos en la lección anterior en el directorio al que hace referencia el Web local de nuestro equipo (local host). Si no hemos cambiado la ubicación que tiene deforma predeterminada, estará en la carpeta C: \Inetput\wwwroot, esto si es que tenemos el IIS (Internet Information Server) instalado en nuestro equipo. Si no hemos instalado el IIS, (con las versiones anteriores de Visual Studio .NET era un requisito para poder crear cualquier tipo de proyecto Web con ASP.NET), no debemos preocuparnos, ya que la versión 2.0 de .NET Framework incluye su propio servidor Web, y con estos sencillos pasos vamos a ponerlo en marcha para probar nuestros servicios Web.

ALOJAR EL SEVICIO WEB EN UN SERVIDOR LOCAL
Lo siguiente que tenemos que hacer es abrir el Visual Studio 2008 y crear un
Nuevo proyecto de Windows, al que le daremos el nombre Cliente Windows. De forma automática se creará un formulario, al que le añadimos una etiqueta a la que asignaremos a la propiedad Font una fuente de 16 puntos en negrita, para que se vea bien el texto, y le cambiamos el nombre a: labelSaludo. También añadiremos un botón al que le daremos el nombre btnUsarServicioWeb, en el texto pondremos: Saludo desde servicio Web, como es natural, tendremos que cambiar el tamaño para que veamos el texto completo.

ACTIVAR EL SERVIDOR WEB PARA USAR COMO UN DIRECTORIO LOCAL






CREAR UN PROYECTO WINDOWS PARA USAR EL SERVICIO WEB





AÑADIR UNA REFERENCIA PARA ACCEDER AL SITIO WEB
Al igual que ocurre con el resto de ensamblados de .NET, si queremos acceder a la clase que tiene el servicio Web, debemos crear una referencia en nuestro proyecto, con idea de que tengamos a nuestra disposición las clases que contiene, en nuestro caso la clase HolaMundoSW. Pero como es un servicio Web, que teóricamente está alojado en algún servidor de Internet, en lugar de agregar una referencia normal, añadiremos una referencia Web.




ACCEDER AL SITIO WEB ATRAVES DEL CODIGO
Ya solo nos queda escribir el código para acceder a la clase, para ello declararemos una variable cuyo tipo de datos será la clase HolaMundoSW, la instanciaremos y accederemos al método Hola Mundo, el cual, como sabemos, devuelve una cadena, que asignaremos a la etiqueta labelSaludo .
¿QUE ES LO QUE PUEDE FALLAR?
Si ha seguido correctamente estos pasos el servicio web debe funcionar sin problemas. En caso de error asegúrese de que el servicio web está funcionando correctamente. Para ello puede usar su navegador de Internet y acceder directamente a la dirección del servicio. Si no le funciona y es un servidor remoto de Internet, el error puede venir de su conectividad con Internet o la dirección que consiguió del servicio. Si es un servicio local y no puede acceder a él, asegúrese de que el servidor web está arrancado, bien sea IIS o el propio servidor incluido con el Framework .NET 2.0.

No hay comentarios:

Publicar un comentario en la entrada