“Plataforma Microsoft .NET.

Slides:



Advertisements
Presentaciones similares
APLICACIONES DISTRIBUIDAS
Advertisements

SERVICIOS WEB EN.NET INTEGRANTES: ADRIANA BLANCO PEÑA MIRIAM SORIANO HERNANDEZ ALVARO PETROVICH CID CONTRERAS LUIS RAMIREZ PALESTINO.
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Componentes de ASP.NET Leonardo Diez Dolinski Servicios Profesionales Danysoft.
Rossy Garita Componentes fundamentales de CLR y
ASP.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.
Leer y escribir datos XML
Acceso a datos con Microsoft ADO.NET
Agregar código a un formulario Web Form con Microsoft ASP.NET
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Agenda Conceptos Claves.
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Servicios Web.
Programación Visual de Sistemas
Desarrollo de Aplicaciones para Internet
Programación Orientada a Objetos
Desarrollo de Aplicaciones en .NET
Daniel A. Seara Director Regional MSDN NDSoft
Acceso a datos y paso de datos entre capas
Fundamentos básicos del lenguaje C#
ADO.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.
Introducción ADO .Net.
Introducción a Remoting
Introducción ASP .NET.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
Java 2 Platform Enterprise Edition
Introducción XML y WebServices.
Sistema La Plata Módulo I INTRODUCCION A APLICACIONES WEB.
Interacción Persona Ordenador
Módulo 14 Programación para DBA. TEMARIO Programación y DBAProgramación y DBA.NET Framework.NET Framework Arquitectura ADO.NETArquitectura ADO.NET.NET.
Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Acceso a datos con ADO.NET
UNIDAD I Conceptos Básicos.
Administración de datos con MS-SQL Server y Visual Basic
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
SQL SERVER Reporting Services
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Sintaxis de C# (Declaraciones y Tipos)
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
InfoPath Ventajas y Uso.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Lenguajes de Programación
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Cristian Fonnegra Marin
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Materia: Desarrollo e implementación web Carrera: Ing. Informática Docente: M.I. Rosario de Alba Domínguez Rodríguez ALUMNA: Marissa Michelle Juárez Kim.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
• SQL Server Integration Services SSIS
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Patrón de diseño BROKER
Diccionario/Directorio de Datos
ACCESO A DATOS EN ASP.NET Controles de origen de datos Controles enlazados a datos.
VISUAL STUDIO. Paradigmas de Programación Funcionalidad Win16 Win32 COM MFC Componentes Servicios APIs Windows 3.0.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Fundamentos básicos del lenguaje C#. Parte 1 Introducción a C#
Transcripción de la presentación:

“Plataforma Microsoft .NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps

Breve descripción del Framework .NET y su lenguaje estrella “C#”

Contenido Análisis retrospectivo Descripción del framework .NET Breve descripción del C# Sumario Preguntas

Bibliografía [1] .NET Framework SDK http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcommontypesystemoverview.asp [2] Common Language Runtime Overview [3] MSDN Magazine Content September 2000 http://msdn.microsoft.com/msdnmag/issues/0900/default.aspx [4].NET Development http://msdn.microsoft.com/NET/ [5] Building Distributed Applications. ASP.NET Web Services or .NET Remoting (MSDN Library Abril de 2003.) [6] Project MONO http://www.go-mono.com/ [7] ASP.NET Web. The Official Microsoft ASP.NET Site http://www.asp.net

Sección 1. Retrospectiva Desafíos para los desarrolladores Desafíos para los clientes Aplicaciones y servicios

Desafíos para los desarrolladores Desarrollo 1. Elección del sistema operativo y el lenguaje. Distribución 1. CD-ROM: producción, empaquetamiento y transporte. 2. La entrega electrónica requiere de la intervención humana. Estabilidad 1. Problemas de compatibilidad de DLLs. Mantenimiento 1. Los mismos que para la distribución

Desafíos para el cliente 1/2 Difusión o despliegue 1. La instalación requiere tiempo y personal. 2. Pruebas para garantizar la compatibilidad con aplicaciones y S.O. preexistentes. 3. Manejo de licencias

Desafíos para el cliente 2/2 Estabilidad y seguridad 1. Requiere aun mas pruebas 2. Brechas de seguridad 3. Posibilidad de desestabilización a otros procesos, por procesos no amistosos e inclusive al mismo S.O. Mantenimiento 1. Todos los problemas anteriormente relacionados

Aplicaciones y Servicios Aplicaciones como soluciones de servicios 1. Las soluciones de hoy dan servicio como aplicaciones. 2. Las soluciones del mañana serán servicios, no aplicaciones. Servicios en internet actuales 1. Distribuidos a través de portales. 2. No son portables. 3. Dependientes del navegador y del dispositivo

Qué es .NET?

Plataforma .NET y .NET Framework Servicios Web Componentes diseñados Office.Net ... ... Aplicaciones.NET Servidores Enterprise Lenguajes: C#, Visual Basic, etc SQL Server BizTalk ... Runtime Common Type System Language Runtime Services: .NET and COM+ .NET Framework Sistema operativo

Herramientas para desarrolladores Plataforma .NET y .NET Framework Herramientas para desarrolladores Servicios Web Componentes diseñados Office.Net ... ... Aplicaciones.NET Servidores Enterprise Lenguajes: C#, Visual Basic, etc SQL Server BizTalk ... Runtime Common Type System Language Runtime Services: .NET and COM+ .NET Framework Sistema operativo

Common Language Runtime Data & XML Diagrama del .NET Framework Base Classes Web Services User Interface Common Language Runtime Base Frame

Beneficios claves de .NET Facilidad de uso Modelo orientado a objetos todo es un objeto. Los espacios de nombres y la estructura misma del Framework Fácil de comprender y usar. Esquema de nombres de los espacios de nombres refleja su funcionalidad subyacente.

Beneficios claves de .NET Libertad de elección: El lenguaje que satisface sus necesidades. La herramienta de desarrollo con que esté más familiarizado. Estabilidad No más falta de memoria. El recolector de “basura” administra la memoria Eliminados los problemas de incompatibilidad con DLLs Seguridad Es imposible hacer referencia a una zona de memoria que no pertenezca a quien la referencia Modelo de seguridad consistente

Beneficios claves de .NET Distribución y mantenimiento Distribución : el código es “ensamblado” y ejecutado de forma “segura”. Mantenimiento : simplificado el mantenimiento del versionado Experiencia unificada Integra servicios diferentes en una solución nueva, unificada.

Beneficios claves de .NET Servicios Web La Web “del modo que la quieras” En cualquier lugar. En cualquier momento. En cualquier dispositivo.

Resumen 1/2 La plataforma .NET provee los medios para: Distribuir soluciones donde quiera, en cualquier momento y hacia cualquier dispositivo. Migrar soluciones heredadas. Desarrollar usando las herramientas y lenguajes de tu elección.

