La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

“Plataforma Microsoft .NET.

Presentaciones similares


Presentación del tema: "“Plataforma Microsoft .NET."— Transcripción de la presentación:

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

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

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

4 Bibliografía [1] .NET Framework SDK
[2] Common Language Runtime Overview [3] MSDN Magazine Content September 2000 [4].NET Development [5] Building Distributed Applications. ASP.NET Web Services or .NET Remoting (MSDN Library Abril de 2003.) [6] Project MONO [7] ASP.NET Web. The Official Microsoft ASP.NET Site

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

6 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

7 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

8 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

9 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

10 Qué es .NET?

11 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

12 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

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

14 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.

15 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

16 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.

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

18 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.

19 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

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

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

22 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.

23 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

24 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

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

26 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

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

28 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

29 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

30 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

31 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)

32 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)

33 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, };

34 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)

35 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};

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

37 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; }; } }

38 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; } }

39 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; } }

40 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); } }

41 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>

42 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);

43 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>);

44 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”

45 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); }

46 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

47 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

48 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; }

49 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

50 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

51 “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; }

52 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

53 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”

54 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 }

55 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.

56 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

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

58 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

59 .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

60 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

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

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

63 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

64 Preguntas

65 Actividad Orientadas Argumente las existencia o no de la característica multiplataforma de la tecnología .NET Bibliografía: Project MONO

66 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

67 ADO.NET

68 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

69 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

70 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)

71 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”

72 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

73 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

74 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

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

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

77 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

78 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

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

80 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

81 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);

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

83 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

84 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 );

85 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

86 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 );

87 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

88 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 );

89 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

90 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”); //...

91 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

92 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...

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

94 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

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

96 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();

97 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

98 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 );

99 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

100 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

101 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

102 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();

103 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

104 ASP.NET

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

106 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

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

108 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

109 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

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

111 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!

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

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

114 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 ...

115 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

116 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

117 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

118 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>

119 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

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

121 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

122 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

123 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)

124 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>

125 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“>

126 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 --%>

127 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>

128 Ejemplo ASP.NET 2/2

129 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

130 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

131 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

132 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

133 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

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

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

136 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

137 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

138 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>)

139 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

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

141 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

142 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

143 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>

144 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

145 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

146 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

147 !!Preguntas!!

148 Servicios Web XML

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

150 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.

151 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.

152 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.

153 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.

154 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.

155 “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; } }

156 .NET Remoting

157 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.

158 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.

159 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.

160 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.

161 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.

162 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).

163 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.

164 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!"; } }}

165 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!"; } }}

166 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;

167 ICE. Internet Communication Engine

168 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.

169 WebParts y personalización en ASP.NET 2.0

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

171 !!Preguntas!!


Descargar ppt "“Plataforma Microsoft .NET."

Presentaciones similares


Anuncios Google