Breve descripción del Framework .NET

Breve descripción del Framework .NET

Plataforma Microsoft .NET. Conceptos, Partes Componentes y Programacin Profesor: Prof. Julio Csar Camps Breve descripcin del Framework .NET y su lenguaje estrella C# Contenido Anlisis retrospectivo Descripcin del framework .NET Breve descripcin del C#

Sumario Preguntas Bibliografa [1] .NET Framework SDK http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/ cpconcommontypesystemoverview.asp [2] Common Language Runtime Overview http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/ cpconcommontypesystemoverview.asp [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

Seccin 1. Retrospectiva Desafos para los desarrolladores Desafos para los clientes Aplicaciones y servicios Desafos para los desarrolladores Desarrollo 1. Eleccin del sistema operativo y el lenguaje. Distribucin

1. CD-ROM: produccin, empaquetamiento y transporte. 2. La entrega electrnica requiere de la intervencin humana. Estabilidad 1. Problemas de compatibilidad de DLLs. Mantenimiento 1. Los mismos que para la distribucin Desafos para el cliente 1/2 Difusin o despliegue 1. La instalacin requiere tiempo y personal. 2. Pruebas para garantizar la

compatibilidad con aplicaciones y S.O. preexistentes. 3. Manejo de licencias Desafos para el cliente 2/2 Estabilidad y seguridad 1. Requiere aun mas pruebas 2. Brechas de seguridad 3. Posibilidad de desestabilizacin 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 maana sern servicios, no aplicaciones. Servicios en internet actuales 1. Distribuidos a travs de portales. 2. No son portables. 3. Dependientes del navegador y del dispositivo Qu es .NET? Plataforma .NET y .NET Framework Servicios Web Office.Net

Componentes diseados ... ... Aplicaciones.NET Servidores Enterprise Lenguajes: SQL Server C#, Visual Basic, etc BizTalk ... Runtime

Common Type System Common Language Runtime Services: .NET and COM+ .NET Framework Sistema operativo Plataforma .NET y .NET Herramientas para Framework desarrolladores Servicios Web

Office.Net Componentes diseados ... ... Aplicaciones.NET Servidores Enterprise Lenguajes: SQL Server C#, Visual Basic, etc BizTalk ...

Runtime Common Type System Common Language Runtime Services: .NET and COM+ .NET Framework Sistema operativo Diagrama del .NET Framework Web Services

User Interface Base Classes Common Language Runtime Base Frame Data & XML 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 Fcil de comprender y usar. Esquema de nombres de los espacios de nombres refleja su funcionalidad subyacente. Beneficios claves de .NET Libertad de eleccin: Estabilidad

El lenguaje que satisface sus necesidades. La herramienta de desarrollo con que est ms familiarizado. No ms 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 Distribucin y mantenimiento Distribucin : el cdigo es ensamblado y ejecutado de forma segura. Mantenimiento : simplificado el mantenimiento del versionado Experiencia unificada Integra servicios diferentes en una

solucin 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 eleccin. Resumen 2/2 La plataforma .NET provee los medios para:

Crear soluciones abiertas sobre estandares abiertos. Mejor desarrollo, distribucin 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 COM Modelo de componentes mas exitoso en la historia Hace posible la integracin entre organizaciones y la rehusabilidad Sistemas orientadas a componentes 1/2 No obstante: Actualmente COM muestra su edad

DCOM no tiene buen desempeo sobre Internet Ms sistemas basados en componentes, ms Infierno de las DLL" Difcil de implementar an 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 Exploracin dinmica de capacidades y contratos Conceptos de componentes en .NET 2/2 Incorpora Verdadera orientacin 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 mnima Cdigo mucho mas claro que C++ Ms 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 "definicin junto a declaracin" Similar a la implementacin inline de C++

Visual Basic, Pascal, Modula, Java Sin implicacin en la generacin de cdigo Compilacin 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 Distincin clara entre tipos por valor y por referencia

Por Valor: Tipos Simples, Enumerados, Estructuras Por referencia: Interfaces, Clases, Arreglos Tipos Simples Tipos enteros byte, sbyte (8bit), short, ushort (16bit) int, uint (32bit), long, ulong (64bit) Tipos float flotantes IEEE (precisin de 7 dgitos)

double (precisin de 1516 dgitos) Tipos Simples Tipo numricos exactos Tipos Caracter decimal (28 dgitos significativos) 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 nmeros Mejor usar "Color.Azul" que "3" Ms legible, de ms fcil

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 tamao lmite int[] SingleDim; int[,] TwoDim; int [][] Jagged; (dentados) Arreglos 2/2 Creados usando new con lmites 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 Implementacin de cdigo y datos 1/2 Representa una unidad semntica

Implementa interfaces No herencia mltiple Clases 2/2 Clases pueden contener: Campos: variables miembros Propiedades: valores accesibles a travs de los pares de mtodos get/set Mtodos: 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 cdigo y datos Similar a las clases, sin embargo: Desarrolladores de C++ No se permite la herencia Siempre se almacenan por valor Estructuras no son una clase con todos sus miembros pblicos

Ejemplo: struct Point { double X; double Y; void MoveBy(double dX, double dY) { X+=dX; Y+=dY; } } Propiedades Unin entre campos y mtodos Se recomienda su uso en:

Implementacin de miembros de solo lectura (omitiendo la clasula set) Validacin durante la asignacin Valores calculados o compuestos Ejemplo: string Name { get { return name; } set { name = value; } } Indices

Modo consistente para la construccin de contenedores Construidos sobre la filosofa 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 mtodos, para facilitar la interoperabilidad entre lenguajes get_Item() { } void set_Item(, value) { } Delegados Delegados

Similares a los punteros a funcin de C y C++ Fuerte chequeo de tipos, lo que impide la confusin antes existente en relacin con los type-cast Ejemplo: delegate void Clicked(Element e, Point p); Instrucciones Similares a C, C++: control de flujos y ciclos

if () { ... } else { ... }; switch() { case : ...; }; while () { ... }; for (;;) { ... }; do { ... } while (); Instrucciones Diferentes a C, C++: lock(){ ... };

Sincronizacin de secciones crticas es inherente al lenguaje checked {...}; unchecked { ...}; Proteccin contra el Integer overflow Mtodos 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 mtodo 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:

Lgicos/condicionales: && || Aritmticos: * / + - << >> Relacionales: == != < > >= <= No exactamente C: Para bool: & y | son lgicos con evaluacin completa Para integer: & y | ejecutan AND/OR binarios Operadores

2/2 No similares a C: is Prueba el tipo en tiempo de ejecucin as Convierte un valor a un tipo especificado typeof Devuelve el tipo en tiempo de ejecucin Sobre carga de operadores

La mayor parte pueden ser redefinidos Aritmticos, relacionales, condicionales, y lgicos No permitido para Operadores de asignacin 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 jerarqua internal Acceso pblico solamente desde su ensamblado protected internal protegido dentro de su ensamblado Y los punteros?

C# soporta Tipo string intrnseco Modelo de recoleccin de basura Parmetros por referencia usando ref void increment(ref int value, int by) Parmetros de salida usando out bool add(int a, int b, out int c) Punteros estn disponibles para el cdigo marcado como unsafe unsafe void crypt(byte[] arr) { byte * b = arr; ... } Boxing y Unboxing

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 refernciela 42 42 double Value; // Boxing object BoxedValue = Value; // Unboxing Value = (double)BoxedValue; 42 Boxed:

Referencia Unboxed: Copia Recoleccin de basura Creacin 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 ms eficiente de la memoria Fcil de usar y cero escapes de memoria Manipulacin de Excepciones Similar a C++ Ejemplo: try ejecuta este cdigo ...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 mayora de sus errores: Estricto chequeo de tipos No ms"fall-through" por break en la instruccin switch Expresiones booleanas y las instrucciones que las involucran son estrictamente chequeadas. Espacios de nombres Toda definicin debe estar contenida en un espacio de nombres

1/2 Impide colisiones de nombres Organiza el cdigo Pueden y deben ser anidados Espacios de nombres 2/2 Agrupa clases y tipos por semntica Declarados con la palabra clave namespace Referenciados con using

Herramientas disponibles .NET Framework SDKtodo lo necesario para construir aplicaciones Compilador C# Debugger Visual Visual Studio.NETthe 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) Visual DebuggerGuiDebug

Desarrollado sobre la tecnologia Visual Studio.NET Acceso completo a los metadatos en tiempo de ejecucin Herramientas Todas las caracteristicas del lenguaje Ejecucion desde linea de comandos Nmake, security, configuration, IL Disassembler, ... Libre para todos

Visual Studio.NET Desarrollado para .NET Framework SDK Reinvencin 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 integracin de la ayuda

Alta productividad para todo: RAD Rapid application development Proyectos de gran escala El clsico 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; } Anatoma del Hello World Contenido en su propio espacio de