Resumen 2/2 La plataforma .NET provee los medios para: Crear soluciones abiertas sobre estandares abiertos. Mejor desarrollo, distribución y mantenimento de soluciones Crear y usar servicios Web

Resumen sobre C# Sistemas orientados a componentes Conceptos de componentes en .NET Por qué C#?

Sistemas orientadas a componentes 1/2 Modelo de componentes mas exitoso en la historia Hace posible la integración entre organizaciones y la rehusabilidad

Sistemas orientadas a componentes 1/2 No obstante: Actualmente COM muestra su edad DCOM no tiene buen desempeño sobre Internet Más sistemas basados en componentes, más “Infierno de las DLL" Difícil de implementar aún con herramientas ya maduras COM no es exactamente independiente del lenguaje Asume determinadas caracteristicas sobre el caracter binario de los datos.

Conceptos de componentes en .NET 1/2 Toma lo mejor de COM+ Interfaces como contratos abstractos Los componentes implementan y publican interfaces Exploración dinámica de capacidades y contratos

Conceptos de componentes en .NET 2/2 Incorpora Verdadera orientación a objetos Modelo nativo de eventos Sistema de tipos y runtime independientes del lenguaje Extensibilidad a todos los niveles

Por qué C#? Lenguaje orientado a componentes Desarrollado sobre la experiencia de COM+ Soporte nativo para Espacios de nombres Versionado Desarrollado manejado por atributos

Por qué C#? Potencia de C con la facilidad de uso de Microsoft Visual Basic® Curva de aprendizaje mínima Código mucho mas claro que C++ Más estructurado que Visual Basic Mas potente que Java

Elementos de C# Estructura y forma Sistema de tipos de C# Entendiendo el lenguaje C#

Forma y estructura No posee ficheros de cabecera “header” C# emplea el modelo "definición junto a declaración" Visual Basic, Pascal, Modula, Java Similar a la implementación “inline” de C++ Sin implicación en la generación de código Compilación condicional pero sin soporte para macros

Sistema de tipos 1/2 Desarrollado directamente sobre el Common Type System de .NET Framework Acceso nativo al CTS .NET C# fue concebido sobre .NET

Sistema de tipos 2/2 Conceptos principales: Todo es objeto Absolutamente todos los tipos heredan implicitamente del System.Object Distinción clara entre tipos por valor y por referencia Por Valor: Tipos Simples, Enumerados, Estructuras Por referencia: Interfaces, Clases, Arreglos

Tipos Simples Tipos enteros Tipos flotantes IEEE byte, sbyte (8bit), short, ushort (16bit) int, uint (32bit), long, ulong (64bit) Tipos flotantes IEEE float (precisión de 7 dígitos) double (precisión de 15–16 dígitos)

Tipos Simples Tipo numéricos exactos Tipos Caracter Tipo Boolean decimal (28 dígitos significativos) Tipos Caracter char (un único caracter) string (cadena de caracteres, tipo por referencia) Tipo Boolean bool (tipo distintivo, no es equivalente al int)

Enumerados Nombrar elementos usando nombre en vez de números Mejor usar "Color.Azul" que "3" Más legible, de más fácil mantenimiento Tipo por valor por lo que es tan ligero como un int Ejemplo: enum Color { Rojo, Verde, Azul, };

Arreglos 1/2 Indexados a partir de Cero Desarrollados a partir de la clase System.Array Declarados con tipo y formas, pero sin tamaño límite int[] SingleDim; int[,] TwoDim; int [][] Jagged; (dentados)

Arreglos 2/2 Creados usando new con límites o inicializadores SingleDim = new int[20]; TwoDim = new int[,]{{1,2,3},{4,5,6}}; Jagged = new int[1][]; Jagged[0] = new int[]{1,2,3};

Clases 1/2 Implementación de código y datos Implementa interfaces Representa una unidad semántica Implementa interfaces No herencia múltiple

Clases 2/2 Clases pueden contener: Campos: variables miembros Propiedades: valores accesibles a través de los pares de métodos get/set Métodos: funcionalidad de los objetos o clases Especiales: eventos, indexers, delegados public class Person : IPersonAge { private int YOB; public Person() { } public int YearOfBirth { get { return YOB; }; set { YOB = value; }; } }

Estructuras Grupos de código y datos Desarrolladores de C++ Ejemplo: Similar a las clases, sin embargo: No se permite la herencia Siempre se almacenan por valor Desarrolladores de C++ Estructuras no son una clase con todos sus miembros públicos Ejemplo: struct Point { double X; double Y; void MoveBy(double dX, double dY) { X+=dX; Y+=dY; } }

Propiedades Unión entre campos y métodos Se recomienda su uso en: Implementación de miembros de solo lectura (omitiendo la claúsula set) Validación durante la asignación Valores calculados o compuestos Ejemplo: string Name { get { return name; } set { name = value; } }

Indices Modo consistente para la construcción de contenedores Construidos sobre la filosofía de las “propiedades” Posibilita el acceso indizado a los objetos Calificador del indice puede ser de cualquier tipo Ejemplo: object this[string index] { get { return Dict.Item(index); } set { Dict.Add(index,value); } }

Indices Convertidos por el compilador en llamadas a métodos, para facilitar la interoperabilidad entre lenguajes <tipoIndizador> get_Item(<índices>) { <códigoLectura> } void set_Item(<índices>, <tipoIndizador> value) <códigoEscritura>

Delegados Delegados Similares a los punteros a función de C y C++ Fuerte chequeo de tipos, lo que impide la confusión antes existente en relación con los type-cast Ejemplo: delegate void Clicked(Element e, Point p);

Instrucciones Similares a C, C++: control de flujos y ciclos if (<bool expr>) { ... } else { ... }; switch(<var>) { case <const>: ...; }; while (<bool expr>) { ... }; for (<init>;<bool test>;<modify>) { ... }; do { ... } while (<bool expr>);

Instrucciones Diferentes a C, C++: lock(<object>){ ... }; Sincronización de secciones críticas es inherente al lenguaje checked {...}; unchecked { ...}; Protección contra el “Integer overflow”

Métodos para colecciones: foreach Soporte directo a las iteraciones sobre las colecciones Pueden ser usados por arreglos y otras colecciones Ademas se puede usar con cualquier otra clase Implemente IEnumerable con el método GetEnumerator() Devolviendo un objeto implementado de tipo IEnumerator Ejemplo: Point[] Points = GetPoints(); foreach( Point p in Points ) { MyPen.MoveTo(p.x,p.y); }

Operadores 1/2 Similares a C: No exactamente C: Lógicos/condicionales: && || Aritméticos: * / + - << >> Relacionales: == != < > >= <= No exactamente C: Para bool: & y | son lógicos con evaluación completa Para integer: & y | ejecutan AND/OR binarios

Operadores 2/2 No similares a C: is Prueba el tipo en tiempo de ejecución as Convierte un valor a un tipo especificado typeof Devuelve el tipo en tiempo de ejecución

