“plataforma microsoft.net. conceptos, partes componentes y programación” profesor: prof. julio...
TRANSCRIPT
![Page 1: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/1.jpg)
““Plataforma Microsoft .NET. Plataforma Microsoft .NET.
Conceptos, Partes Componentes Conceptos, Partes Componentes y Programación”y Programación”
Profesor: Prof. Julio César CampsProfesor: Prof. Julio César Camps
![Page 2: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/2.jpg)
Breve descripción del Breve descripción del Framework .NET y su Framework .NET y su
lenguaje estrella “C#”lenguaje estrella “C#”
![Page 3: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/3.jpg)
ContenidoContenido
Análisis retrospectivoAnálisis retrospectivo Descripción del framework .NETDescripción del framework .NET Breve descripción del C#Breve descripción del C# SumarioSumario PreguntasPreguntas
![Page 4: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/4.jpg)
BibliografíaBibliografía
[1] .NET Framework SDK [1] .NET Framework SDK http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcommontypesystemoverview.aspcpconcommontypesystemoverview.asp
[2] Common Language Runtime Overview[2] Common Language Runtime Overviewhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcommontypesystemoverview.aspcpconcommontypesystemoverview.asp
[3] MSDN Magazine Content September 2000[3] MSDN Magazine Content September 2000http://msdn.microsoft.com/msdnmag/issues/0900/default.aspxhttp://msdn.microsoft.com/msdnmag/issues/0900/default.aspx
[4].NET Development[4].NET Developmenthttp://msdn.microsoft.com/NET/http://msdn.microsoft.com/NET/
[5] Building Distributed Applications. ASP.NET Web Services [5] Building Distributed Applications. ASP.NET Web Services or .NET Remotingor .NET Remoting(MSDN Library Abril de 2003.)(MSDN Library Abril de 2003.)
[6] Project MONO[6] Project MONOhttp://www.go-mono.com/http://www.go-mono.com/
[7] ASP.NET Web. The Official Microsoft ASP.NET Site[7] ASP.NET Web. The Official Microsoft ASP.NET Sitehttp://www.asp.nethttp://www.asp.net
![Page 5: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/5.jpg)
Sección 1. RetrospectivaSección 1. Retrospectiva
Desafíos para los desarrolladoresDesafíos para los desarrolladores Desafíos para los clientesDesafíos para los clientes Aplicaciones y serviciosAplicaciones y servicios
![Page 6: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/6.jpg)
Desafíos para los Desafíos para los desarrolladoresdesarrolladores DesarrolloDesarrollo 1. Elección del sistema operativo y el lenguaje.1. Elección del sistema operativo y el lenguaje.
DistribuciónDistribución 1. CD-ROM: producción1. CD-ROM: producción,, empaquetamiento y empaquetamiento y transporte.transporte.
2. La entrega electrónica requiere de la intervención humana.2. La entrega electrónica requiere de la intervención humana.
EstabilidadEstabilidad 1. Problemas de compatibilidad de DLLs.1. Problemas de compatibilidad de DLLs.
MantenimientoMantenimiento 1. Los mismos que para la distribución1. Los mismos que para la distribución
![Page 7: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/7.jpg)
Desafíos para el clienteDesafíos para el cliente 1/21/2
Difusión o despliegueDifusión o despliegue 1. La instalación requiere tiempo y 1. La instalación requiere tiempo y
personal.personal.
2. Pruebas para garantizar la 2. Pruebas para garantizar la compatibilidad con aplicaciones y S.O. compatibilidad con aplicaciones y S.O. preexistentes.preexistentes. 3. Manejo de licencias 3. Manejo de licencias
![Page 8: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/8.jpg)
Desafíos para el clienteDesafíos para el cliente 2/22/2
Estabilidad y seguridadEstabilidad y seguridad 1. Requiere aun mas pruebas1. Requiere aun mas pruebas
2. Brechas de seguridad2. Brechas de seguridad
3. Posibilidad de desestabilización a otros procesos, 3. Posibilidad de desestabilización a otros procesos, por procesos no amistosos e inclusive al mismo S.O.por procesos no amistosos e inclusive al mismo S.O.
MantenimientoMantenimiento 1. Todos los problemas anteriormente relacionados1. Todos los problemas anteriormente relacionados
![Page 9: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/9.jpg)
Aplicaciones y ServiciosAplicaciones y Servicios
Aplicaciones como soluciones de Aplicaciones como soluciones de serviciosservicios
1. Las soluciones de hoy dan servicio como aplicaciones.1. Las soluciones de hoy dan servicio como aplicaciones.
2. Las soluciones del mañana serán servicios, no aplicaciones.2. Las soluciones del mañana serán servicios, no aplicaciones.
Servicios en internet actualesServicios en internet actuales 1. Distribuidos a través de portales. 1. Distribuidos a través de portales.
2. No son portables.2. No son portables.
3. Dependientes del navegador y del dispositivo3. Dependientes del navegador y del dispositivo
![Page 10: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/10.jpg)
Qué es .NET? Qué es .NET?
![Page 11: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/11.jpg)
Runtime
Sistema operativo
.NET Framework
Common Type
System
Common Language Runtime
Componentes diseñados
Services: .NET and COM+
SQL Server BizTalk ...
Lenguajes:
C#, Visual Basic, etc
Aplicaciones.NET
Servidores Enterprise
...Office.Net ...
Servicios Web
Plataforma .NET y .NET Plataforma .NET y .NET FrameworkFramework
![Page 12: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/12.jpg)
Herramientas para Herramientas para desarrolladoresdesarrolladores
Runtime
Sistema operativo
.NET Framework
Common Type
System
Common Language Runtime
Componentes diseñados
Services: .NET and COM+
SQL Server BizTalk ...
Lenguajes:
C#, Visual Basic, etc
Aplicaciones.NET
Servidores Enterprise
...Office.Net ...
Servicios Web
Plataforma .NET y .NET Plataforma .NET y .NET FrameworkFramework
![Page 13: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/13.jpg)
Diagrama del .NET Diagrama del .NET FrameworkFramework
Base Classes
Data & XML
UserInterface
Common Language Runtime
WebServices
Ba
se F
ram
e
![Page 14: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/14.jpg)
Beneficios claves de .NETBeneficios claves de .NET
Facilidad de usoFacilidad de uso Modelo orientado a objetosModelo orientado a objetos
todo es un objeto.todo es un objeto. Los espacios de nombres y la estructura Los espacios de nombres y la estructura
misma del Frameworkmisma del Framework Fácil de comprender y usar.Fácil de comprender y usar. Esquema de nombres de los espacios de Esquema de nombres de los espacios de
nombres refleja su funcionalidad nombres refleja su funcionalidad subyacente.subyacente.
![Page 15: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/15.jpg)
Beneficios claves de .NETBeneficios claves de .NET
Libertad de elección:Libertad de elección: El lenguaje que satisface sus necesidades.El lenguaje que satisface sus necesidades. La herramienta de desarrollo con que esté más La herramienta de desarrollo con que esté más
familiarizado.familiarizado. EstabilidadEstabilidad
No más falta de memoria.No más falta de memoria. El recolector de “basura” administra la El recolector de “basura” administra la
memoriamemoria Eliminados los problemas de incompatibilidad Eliminados los problemas de incompatibilidad
con DLLscon DLLs SeguridadSeguridad
Es imposible hacer referencia a una zona de Es imposible hacer referencia a una zona de memoria que no pertenezca a quien la memoria que no pertenezca a quien la referenciareferencia
Modelo de seguridad consistenteModelo de seguridad consistente
![Page 16: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/16.jpg)
Beneficios claves de .NETBeneficios claves de .NET
Distribución y mantenimientoDistribución y mantenimiento Distribución : el código es “ensamblado” Distribución : el código es “ensamblado”
y ejecutado de forma “segura”.y ejecutado de forma “segura”. Mantenimiento : simplificado el Mantenimiento : simplificado el
mantenimiento del versionadomantenimiento del versionado
Experiencia unificadaExperiencia unificada Integra servicios diferentes en una Integra servicios diferentes en una
solución nueva, unificada.solución nueva, unificada.
![Page 17: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/17.jpg)
Beneficios claves de .NETBeneficios claves de .NET
Servicios WebServicios Web La Web “La Web “del modo que la quierasdel modo que la quieras””
En cualquier lugar.En cualquier lugar. En cualquier momento.En cualquier momento. En cualquier dispositivo.En cualquier dispositivo.
![Page 18: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/18.jpg)
ResumenResumen 1/21/2
La plataforma .NET provee los medios La plataforma .NET provee los medios para:para: Distribuir soluciones donde quiera, en Distribuir soluciones donde quiera, en
cualquier momento y hacia cualquier cualquier momento y hacia cualquier dispositivo.dispositivo.
Migrar soluciones heredadas.Migrar soluciones heredadas. Desarrollar usando las herramientas y Desarrollar usando las herramientas y
lenguajes de tu elección.lenguajes de tu elección.
![Page 19: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/19.jpg)
ResumenResumen 2/22/2
La plataforma .NET provee los medios La plataforma .NET provee los medios para:para: Crear soluciones abiertas sobre Crear soluciones abiertas sobre
estandares abiertos.estandares abiertos. Mejor desarrollo, distribución y Mejor desarrollo, distribución y
mantenimento de solucionesmantenimento de soluciones Crear y usar servicios WebCrear y usar servicios Web
![Page 20: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/20.jpg)
Resumen sobre C#Resumen sobre C#
Sistemas orientados a Sistemas orientados a componentescomponentes
Conceptos de componentes Conceptos de componentes en .NETen .NET
Por qué C#?Por qué C#?
![Page 21: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/21.jpg)
Sistemas orientadas a Sistemas orientadas a componentescomponentes 1/21/2
COMCOM Modelo de componentes mas exitoso Modelo de componentes mas exitoso
en la historiaen la historia Hace posible la integración entre Hace posible la integración entre
organizaciones y la rehusabilidadorganizaciones y la rehusabilidad
![Page 22: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/22.jpg)
No obstante:No obstante:
Actualmente COM muestra su edadActualmente COM muestra su edad DCOM no tiene buen desempeño sobre InternetDCOM no tiene buen desempeño sobre Internet Más sistemas basados en componentes, más “Infierno Más sistemas basados en componentes, más “Infierno
de las DLL"de las DLL" Difícil de implementar aún con herramientas ya madurasDifícil de implementar aún con herramientas ya maduras
COM no es exactamente independiente del lenguajeCOM no es exactamente independiente del lenguaje Asume determinadas caracteristicas sobre el caracter Asume determinadas caracteristicas sobre el caracter
binario de los datos.binario de los datos.
Sistemas orientadas a Sistemas orientadas a componentescomponentes 1/21/2
![Page 23: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/23.jpg)
Conceptos de componentes Conceptos de componentes en .NETen .NET 1/21/2
Toma lo mejor de COM+Toma lo mejor de COM+ Interfaces como contratos abstractosInterfaces como contratos abstractos Los componentes implementan y Los componentes implementan y
publican interfacespublican interfaces Exploración dinámica de Exploración dinámica de
capacidades y contratoscapacidades y contratos
![Page 24: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/24.jpg)
Conceptos de componentes Conceptos de componentes en .NETen .NET 2/22/2
IncorporaIncorpora Verdadera orientación a objetosVerdadera orientación a objetos Modelo nativo de eventosModelo nativo de eventos Sistema de tipos y runtime independientes Sistema de tipos y runtime independientes
del lenguajedel lenguaje Extensibilidad a todos los nivelesExtensibilidad a todos los niveles
![Page 25: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/25.jpg)
Por qué C#?Por qué C#?
Lenguaje orientado a componentesLenguaje orientado a componentes Desarrollado sobre la experiencia de COM+Desarrollado sobre la experiencia de COM+ Soporte nativo paraSoporte nativo para
Espacios de nombresEspacios de nombres VersionadoVersionado Desarrollado manejado por atributosDesarrollado manejado por atributos
![Page 26: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/26.jpg)
Potencia de C con la facilidad de uso de Potencia de C con la facilidad de uso de Microsoft Visual BasicMicrosoft Visual Basic®®
Curva de aprendizaje mínimaCurva de aprendizaje mínima Código mucho mas claro que C++Código mucho mas claro que C++ Más estructurado que Visual BasicMás estructurado que Visual Basic Mas potente que JavaMas potente que Java
Por qué C#?Por qué C#?
![Page 27: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/27.jpg)
Elementos de C#Elementos de C#
Estructura y formaEstructura y forma Sistema de tipos de C#Sistema de tipos de C# Entendiendo el lenguaje C#Entendiendo el lenguaje C#
![Page 28: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/28.jpg)
Forma y estructuraForma y estructura No posee ficheros de cabecera No posee ficheros de cabecera
““headerheader”” C# emplea el modelo "definición C# emplea el modelo "definición
junto a declaración"junto a declaración" Visual Basic, Pascal, Modula, JavaVisual Basic, Pascal, Modula, Java
Similar a la implementación Similar a la implementación “inline” de C++“inline” de C++ Sin implicación en la generación de Sin implicación en la generación de
códigocódigo
Compilación condicional pero sin Compilación condicional pero sin soporte para macrossoporte para macros
![Page 29: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/29.jpg)
Sistema de tiposSistema de tipos 1/21/2
Desarrollado directamente sobre el Desarrollado directamente sobre el Common Type System de .NET Common Type System de .NET FrameworkFramework
Acceso nativo al CTS .NETAcceso nativo al CTS .NET C# fue concebido sobre .NETC# fue concebido sobre .NET
![Page 30: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/30.jpg)
Conceptos principales:Conceptos principales: Todo es objetoTodo es objeto
Absolutamente todos los tipos heredan Absolutamente todos los tipos heredan implicitamente del System.Objectimplicitamente del System.Object
Distinción clara entre tipos por valor y Distinción clara entre tipos por valor y por referenciapor referencia Por Valor: Tipos Simples, Enumerados, Por Valor: Tipos Simples, Enumerados,
EstructurasEstructuras Por referencia: Interfaces, Clases, ArreglosPor referencia: Interfaces, Clases, Arreglos
Sistema de tiposSistema de tipos 2/22/2
![Page 31: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/31.jpg)
Tipos SimplesTipos Simples
Tipos enterosTipos enterosbytebyte, , sbytesbyte (8bit), (8bit), shortshort, , ushortushort (16bit) (16bit) intint, , uintuint (32bit), (32bit), longlong, , ulongulong (64bit) (64bit)
Tipos flotantes IEEETipos flotantes IEEE float float (precisión de 7 dígitos)(precisión de 7 dígitos)double double (precisión de 15–16 dígitos)(precisión de 15–16 dígitos)
![Page 32: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/32.jpg)
Tipo numéricos exactosTipo numéricos exactos decimaldecimal (28 dígitos significativos) (28 dígitos significativos)
Tipos Caracter Tipos Caracter charchar (un único caracter) (un único caracter) stringstring (cadena de caracteres, tipo por (cadena de caracteres, tipo por
referencia)referencia)
Tipo BooleanTipo Boolean boolbool (tipo distintivo, no es equivalente al (tipo distintivo, no es equivalente al
int)int)
Tipos SimplesTipos Simples
![Page 33: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/33.jpg)
EnumeradosEnumerados
Nombrar elementos usando Nombrar elementos usando nombre en vez de númerosnombre en vez de números
Mejor usar "Color.Azul" que "3"Mejor usar "Color.Azul" que "3" Más legible, de más fácil Más legible, de más fácil
mantenimientomantenimiento Tipo por valor por lo que es tan ligero Tipo por valor por lo que es tan ligero
como un como un intint
Ejemplo:Ejemplo: enum Color { Rojo, Verde, Azul, };
![Page 34: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/34.jpg)
ArreglosArreglos 1/21/2
Indexados a partir de CeroIndexados a partir de Cero Desarrollados a partir de la clase Desarrollados a partir de la clase
System.ArraySystem.Array Declarados con tipo y formas, pero Declarados con tipo y formas, pero
sin tamaño límitesin tamaño límite int[] SingleDim; int[] SingleDim; int[,] TwoDim; int[,] TwoDim; int [][] Jagged; (dentados)int [][] Jagged; (dentados)
![Page 35: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/35.jpg)
ArreglosArreglos 2/22/2
Creados usando Creados usando newnew con límites o con límites o inicializadoresinicializadores SingleDim = new int[20];SingleDim = new int[20]; TwoDim = new int[,]{{1,2,3},{4,5,6}};TwoDim = new int[,]{{1,2,3},{4,5,6}}; Jagged = new int[1][]; Jagged = new int[1][];
Jagged[0] = new int[]{1,2,3};Jagged[0] = new int[]{1,2,3};
![Page 36: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/36.jpg)
Clases Clases 1/21/2
Implementación de código y datosImplementación de código y datos Representa una unidad semánticaRepresenta una unidad semántica
Implementa interfacesImplementa interfaces No herencia múltipleNo herencia múltiple
![Page 37: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/37.jpg)
ClasesClases 2/22/2
Clases pueden contener:Clases pueden contener: Campos: variables Campos: variables
miembrosmiembros Propiedades: valores Propiedades: valores
accesibles a través de los accesibles a través de los pares de métodos pares de métodos getget//setset
Métodos: funcionalidad de Métodos: funcionalidad de los objetos o claseslos objetos o clases
Especiales: eventos, Especiales: eventos, indexers, delegadosindexers, delegados
public class Person : IPersonAge{ private int YOB;
public Person() { }
public int YearOfBirth { get { return YOB; }; set { YOB = value; }; }
}
![Page 38: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/38.jpg)
EstructurasEstructuras
Grupos de código y datosGrupos de código y datos Similar a las clases, sin embargo:Similar a las clases, sin embargo:
No se permite la herenciaNo se permite la herencia Siempre se almacenan por valorSiempre se almacenan por valor
Desarrolladores de C++Desarrolladores de C++ Estructuras no son una clase con Estructuras no son una clase con
todos sus miembros públicostodos sus miembros públicos
Ejemplo:Ejemplo: struct Point{ double X; double Y; void MoveBy(double dX, double dY) { X+=dX; Y+=dY; }}
![Page 39: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/39.jpg)
PropiedadesPropiedades
Unión entre campos y métodosUnión entre campos y métodos Se recomienda su uso en:Se recomienda su uso en:
Implementación de miembros de solo Implementación de miembros de solo lectura lectura (omitiendo la claúsula (omitiendo la claúsula setset))
Validación durante la asignaciónValidación durante la asignación Valores calculados o compuestosValores calculados o compuestos
Ejemplo:Ejemplo:string Name { get { return name; } set { name = value; } }
![Page 40: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/40.jpg)
IndicesIndices
Modo consistente para la construcción Modo consistente para la construcción de contenedoresde contenedores
Construidos sobre la filosofía de las Construidos sobre la filosofía de las ““propiedadespropiedades””
Posibilita el acceso indizado a los Posibilita el acceso indizado a los objetosobjetos
Calificador del indice puede ser de Calificador del indice puede ser de cualquier tipocualquier tipo
Ejemplo:Ejemplo:object this[string index]{ get { return Dict.Item(index); } set { Dict.Add(index,value); } }
![Page 41: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/41.jpg)
Convertidos por el compilador en Convertidos por el compilador en llamadas a métodos, para facilitar la llamadas a métodos, para facilitar la interoperabilidad entre lenguajesinteroperabilidad entre lenguajes
IndicesIndices
<tipoIndizador> <tipoIndizador> get_Item(get_Item(<índices><índices>)){{
<códigoLectura><códigoLectura>}}
voidvoid set_Item(set_Item(<índices><índices>, , <tipoIndizador> value<tipoIndizador> value)){{
<códigoEscritura><códigoEscritura>}}
![Page 42: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/42.jpg)
DelegadosDelegados
DelegadosDelegados Similares a los punteros a función de Similares a los punteros a función de
C y C++C y C++ Fuerte chequeo de tipos, lo que Fuerte chequeo de tipos, lo que
impide la confusión antes existente en impide la confusión antes existente en relación con los type-castrelación con los type-cast
Ejemplo:Ejemplo:
delegate void Clicked(Element e, Point p);
![Page 43: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/43.jpg)
InstruccionesInstrucciones
Similares a C, C++: control de Similares a C, C++: control de flujos y ciclosflujos y ciclos if (<bool expr>) { ... } else { ... };if (<bool expr>) { ... } else { ... }; switch(<var>) { case <const>: ...; };switch(<var>) { case <const>: ...; }; while (<bool expr>) { ... };while (<bool expr>) { ... }; for (<init>;<bool test>;<modify>) { ... };for (<init>;<bool test>;<modify>) { ... }; do { ... } while (<bool expr>);do { ... } while (<bool expr>);
![Page 44: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/44.jpg)
InstruccionesInstrucciones
Diferentes a C, C++:Diferentes a C, C++: lock(<object>){ ... };lock(<object>){ ... };
Sincronización de secciones críticas es Sincronización de secciones críticas es inherente al lenguajeinherente al lenguaje
checked {...}; unchecked { ...};checked {...}; unchecked { ...}; Protección contra el “Integer overflow”Protección contra el “Integer overflow”
![Page 45: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/45.jpg)
Métodos para colecciones: Métodos para colecciones: foreachforeach Soporte directo a las iteraciones sobre las Soporte directo a las iteraciones sobre las
coleccionescolecciones Pueden ser usados por arreglos y otras Pueden ser usados por arreglos y otras
coleccionescolecciones Ademas se puede usar con cualquier otra Ademas se puede usar con cualquier otra
claseclase Implemente Implemente IEnumerableIEnumerable con el método con el método
GetEnumerator()GetEnumerator() Devolviendo un objeto implementado de Devolviendo un objeto implementado de
tipo tipo IEnumeratorIEnumerator Ejemplo:Ejemplo:
Point[] Points = GetPoints();foreach( Point p in Points ){ MyPen.MoveTo(p.x,p.y);}
![Page 46: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/46.jpg)
OperadoresOperadores 1/21/2
Similares a C:Similares a C: Lógicos/condicionales: Lógicos/condicionales: && || && || Aritméticos: Aritméticos: * / + - << >>* / + - << >> Relacionales: Relacionales: == != < > >= <=== != < > >= <=
No exactamente C:No exactamente C: Para bool: Para bool: && y y || son lógicos con son lógicos con
evaluación completa evaluación completa Para integer: Para integer: && y y || ejecutan AND/OR ejecutan AND/OR
binariosbinarios
![Page 47: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/47.jpg)
Operadores Operadores 2/22/2
No similares a C:No similares a C: isis Prueba el tipo en tiempo de ejecuciónPrueba el tipo en tiempo de ejecución asas Convierte un valor a un tipo Convierte un valor a un tipo
especificadoespecificado typeoftypeof Devuelve el tipo en tiempo de ejecuciónDevuelve el tipo en tiempo de ejecución
![Page 48: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/48.jpg)
Sobre carga de operadoresSobre carga de operadores
La mayor parte pueden ser redefinidosLa mayor parte pueden ser redefinidos Aritméticos, relacionales, condicionales, Aritméticos, relacionales, condicionales,
y lógicosy lógicos No permitido para No permitido para
Operadores de asignaciónOperadores de asignación Operadores especiales (Operadores especiales (sizeof, new, is, sizeof, new, is,
typeoftypeof)) Ejemplo:Ejemplo:
Public static Total operator +(int Amount, Total t){ t.total += Amount;}
![Page 49: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/49.jpg)
Modificadores de acceso Modificadores de acceso 1/21/2
Adopta el modelo C++Adopta el modelo C++ publicpublic cualquiera puede invocarlo o cualquiera puede invocarlo o
accederloaccederlo protected protected solamente los miembros solamente los miembros
pueden accederlopueden accederlo privateprivate solo los miembros de solo los miembros de
exactamente esta clase pueden accederloexactamente esta clase pueden accederlo
![Page 50: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/50.jpg)
Modificadores de acceso Modificadores de acceso 2/22/2
Expande el modelo de C++ Expande el modelo de C++ sealed sealed No se puede usar como clase No se puede usar como clase
base de una jerarquíabase de una jerarquía internalinternal Acceso público solamente desde Acceso público solamente desde
su ensambladosu ensamblado protected internalprotected internal protegido dentro de su protegido dentro de su
ensambladoensamblado
![Page 51: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/51.jpg)
““Y los punteros?”Y los punteros?”
C# soportaC# soporta Tipo Tipo string string intrínsecointrínseco Modelo de recolección de basuraModelo de recolección de basura Parámetros por referencia usando Parámetros por referencia usando refref
void increment(ref int value, int by)void increment(ref int value, int by) Parámetros de salida usando Parámetros de salida usando outout
bool add(int a, int b, out int c)bool add(int a, int b, out int c) Punteros están disponibles para el código Punteros están disponibles para el código
marcado como marcado como unsafeunsafe
unsafe void crypt(byte[] arr) { byte * b = arr; ... }
![Page 52: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/52.jpg)
Boxing y UnboxingBoxing y Unboxing
Tipos por valor pueden "boxed" y "unboxed"Tipos por valor pueden "boxed" y "unboxed" "Boxing" permite que los tipos por valor se "Boxing" permite que los tipos por valor se
traten por referenciatraten por referencia Basado en el tipo objeto implicito de todos los Basado en el tipo objeto implicito de todos los
tipos.tipos. Ponga el valor en una caja y referéncielaPonga el valor en una caja y referénciela
double Value;
// Boxingobject BoxedValue = Value;// UnboxingValue = (double)BoxedValue;
42 42
42
Unboxed: Copia
Boxed: Referencia
![Page 53: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/53.jpg)
Recolección de basuraRecolección de basura Creación nuevos objetos y arreglos de Creación nuevos objetos y arreglos de
datosdatos Todos son creados mediante el uso de Todos son creados mediante el uso de newnew
El .NET runtime mantiene un registro El .NET runtime mantiene un registro automatico de todo el uso de la memoriaautomatico de todo el uso de la memoria
El recolector de basura automaticamente El recolector de basura automaticamente remueve todos los objetos que esten sin remueve todos los objetos que esten sin usouso
Un uso más eficiente de la memoriaUn uso más eficiente de la memoria Fácil de usar y “cero escapes de memoria”Fácil de usar y “cero escapes de memoria”
![Page 54: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/54.jpg)
Manipulación de Manipulación de ExcepcionesExcepciones Similar a C++Similar a C++ Ejemplo:Ejemplo:
trytry ejecuta este códigoejecuta este código
......si ocurre un errorsi ocurre un error, , catchcatch que puedo hacer que puedo hacer en ese casoen ese caso ... ...
......finallyfinally me permite me permite realizar algun trabajo realizar algun trabajo manual de rescatemanual de rescate
try { //... run code}catch(SomeException e){ //... handle}finally{ //...end gracefully}
![Page 55: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/55.jpg)
Diferencias con C++Diferencias con C++
C# es muy parecido a C/C++ C# es muy parecido a C/C++ Corrige la mayoría de sus errores:Corrige la mayoría de sus errores:
Estricto chequeo de tiposEstricto chequeo de tipos No más"fall-through" por No más"fall-through" por breakbreak en la en la
instrucción instrucción switchswitch Expresiones booleanas y las Expresiones booleanas y las
instrucciones que las involucran son instrucciones que las involucran son estrictamente chequeadas. estrictamente chequeadas.
![Page 56: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/56.jpg)
Espacios de nombres Espacios de nombres 1/21/2
Toda definición debe estar Toda definición debe estar contenida en un espacio de contenida en un espacio de nombresnombres Impide colisiones de nombresImpide colisiones de nombres Organiza el códigoOrganiza el código
Pueden y deben ser anidadosPueden y deben ser anidados
![Page 57: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/57.jpg)
Espacios de nombres 2/2Espacios de nombres 2/2
Agrupa clases y tipos por semánticaAgrupa clases y tipos por semántica Declarados con la palabra clave Declarados con la palabra clave
namespacenamespace Referenciados con Referenciados con usingusing
![Page 58: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/58.jpg)
Herramientas disponiblesHerramientas disponibles
.NET Framework SDK—todo lo .NET Framework SDK—todo lo necesario para construir necesario para construir aplicacionesaplicaciones Compilador C#Compilador C# Debugger VisualDebugger Visual
Visual Studio.NET—the Visual Studio.NET—the productivity rocketproductivity rocket Ambiente de desarrollo optimizado Ambiente de desarrollo optimizado
para C#para C# ““Code wizards” y templatesCode wizards” y templates Ayuda inteligenteAyuda inteligente
![Page 59: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/59.jpg)
.NET Framework SDK.NET Framework SDK
Compilador de C# (+ Visual Basic, C+Compilador de C# (+ Visual Basic, C++, and JScript)+, and JScript) Todas las caracteristicas del lenguajeTodas las caracteristicas del lenguaje Ejecucion desde linea de comandosEjecucion desde linea de comandos
Visual Debugger—GuiDebugVisual Debugger—GuiDebug Desarrollado sobre la tecnologia Visual Desarrollado sobre la tecnologia Visual
Studio.NETStudio.NET Acceso completo a los metadatos en Acceso completo a los metadatos en
tiempo de ejecucióntiempo de ejecución
HerramientasHerramientas Nmake, security, configuration, IL Nmake, security, configuration, IL
Disassembler, ...Disassembler, ...
Libre para todosLibre para todos
![Page 60: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/60.jpg)
Visual Studio.NETVisual Studio.NET
Desarrollado para .NET Framework SDKDesarrollado para .NET Framework SDK Reinvención del concepto de Visual Reinvención del concepto de Visual
Studio®, ahora con:Studio®, ahora con: Proyectos Multi-lenguajesProyectos Multi-lenguajes Un ambiente integrado de desarrollo para Un ambiente integrado de desarrollo para
todos los lenguajes y tareastodos los lenguajes y tareas Herramientas integradas: Visual Modeler, Herramientas integradas: Visual Modeler,
Database ManagementDatabase Management Perfecta integración de la ayudaPerfecta integración de la ayuda
Alta productividad para todo:Alta productividad para todo: RAD Rapid application developmentRAD Rapid application development Proyectos de gran escalaProyectos de gran escala
![Page 61: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/61.jpg)
El clásico comienzo:El clásico comienzo:
"Hello World!" in C#"Hello World!" in C#
![Page 62: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/62.jpg)
Hello WorldHello World
namespace Samplenamespace Sample{{ using System; using System; public class HelloWorld public class HelloWorld { { public HelloWorld() public HelloWorld() { { } }
public static int Main(string[] args) public static int Main(string[] args) { { Console.WriteLine("Hello World!"); Console.WriteLine("Hello World!"); return 0; return 0; } } } }}}
![Page 63: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/63.jpg)
Anatomía del “Hello Anatomía del “Hello World”World”
Contenido en su propio espacio de Contenido en su propio espacio de nombresnombres
Referencia otros espacios de nombres Referencia otros espacios de nombres con "using"con "using"
Declara una clase de aplicación Declara una clase de aplicación públicamente accesiblepúblicamente accesible
Punto de entrada "Punto de entrada "static int Main( ... )static int Main( ... )"" Escribe "Hello World!" en la consola Escribe "Hello World!" en la consola
del sistemadel sistema Usa el método estático Usa el método estático WriteLineWriteLine en en
System.ConsoleSystem.Console
![Page 64: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/64.jpg)
PreguntasPreguntas
![Page 65: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/65.jpg)
Actividad OrientadasActividad Orientadas
Argumente las existencia o no de la Argumente las existencia o no de la característica multiplataforma de la característica multiplataforma de la tecnología .NETtecnología .NET
Bibliografía: Project MONO http://www.go-mono.com/Bibliografía: Project MONO http://www.go-mono.com/
![Page 66: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/66.jpg)
SintaxisSintaxis
switch (switch (<expresión><expresión>)){{
case case <valor1><valor1>:: <bloque1> <bloque1> <siguienteAcción><siguienteAcción>
case case <valor2><valor2>:: <bloque2> <bloque2> <siguienteAcción><siguienteAcción>
......default:default: <bloqueDefault> <bloqueDefault>
<siguienteAcción><siguienteAcción>}}
Donde <siguiente acción> puede tener los siguientes valores:Donde <siguiente acción> puede tener los siguientes valores:1.1. goto case <valori>;goto case <valori>;2.2. goto default;goto default;3.3. break;break;
RegresarRegresar
![Page 67: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/67.jpg)
ADO.NETADO.NET
![Page 68: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/68.jpg)
ContenidoContenido
Diferencias entre ADO y ADO.NETDiferencias entre ADO y ADO.NET Beneficios de ADO.NETBeneficios de ADO.NET Conceptos y arquitectura de la base de Conceptos y arquitectura de la base de
ADO.NET ADO.NET El Modelo de Objeto de ADO.NETEl Modelo de Objeto de ADO.NET DataSetDataSet y Data Views y Data Views Administración de proveedoresAdministración de proveedores
![Page 69: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/69.jpg)
ADO.NET y .NET FrameworkADO.NET y .NET Framework
Microsoft .NET Framework
Common Language Runtime
Clases Bajas
Web Services Interface de Usuario
Data y XML
ADO.NET XML ... ...
![Page 70: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/70.jpg)
ADO vs. ADO.NET 1/2ADO vs. ADO.NET 1/2
ADOADO Diseñado para accesos conectadosDiseñado para accesos conectados Atado al modelo físico de los datos Atado al modelo físico de los datos El El RecordSetRecordSet es el contenedor central de datos es el contenedor central de datos ElEl RecordSet RecordSet es una (1) tabla que contiene todos los datos es una (1) tabla que contiene todos los datos
Recuperar datos desde > 1 tabla o recurso, requiere un JOIN de base de Recuperar datos desde > 1 tabla o recurso, requiere un JOIN de base de datosdatos
Los datos son “aplanados”: se pierden las relaciones; la navegación es Los datos son “aplanados”: se pierden las relaciones; la navegación es secuencialsecuencial
Los tipos de datos son limitados al tipo de datos COM/COM+Los tipos de datos son limitados al tipo de datos COM/COM+ Los datos se comparten mediante las vías que provee COMLos datos se comparten mediante las vías que provee COM Problemas con la transferencia a través de firewalls (DCOM, Problemas con la transferencia a través de firewalls (DCOM,
binary)binary)
![Page 71: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/71.jpg)
ADO vs. ADO.NET 2/2ADO vs. ADO.NET 2/2
ADO.NETADO.NET Diseñado para accesos desconectadosDiseñado para accesos desconectados Puede modelar los datos de forma lógica!Puede modelar los datos de forma lógica! El El DataSet DataSet reemplaza elreemplaza el RecordSet RecordSet DataSetDataSet puede contener varias tablas puede contener varias tablas
Recuperar datos desde >1 tabla o fuente no requiere de Recuperar datos desde >1 tabla o fuente no requiere de JOINJOIN
Las relaciones son preservadas: la navegación es Las relaciones son preservadas: la navegación es relacionalrelacional
Los tipos de datos solo son limitados por el Los tipos de datos solo son limitados por el esquema XMLesquema XML
No se necesita conversiones de tipos de datosNo se necesita conversiones de tipos de datos Tanto XML, como HTML, son textos planos: Tanto XML, como HTML, son textos planos:
“Firewall friendly”“Firewall friendly”
![Page 72: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/72.jpg)
Beneficios de ADO.NETBeneficios de ADO.NET
Interoperabilidad a través del uso de XML Interoperabilidad a través del uso de XML Norma abiertaNorma abierta Texto humanamente leíble y descifrableTexto humanamente leíble y descifrable Los datos se describen por si mismos—asi es XMLLos datos se describen por si mismos—asi es XML Usado para la transferencia de todos los datos en ADO.NETUsado para la transferencia de todos los datos en ADO.NET
Escalabilidad a través del Escalabilidad a través del DataSet DataSet desconectadodesconectado Las conexiones no se mantienen por periodos largosLas conexiones no se mantienen por periodos largos La base de datos no se bloqueaLa base de datos no se bloquea E trabajo se realiza a la manera de trabajos Web: “Hit and E trabajo se realiza a la manera de trabajos Web: “Hit and
Run!”Run!”
MantenimientoMantenimiento Separación de la lógica de los datos y la Interfaz de usuarioSeparación de la lógica de los datos y la Interfaz de usuario
![Page 73: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/73.jpg)
Mejoras de Mejoras de Visual Visual Studio.NETStudio.NET ProgramableProgramable
““Typed programming”, un estilo de programaciónTyped programming”, un estilo de programación Uso de palabras end-user : Facilita leer y escribir Uso de palabras end-user : Facilita leer y escribir Completamiento de la declaración en Microsoft Visual Completamiento de la declaración en Microsoft Visual
Studio.NETStudio.NET Mas seguro: Proporciona el chequeo de compilación Mas seguro: Proporciona el chequeo de compilación
Ejemplos:Ejemplos: Untyped: Untyped:
en enTable("Customer")("Jones").Column(“Balance”)Table("Customer")("Jones").Column(“Balance”) Typed:Typed:
myDataSet.Customer("Jones").BalancemyDataSet.Customer("Jones").Balance
Ayuda de apoyoAyuda de apoyo
![Page 74: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/74.jpg)
Conceptos principales y Conceptos principales y ArquitecturaArquitectura
El Modelo de Objeto ADO.NETEl Modelo de Objeto ADO.NET Proveedores de administraciónProveedores de administración ObjetosObjetos DataSet DataSet
Espacios de Nombres relacionados con Espacios de Nombres relacionados con ADO.NETADO.NET System.Data System.Data System.Data.ADOSystem.Data.ADO System.Data.InternalSystem.Data.Internal System.Data.SQLSystem.Data.SQL System.Data.SQLTypesSystem.Data.SQLTypes
![Page 75: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/75.jpg)
Espacios de Nombres Espacios de Nombres relacionados con ADO.NETrelacionados con ADO.NET
ADO.NET
System.Data
.ADO.SQL.SQLTypes .Internal
![Page 76: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/76.jpg)
El Modelo de Objeto El Modelo de Objeto ADO.NETADO.NET DataSetDataSet Proveedores de administraciónProveedores de administración
![Page 77: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/77.jpg)
System.Data 1/2System.Data 1/2
Contiene la base y el volumen de ADO.NETContiene la base y el volumen de ADO.NET Nombre de espacio Data-centricNombre de espacio Data-centric Brinda los medios para el trabajo en y con los Brinda los medios para el trabajo en y con los
datos!datos! Clases y métodos para manipular los datosClases y métodos para manipular los datos Capacidad para crear consultas de los Capacidad para crear consultas de los
datosdatos Medios para representar de forma lógica Medios para representar de forma lógica
los datoslos datos Permite el uso de XML para ver, compartir Permite el uso de XML para ver, compartir
y almacenar los datosy almacenar los datos
![Page 78: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/78.jpg)
System.Data 2/2System.Data 2/2
System.Data
DataTable
DataRow
DataRelation
DataColumn
DataSetView
DataSet
Contiene las clases principales de ADO.NETContiene las clases principales de ADO.NET Cache In-Memory de datosCache In-Memory de datos
Cache In-Memory de una tabla de BDCache In-Memory de una tabla de BD
Manipulación de una columna en un Manipulación de una columna en un DataTable
Definicion de columnas en un Definicion de columnas en un DataTable
Relaionar 2 Relaionar 2 DataTables entre si
Crear una vista en un Crear una vista en un DataSet
![Page 79: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/79.jpg)
System.Data y DataSet—System.Data y DataSet—OverviewOverview
DataSet Tables
DataTable
Relations
DataRelation
DataRelation
DataRow(s)
DataColumn
Constraint(s)
DataTable
DataTable
DataView
DataSetView
![Page 80: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/80.jpg)
System.Data—DataSet 1/3System.Data—DataSet 1/3
Una cache en memoria de datos de una fuente de Una cache en memoria de datos de una fuente de datosdatos
Forma común de representar y manipular datosForma común de representar y manipular datos Contenedor universal de datosContenedor universal de datos No para uso justamente con base de datosNo para uso justamente con base de datos
Representación lógica o física de datos; dependen Representación lógica o física de datos; dependen de: de: El conjunto de resultadosEl conjunto de resultados Si DataTables y Relations existenSi DataTables y Relations existen
Diseñado para ser desconectado de la fuente de Diseñado para ser desconectado de la fuente de datos datos Conectar, ejecutar consulta y desconectarConectar, ejecutar consulta y desconectar
XML usado para leer y escribir datos y esquemasXML usado para leer y escribir datos y esquemas
![Page 81: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/81.jpg)
System.Data—DataSet 2/3System.Data—DataSet 2/3
Las colecciones son utilizadas para adicionar y Las colecciones son utilizadas para adicionar y eliminar tablas y relacioneseliminar tablas y relaciones
Propiedades de interés:Propiedades de interés: TablesTables: Devuelve una colección de objetos : Devuelve una colección de objetos DataTableDataTable RelationsRelations: Devuelve una colección de : Devuelve una colección de DataRelationDataRelationss XMLXML: Obtiene o coloca la definición de : Obtiene o coloca la definición de DataSetDataSet como XML como XML XMLDataXMLData: Obtiene o coloca el dato : Obtiene o coloca el dato DataSetDataSet’s como XML’s como XML XMLSchemaXMLSchema: Obtiene o coloca el esquema : Obtiene o coloca el esquema DataSetDataSet como como
XML XML NamespaceNamespace: Obtiene o coloca el nombre de espacio del : Obtiene o coloca el nombre de espacio del
DataSetDataSet
Ejemplo de uso de las propiedades:Ejemplo de uso de las propiedades: aTableCollection=aDS.Tables.Add(aTable);aTableCollection=aDS.Tables.Add(aTable);
![Page 82: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/82.jpg)
System.Data—DataSet 3/3System.Data—DataSet 3/3
Universal Data Container
DataSet: No es solo para Bases de Datos
![Page 83: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/83.jpg)
System.Data—DataTableSystem.Data—DataTable
Puede ser mapeado a una tabla física en la fuente de datosPuede ser mapeado a una tabla física en la fuente de datos Pueden relacionarse por medio de Pueden relacionarse por medio de DataRelationDataRelationss Concurrencia optimista o modelo fijoConcurrencia optimista o modelo fijo Propiedades de interés:Propiedades de interés:
ColumnsColumns: Devuelve objetos : Devuelve objetos ColumnsCollectionColumnsCollection de de DataColumnDataColumnss
RowsRows: Devuelve objetos : Devuelve objetos DataRow DataRow como objetos como objetos RowsCollectionRowsCollection
ParentRelationsParentRelations: Devuelve un objeto : Devuelve un objeto RelationsCollectionRelationsCollection ConstraintsConstraints: Devuelve un objeto : Devuelve un objeto ConstraintsCollection ConstraintsCollection de las de las
tablastablas DataSetDataSet: Devuelve un objeto : Devuelve un objeto DataSetDataSet de uno de uno DataTableDataTable PrimaryKeyPrimaryKey: Obtiene el objeto : Obtiene el objeto DataColumnDataColumns el cual crea la s el cual crea la
llave primaria de las tablasllave primaria de las tablas
![Page 84: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/84.jpg)
System.Data—DataSet y System.Data—DataSet y DataTableDataTable Crear un objeto Crear un objeto DataTableDataTable y adicionarlo a y adicionarlo a
uno uno DataSetDataSetDataSet 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 DataColumnDataColumn 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 DataSetds.Tables.Add( dt );
![Page 85: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/85.jpg)
System.Data—DataRelation System.Data—DataRelation 1/21/2 Usado para crear relaciones lógicas Usado para crear relaciones lógicas
Crea relaciones entre (2) objetos Crea relaciones entre (2) objetos DataTable DataTable Requiere un objeto Requiere un objeto DataColumnDataColumn de cada objeto de cada objeto DataTableDataTable El El DataTypeDataType de ambos de ambos DataColumnsDataColumns tiene que ser el mismo tiene que ser el mismo
No se puede relacionar un No se puede relacionar un Int32 DataColumnInt32 DataColumn con un con un String String DataColumnDataColumn
La relación es nombrada (por usted!)La relación es nombrada (por usted!) DataRelation dr=new DataRelation( “myRelation”,...)DataRelation dr=new DataRelation( “myRelation”,...)
Hace la navegación relacional posibleHace la navegación relacional posible RelationsCollection RelationsCollection contiene todos los objetos contiene todos los objetos DataRelationDataRelationss
Accedido a través de las propiedades del Accedido a través de las propiedades del DataSetDataSet’s ’s RelationsRelations
![Page 86: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/86.jpg)
System.Data—DataRelation System.Data—DataRelation 2/22/2 Como crear un objeto Como crear un objeto DataRelationDataRelation::
Se obtienen los objetos Se obtienen los objetos DataColumnDataColumn para relacionar para relacionar Crear un objeto Crear un objeto DataRelationDataRelation nombrado usando las columnas nombrado usando las columnas Adicionar la relación al Adicionar la relación al DataSetDataSet
// 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 );
![Page 87: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/87.jpg)
System.Data—DataSet y XMLSystem.Data—DataSet y XML
DataSetDataSet puede leer y escribir XML para sus datos y/o esquemas puede leer y escribir XML para sus datos y/o esquemas Significa que: Usted puede crear o modificar un objeto Significa que: Usted puede crear o modificar un objeto
DataSetDataSet usando XML! usando XML! XML-relacionado a XML-relacionado a DataSet.DataSet. Métodos para leer: Métodos para leer:
ReadXmlReadXml: Lee un esquema o dato XML dentro de un : Lee un esquema o dato XML dentro de un DataSetDataSet ReadXmlDataReadXmlData: Lee datos XML dentro de un : Lee datos XML dentro de un DataSetDataSet ReadXmlSchemaReadXmlSchema: Lee un esquema XML dentro de un : Lee un esquema XML dentro de un DataSetDataSet
Y para escribir: Y para escribir: WriteXmlWriteXml, , WriteXmlDataWriteXmlData, , WriteXmlSchemaWriteXmlSchema Propiedades XML-related : Propiedades XML-related :
XmlXml, , XmlDataXmlData, , XmlSchema, XmlSchema, y y NamespaceNamespace DiffGramsDiffGrams
![Page 88: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/88.jpg)
Métodos para leer y escribir Métodos para leer y escribir XMLXML// 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 Documentmds.WriteXmlSchema( oFile );
// Read/Upload XML Data into the DataSetmds.ReadXmlData( iFile, true );
// Write the existing Data to an XML Documentmds.WriteXmlSchema( “C:\\My_ADO.NET\\myXmlData.txt );
// Or output the XML Data using the XmlData property!Console.WriteLine( mds.XmlData );
![Page 89: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/89.jpg)
System.Data—DataViewSystem.Data—DataView
Crear múltiples vistas en un objeto Crear múltiples vistas en un objeto DataTableDataTable Invisible a los controles de Interfase de usuarioInvisible a los controles de Interfase de usuario Propiedades de interés:Propiedades de interés:
ItemItem: Recupera una fila de datos de una tabla especifica: Recupera una fila de datos de una tabla especifica TableTable: Recupera o coloca el : Recupera o coloca el DataTable DataTable asociadoasociado SortSort: Obtiene o coloca la clase de columna de la tabla y : Obtiene o coloca la clase de columna de la tabla y
el orden de la claseel orden de la clase RowFilterRowFilter: Obtiene o fija la expresión utilizada para filtrar : Obtiene o fija la expresión utilizada para filtrar
las filas las filas RowStateFilterRowStateFilter: Consigue o fija el filtro del estado de la fila : Consigue o fija el filtro del estado de la fila
NoneNone, , UnchangedUnchanged, , NewNew, , DeletedDeleted, , ModifiedCurrentModifiedCurrent, y , y
otrosotros
![Page 90: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/90.jpg)
Ejemplo de System.Data—Ejemplo de System.Data—DataViewDataView Creando objetosCreando objetos DataViewDataView// Code for myTable “Customers” with // “Name” column not shownDataView 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”);//...
![Page 91: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/91.jpg)
System.Data—DataSetViewSystem.Data—DataSetView
Similar a un Similar a un DataViewDataView pero orientado a pero orientado a DataSetDataSet
Usado para crear múltiples vistas en un Usado para crear múltiples vistas en un DataSetDataSet Capacidad de fijar automáticamente los filtros en Capacidad de fijar automáticamente los filtros en
las tablas las tablas
Propiedades de interés:Propiedades de interés: TableSettingsTableSettings: Obtiene/fija los ajustes de las : Obtiene/fija los ajustes de las
vistas en la tablavistas en la tabla DataSetDataSet: Obtiene o fija el : Obtiene o fija el DataSetDataSet para crear la para crear la
vistavista
![Page 92: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/92.jpg)
System.Data—DataSetView System.Data—DataSetView SampleSample
Creando un objeto Creando un objeto DataSetViewDataSetView usando un usando un DataSetDataSet// 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...
![Page 93: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/93.jpg)
DataSet, DataRelation, DataSet, DataRelation, Data…ViewsData…Views
TableSettings
DataSet Tables
DataTable
Relations
DataRelation
DataRelation
DataRow(s)
DataColumn
Constraint(s)
DataTable
DataTable
DataView
DataSetView
TableSetting
TableSetting
![Page 94: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/94.jpg)
ADO.NET y Proveedores de ADO.NET y Proveedores de AdministraciónAdministración Una colección de clases para el acceso a fuentes de Una colección de clases para el acceso a fuentes de
datos:datos: Microsoft SQL ServerMicrosoft SQL Server™™ 2000, SQL Server 7, y MSDE 2000, SQL Server 7, y MSDE Cualquier OLE Database (OLE DB) providersCualquier OLE Database (OLE DB) providers
Incluyendo: Oracle, JET, y SQL OLE DB ProvidersIncluyendo: Oracle, JET, y SQL OLE DB Providers Establecer conexión entre Establecer conexión entre DataSetDataSets y almacenes de datoss y almacenes de datos
Dos proveedores de administración:Dos proveedores de administración: ADO: por medio del nombre de espacio ADO: por medio del nombre de espacio System.Data.ADOSystem.Data.ADO SQL Server: por medio del nombre de espacio SQL Server: por medio del nombre de espacio
System.Data.SQLSystem.Data.SQL
System.Data.ADOSystem.Data.ADO es el es el proveedor de administraciónproveedor de administración de de ADO.NETADO.NET
![Page 95: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/95.jpg)
System.Data—Proveedores System.Data—Proveedores administradosadministrados
System.Data.InternalSystem.Data.Internal es confiable para varias es confiable para varias clases heredadasclases heredadas
System.Data
.ADO.SQL
ADOCommandADOConnectionADODataReaderADODataSetCommand
SQLCommandSQLConnectionSQLDataReader
SQLDataSetCommand
![Page 96: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/96.jpg)
ADOConnection y ADOConnection y SQLConnectionSQLConnection Representa una sesión única con una fuente de datosRepresenta una sesión única con una fuente de datos Crear, abrir, cerrar una conexión a una fuente de Crear, abrir, cerrar una conexión a una fuente de
datosdatos Funcionalidad y métodos para desarrollar Funcionalidad y métodos para desarrollar
transaccionestransacciones EjemplosEjemplos dede ADOConnection 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 ClassaConn.Close();
![Page 97: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/97.jpg)
Clase ADODataSetCommand Clase ADODataSetCommand 1/21/2 Es un puente entre un objeto Es un puente entre un objeto DataSetDataSet y el y el
almacén de datosalmacén de datos Se hereda de la clase Se hereda de la clase DataSetCommandDataSetCommand
Es el medio de modificación del Es el medio de modificación del DataSetDataSet y de y de la fuente de datosla fuente de datos
Data Store DataSetDataSetCommand
![Page 98: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/98.jpg)
Clase ADODataSetCommand Clase ADODataSetCommand 2/22/2 Propiedades de interés:Propiedades de interés:
DeleteCommandDeleteCommand: El comando delete expresado en SQL: El comando delete expresado en SQL InsertCommandInsertCommand: Obtener o fijar el comando insert: Obtener o fijar el comando insert SelectCommandSelectCommand: Obtener o fijar el comando select : Obtener o fijar el comando select UpdateCommandUpdateCommand: Obtener o fijar el comando update : Obtener o fijar el comando update TableMappingsTableMappings: Maps source y : Maps source y DataTableDataTable
ADOCommandADOCommands recupera o fija mediante las propiedades s recupera o fija mediante las propiedades “command” “command”
Hereda métodos de la clase Hereda métodos de la clase DataSetCommandDataSetCommand public virtual int FillDataSet( DataSet public virtual int FillDataSet( DataSet dataSet dataSet );); public virtual int Update( DataSet public virtual int Update( DataSet dataSetdataSet ););
![Page 99: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/99.jpg)
Clase ADOCommandClase ADOCommand
Representa una consulta a ejecutar en la fuente de Representa una consulta a ejecutar en la fuente de datosdatos
Propiedades de interés :Propiedades de interés : ActiveConnectionActiveConnection: Obtiene o fija la conexión a la fuente de : Obtiene o fija la conexión a la fuente de
datosdatos CommandTextCommandText: Obtiene o fija el comando de la consulta : Obtiene o fija el comando de la consulta
(texto)(texto) CommandTypeCommandType: Obtiene o fija la interpretación del texto del : Obtiene o fija la interpretación del texto del
comandocomando Texto, procedimiento almacenado, o nombre de la tablaTexto, procedimiento almacenado, o nombre de la tabla
CommandTimeoutCommandTimeout: Los segundos que faltan para terminar la : Los segundos que faltan para terminar la conexiónconexión
RecordsAffectedRecordsAffected: Números de records afectados por la : Números de records afectados por la consultaconsulta
![Page 100: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/100.jpg)
ADODataReader 1/2ADODataReader 1/2
El acceso a los datos se realiza de manera Forward-El acceso a los datos se realiza de manera Forward-onlyonly
Modelo de programación “Lightweight”Modelo de programación “Lightweight” Se gasta menos que al usar Se gasta menos que al usar ADODataSetCommandADODataSetCommand
Instanciado por la clase Instanciado por la clase ADOCommandADOCommand con el método con el método ExecuteExecute
Ties up the Ties up the ADOCommandADOCommand until it is finished reading until it is finished reading
![Page 101: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/101.jpg)
ADODataReader 2/2ADODataReader 2/2
Propiedades de interés:Propiedades de interés: FieldCountFieldCount: Devuelve el número de campos en el : Devuelve el número de campos en el
resultadoresultado HasMoreRows: HasMoreRows: Indica si hay más filas para Indica si hay más filas para
devolver devolver RowFetchCountRowFetchCount: Número de filas para devolver al : Número de filas para devolver al
mismo tiempomismo tiempo HasMoreResultsHasMoreResults: Indica que hay más resultados: Indica que hay más resultados
Métodos para devolver datos:Métodos para devolver datos: Por el tipo de la columna y el índice: Por el tipo de la columna y el índice: GetStringGetString, ,
GetInt32GetInt32, y otros, y otros ReadRead: Lectura avanzada al próximo record: Lectura avanzada al próximo record
![Page 102: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/102.jpg)
Ejemplo de ADODataReaderEjemplo de ADODataReader// Code for creating the ADOConnection “adoConn” not shownString 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 donemyDataReader.Close();adoConn.Close();
![Page 103: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/103.jpg)
SumarioSumario
ADO.NET es la evolución de ADOADO.NET es la evolución de ADO Es un modelo centrado en Web, “desconectado”Es un modelo centrado en Web, “desconectado” Flexible en su capacidad de trabajar con datosFlexible en su capacidad de trabajar con datos Incrementa su capacidad para organizar los datos Incrementa su capacidad para organizar los datos
lógicamente lógicamente Soporte extenso para XML Soporte extenso para XML
Facilita el trabajo con datos y compartiendo Facilita el trabajo con datos y compartiendo datosdatos
Interactúa con una amplia variedad de fuente de Interactúa con una amplia variedad de fuente de datosdatos
![Page 104: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/104.jpg)
ASP.NETASP.NET
![Page 105: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/105.jpg)
ObjetivosObjetivos
Introducción al ASP.NET Conceptos y Arquitectura interna Características ASP.NET ASP.NET avanzado
ASP.NET y el Microsoft® .NET Framework
![Page 106: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/106.jpg)
ContenidoContenido
Sección 1: DescripciónSección 1: Descripción Sección 2: Sección 2: Arquitectura internaArquitectura interna
Microsoft .NET Framework y ASP.NET Microsoft .NET Framework y ASP.NET ConfiguraciónConfiguración
Sección 3: Características de Sección 3: Características de ASP.NETASP.NET Administración, Seguridad, y Modelo de Administración, Seguridad, y Modelo de
eventoseventos
Sección 4: Sección 4: ASP.NET avanzadoASP.NET avanzado Web Forms Web Forms Trabajando con DatosTrabajando con Datos Migración desde ASP hacia ASP.NETMigración desde ASP hacia ASP.NET
![Page 107: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/107.jpg)
Sección 1: DescripciónSección 1: Descripción
““Mirando hacia atrás ...“Mirando hacia atrás ...“ ASP.NET Conceptos fundamentalesASP.NET Conceptos fundamentales
![Page 108: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/108.jpg)
Mirando atrás: Active Mirando atrás: Active Server PagesServer Pages Qué es ASP?Qué es ASP?
Tecnología script del lado del servidorTecnología script del lado del servidor Ficheros contienen HTML y código scriptFicheros contienen HTML y código script Accesos pedidos via HTTPAccesos pedidos via HTTP Código script es interpretado en el Código script es interpretado en el
servidorservidor Qué se podemos lograr con ASP?Qué se podemos lograr con ASP?
Fácil y de manera inmediata podemos Fácil y de manera inmediata podemos crear aplicaciones Web simplescrear aplicaciones Web simples
Generar contenido Web dinámicoGenerar contenido Web dinámico Script del lado cliente para validacionesScript del lado cliente para validaciones Acceso a componentes COM para Acceso a componentes COM para
extender funcionalidadextender funcionalidad Bases de datosBases de datos
![Page 109: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/109.jpg)
Qué está mal?Qué está mal?
Mezcla la forma (HTML) y la lógica (código Mezcla la forma (HTML) y la lógica (código script)script)
Interpretar el código Interpretar el código ASP trae como ASP trae como consecuencia una reducción del rendimientoconsecuencia una reducción del rendimiento
Uso deUso de lenguajes script que no son “strongly lenguajes script que no son “strongly typed“typed“ Microsoft Microsoft JScript®JScript® Microsoft Visual Basic® Scripting Edition (VBScript)Microsoft Visual Basic® Scripting Edition (VBScript)
Compatibilidad con los navegadoresCompatibilidad con los navegadores No implementa una gestión real del “estado”No implementa una gestión real del “estado”
No se pueden compartir estados entre servidores No se pueden compartir estados entre servidores WebWeb
Estado se pierde si el IIS colapsa.Estado se pierde si el IIS colapsa.
Actualizar ficheros solamente cuando el Actualizar ficheros solamente cuando el servidor esta fuera de servicioservidor esta fuera de servicio
![Page 110: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/110.jpg)
ASP.NET Conceptos ASP.NET Conceptos fundamentalesfundamentales Plataforma de desarrollo WebPlataforma de desarrollo Web Nuevo modelo de programaciónNuevo modelo de programación
Cliente Web
Sistema Operativo
AplicacionesASP.NET
IIS
.NETFramework
![Page 111: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/111.jpg)
ASP.NET Conceptos ASP.NET Conceptos fundamentalesfundamentales Separa forma de la lógica de negociosSepara forma de la lógica de negocios Usa servicios ofertados por el .NET Usa servicios ofertados por el .NET
FrameworkFramework EL código es compilado la primera vez EL código es compilado la primera vez
que la página es solicitadaque la página es solicitada Gestión real del “estado”Gestión real del “estado” Hace uso de lenguajes “serios” de Hace uso de lenguajes “serios” de
programaciónprogramación Integración inter-lenguajesIntegración inter-lenguajes
Actualización de ficheros sin sacar de Actualización de ficheros sin sacar de servicio el servidor!servicio el servidor!
![Page 112: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/112.jpg)
Sección 2: Arquitectura Sección 2: Arquitectura internainterna
La arquitectura de .NET La arquitectura de .NET FrameworkFramework
Modelo de aplicaciones WebModelo de aplicaciones Web ConfiguraciónConfiguración Jerarquía de clasesJerarquía de clases
![Page 113: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/113.jpg)
Arquitectura .NET Arquitectura .NET FrameworkFramework
Microsoft .NET Framework
System Services
Common Language Runtime
ASP.NET
Web Forms Web ServicesWindows Forms
Services Framework
Base Data Debug ...
![Page 114: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/114.jpg)
Modelo de aplicaciones Modelo de aplicaciones WebWeb
Código no gestionado
Código gestionado
...Request Handler
HTTP Module
HTTP Module
HTTP Runtime
Host (IIS, Internet Explorer)
Pedidos HTTP
![Page 115: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/115.jpg)
HTTP RuntimeHTTP Runtime
Código gestionadoCódigo gestionado Se ejecuta dentro de un proceso Se ejecuta dentro de un proceso
host no gestionadohost no gestionado
Diseñada para una disponibilidad Diseñada para una disponibilidad del 100%del 100% Procesamiento asincrónicoProcesamiento asincrónico de los de los
pedidospedidos MultihiloMultihilo
Sustitución de las ISAPISustitución de las ISAPI Internet Server Application Internet Server Application
Programming InterfaceProgramming Interface
![Page 116: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/116.jpg)
Lista de módulos HTTPLista de módulos HTTP
Lista de módulos HTTPLista de módulos HTTP Clases gestionadasClases gestionadas Cada módulo implementa una interfaz Cada módulo implementa una interfaz
específicaespecífica Por ejemplo: administración del estado o la Por ejemplo: administración del estado o la
seguridadseguridad Todos los pedidos son enrutados a Todos los pedidos son enrutados a
través de la misma lista de módulos HTTPtravés de la misma lista de módulos HTTP Adición de módulos se realiza a través Adición de módulos se realiza a través
del Config.webdel Config.web Request handlerRequest handler
Clases gestionadasClases gestionadas Múltiples request handlers por cada Múltiples request handlers por cada
aplicaciónaplicación Pero solo uno por URLPero solo uno por URL
![Page 117: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/117.jpg)
ConfiguraciónConfiguración 1/31/3
Conceptos y arquitecturaConceptos y arquitectura Fichero de configuración: Config.webFichero de configuración: Config.web
Basado en XMLBasado en XML Fichero es mantenido dentro del subdirectorio de Fichero es mantenido dentro del subdirectorio de
la aplicaciónla aplicación Cambios son detectados automáticamenteCambios son detectados automáticamente
Arquitectura de configuración jerárquicaArquitectura de configuración jerárquica Influye en el subdirectorio actual y en todos sus Influye en el subdirectorio actual y en todos sus
subdirectoriossubdirectorios
RootDir
SubDir1
SubDir2
Config.web
![Page 118: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/118.jpg)
ConfiguraciónConfiguración 22/3/3
Ejemplo de Config.webEjemplo de Config.web
<configuration><configuration>
<configsections> <configsections> <add names=“httpmodules“ <add names=“httpmodules“ type=“System.Web.Config. type=“System.Web.Config. HttpModulesConfigHandler“/>HttpModulesConfigHandler“/> <add names=“sessionstate“ <add names=“sessionstate“ type=“...“/> type=“...“/> </configsections> </configsections>
<httpmodules> <httpmodules> <!--- http module subelements go here --> <!--- http module subelements go here --> </httpmodules> </httpmodules> <sessionstate> <sessionstate> <!--- sessionstate subelements go here --> <!--- sessionstate subelements go here --> </sessionstate> </sessionstate>
</configuration></configuration>
![Page 119: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/119.jpg)
ConfiguraciónConfiguración 33/3/3
Configuración por defecto y personalidadaConfiguración por defecto y personalidada Config.web está localizado en Config.web está localizado en %windir%\%windir%\
Microsoft.NET\Framework\VersionMicrosoft.NET\Framework\Version Conjunto estándar manipuladores de la sección de Conjunto estándar manipuladores de la sección de
configuraciónconfiguración Características de los navegadores soportados, Características de los navegadores soportados,
mensajes de error personalizados, etcmensajes de error personalizados, etc Configuración personalizadaConfiguración personalizada
Extienda el conjunto de manipuladores de sección con Extienda el conjunto de manipuladores de sección con los suyos propioslos suyos propios
Implementación de la interface:Implementación de la interface: System.Web.Configuration.IConfigurationSectionHandlerSystem.Web.Configuration.IConfigurationSectionHandler
Problemas con Problemas con Directorios virtualesDirectorios virtuales Ficheros que no son ASP.NETFicheros que no son ASP.NET
![Page 120: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/120.jpg)
Jerarquía de clasesJerarquía de clases
System.Web.UI.WebControls
ListControl
ListBox
CheckBoxList
Button
Table
WebControl
System.Web.UI.Control
System.Object
TextBox
......
![Page 121: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/121.jpg)
Sección 3: CaracterísticasSección 3: Características
Sintaxis y lenguajes soportados Sintaxis y lenguajes soportados por ASP.NETpor ASP.NET EjemplosEjemplos
Proceso de ejecuciónProceso de ejecución EnsambladoEnsamblado Administración de estado, Administración de estado,
Seguridad, y manipulación de Seguridad, y manipulación de eventoseventos
![Page 122: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/122.jpg)
Lógica de procesamiento Lógica de procesamiento e interfacee interface No más unión del código HTML código scriptNo más unión del código HTML código script
Fácil mantenimiento de la aplicaciónFácil mantenimiento de la aplicación
Completa separación entre la interfaz y la Completa separación entre la interfaz y la lógica de procesamientológica de procesamiento No existe código de implementación dentro de los No existe código de implementación dentro de los
ficheros HTMLficheros HTML Ficheros para los diseñadores y ficheros para los Ficheros para los diseñadores y ficheros para los
programadoresprogramadores
.aspx.cs
.cs
![Page 123: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/123.jpg)
Lenguajes soportadosLenguajes soportados
Visual BasicVisual Basic VBScriptVBScript no es gestionado ! no es gestionado !
JScriptJScript C#C#
Nuevo lenguaje basado en Nuevo lenguaje basado en componentescomponentes
CC++++ Extensiones gestionadas para C++Extensiones gestionadas para C++
Otros: Cobol, Smalltalk, ...Otros: Cobol, Smalltalk, ... Common Language Specification Common Language Specification
(CLS)(CLS)
![Page 124: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/124.jpg)
SintaxisSintaxis 1/31/3
DirectivasDirectivas <%@ Page language=“VB“%><%@ Page language=“VB“%>
Bloques de declaración de códigoBloques de declaración de código <script runat=“server“ [language = ...]><script runat=“server“ [language = ...]>
[ lines of code ] [ lines of code ]</script></script>
““Render Blocks”Render Blocks” <%<%
[ inline code or expression ] [ inline code or expression ]%>%>
Sintaxis de control HTMLSintaxis de control HTML <HTMLtag runat=“server“ [attribute = ...]><HTMLtag runat=“server“ [attribute = ...]>
</HTMLtag></HTMLtag>
![Page 125: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/125.jpg)
SintaxisSintaxis 2/32/3
Sintaxis de controles personalizadosSintaxis de controles personalizados Controles en el servidor personalizadosControles en el servidor personalizados
<ASP:TextBox id=“MyTb1“ runat=“server“><ASP:TextBox id=“MyTb1“ runat=“server“>
Propiedad de control en el servidorPropiedad de control en el servidor <ASP:TextBox maxlength=“80“ runat=“server“><ASP:TextBox maxlength=“80“ runat=“server“>
SubpropiedadSubpropiedad <ASP:Label font-size=“14“ runat=“server“><ASP:Label font-size=“14“ runat=“server“>
Eventos asociados a un control en el Eventos asociados a un control en el servidorservidor <ASP:Button OnClick=“MyClick“ runat=“server“><ASP:Button OnClick=“MyClick“ runat=“server“>
![Page 126: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/126.jpg)
SintaxisSintaxis 3/33/3
Etiquetas de objetos en el servidorEtiquetas de objetos en el servidor <object id=“<object id=“idid“ runat=“server““ runat=“server“
identifieridentifier=“=“idNameidName““>>
Directivas Include en el servidorDirectivas Include en el servidor <!-- #include pathtype = filename --><!-- #include pathtype = filename -->
Comentarios en el servidorComentarios en el servidor <%-- comment block --%><%-- comment block --%>
![Page 127: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/127.jpg)
Ejemplo ASP.NET 1/2Ejemplo ASP.NET 1/2<html><html><script language="C#" runat=server><script language="C#" runat=server> void SubmitBtn_Click(Object Sender, EventArgs E)void SubmitBtn_Click(Object Sender, EventArgs E) {{ Message.Text = "Hi "+Name.Text;Message.Text = "Hi "+Name.Text; } } </script></script><body><body><form action="thisfile.aspx" method=post runat=server><form action="thisfile.aspx" method=post runat=server>
<h3> Name: <h3> Name: <asp:textbox id="Name" runat=server/><asp:textbox id="Name" runat=server/> <asp:button type=submit text="LookUp"<asp:button type=submit text="LookUp" OnClick="SubmitBtn_Click" runat=server/>OnClick="SubmitBtn_Click" runat=server/> <p><p> <asp:label id="Message" runat=server/><asp:label id="Message" runat=server/></form></form></body></body></html></html>
![Page 128: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/128.jpg)
Ejemplo ASP.NETEjemplo ASP.NET 2/22/2
![Page 129: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/129.jpg)
Ciclo de ejecución de Ciclo de ejecución de un .aspxun .aspx
IIS
ASP.NET Runtime
Instantiate controls
Parse .aspx file
Generate page class
Request .aspx file
Response
Client Server
![Page 130: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/130.jpg)
Proceso de ejecuciónProceso de ejecución
Compilación, cuando la página es Compilación, cuando la página es requerida por vez primera.requerida por vez primera.
Microsoft intermediate language (MSIL)Microsoft intermediate language (MSIL) Estilo lenguaje ensambladorEstilo lenguaje ensamblador Independiente del CPUIndependiente del CPU Provee una capa de abstracción del Provee una capa de abstracción del
hardwarehardware MSIL es ejecutado por el common language MSIL es ejecutado por el common language
runtimeruntime
Common language runtimeCommon language runtime Compilador Just-in-time (JIT)Compilador Just-in-time (JIT) Código gestionadoCódigo gestionado
![Page 131: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/131.jpg)
Administración de Administración de “Estado”“Estado” 1/21/2
Estado de la aplicaciónEstado de la aplicación Qué es una “aplicación”?Qué es una “aplicación”?
Ficheros, páginas, módulos, y código Ficheros, páginas, módulos, y código ejecutableejecutable
Un directorio virtual y sus subdirectoriosUn directorio virtual y sus subdirectorios
Variables de estado de la aplicaciónVariables de estado de la aplicación Información globalInformación global
Reglas de ImplementaciónReglas de Implementación Uso de recursos del sistemaUso de recursos del sistema ““Lock” y “unlock” su información globalLock” y “unlock” su información global Cuidado con las variablesCuidado con las variables globales en globales en
ambientes multihiloambientes multihilo Pérdida de estado cuando el servidor es Pérdida de estado cuando el servidor es
“destruido”“destruido” Imposibilidad de compartir estados entre Imposibilidad de compartir estados entre
servidoresservidores
![Page 132: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/132.jpg)
Administración de Administración de “Estado”“Estado” 2/22/2
Estado de la sesiónEstado de la sesión Qué es una sesión?Qué es una sesión?
Restringido a aplicaciones lógicasRestringido a aplicaciones lógicas Contexto en el cuál un usuario se comunica Contexto en el cuál un usuario se comunica
con un servidorcon un servidor
FuncionalidadFuncionalidad Pedidos de identificación y clasificaciónPedidos de identificación y clasificación Almacenamiento de datos a través de Almacenamiento de datos a través de
multiples y sucesivos pedidosmultiples y sucesivos pedidos Eventos de SesiónEventos de Sesión Liberación automatica de datos de sesiónLiberación automatica de datos de sesión
Proceso servidor de estados en .NETProceso servidor de estados en .NET
![Page 133: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/133.jpg)
Modelo de eventosModelo de eventos Eventos se generan en el cliente, Eventos se generan en el cliente,
pero se manipulan en el servidorpero se manipulan en el servidor
ServerCliente Web
parse messageevento
event handler
eventmessage
response
Llamada al manipulador
apropiado
![Page 134: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/134.jpg)
Sección 4: ASP.NET Sección 4: ASP.NET avanzadoavanzado Web FormsWeb Forms Controles en el ServidorControles en el Servidor Trabajando con datosTrabajando con datos Aplicaciones WebAplicaciones Web Migrando de ASP hacia ASP.NETMigrando de ASP hacia ASP.NET
![Page 135: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/135.jpg)
Resumen de Web FormsResumen de Web Forms 1/21/2
thisfile.aspx
SubmitBtn_Click() { ...
thisfile.aspx.cs
...<asp:Button id=“LookUp“ OnClick=„SubmitBtn_Click“ />...
![Page 136: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/136.jpg)
Resumen de Web FormsResumen de Web Forms 2/22/2
Crear páginas web programablesCrear páginas web programables Usar cualquier lenguaje .NETUsar cualquier lenguaje .NET Proveer un conjunto amplio de Proveer un conjunto amplio de
controles del lado del servidorcontroles del lado del servidor Modelo de eventos de Web FormsModelo de eventos de Web Forms
Ejecutarse en cualquier navegadorEjecutarse en cualquier navegador Parte Visual y lógica de la Parte Visual y lógica de la
aplicación Webaplicación Web Espacio de nombresEspacio de nombres
System.Web.UI.WebControlsSystem.Web.UI.WebControls
![Page 137: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/137.jpg)
Resumen de controles del Resumen de controles del servidorservidor Controles Web Forms en el servidorControles Web Forms en el servidor Familias de controles en el ServidorFamilias de controles en el Servidor
HTMLHTML ASP.NETASP.NET ValidationValidation UserUser MobileMobile
Data BindingData Binding PagePage Class Class
Unión de código y contenidoUnión de código y contenido
![Page 138: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/138.jpg)
Familias de controles del Familias de controles del servidorservidor 1/21/2
Controles HTML del servidorControles HTML del servidor asociados directamente con elementos asociados directamente con elementos
HTMLHTML Atributos HTMLAtributos HTML Ejemplos: Ejemplos: HtmlAnchorHtmlAnchor ( (<a><a>), ), HtmlTableHtmlTable
((<table><table>))
Controles ASP.NET del servidorControles ASP.NET del servidor Controles abstractosControles abstractos
No hay asociacion uno a uno con controles No hay asociacion uno a uno con controles html en el servidor html en el servidor
Detección automática del navegadorDetección automática del navegador Conjunto amplio de controlesConjunto amplio de controles Ejemplo: Ejemplo: TextBoxTextBox ( (<asp:textbox><asp:textbox>))
![Page 139: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/139.jpg)
Familias de controles del Familias de controles del servidorservidor 2/22/2
Controles de validaciónControles de validación Chequeo de la entrada de datos por el Chequeo de la entrada de datos por el
usuariousuario Diferentes tipos de validaciónDiferentes tipos de validación
Entrada requeridaEntrada requerida ComparacionesComparaciones,, chequeo de rangos, matcheo chequeo de rangos, matcheo
de patronesde patrones Definidos por el usuarioDefinidos por el usuario
Controles de UsuarioControles de Usuario Particion y remodelacion de la Particion y remodelacion de la
funcionabilidadfuncionabilidad Extensión .ascxExtensión .ascx Soporta el modelo de objetosSoporta el modelo de objetos
Controles para móvilesControles para móviles
![Page 140: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/140.jpg)
Sintaxis de los Server Sintaxis de los Server ControlsControls Analizando detenidamente la Analizando detenidamente la
sintaxis ASP.NETsintaxis ASP.NET <asp:<asp:controlNamecontrolName attributesattributes /> /> controlNamecontrolName
TextBoxTextBox, , DropDownListDropDownList, etc, etc
attributesattributes Id=controlIDId=controlID runat=serverrunat=server
![Page 141: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/141.jpg)
Trabajando con datos 1/3Trabajando con datos 1/3
SQL y XMLSQL y XML Acceso y manipulación de los datosAcceso y manipulación de los datos
APIs de acceso gestionado a datos APIs de acceso gestionado a datos provistas por el runtimeprovistas por el runtime
Objetos esencialesObjetos esenciales SQLConnectionSQLConnection, , SQLCommandSQLCommand, y , y
DataSetDataSet
Espacios de nombresEspacios de nombres System.DataSystem.Data y y System.Data.SQLSystem.Data.SQL
![Page 142: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/142.jpg)
Trabajando con datosTrabajando con datos 2/32/3
Resumen ADO.NETResumen ADO.NET
Arquitectura de datos Arquitectura de datos desconectadadesconectada
DatasetsDatasets son vistas de datos son vistas de datos completamente relacionadascompletamente relacionadas
XML y XML esquemasXML y XML esquemas
InternetData Object
Dataset
Windows Form
Web Form
B2BXML
![Page 143: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/143.jpg)
Trabajando con datosTrabajando con datos 3/33/3
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>
C#:C#:
ASP.NET:ASP.NET:
![Page 144: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/144.jpg)
Trabajando con la cachéTrabajando con la caché
Mejora el desempeño de la Mejora el desempeño de la aplicación Webaplicación Web
Caché de salidaCaché de salida Almacena y devuelve páginas y Almacena y devuelve páginas y
objetosobjetos Cacheo de páginasCacheo de páginas Cacheo fragmentadoCacheo fragmentado
Reglas de expiradoReglas de expirado APIs de la CacheAPIs de la Cache
Personalizar los principios de la Personalizar los principios de la cachecache
![Page 145: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/145.jpg)
Migración desde ASP Migración desde ASP hacia ASP.NEThacia ASP.NET ASP y ASP.NET pueden coexistir ASP y ASP.NET pueden coexistir
en el mismo servidoren el mismo servidor Hacer uso de las características Hacer uso de las características
ASP.NETASP.NET Para migrar, los ficheros ASP Para migrar, los ficheros ASP
tienen que ser modificadostienen que ser modificados DesempeñoDesempeño
Código Gestionado vs. código sin Código Gestionado vs. código sin gestionargestionar
Asociacion temprana vs. tardeAsociacion temprana vs. tarde
![Page 146: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/146.jpg)
Detalles de la migraciónDetalles de la migración
EstructuraEstructura Bloques de código y directivasBloques de código y directivas
SeguridadSeguridad ASP.NET viene con un modelo de ASP.NET viene con un modelo de
seguridad comprehensivoseguridad comprehensivo
LenguajesLenguajes C#, Visual Basic.NETC#, Visual Basic.NET
Data AccessData Access ADO hacia ADO.NETADO hacia ADO.NET
![Page 147: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/147.jpg)
!!Preguntas!!!!Preguntas!!
![Page 148: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/148.jpg)
Servicios Web Servicios Web XMLXML
![Page 149: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/149.jpg)
ContenidoContenido
Antecedentes.Antecedentes. Definición del concepto “servicio web Definición del concepto “servicio web
XML”.XML”. Características principales.Características principales. Implementación de un “Hello world” Implementación de un “Hello world”
mediante servicios web xml.mediante servicios web xml.
![Page 150: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/150.jpg)
AntecedentesAntecedentes
Component Object Model (COM).Component Object Model (COM). Remote Method Invocation (RMI).Remote Method Invocation (RMI). Common Object Request Broker Common Object Request Broker
Architecture (CORBA). Architecture (CORBA). Internet Inter-ORB Protocol.Internet Inter-ORB Protocol.
No interoperan fácilmente, debido a No interoperan fácilmente, debido a las dependencias de un lenguaje las dependencias de un lenguaje particular o de un sistema operativo o particular o de un sistema operativo o de protocolos específicos de modelos de protocolos específicos de modelos de objetos.de objetos.
![Page 151: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/151.jpg)
Qué es un servicio web XMLQué es un servicio web XML 1/31/3
Diseñado para garantizar la Diseñado para garantizar la interoperabilidad entre las diversas interoperabilidad entre las diversas plataformas de desarrollo de plataformas de desarrollo de aplicaciones existentes hoy en día.aplicaciones existentes hoy en día.
![Page 152: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/152.jpg)
Qué es un servicio web XMLQué es un servicio web XML 2/32/3
Es una unidad de código que puede Es una unidad de código que puede activarse a través del uso de pedidos activarse a través del uso de pedidos HTTP.HTTP.
Permite además que programas Permite además que programas desarrollados en diferentes lenguajes desarrollados en diferentes lenguajes puedan comunicarse entre sí de un puedan comunicarse entre sí de un modo estándar.modo estándar.
![Page 153: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/153.jpg)
Qué es un servicio web XMLQué es un servicio web XML 3/33/3
La llave fundamental de su éxito ha sido La llave fundamental de su éxito ha sido su diseño del uso de un modelo de su diseño del uso de un modelo de mensajes basados en texto para mensajes basados en texto para implementar la comunicación.implementar la comunicación.
![Page 154: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/154.jpg)
Características principalesCaracterísticas principales
Los servicios Web XML solo pueden ser Los servicios Web XML solo pueden ser accedidos vía HTTP.accedidos vía HTTP.
Trabajan en un ambiente sin estado, de Trabajan en un ambiente sin estado, de forma que cada pedido origina un forma que cada pedido origina un nuevo objeto que se crea para nuevo objeto que se crea para satisfacerlo.satisfacerlo.
Solo puede manipular elementos que Solo puede manipular elementos que puedan ser expresados totalmente en puedan ser expresados totalmente en XML.XML.
![Page 155: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/155.jpg)
““Hello world” en C#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;
}
}
![Page 156: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/156.jpg)
.NET Remoting.NET Remoting
![Page 157: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/157.jpg)
ContenidoContenido
Definición de .NET Remoting.Definición de .NET Remoting. Características principales.Características principales. ““Hello world”.Hello world”.
![Page 158: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/158.jpg)
Definición de .NET RemotingDefinición de .NET Remoting
Es un sistema genérico cuyo objetivo Es un sistema genérico cuyo objetivo principal es la comunicación entre principal es la comunicación entre diferentes aplicaciones.diferentes aplicaciones.
Los objetos .NET son expuestos a Los objetos .NET son expuestos a procesos remotos, de forma que se procesos remotos, de forma que se potencia la comunicación potencia la comunicación interprocesos.interprocesos.
![Page 159: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/159.jpg)
Definición de .NET RemotingDefinición de .NET Remoting
Las aplicaciones que participan en la Las aplicaciones que participan en la comunicación pueden estar en comunicación pueden estar en diferentes máquinas de la misma red e diferentes máquinas de la misma red e inclusive en diferentes máquinas en inclusive en diferentes máquinas en distintas redes.distintas redes.
![Page 160: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/160.jpg)
Características principalesCaracterísticas principales
Elimina las dificultades de DCOM Elimina las dificultades de DCOM mediante el soporte de diferentes mediante el soporte de diferentes formatos de protocolos de transporte y formatos de protocolos de transporte y de comunicación.de comunicación.
![Page 161: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/161.jpg)
Características principalesCaracterísticas principales
Pueden ser usados mediante cualquier Pueden ser usados mediante cualquier protocolo.protocolo.
Soporta opciones de manejo de estado Soporta opciones de manejo de estado y callbacks.y callbacks.
Se basa en la existencia de un common Se basa en la existencia de un common language runtime que contenga las language runtime que contenga las informaciones sobre los tipos usados.informaciones sobre los tipos usados.
![Page 162: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/162.jpg)
Características principalesCaracterísticas principales
Requiere que los clientes sean Requiere que los clientes sean construidos usando Microsoft.NET o construidos usando Microsoft.NET o cualquier otro framework que cualquier otro framework que soporte .NET Remoting (un ambiente soporte .NET Remoting (un ambiente homogéneo).homogéneo).
![Page 163: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/163.jpg)
Características principalesCaracterísticas principales
Los objetos remotos son accesibles Los objetos remotos son accesibles mediante los “canales”.mediante los “canales”.
Existen dos tipos “TcpChannel” y Existen dos tipos “TcpChannel” y “HttpChannel”.“HttpChannel”.
![Page 164: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/164.jpg)
Hello worldHello worldCreando el objeto remoto.Creando el objeto remoto.
using System;using System;
using System.Runtime.Remoting;using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;using System.Runtime.Remoting.Channels.Tcp;
namespace CodeGuru.Remotingnamespace CodeGuru.Remoting
{ {
public class SampleObject : MarshalByRefObject public class SampleObject : MarshalByRefObject
{ {
public SampleObject() public SampleObject()
{{
} }
public string HelloWorld() public string HelloWorld()
{{
return "Hello World!"; return "Hello World!";
}}
}}
} }
![Page 165: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/165.jpg)
Hello worldHello worldCreando el servidor para exponer el objeto remoto.Creando el servidor para exponer el objeto remoto.
public static int Main(string [] args) public static int Main(string [] args) {{ // Create an instance of a channel// Create an instance of a channel TcpChannel channel = new TcpChannel(8080);TcpChannel channel = new TcpChannel(8080); ChannelServices.RegisterChannel(channel);ChannelServices.RegisterChannel(channel); // Register as an available service with the name HelloWorld// Register as an available service with the name HelloWorld RemotingConfiguration.RegisterWellKnownServiceType( RemotingConfiguration.RegisterWellKnownServiceType( typeof(SampleObject), typeof(SampleObject), "HelloWorld", "HelloWorld", WellKnownObjectMode.SingleCall );WellKnownObjectMode.SingleCall );
System.Console.WriteLine("Press the enter key to exit...");System.Console.WriteLine("Press the enter key to exit..."); System.Console.ReadLine();System.Console.ReadLine(); return 0;return 0; }}
![Page 166: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/166.jpg)
Hello worldHello worldCreando el cliente para usar el objeto remoto.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; } }
![Page 167: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/167.jpg)
ICE. Internet ICE. Internet Communication Communication EngineEngine
![Page 168: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/168.jpg)
ContenidoContenido
Definición de ICE.Definición de ICE. Características principales.Características principales. ““Hello world”.Hello world”.
![Page 169: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/169.jpg)
WebParts y WebParts y personalización personalización en ASP.NET 2.0en ASP.NET 2.0
![Page 170: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/170.jpg)
ContenidoContenido
Definición de Webpart.Definición de Webpart. Descripción de las clases nuevas. Descripción de las clases nuevas.
WebPartManager, WebPartManager, SqlPersonalizationProvider, SqlPersonalizationProvider,
Definición de un portal configurable y Definición de un portal configurable y personalizablepersonalizable
![Page 171: “Plataforma Microsoft.NET. Conceptos, Partes Componentes y Programación” Profesor: Prof. Julio César Camps](https://reader035.vdocuments.net/reader035/viewer/2022062322/5665b4421a28abb57c907cc7/html5/thumbnails/171.jpg)
!!Preguntas!!!!Preguntas!!