nombres Referencia otros espacios de nombres con "using" Declara una clase de aplicacin pblicamente accesible Punto de entrada "static int Main( ... )" Escribe "Hello World!" en la consola del sistema Usa el mtodo esttico WriteLine en System.Console Preguntas Actividad Orientadas Argumente las existencia o no de la caracterstica multiplataforma de la

tecnologa .NET Bibliografa: Project MONO http://www.go-mono.com/ Sintaxis switch () { case : case : ... default: } Donde puede tener los siguientes valores: 1. goto case ; 2.

goto default; 3. 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 Administracin de proveedores 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 Diseado para accesos conectados Atado al modelo fsico 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 navegacin es secuencial Los tipos de datos son limitados al tipo de datos COM/COM+ Los datos se comparten mediante las vas que provee COM Problemas con la transferencia a travs de firewalls (DCOM, binary) ADO vs. ADO.NET 2/2 ADO.NET

Diseado para accesos desconectados Puede modelar los datos de forma lgica! 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 navegacin 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 travs del uso de XML Escalabilidad a travs del DataSet desconectado

Norma abierta Texto humanamente leble y descifrable Los datos se describen por si mismosasi es XML Usado para la transferencia de todos los datos en ADO.NET 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 Separacin de la lgica de los datos y la Interfaz de usuario Mejoras de Visual Studio.NET