Sobre carga de operadores La mayor parte pueden ser redefinidos Aritméticos, relacionales, condicionales, y lógicos No permitido para Operadores de asignación Operadores especiales (sizeof, new, is, typeof) Ejemplo: Public static Total operator +(int Amount, Total t) { t.total += Amount; }

Modificadores de acceso 1/2 Adopta el modelo C++ public  cualquiera puede invocarlo o accederlo protected  solamente los miembros pueden accederlo private  solo los miembros de exactamente esta clase pueden accederlo

Modificadores de acceso 2/2 Expande el modelo de C++ sealed  No se puede usar como clase base de una jerarquía internal  Acceso público solamente desde su ensamblado protected internal  protegido dentro de su ensamblado

“Y los punteros?” C# soporta Tipo string intrínseco Modelo de recolección de basura Parámetros por referencia usando ref void increment(ref int value, int by) Parámetros de salida usando out bool add(int a, int b, out int c) Punteros están disponibles para el código marcado como unsafe unsafe void crypt(byte[] arr) { byte * b = arr; ... }

Boxing y Unboxing 42 42 42 Tipos por valor pueden "boxed" y "unboxed" "Boxing" permite que los tipos por valor se traten por referencia Basado en el tipo objeto implicito de todos los tipos. Ponga el valor en una caja y referénciela 42 42 double Value; // Boxing object BoxedValue = Value; // Unboxing Value = (double)BoxedValue; 42 Boxed: Referencia Unboxed: Copia

Recolección de basura Creación nuevos objetos y arreglos de datos Todos son creados mediante el uso de new El .NET runtime mantiene un registro automatico de todo el uso de la memoria El recolector de basura automaticamente remueve todos los objetos que esten sin uso Un uso más eficiente de la memoria Fácil de usar y “cero escapes de memoria”

