1 / 171

“Plataforma Microsoft .NET.

“Plataforma Microsoft .NET. . Conceptos, Partes Componentes y Programación”. Profesor: Prof. Julio César Camps. Breve descripción del Framework .NET y su lenguaje estrella “C#”. Contenido. Análisis retrospectivo Descripción del framework .NET Breve descripción del C# Sumario Preguntas.

sargent
Download Presentation

“Plataforma Microsoft .NET.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

  10. Qué es .NET?

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

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

  13. Data & XML Diagrama del .NET Framework BaseClasses Web Services UserInterface Common Language Runtime Base Frame

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  47. Operadores 2/2 • No similares a C: • isPrueba el tipo en tiempo de ejecución • asConvierte un valor a un tipo especificado • typeofDevuelve el tipo en tiempo de ejecución

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

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

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

More Related