Programable Typed programming, un estilo de programacin Uso de palabras end-user : Facilita leer y escribir Completamiento de la declaracin en Microsoft Visual Studio.NET Mas seguro: Proporciona el chequeo de compilacin 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 administracin 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 ADO.NET System.Data .SQLTypes .SQL

.Internal .ADO El Modelo de Objeto ADO.NET DataSet Proveedores de administracin 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 mtodos para manipular los datos Capacidad para crear consultas de los datos Medios para representar de forma lgica los datos Permite el uso de XML para ver, compartir y almacenar los datos System.Data 2/2 System.Data Contiene las clases principales de ADO.NET DataSet

Cache In-Memory de datos DataTable Cache In-Memory de una tabla de BD DataRow Manipulacin 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 DataSet Tables DataTable DataView

DataRow(s) Relations DataRelation DataRelation DataColumn Constraint(s) DataTable DataTable DataSetView System.DataDataSet 1/3 Una cache en memoria de datos de una fuente de

datos Forma comn de representar y manipular datos Representacin lgica o fsica de datos; dependen de: El conjunto de resultados Si DataTables y Relations existen Diseado para ser desconectado de la fuente de datos

Contenedor universal de datos No para uso justamente con base de datos Conectar, ejecutar consulta y desconectar XML usado para leer y escribir datos y esquemas System.DataDataSet 2/3 Las colecciones son utilizadas para adicionar y eliminar tablas y relaciones Propiedades de inters:

Tables: Devuelve una coleccin de objetos DataTable Relations: Devuelve una coleccin de DataRelations XML: Obtiene o coloca la definicin de DataSet como XML XMLData: Obtiene o coloca el dato DataSets 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.DataDataSet 3/3 Universal Data Container DataSet: No es solo para Bases de Datos System.DataDataTable Puede ser mapeado a una tabla fsica en la fuente de datos Pueden relacionarse por medio de DataRelations Concurrencia optimista o modelo fijo Propiedades de inters:

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.DataDataSet 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.DataDataRelation 1/2

Usado para crear relaciones lgicas 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 relacin es nombrada (por usted!) DataRelation dr=new DataRelation( myRelation,...) Hace la navegacin relacional posible RelationsCollection contiene todos los objetos DataRelations Accedido a travs de las propiedades del DataSets Relations