Manipulación de Excepciones Similar a C++ Ejemplo: try ejecuta este código ...si ocurre un error, catch que puedo hacer en ese caso ... ...finally me permite realizar algun trabajo manual de rescate try { //... run code } catch(SomeException e) { //... handle } finally { //...end gracefully }

Diferencias con C++ C# es muy parecido a C/C++ Corrige la mayoría de sus errores: Estricto chequeo de tipos No más"fall-through" por break en la instrucción switch Expresiones booleanas y las instrucciones que las involucran son estrictamente chequeadas.

Espacios de nombres 1/2 Toda definición debe estar contenida en un espacio de nombres Impide colisiones de nombres Organiza el código Pueden y deben ser anidados

Espacios de nombres 2/2 Agrupa clases y tipos por semántica Declarados con la palabra clave namespace Referenciados con using

Herramientas disponibles .NET Framework SDK—todo lo necesario para construir aplicaciones Compilador C# Debugger Visual Visual Studio.NET—the productivity rocket Ambiente de desarrollo optimizado para C# “Code wizards” y templates Ayuda inteligente

.NET Framework SDK Compilador de C# (+ Visual Basic, C++, and JScript) Todas las caracteristicas del lenguaje Ejecucion desde linea de comandos Visual Debugger—GuiDebug Desarrollado sobre la tecnologia Visual Studio.NET Acceso completo a los metadatos en tiempo de ejecución Herramientas Nmake, security, configuration, IL Disassembler, ... Libre para todos

Visual Studio.NET Desarrollado para .NET Framework SDK Reinvención del concepto de Visual Studio®, ahora con: Proyectos Multi-lenguajes Un ambiente integrado de desarrollo para todos los lenguajes y tareas Herramientas integradas: Visual Modeler, Database Management Perfecta integración de la ayuda Alta productividad para todo: RAD Rapid application development Proyectos de gran escala

El clásico comienzo: "Hello World!" in C#

Hello World namespace Sample { using System; public class HelloWorld { public HelloWorld() { } public static int Main(string[] args) { Console.WriteLine("Hello World!"); return 0; } } }

Anatomía del “Hello World” Contenido en su propio espacio de nombres Referencia otros espacios de nombres con "using" Declara una clase de aplicación públicamente accesible Punto de entrada "static int Main( ... )" Escribe "Hello World!" en la consola del sistema Usa el método estático WriteLine en System.Console

Preguntas

Actividad Orientadas Argumente las existencia o no de la característica multiplataforma de la tecnología .NET Bibliografía: Project MONO http://www.go-mono.com/

Sintaxis switch (<expresión>) { case <valor1>: <bloque1> <siguienteAcción> case <valor2>: <bloque2> ... default: <bloqueDefault> } Donde <siguiente acción> puede tener los siguientes valores: goto case <valori>; goto default; break; Regresar

ADO.NET

Contenido Diferencias entre ADO y ADO.NET Beneficios de ADO.NET Conceptos y arquitectura de la base de ADO.NET El Modelo de Objeto de ADO.NET DataSet y Data Views Administración de proveedores

Microsoft .NET Framework ADO.NET y .NET Framework Microsoft .NET Framework Web Services Interface de Usuario Data y XML ADO.NET XML ... ... Clases Bajas Common Language Runtime

ADO vs. ADO.NET 1/2 ADO Diseñado para accesos conectados Atado al modelo físico de los datos El RecordSet es el contenedor central de datos El RecordSet es una (1) tabla que contiene todos los datos Recuperar datos desde > 1 tabla o recurso, requiere un JOIN de base de datos Los datos son “aplanados”: se pierden las relaciones; la navegación es secuencial Los tipos de datos son limitados al tipo de datos COM/COM+ Los datos se comparten mediante las vías que provee COM Problemas con la transferencia a través de firewalls (DCOM, binary)

ADO vs. ADO.NET 2/2 ADO.NET Diseñado para accesos desconectados Puede modelar los datos de forma lógica! El DataSet reemplaza el RecordSet DataSet puede contener varias tablas Recuperar datos desde >1 tabla o fuente no requiere de JOIN Las relaciones son preservadas: la navegación es relacional Los tipos de datos solo son limitados por el esquema XML No se necesita conversiones de tipos de datos Tanto XML, como HTML, son textos planos: “Firewall friendly”

Beneficios de ADO.NET Interoperabilidad a través del uso de XML Norma abierta Texto humanamente leíble y descifrable Los datos se describen por si mismos—asi es XML Usado para la transferencia de todos los datos en ADO.NET Escalabilidad a través del DataSet desconectado Las conexiones no se mantienen por periodos largos La base de datos no se bloquea E trabajo se realiza a la manera de trabajos Web: “Hit and Run!” Mantenimiento Separación de la lógica de los datos y la Interfaz de usuario

Mejoras de Visual Studio.NET Programable “Typed programming”, un estilo de programación Uso de palabras end-user : Facilita leer y escribir Completamiento de la declaración en Microsoft Visual Studio.NET Mas seguro: Proporciona el chequeo de compilación Ejemplos: Untyped: enTable("Customer")("Jones").Column(“Balance”) Typed: myDataSet.Customer("Jones").Balance Ayuda de apoyo

Conceptos principales y Arquitectura El Modelo de Objeto ADO.NET Proveedores de administración Objetos DataSet Espacios de Nombres relacionados con ADO.NET System.Data System.Data.ADO System.Data.Internal System.Data.SQL System.Data.SQLTypes

Espacios de Nombres relacionados con ADO.NET System.Data .SQLTypes .SQL .Internal .ADO

El Modelo de Objeto ADO.NET DataSet Proveedores de administración

System.Data 1/2 Contiene la base y el volumen de ADO.NET Nombre de espacio Data-centric Brinda los medios para el trabajo en y con los datos! Clases y métodos para manipular los datos Capacidad para crear consultas de los datos Medios para representar de forma lógica los datos Permite el uso de XML para ver, compartir y almacenar los datos

System.Data 2/2 Contiene las clases principales de ADO.NET DataSet Cache In-Memory de datos DataTable Cache In-Memory de una tabla de BD DataRow Manipulación de una columna en un DataTable DataColumn Definicion de columnas en un DataTable DataRelation Relaionar 2 DataTables entre si DataSetView Crear una vista en un DataSet

System.Data y DataSet—Overview Tables DataTable DataView DataRow(s) DataColumn Constraint(s) Relations DataRelation DataSetView DataTable DataTable

System.Data—DataSet 1/3 Una cache en memoria de datos de una fuente de datos Forma común de representar y manipular datos Contenedor universal de datos No para uso justamente con base de datos Representación lógica o física de datos; dependen de: El conjunto de resultados Si DataTables y Relations existen Diseñado para ser desconectado de la fuente de datos Conectar, ejecutar consulta y desconectar XML usado para leer y escribir datos y esquemas

System.Data—DataSet 2/3 Las colecciones son utilizadas para adicionar y eliminar tablas y relaciones Propiedades de interés: Tables: Devuelve una colección de objetos DataTable Relations: Devuelve una colección de DataRelations XML: Obtiene o coloca la definición de DataSet como XML XMLData: Obtiene o coloca el dato DataSet’s como XML XMLSchema: Obtiene o coloca el esquema DataSet como XML Namespace: Obtiene o coloca el nombre de espacio del DataSet Ejemplo de uso de las propiedades: aTableCollection=aDS.Tables.Add(aTable);

System.Data—DataSet 3/3 Universal Data Container DataSet: No es solo para Bases de Datos

System.Data—DataTable Puede ser mapeado a una tabla física en la fuente de datos Pueden relacionarse por medio de DataRelations Concurrencia optimista o modelo fijo Propiedades de interés: Columns: Devuelve objetos ColumnsCollection de DataColumns Rows: Devuelve objetos DataRow como objetos RowsCollection ParentRelations: Devuelve un objeto RelationsCollection Constraints: Devuelve un objeto ConstraintsCollection de las tablas DataSet: Devuelve un objeto DataSet de uno DataTable PrimaryKey: Obtiene el objeto DataColumns el cual crea la llave primaria de las tablas

System.Data—DataSet y DataTable Crear un objeto DataTable y adicionarlo a uno DataSet DataSet ds = new DataSet(); // Create DataTable object: “Customers”. DataTable dt= new DataTable( “Customers” ); // Create and add columns to the table // 1. Explicitly create and Add a DataColumn DataColumn dc = new DataColumn( “CustID”, Int16 ); dt.Columns.Add( dc ); // 2. Implicitly Create and Add columns (DataColumn). dt.Columns.Add( “First_Name”, String ); dt.Columns.Add( “Last_Name”, String ); // Add the DataTable object to the DataSet ds.Tables.Add( dt );

System.Data—DataRelation 1/2 Usado para crear relaciones lógicas Crea relaciones entre (2) objetos DataTable Requiere un objeto DataColumn de cada objeto DataTable El DataType de ambos DataColumns tiene que ser el mismo No se puede relacionar un Int32 DataColumn con un String DataColumn La relación es nombrada (por usted!) DataRelation dr=new DataRelation( “myRelation”,...) Hace la navegación relacional posible RelationsCollection contiene todos los objetos DataRelations Accedido a través de las propiedades del DataSet’s Relations

System.Data—DataRelation 2/2 Como crear un objeto DataRelation: Se obtienen los objetos DataColumn para relacionar Crear un objeto DataRelation nombrado usando las columnas Adicionar la relación al DataSet // Building on the DataTable example earlier... // Get the DataTable DataColumns we need to relate... DataColumn parentCol, childCol; parentCol= DataSet.Tables["Customers"].Columns["CustID"]; childCol = DataSet.Tables["Orders“].Columns["CustID"]; // Create DataRelation with the name “CustomerOrders”... DataRelation dr; dr = New DataRelation("CustomersOrders", parentCol, childCol); // Add the relation to the DataSet... ds.Relations.Add( dr );

System.Data—DataSet y XML DataSet puede leer y escribir XML para sus datos y/o esquemas Significa que: Usted puede crear o modificar un objeto DataSet usando XML! XML-relacionado a DataSet. Métodos para leer: ReadXml: Lee un esquema o dato XML dentro de un DataSet ReadXmlData: Lee datos XML dentro de un DataSet ReadXmlSchema: Lee un esquema XML dentro de un DataSet Y para escribir: WriteXml, WriteXmlData, WriteXmlSchema Propiedades XML-related : Xml, XmlData, XmlSchema, y Namespace DiffGrams

Métodos para leer y escribir XML // Code for creating the DataSet mds and loading the // DataSet from a data source not shown. String oFile = “C:\\My_ADO.NET\\myXmlOutput.xsd”; String iFile = “C:\\My_ADO.NET\\myXmlInput.xsd”; // Write the DataSet’s XMLSchema to an XML Document mds.WriteXmlSchema( oFile ); // Read/Upload XML Data into the DataSet mds.ReadXmlData( iFile, true ); // Write the existing Data to an XML Document mds.WriteXmlSchema( “C:\\My_ADO.NET\\myXmlData.txt ); // Or output the XML Data using the XmlData property! Console.WriteLine( mds.XmlData );

System.Data—DataView Crear múltiples vistas en un objeto DataTable Invisible a los controles de Interfase de usuario Propiedades de interés: Item: Recupera una fila de datos de una tabla especifica Table: Recupera o coloca el DataTable asociado Sort: Obtiene o coloca la clase de columna de la tabla y el orden de la clase RowFilter: Obtiene o fija la expresión utilizada para filtrar las filas RowStateFilter: Consigue o fija el filtro del estado de la fila     None, Unchanged, New, Deleted, ModifiedCurrent, y otros

Ejemplo de System.Data—DataView Creando objetos DataView // Code for myTable “Customers” with // “Name” column not shown DataView view1 = new DataView( myTable ) DataView view2 = new DataView( myTable ); // Creates Ascending view of Customers by “Name” view1.Sort = “Name ASC”; // Set the view to show only modified (original) rows view2.RowStateFilter= DataViewRowState.ModifiedOriginal; // Bind to UI element(s)... DataGrid myGrid = new DataGrid(); myGrid.SetDataBinding( view1, “Customer”); //...

System.Data—DataSetView Similar a un DataView pero orientado a DataSet Usado para crear múltiples vistas en un DataSet Capacidad de fijar automáticamente los filtros en las tablas Propiedades de interés: TableSettings: Obtiene/fija los ajustes de las vistas en la tabla DataSet: Obtiene o fija el DataSet para crear la vista

System.Data—DataSetView Sample Creando un objeto DataSetView usando un DataSet // Create the views... DataSetView dsView1 = new DataSetView( myDS ); // Create TableSetting objects... TableSetting ts1, ts2 ; ts1 = new TableSetting( myDS.Tables[“Orders”], “CustID”, “CustID<100”, DataViewRowState.CurrentRows ); ts2 = new TableSetting( myDS.Tables[“Orders”], “ProductId”, “ProductId>1011”, // Add TableSettings to the DataSetView... dsView.TableSettings.Add( ts1 ); dsView.TableSettings.Add( ts2 ); // Bind to a UI element/control...

DataSet, DataRelation, Data…Views Tables DataTable DataSetView DataRow(s) DataColumn Constraint(s) TableSettings Relations TableSetting DataRelation TableSetting DataTable DataRelation DataTable

ADO.NET y Proveedores de Administración Una colección de clases para el acceso a fuentes de datos: Microsoft SQL Server™ 2000, SQL Server 7, y MSDE Cualquier OLE Database (OLE DB) providers Incluyendo: Oracle, JET, y SQL OLE DB Providers Establecer conexión entre DataSets y almacenes de datos Dos proveedores de administración: ADO: por medio del nombre de espacio System.Data.ADO SQL Server: por medio del nombre de espacio System.Data.SQL System.Data.ADO es el proveedor de administración de ADO.NET

System.Data—Proveedores administrados .SQL .ADO SQLCommand SQLConnection SQLDataReader SQLDataSetCommand ADOCommand ADOConnection ADODataReader ADODataSetCommand System.Data.Internal es confiable para varias clases heredadas

ADOConnection y SQLConnection Representa una sesión única con una fuente de datos Crear, abrir, cerrar una conexión a una fuente de datos Funcionalidad y métodos para desarrollar transacciones Ejemplos de ADOConnection : String conStr="Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=NWIND_RW.MDB"; ADOConnection aConn = new ADOConnection(conStr); aConn.Open(); // Execute Queries using ADODataSetCommand Class aConn.Close();

Clase ADODataSetCommand 1/2 Es un puente entre un objeto DataSet y el almacén de datos Se hereda de la clase DataSetCommand Es el medio de modificación del DataSet y de la fuente de datos Data Store DataSetCommand DataSet

Clase ADODataSetCommand 2/2 Propiedades de interés: DeleteCommand: El comando delete expresado en SQL InsertCommand: Obtener o fijar el comando insert SelectCommand: Obtener o fijar el comando select UpdateCommand: Obtener o fijar el comando update TableMappings: Maps source y DataTable ADOCommands recupera o fija mediante las propiedades “command” Hereda métodos de la clase DataSetCommand public virtual int FillDataSet( DataSet dataSet ); public virtual int Update( DataSet dataSet );

Clase ADOCommand Representa una consulta a ejecutar en la fuente de datos Propiedades de interés : ActiveConnection: Obtiene o fija la conexión a la fuente de datos CommandText: Obtiene o fija el comando de la consulta (texto) CommandType: Obtiene o fija la interpretación del texto del comando Texto, procedimiento almacenado, o nombre de la tabla CommandTimeout: Los segundos que faltan para terminar la conexión RecordsAffected: Números de records afectados por la consulta

ADODataReader 1/2 El acceso a los datos se realiza de manera Forward-only Modelo de programación “Lightweight” Se gasta menos que al usar ADODataSetCommand Instanciado por la clase ADOCommand con el método Execute Ties up the ADOCommand until it is finished reading

ADODataReader 2/2 Propiedades de interés: FieldCount: Devuelve el número de campos en el resultado HasMoreRows: Indica si hay más filas para devolver RowFetchCount: Número de filas para devolver al mismo tiempo HasMoreResults: Indica que hay más resultados Métodos para devolver datos: Por el tipo de la columna y el índice: GetString, GetInt32, y otros Read: Lectura avanzada al próximo record

Ejemplo de ADODataReader // Code for creating the ADOConnection “adoConn” not shown String myQuery = “SELECT * FROM Customers”; adoConn.Open(); ADOCommand myCmd = new ADOCommand( myQuery,adoConn ); // Declare the ADODataReader... ADODataReader myDataReader; // Instantiate the ADODataReader with Execute(...) ... myCmd.Execute(out myDataReader); // Always call Read before accessing data. while(myDataReader.Read()) { Console.WriteLine(myDataReader.GetString(0)); } // Always Close the reader and the connection when done myDataReader.Close(); adoConn.Close();

Sumario ADO.NET es la evolución de ADO Es un modelo centrado en Web, “desconectado” Flexible en su capacidad de trabajar con datos Incrementa su capacidad para organizar los datos lógicamente Soporte extenso para XML Facilita el trabajo con datos y compartiendo datos Interactúa con una amplia variedad de fuente de datos

ASP.NET

Objetivos Introducción al ASP.NET Conceptos y Arquitectura interna Características ASP.NET ASP.NET avanzado ASP.NET y el Microsoft® .NET Framework

Contenido Sección 1: Descripción Sección 2: Arquitectura interna Microsoft .NET Framework y ASP.NET Configuración Sección 3: Características de ASP.NET Administración, Seguridad, y Modelo de eventos Sección 4: ASP.NET avanzado Web Forms Trabajando con Datos Migración desde ASP hacia ASP.NET

Sección 1: Descripción “Mirando hacia atrás ...“ ASP.NET Conceptos fundamentales

Mirando atrás: Active Server Pages Qué es ASP? Tecnología script del lado del servidor Ficheros contienen HTML y código script Accesos pedidos via HTTP Código script es interpretado en el servidor Qué se podemos lograr con ASP? Fácil y de manera inmediata podemos crear aplicaciones Web simples Generar contenido Web dinámico Script del lado cliente para validaciones Acceso a componentes COM para extender funcionalidad Bases de datos

Qué está mal? Mezcla la forma (HTML) y la lógica (código script) Interpretar el código ASP trae como consecuencia una reducción del rendimiento Uso de lenguajes script que no son “strongly typed“ Microsoft JScript® Microsoft Visual Basic® Scripting Edition (VBScript) Compatibilidad con los navegadores No implementa una gestión real del “estado” No se pueden compartir estados entre servidores Web Estado se pierde si el IIS colapsa. Actualizar ficheros solamente cuando el servidor esta fuera de servicio

ASP.NET Conceptos fundamentales Plataforma de desarrollo Web Nuevo modelo de programación Cliente Web Sistema Operativo Aplicaciones ASP.NET IIS .NET Framework

ASP.NET Conceptos fundamentales Separa forma de la lógica de negocios Usa servicios ofertados por el .NET Framework EL código es compilado la primera vez que la página es solicitada Gestión real del “estado” Hace uso de lenguajes “serios” de programación Integración inter-lenguajes Actualización de ficheros sin sacar de servicio el servidor!

Sección 2: Arquitectura interna La arquitectura de .NET Framework Modelo de aplicaciones Web Configuración Jerarquía de clases

Arquitectura .NET Framework Microsoft .NET Framework ASP.NET Windows Forms Web Forms Web Services Services Framework Base Data Debug ... Common Language Runtime System Services

Modelo de aplicaciones Web Código no gestionado Pedidos HTTP Host (IIS, Internet Explorer) HTTP Runtime Código gestionado HTTP Module HTTP Module Request Handler ...

HTTP Runtime Código gestionado Se ejecuta dentro de un proceso host no gestionado Diseñada para una disponibilidad del 100% Procesamiento asincrónico de los pedidos Multihilo Sustitución de las ISAPI Internet Server Application Programming Interface

Lista de módulos HTTP Lista de módulos HTTP Request handler Clases gestionadas Cada módulo implementa una interfaz específica Por ejemplo: administración del estado o la seguridad Todos los pedidos son enrutados a través de la misma lista de módulos HTTP Adición de módulos se realiza a través del Config.web Request handler Múltiples request handlers por cada aplicación Pero solo uno por URL

Configuración 1/3 Conceptos y arquitectura Fichero de configuración: Config.web Basado en XML Fichero es mantenido dentro del subdirectorio de la aplicación Cambios son detectados automáticamente Arquitectura de configuración jerárquica Influye en el subdirectorio actual y en todos sus subdirectorios Root Dir Sub Dir1 Dir2 Config.web

Configuración 2/3 Ejemplo de Config.web <configuration> <configsections> <add names=“httpmodules“ type=“System.Web.Config. HttpModulesConfigHandler“/> <add names=“sessionstate“ type=“...“/> </configsections> <httpmodules> <!--- http module subelements go here --> </httpmodules> <sessionstate> <!--- sessionstate subelements go here --> </sessionstate> </configuration>

Configuración 3/3 Configuración por defecto y personalidada Config.web está localizado en %windir%\Microsoft.NET\Framework\Version Conjunto estándar manipuladores de la sección de configuración Características de los navegadores soportados, mensajes de error personalizados, etc Configuración personalizada Extienda el conjunto de manipuladores de sección con los suyos propios Implementación de la interface: System.Web.Configuration.IConfigurationSectionHandler Problemas con Directorios virtuales Ficheros que no son ASP.NET

Jerarquía de clases System.Object System.Web.UI.Control System.Web.UI. WebControls WebControl ListControl Table ListBox Button CheckBoxList TextBox ... ...

Sección 3: Características Sintaxis y lenguajes soportados por ASP.NET Ejemplos Proceso de ejecución Ensamblado Administración de estado, Seguridad, y manipulación de eventos

Lógica de procesamiento e interface No más unión del código HTML código script Fácil mantenimiento de la aplicación Completa separación entre la interfaz y la lógica de procesamiento No existe código de implementación dentro de los ficheros HTML Ficheros para los diseñadores y ficheros para los programadores .cs .cs .aspx

Lenguajes soportados Visual Basic JScript C# C++ VBScript no es gestionado ! JScript C# Nuevo lenguaje basado en componentes C++ Extensiones gestionadas para C++ Otros: Cobol, Smalltalk, ... Common Language Specification (CLS)

Sintaxis 1/3 Directivas Bloques de declaración de código <%@ Page language=“VB“%> Bloques de declaración de código <script runat=“server“ [language = ...]> [ lines of code ] </script> “Render Blocks” <% [ inline code or expression ] %> Sintaxis de control HTML <HTMLtag runat=“server“ [attribute = ...]> </HTMLtag>

Sintaxis 2/3 Sintaxis de controles personalizados Controles en el servidor personalizados <ASP:TextBox id=“MyTb1“ runat=“server“> Propiedad de control en el servidor <ASP:TextBox maxlength=“80“ runat=“server“> Subpropiedad <ASP:Label font-size=“14“ runat=“server“> Eventos asociados a un control en el servidor <ASP:Button OnClick=“MyClick“ runat=“server“>

Sintaxis 3/3 Etiquetas de objetos en el servidor <object id=“id“ runat=“server“ identifier=“idName“> Directivas Include en el servidor <!-- #include pathtype = filename --> Comentarios en el servidor <%-- comment block --%>

Ejemplo ASP.NET 1/2 <html> <script language="C#" runat=server> void SubmitBtn_Click(Object Sender, EventArgs E) { Message.Text = "Hi "+Name.Text; } </script> <body> <form action="thisfile.aspx" method=post runat=server> <h3> Name: <asp:textbox id="Name" runat=server/> <asp:button type=submit text="LookUp" OnClick="SubmitBtn_Click" runat=server/> <p> <asp:label id="Message" runat=server/> </form> </body> </html>

Ejemplo ASP.NET 2/2

Ciclo de ejecución de un .aspx Client Server IIS Request .aspx file ASP.NET Runtime Parse .aspx file Generate page class Instantiate controls Response

Proceso de ejecución Compilación, cuando la página es requerida por vez primera. Microsoft intermediate language (MSIL) Estilo lenguaje ensamblador Independiente del CPU Provee una capa de abstracción del hardware MSIL es ejecutado por el common language runtime Common language runtime Compilador Just-in-time (JIT) Código gestionado

Administración de “Estado” 1/2 Estado de la aplicación Qué es una “aplicación”? Ficheros, páginas, módulos, y código ejecutable Un directorio virtual y sus subdirectorios Variables de estado de la aplicación Información global Reglas de Implementación Uso de recursos del sistema “Lock” y “unlock” su información global Cuidado con las variables globales en ambientes multihilo Pérdida de estado cuando el servidor es “destruido” Imposibilidad de compartir estados entre servidores

Administración de “Estado” 2/2 Estado de la sesión Qué es una sesión? Restringido a aplicaciones lógicas Contexto en el cuál un usuario se comunica con un servidor Funcionalidad Pedidos de identificación y clasificación Almacenamiento de datos a través de multiples y sucesivos pedidos Eventos de Sesión Liberación automatica de datos de sesión Proceso servidor de estados en .NET

Modelo de eventos Eventos se generan en el cliente, pero se manipulan en el servidor Server Cliente Web parse message evento event handler event message response Llamada al manipulador apropiado

Sección 4: ASP.NET avanzado Web Forms Controles en el Servidor Trabajando con datos Aplicaciones Web Migrando de ASP hacia ASP.NET

Resumen de Web Forms 1/2 thisfile.aspx.cs thisfile.aspx ... <asp:Button id=“LookUp“ OnClick=„SubmitBtn_Click“ /> ... SubmitBtn_Click() { ...

Resumen de Web Forms 2/2 Crear páginas web programables Usar cualquier lenguaje .NET Proveer un conjunto amplio de controles del lado del servidor Modelo de eventos de Web Forms Ejecutarse en cualquier navegador Parte Visual y lógica de la aplicación Web Espacio de nombres System.Web.UI.WebControls

Resumen de controles del servidor Controles Web Forms en el servidor Familias de controles en el Servidor HTML ASP.NET Validation User Mobile Data Binding Page Class Unión de código y contenido

Familias de controles del servidor 1/2 Controles HTML del servidor asociados directamente con elementos HTML Atributos HTML Ejemplos: HtmlAnchor (<a>), HtmlTable (<table>) Controles ASP.NET del servidor Controles abstractos No hay asociacion uno a uno con controles html en el servidor Detección automática del navegador Conjunto amplio de controles Ejemplo: TextBox (<asp:textbox>)

Familias de controles del servidor 2/2 Controles de validación Chequeo de la entrada de datos por el usuario Diferentes tipos de validación Entrada requerida Comparaciones, chequeo de rangos, matcheo de patrones Definidos por el usuario Controles de Usuario Particion y remodelacion de la funcionabilidad Extensión .ascx Soporta el modelo de objetos Controles para móviles

Sintaxis de los Server Controls Analizando detenidamente la sintaxis ASP.NET <asp:controlName attributes /> controlName TextBox, DropDownList, etc attributes Id=controlID runat=server

Trabajando con datos 1/3 SQL y XML Acceso y manipulación de los datos APIs de acceso gestionado a datos provistas por el runtime Objetos esenciales SQLConnection, SQLCommand, y DataSet Espacios de nombres System.Data y System.Data.SQL

Trabajando con datos 2/3 Resumen ADO.NET Arquitectura de datos desconectada Datasets son vistas de datos completamente relacionadas XML y XML esquemas Windows Form Web Form B2B Internet Data Object Dataset XML

Trabajando con datos 3/3 C#: ASP.NET: using System.Data; ShoppingCart.CalculateOrderSummary(); DataRow row = ShoppingCart.OrderSummary.Rows[0]; lblSubTotal.Text = System.String.Format(“{0:C}“, row[OrderData.SUB_TOTAL_FIELD]); <table width=“100%“> <tr><td> <asp:Label id=lblSubTotal runat=server> </asp:Label> </td></tr> </table>

Trabajando con la caché Mejora el desempeño de la aplicación Web Caché de salida Almacena y devuelve páginas y objetos Cacheo de páginas Cacheo fragmentado Reglas de expirado APIs de la Cache Personalizar los principios de la cache

Migración desde ASP hacia ASP.NET ASP y ASP.NET pueden coexistir en el mismo servidor Hacer uso de las características ASP.NET Para migrar, los ficheros ASP tienen que ser modificados Desempeño Código Gestionado vs. código sin gestionar Asociacion temprana vs. tarde

Detalles de la migración Estructura Bloques de código y directivas Seguridad ASP.NET viene con un modelo de seguridad comprehensivo Lenguajes C#, Visual Basic.NET Data Access ADO hacia ADO.NET

!!Preguntas!!

Servicios Web XML

Contenido Antecedentes. Definición del concepto “servicio web XML”. Características principales. Implementación de un “Hello world” mediante servicios web xml.

Antecedentes Component Object Model (COM). Remote Method Invocation (RMI). Common Object Request Broker Architecture (CORBA). Internet Inter-ORB Protocol. Component Object Model (COM), Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA) and Internet Inter-ORB Protocol. they are not easily interoperable with these different systems and that limits their effectiveness as a standard method for programming the Web. This is because of the dependencies of these technologies on a particular language or a particular Operating System or Object-model specific protocols No interoperan fácilmente, debido a las dependencias de un lenguaje particular o de un sistema operativo o de protocolos específicos de modelos de objetos. No interoperan fácilmente, debido a las dependencias de un lenguaje particular o de un sistema operativo o de protocolos específicos de modelos de objetos.

Qué es un servicio web XML 1/3 Diseñado para garantizar la interoperabilidad entre las diversas plataformas de desarrollo de aplicaciones existentes hoy en día. The fundamental goal of interoperability in Web services is to blur the lines between the various development environments used to implement services so that developers using those services don't have to think about which programming language or operating system the services are hosted on. While there is a lot of progress yet to be made, this simple demonstration shows that, at least on a basic level, the tools are available to enable us to meet that goal.

Qué es un servicio web XML 2/3 Es una unidad de código que puede activarse a través del uso de pedidos HTTP. Permite además que programas desarrollados en diferentes lenguajes puedan comunicarse entre sí de un modo estándar. Stated another way, a Web Service is an application component that can be remotely callable using standard Internet Protocols such as HTTP and XML. One more definition can be, a Web Service is a programmable URL. Web Services came into existence to deliver distributed computing over the Internet. A major advantage of the Web services architecture is, it allows programs written in different languages on different platforms to communicate with each other in a standards-based way. Simply said, a Web service is a software service exposed on the Web through SOAP, described with a WSDL file and registered in UDDI.

Qué es un servicio web XML 3/3 La llave fundamental de su éxito ha sido su diseño del uso de un modelo de mensajes basados en texto para implementar la comunicación. A key to the success of Web Services is that they use a text-based messaging model to communicate which allows them to operate effectively on different platforms.

Características principales Los servicios Web XML solo pueden ser accedidos vía HTTP. Trabajan en un ambiente sin estado, de forma que cada pedido origina un nuevo objeto que se crea para satisfacerlo. Solo puede manipular elementos que puedan ser expresados totalmente en XML.

“Hello world” en C# <%@ WebService Language="C#" Class="Hello" %> using System.Web.Services; [WebService(Namespace="urn:Hello")] public class Hello { [ WebMethod ] public string sayHello(string name) return "Hello " + name; } <%@ WebService Language="C#" Class="Hello" %> using System.Web.Services; [WebService(Namespace="urn:Hello")] public class Hello { [ WebMethod ] public string sayHello(string name) { return "Hello " + name; } }

.NET Remoting

Contenido Definición de .NET Remoting. Características principales. “Hello world”. .NET Remoting is an enabler for application communication. It is a generic system for different applications to use to communicate with one another. .NET objects are exposed to remote processes, thus allowing interprocess communication. The applications can be located on the same computer, different computers on the same network, or even computers across separate networks.

Definición de .NET Remoting Es un sistema genérico cuyo objetivo principal es la comunicación entre diferentes aplicaciones. Los objetos .NET son expuestos a procesos remotos, de forma que se potencia la comunicación interprocesos. . It is a generic system for different applications to use to communicate with one another. .NET objects are exposed to remote processes, thus allowing interprocess communication. The applications can be located on the same computer, different computers on the same network, or even computers across separate networks.

Definición de .NET Remoting Las aplicaciones que participan en la comunicación pueden estar en diferentes máquinas de la misma red e inclusive en diferentes máquinas en distintas redes.

Características principales Elimina las dificultades de DCOM mediante el soporte de diferentes formatos de protocolos de transporte y de comunicación. .NET Remoting eliminates the difficulties of DCOM by supporting different transport protocol formats and communication protocols In the past interprocess communication between applications was handled through Distributed COM, or DCOM. DCOM works well and the performance is adequate when applications exist on computers of similar type on the same network. However, DCOM has its drawbacks in the Internet connected world. DCOM relies on a proprietary binary protocol that not all object models support, which hinders interoperability across platforms. In addition, have you tried to get DCOM to work through a firewall? DCOM wants to communicate over a range of ports that are typically blocked by firewalls. There are a ways to get it to work, but they either decrease the effectiveness of the firewall (why bother to even have the firewall if you open up a ton of ports on it), or require you to get a firewall that allows support for binary traffic over port 80.

Características principales Pueden ser usados mediante cualquier protocolo. Soporta opciones de manejo de estado y callbacks. Se basa en la existencia de un common language runtime que contenga las informaciones sobre los tipos usados. ASP.NET based Web services can only be accessed over HTTP. .NET Remoting can be used across any protocol. Web services work in a stateless environment where each request results in a new object created to service the request. .NET Remoting supports state management options and can correlate multiple calls from the same client and support callbacks. Web services serialize objects through XML contained in the SOAP messages and can thus only handle items that can be fully expressed in XML. .NET Remoting relies on the existence of the common language runtime assemblies that contain information about data types. This limits the information that must be passed about an object and allows objects to be passed by value or by reference. Web services support interoperability across platforms and are good for heterogeneous environments. .NET Remoting requires the clients be built using .NET, or another framework that supports .NET Remoting, which means a homogeneous environment.

Características principales Requiere que los clientes sean construidos usando Microsoft.NET o cualquier otro framework que soporte .NET Remoting (un ambiente homogéneo). .NET Remoting requires the clients be built using .NET, or another framework that supports .NET Remoting, which means a homogeneous environment. Unless you have been living in a cave, or are way behind in your reading, you have probably read something about Web services. When you read the description of .NET Remoting it may remind you a lot of what you're read about Web services. That is because Web services fall under the umbrella of .NET Remoting, but have a simplified programming model and are intended for a wide target audience. Web services involve allowing applications to exchange messages in a way that is platform, object model, and programming language independent. Web services are stateless and know nothing about the client that is making the request. The clients communicate by transferring messages back and forth in a specific format known as the Simple Object Access Protocol, or SOAP. (Want to get some funny looks in the hallway? Stand around in the hallway near the marketing department with your colleagues and discuss the benefits of using SOAP).

Características principales Los objetos remotos son accesibles mediante los “canales”. Existen dos tipos “TcpChannel” y “HttpChannel”. Remote objects are accessed through Channels. Channels physically transport the messages to and from remote objects. There are two existing channels TcpChannel and HttpChannel.

Hello world Creando el objeto remoto. using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; namespace CodeGuru.Remoting { public class SampleObject : MarshalByRefObject public SampleObject() } public string HelloWorld() return "Hello World!"; using System;using System.Runtime.Remoting;using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels.Tcp;namespace CodeGuru.Remoting{ /// <remarks> /// Sample object to demonstrate the use of .NET Remoting. /// </remarks> public class SampleObject : MarshalByRefObject { /// <summary> /// Constructor /// </summary> public SampleObject() { } /// <summary> /// Return a hello message /// </summary> /// <returns>Hello world message</returns> public string HelloWorld() { return "Hello World!"; } }}

Hello world Creando el servidor para exponer el objeto remoto. public static int Main(string [] args) { // Create an instance of a channel TcpChannel channel = new TcpChannel(8080); ChannelServices.RegisterChannel(channel); // Register as an available service with the name HelloWorld RemotingConfiguration.RegisterWellKnownServiceType( typeof(SampleObject), "HelloWorld", WellKnownObjectMode.SingleCall ); System.Console.WriteLine("Press the enter key to exit..."); System.Console.ReadLine(); return 0; } using System;using System.Runtime.Remoting;using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels.Tcp;namespace CodeGuru.Remoting{ /// <remarks> /// Sample object to demonstrate the use of .NET Remoting. /// </remarks> public class SampleObject : MarshalByRefObject { /// <summary> /// Constructor /// </summary> public SampleObject() { } /// <summary> /// Return a hello message /// </summary> /// <returns>Hello world message</returns> public string HelloWorld() { return "Hello World!"; } }}

Hello world Creando el cliente para usar el objeto remoto. public class SampleClient { public static int Main(string [] args) // Create a channel for communicating w/ the remote object // Notice no port is specified on the client TcpChannel chan = new TcpChannel(); ChannelServices.RegisterChannel(chan); // Create an instance of the remote object SampleObject obj = (SampleObject) Activator.GetObject( typeof(CodeGuru.Remoting.SampleObject), "tcp://localhost:8080/HelloWorld" ); // Use the object Console.WriteLine(obj.HelloWorld()); return 0; } public class SampleClient { public static int Main(string [] args) // Create a channel for communicating w/ the remote object // Notice no port is specified on the client TcpChannel chan = new TcpChannel(); ChannelServices.RegisterChannel(chan); // Create an instance of the remote object SampleObject obj = (SampleObject) Activator.GetObject( typeof(CodeGuru.Remoting.SampleObject), "tcp://localhost:8080/HelloWorld" ); // Use the object if( obj.Equals(null) ) System.Console.WriteLine("Error: unable to locate server"); } else Console.WriteLine(obj.HelloWorld()); return 0;

ICE. Internet Communication Engine

Contenido Definición de ICE. Características principales. “Hello world”. Ice is a new object-oriented middleware platform that allows developers to build distributed client-server applications with minimal effort. While similar in concept to Corba, Ice breaks new ground by providing an object model that is both simpler and more powerful, by getting rid of inefficiencies that plagued middleware in the past, and by providing new features such as user datagram protocol (UDP) support, asynchronous method dispatch, built-in security, automatic object persistence, and interface aggregation.

WebParts y personalización en ASP.NET 2.0

Contenido Definición de Webpart. Descripción de las clases nuevas. WebPartManager, SqlPersonalizationProvider, Definición de un portal configurable y personalizable

!!Preguntas!!