System.DataDataRelation 2/2 Como crear un objeto DataRelation: Como crear un objeto DataRelation: Se obtienen los objetos DataColumn para relacionar Crear un objeto DataRelation nombrado usando las columnas Adicionar la relacin 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.DataDataSet 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. Mtodos 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 Mtodos 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 DataSets 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.DataDataView Crear mltiples vistas en un objeto DataTable Invisible a los controles de Interfase de usuario Propiedades de inters:

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 expresin 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.DataDataSetView Similar a un DataView pero orientado a DataSet Usado para crear mltiples vistas en un

DataSet Capacidad de fijar automticamente los filtros en las tablas Propiedades de inters: TableSettings: Obtiene/fija los ajustes de las vistas en la tabla DataSet: Obtiene o fija el DataSet para crear la vista System.DataDataSetView 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, DataViewRowState.CurrentRows ); // Add TableSettings to the DataSetView... dsView.TableSettings.Add( ts1 ); dsView.TableSettings.Add( ts2 ); // Bind to a UI element/control... DataSet, DataRelation, DataViews

DataSet Tables DataTable DataRow(s) DataColumn Relations Constraint(s) DataRelation DataRelation DataView DataSetView TableSettings TableSetting TableSetting

DataTable DataTable ADO.NET y Proveedores de Administracin Una coleccin 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 conexin entre DataSets y almacenes de datos Dos proveedores de administracin: 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 administracin de ADO.NET System.DataProveedores administrados System.Data .SQL SQLCommand SQLConnection

SQLDataReader SQLDataSetCommand .ADO ADOCommand ADOConnection ADODataReader ADODataSetCommand System.Data.Internal es confiable para varias clases heredadas ADOConnection y SQLConnection

Representa una sesin nica con una fuente de datos Crear, abrir, cerrar una conexin a una fuente de datos Funcionalidad y mtodos 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

almacn de datos Se hereda de la clase DataSetCommand Es el medio de modificacin del DataSet y de la fuente de datos Data Store DataSetCommand DataSet Clase ADODataSetCommand 2/2

Propiedades de inters: 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 mtodos 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 inters : ActiveConnection: Obtiene o fija la conexin a la fuente de datos CommandText: Obtiene o fija el comando de la consulta

(texto) CommandType: Obtiene o fija la interpretacin del texto del comando Texto, procedimiento almacenado, o nombre de la tabla CommandTimeout: Los segundos que faltan para terminar la conexin RecordsAffected: Nmeros de records afectados por la consulta ADODataReader 1/2 El acceso a los datos se realiza de manera Forwardonly Modelo de programacin Lightweight Se gasta menos que al usar ADODataSetCommand

Instanciado por la clase ADOCommand con el mtodo Execute Ties up the ADOCommand until it is finished reading ADODataReader 2/2 Propiedades de inters: FieldCount: Devuelve el nmero de campos en el resultado HasMoreRows: Indica si hay ms filas para devolver RowFetchCount: Nmero de filas para devolver al mismo tiempo HasMoreResults: Indica que hay ms resultados Mtodos para devolver datos: Por el tipo de la columna y el ndice: GetString, GetInt32, y otros

Read: Lectura avanzada al prximo 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 evolucin de ADO Es un modelo centrado en Web, desconectado Flexible en su capacidad de trabajar con datos Incrementa su capacidad para organizar los datos lgicamente Soporte extenso para XML Facilita el trabajo con datos y compartiendo datos Interacta con una amplia variedad de fuente de datos

ASP.NET Objetivos Introduccin al ASP.NET Conceptos y Arquitectura interna Caractersticas ASP.NET ASP.NET avanzado ASP.NET

y el Microsoft .NET Framework Contenido Seccin 1: Descripcin Seccin 2: Arquitectura interna Seccin 3: Caractersticas de ASP.NET Microsoft .NET Framework y ASP.NET Configuracin

Administracin, Seguridad, y Modelo de eventos Seccin 4: ASP.NET avanzado Web Forms Trabajando con Datos Migracin desde ASP hacia ASP.NET Seccin 1: Descripcin Mirando hacia atrs ... ASP.NET Conceptos fundamentales Mirando atrs: Active

Server Pages Qu es ASP? Tecnologa script del lado del servidor Ficheros contienen HTML y cdigo script Accesos pedidos via HTTP Cdigo script es interpretado en el servidor Qu se podemos lograr con ASP?

Fcil y de manera inmediata podemos crear aplicaciones Web simples Generar contenido Web dinmico 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 lgica (cdigo script)

Interpretar el cdigo ASP trae como consecuencia una reduccin del rendimiento Uso de lenguajes script que no son strongly typed Compatibilidad con los navegadores No implementa una gestin real del estado Microsoft JScript Microsoft Visual Basic Scripting Edition (VBScript)

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 programacin Cliente Web IIS Aplicaciones ASP.NET .NET

Framework Sistema Operativo ASP.NET Conceptos fundamentales Separa forma de la lgica de negocios Usa servicios ofertados por el .NET Framework EL cdigo es compilado la primera vez que la pgina es solicitada Gestin real del estado Hace uso de lenguajes serios de programacin

Integracin inter-lenguajes Actualizacin de ficheros sin sacar de servicio el servidor! Seccin 2: Arquitectura interna La arquitectura de .NET Framework Modelo de aplicaciones Web Configuracin

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

System Services ... Modelo de aplicaciones Web Cdigo no gestionado Pedidos HTTP Host (IIS, Internet Explorer) HTTP Runtime HTTP Module HTTP Module Request Handler Cdigo gestionado ... HTTP Runtime

Cdigo gestionado Diseada para una disponibilidad del 100% Se ejecuta dentro de un proceso host no gestionado Procesamiento asincrnico de los pedidos Multihilo

Sustitucin de las ISAPI Internet Server Application Programming Interface Lista de mdulos HTTP Lista de mdulos HTTP Clases gestionadas Cada mdulo implementa una interfaz especfica

Por ejemplo: administracin del estado o la seguridad Todos los pedidos son enrutados a travs de la misma lista de mdulos HTTP Adicin de mdulos se realiza a travs del Config.web Request handler Clases gestionadas Mltiples request handlers por cada aplicacin

Pero solo uno por URL Configuracin 1/3 Conceptos y arquitectura Fichero de configuracin: Config.web Basado en XML Fichero es mantenido dentro del subdirectorio de la aplicacin Cambios son detectados automticamente

Arquitectura de configuracin jerrquica Influye en el subdirectorio actual y en todos sus subdirectorios Root Dir Config.web Sub Dir1 Sub Dir2 Configuracin 2/3 Ejemplo de Config.web

Configuracin 3/3

Configuracin por defecto y personalidada Config.web est localizado en Microsoft.NET\Framework\Version Conjunto estndar manipuladores de la seccin de configuracin Caractersticas de los navegadores soportados, mensajes de error personalizados, etc Configuracin personalizada

Extienda el conjunto de manipuladores de seccin con los suyos propios Implementacin de la interface: %windir%\ System.Web.Configuration.IConfigurationSectionHandler Problemas con Directorios virtuales Ficheros que no son ASP.NET Jerarqua de clases System.Object

System.Web.UI.Control WebControl System.Web.UI. WebControls ListControl Table ListBox Button CheckBoxList ... TextBox ...

Seccin 3: Caractersticas Sintaxis y lenguajes soportados por ASP.NET Ejemplos Proceso de ejecucin Ensamblado Administracin de estado, Seguridad, y manipulacin de eventos Lgica de procesamiento

e interface No ms unin del cdigo HTML cdigo script Fcil mantenimiento de la aplicacin Completa separacin entre la interfaz y la lgica de procesamiento No existe cdigo de implementacin dentro de los ficheros HTML Ficheros para los diseadores y ficheros para los programadores .cs

.cs .aspx Lenguajes soportados Visual Basic JScript C# Nuevo lenguaje basado en

componentes C++ VBScript no es gestionado ! Extensiones gestionadas para C++ Otros: Cobol, Smalltalk, ... Common Language Specification Sintaxis 1/3 Directivas

<%@ Page language=VB%> Bloques Render Blocks <% [ inline code or expression ] %> Sintaxis

de declaracin de cdigo de control HTML Sintaxis 2/3 Sintaxis de controles personalizados Controles en el servidor personalizados Propiedad de control en el servidor

Subpropiedad Eventos asociados a un control en el servidor

Sintaxis 3/3 Etiquetas de objetos en el servidor Directivas Comentarios <%--

en el servidor comment block --%> Ejemplo ASP.NET 1/2

Name:

Ejemplo ASP.NET 2/2 Ciclo de ejecucin de un .aspx Client Server IIS Request .aspx file ASP.NET Runtime Parse .aspx file Generate page class Instantiate controls

Response Proceso de ejecucin Compilacin, cuando la pgina es requerida por vez primera. Microsoft intermediate language (MSIL) Estilo lenguaje ensamblador Independiente del CPU Provee una capa de abstraccin del

hardware MSIL es ejecutado por el common language runtime Common language runtime Compilador Just-in-time (JIT) Cdigo gestionado Administracin de Estado 1/2 Estado de la aplicacin Qu es una aplicacin?

Variables de estado de la aplicacin Ficheros, pginas, mdulos, y cdigo ejecutable Un directorio virtual y sus subdirectorios Informacin global Reglas de Implementacin

Uso de recursos del sistema Lock y unlock su informacin global Cuidado con las variables globales en ambientes multihilo Prdida de estado cuando el servidor es destruido Imposibilidad de compartir estados entre Administracin de Estado 2/2 Estado de la sesin Qu es una sesin?

Funcionalidad Restringido a aplicaciones lgicas Contexto en el cul un usuario se comunica con un servidor Pedidos de identificacin y clasificacin Almacenamiento de datos a travs de multiples y sucesivos pedidos Eventos de Sesin Liberacin automatica de datos de sesin Proceso servidor de estados en .NET

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

response Seccin 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 ...

OnClick=SubmitBtn_Click /> ... thisfile.aspx.cs SubmitBtn_Click() { ... Resumen de Web Forms 2/2 Crear pginas 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 lgica de la aplicacin 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 Unin de cdigo y contenido Familias de controles del servidor 1/2

Controles HTML del servidor asociados directamente con elementos HTML Atributos HTML Ejemplos: HtmlAnchor (), HtmlTable (

) Controles ASP.NET del servidor Controles abstractos

No hay asociacion uno a uno con controles html en el servidor Deteccin automtica del navegador Conjunto amplio de controles Ejemplo: TextBox () Familias de controles del servidor 2/2 Controles de validacin

Chequeo de la entrada de datos por el usuario Diferentes tipos de validacin Controles de Usuario Entrada requerida Comparaciones, chequeo de rangos, matcheo de patrones Definidos por el usuario

Particion y remodelacion de la funcionabilidad Extensin .ascx Soporta el modelo de objetos Controles para mviles Sintaxis de los Server Controls Analizando detenidamente la sintaxis ASP.NET controlName

TextBox, DropDownList, etc attributes Id=controlID runat=server Trabajando con datos 1/3 SQL y XML

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

Resumen ADO.NET Windows Form Web Form B2B Internet XML Data Object Dataset Arquitectura de datos desconectada

Datasets son vistas de datos completamente relacionadas XML y XML esquemas Trabajando con datos 3/3 C#: using System.Data; ShoppingCart.CalculateOrderSummary(); DataRow row = ShoppingCart.OrderSummary.Rows[0]; lblSubTotal.Text = System.String.Format({0:C}, row[OrderData.SUB_TOTAL_FIELD]); ASP.NET:

Trabajando con la cach Mejora el desempeo de la aplicacin Web Cach de salida Almacena y devuelve pginas y

objetos Cacheo de pginas Cacheo fragmentado Reglas de expirado APIs de la Cache Personalizar los principios de la Migracin desde ASP hacia ASP.NET ASP y ASP.NET pueden coexistir en el mismo servidor Hacer uso de las caractersticas

ASP.NET Para migrar, los ficheros ASP tienen que ser modificados Desempeo Cdigo Gestionado vs. cdigo sin gestionar Asociacion temprana vs. tarde Detalles de la migracin Estructura Seguridad

ASP.NET viene con un modelo de seguridad comprehensivo Lenguajes Bloques de cdigo y directivas C#, Visual Basic.NET Data Access ADO hacia ADO.NET

!!Preguntas!! Servicios Web XML Contenido Antecedentes. Definicin del concepto servicio web XML. Caractersticas principales. Implementacin 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. No interoperan fcilmente, debido a las dependencias de un lenguaje particular o de un sistema operativo o de protocolos especficos de modelos de objetos. Qu es un servicio web XML 1/3

Diseado para garantizar la interoperabilidad entre las diversas plataformas de desarrollo de aplicaciones existentes hoy en da. Qu es un servicio web XML 2/3 Es una unidad de cdigo que puede activarse a travs del uso de pedidos HTTP. Permite adems que programas desarrollados en diferentes lenguajes puedan comunicarse entre s de un modo estndar.

Qu es un servicio web XML 3/3 La llave fundamental de su xito ha sido su diseo del uso de un modelo de mensajes basados en texto para implementar la comunicacin. Caractersticas principales Los servicios Web XML solo pueden ser accedidos va 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; } }

.NET Remoting Contenido Definicin de .NET Remoting. Caractersticas principales. Hello world. Definicin de .NET Remoting Es un sistema genrico cuyo objetivo principal es la comunicacin entre diferentes aplicaciones. Los objetos .NET son expuestos a

procesos remotos, de forma que se potencia la comunicacin interprocesos. Definicin de .NET Remoting Las aplicaciones que participan en la comunicacin pueden estar en diferentes mquinas de la misma red e inclusive en diferentes mquinas en distintas redes. Caractersticas principales Elimina las dificultades de DCOM mediante el soporte de diferentes formatos de protocolos de transporte y de comunicacin.

Caractersticas 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. Caractersticas principales Requiere que los clientes sean construidos usando Microsoft.NET o cualquier otro framework que

soporte .NET Remoting (un ambiente homogneo). Caractersticas principales Los objetos remotos son accesibles mediante los canales. Existen dos tipos TcpChannel y 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!"; } } } 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; } 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; } } ICE. Internet Communication Engine Contenido

Definicin de ICE. Caractersticas principales. Hello world. WebParts y personalizacin en ASP.NET 2.0 Contenido Definicin de Webpart. Descripcin de las clases nuevas. WebPartManager, SqlPersonalizationProvider, Definicin de un portal configurable y

personalizable !!Preguntas!!

Recently Viewed Presentations

  • Слайд 1 - Columbia University

    Слайд 1 - Columbia University

    We have created a simulation model in . MatLab. ... Current Result of Simulation for "NewsVendor" Approach. For now we get the following results from simulation of the presented method. Fraction of accepted orders with flexible Due-Date (NewsVendor) and constant...
  • Racial Discrimination in Capital Punishment

    Racial Discrimination in Capital Punishment

    One solution that would surely solve the problem at hand would be to eliminate the death penalty throughout the United States. However, while this would be a quick solution, it would not solve the issue completely. The main issue is...
  • NINDS ECASS I / II ATLANTIS I /

    NINDS ECASS I / II ATLANTIS I /

    OBJECTIVES: Review the evidence for the use of IV thrombolytics, and endovascular techniques in the treatment of stroke. Review the evidence for decompressive craniectomy in the treatment of large hemispheric infarctions
  • METO614 3.3.5, 3.3.6, and 3.4 Junjie Liu 3.3.5

    METO614 3.3.5, 3.3.6, and 3.4 Junjie Liu 3.3.5

    3.3.5, 3.3.6, and 3.4 Junjie Liu SWE in two dimensions Un-staggered grid or Staggered grid?? Horizontal uncoupling in grid A un-staggered grid A Un-staggered grid A Types of staggered grid: 1) staggered grid C 1) staggered grid C 1) staggered...
  • ESTIMATION Estimation is the scientific way of working

    ESTIMATION Estimation is the scientific way of working

    The rate for any type of woodwork includes cutting of timber to required sizes, joinery work, fittings and fastenings, three coats of oil paints or varnish, bolts, locks, handles, etc. The measurements are taken for the overall area of doors,...
  • Strategic Enrollment Management Plan Framework

    Strategic Enrollment Management Plan Framework

    Market Opportunity Cost. E.g. Dual enrollment provides opportunity for growth, but do not provide strong ROI. XXXX. Purpose: To provide an overview of the future market in which the institution will be operating. Task: First, complete the remaining slides in...
  • Strength of Shapes

    Strength of Shapes

    What you think will happen to these shapes if we apply the force shown in GREEN? ... As shown, this cube can collapse by "racking," just like the square we saw collapse in two dimensions. So what would we do...
  • Dr. Chriss Favorite Instructional Technology Toys Christopher I.

    Dr. Chriss Favorite Instructional Technology Toys Christopher I.

    A "web site" that teaches? Present information Afterschool can review The Web Server With the right toys Score quizzes Count time Ensure student accessed Student software NC edit or whatever Good to get used to it Office (access might be...