Tecnologia Microsoft

4,432 views
4,248 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
4,432
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
187
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Tecnologia Microsoft

  1. 1. Tecnología Microsoft.Net<br />Bernardo Antonio Robelo Jirón<br />Ingeniero en Sistemas<br />
  2. 2.
  3. 3. Antes de comenzar<br />Presentación.<br />Ocupación Actual.<br />Experiencia con el uso de .NET y VB.NET<br />Expectativas.<br />Metodología del curso.<br />
  4. 4. Objetivos del curso<br />Tecnología .NET<br />Net Framework 3.5<br />ASP.NET<br />ADO.NET<br />LINQ<br />WCF Y WPF<br />SilverLight 2.0<br />Lenguaje Visual Basic .NET<br />
  5. 5. Agenda del Curso<br />Introducción a .NET ( Estructuras del Lenguaje)<br />SQL Server ( Transact – SQL )<br />Acceso a Datos ( ADO.NET)<br />Acceso a Datos (LINQ)<br />ControlesAvanzados<br />WPF<br />Crystal Report<br />ASP.NET <br />
  6. 6. Elementos Adicionales<br />XHTML<br />JavaScript<br />CSS<br />XML<br />XAML<br />
  7. 7. Tecnología Microsoft .NET <br />
  8. 8. Objetivo<br />Presentar una introducción a la plataforma de desarrollo Microsoft .NET, describiendo sus principios básicos de funcionamiento, su arquitectura de componentes y sus principales bibliotecas reutilizables, mostrando además las novedades introducidas en la última versión de la misma.<br />
  9. 9. Servicios<br />Componentes<br />Funcionalidad<br />Windows3.0<br />MFC<br />APIs<br />COM<br />Win32<br />Win16<br />1980<br />1990<br />2000<br />Paradigmas de Programación<br />
  10. 10. Que tal un poquito de historia?<br />
  11. 11. Primera GeneraciónTodos con las Mainframes<br />Programación orientada a uso de terminales tontas, con cerebros un poco “más inteligentes”.<br />Integrar aplicaciones era MUY difícil (procesos batch, importación-exportación, etc. etc.).<br />Programación en lenguajes de “Primera” (Generación). COBOL, Fortran, Pascal, C, etc.<br />No cualquiera podía escribir aplicaciones.<br /> No cualquiera tenía acceso a<br /> poder de cómputo.<br />“Al final de los tiempos,<br /> solo sobrevivirán las<br /> cucarachas y COBOL”<br /> ¿Será cierto?<br />
  12. 12. Segunda Generación”Aquí se rompió una taza...”<br />Después de años de pensar de manera centralizada, a “alguien” se le ocurrió dotar de poder para ser independientes a esas terminales tontas.<br />Ahora ya el uso de cómputo no era privilegio de unos pocos.<br />Compartiendo el poder de los equipos de computo con el poder de los equipos de escritorio,<br /> se tenían aplicaciones más potentes.<br />Se podía tener aplicaciones en una sola<br /> computadora (stand alone).<br />Se hizo extensivo el uso de<br /> lenguajes tipo Clipper, FoxPro<br />COBOL seguía ¡vivito y coleando!<br />
  13. 13. Tercera GeneraciónGeneración Internet... ¡Todos a la Red!<br />Al surgir el “boom” de Internet, se sigue mezclando el poder de las maquinas de escritorio con el uso de servidores potentes para darles servicio.<br />Aparecen nuevos lenguajes: Java, <br /> Visual Basic, etc.<br />Aunque ya no es protagonista,<br /> COBOL continúa entre nosotros.<br />En esta generación es la actual.<br />
  14. 14. Que es .NET?<br />
  15. 15. Tecnología .Net<br />.NET no es un Sistema Operativo<br />.NET no es un Lenguaje de Programación<br />.NET no es un Entorno de Desarrollo<br />.NET no es un Servidor de Aplicaciones<br />.NET no es un producto empaquetado que se pueda comprar como tal<br />
  16. 16. ¿Qué es .NET?<br />Plataforma de Desarrollo compuesta de<br />Entorno de Ejecución (Runtime)<br />Bibliotecas de Funcionalidad (Class Library)<br />Lenguajes de Programación<br />Compiladores<br />Herramientas de Desarrollo (IDE & Tools)<br />Visual Studio 2005. Visual Studio 2008.<br />Visual Studio 2010.<br />Guías de Arquitectura<br />La evolución de la plataforma COM<br />
  17. 17. Plataforma .NET <br />
  18. 18. Experiencias<br />Herramientas<br />Clientes<br />Servidores<br />Servicios<br />¿Cuales son los Componentes de .NET?<br />Experiencias .NET<br />Clientes .NET<br />Servicios .NET<br />Servidores .NET<br />Herramientas .NET<br />
  19. 19. Características de .NET<br />Plataforma de ejecución intermedia<br />100% Orientada a Objetos<br />Multilenguaje<br />Plataforma Empresarial de Misión Crítica<br />Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardware<br />Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas Microsoft<br />Se integra fácilmente con aplicaciones desarrolladas en otras plataformas<br />
  20. 20. Aplicación .NET<br />Entorno de Desarrollo<br />Lenguajes de Programación<br />Librerías de Funcionalidad<br />Entorno de Ejecución<br />Sistema Operativo (Familia Windows)<br />Arquitectura .Net<br />Microsoft .NET<br />
  21. 21. .NET como evolución de COM<br />Entorno de Ejecución (Runtime)<br />COM: Windows<br />.NET: Common Language Runtime<br />Librerías de Funcionalidad<br />COM: Algunas (ADO, FSO, etc.)<br />.NET: Muy extensa (.NET Framework Class Library)<br />Lenguajes de Programación<br />COM: VB, C++, VFP, ASP, J++<br />.NET: Common Language Specification<br />Entorno de Desarrollo (IDE)<br />COM: Uno para cada lenguaje<br />.NET: Uno independiente del lenguaje (VS.NET)<br />
  22. 22. .NET Framework<br />
  23. 23. Que es un Framework?<br />
  24. 24. Un Framework es, básicamente, un conjunto de clases que interactúan en forma cooperativa para dar solución a una determinada necesidad. <br />.NET FrameworkQue es un Framework?<br />
  25. 25. .NET FrameworkQue es un Framework?<br />¿Quedo claro?<br />
  26. 26. .NET FrameworkQue es un Framework?<br />Suponga que usted necesita construir un edificio…<br />
  27. 27. .NET FrameworkQue es un Framework?<br />Imagine que a usted le tocara construir cada una de las partes…<br />
  28. 28. .NET FrameworkQue es un Framework?<br />¿Cuánto tiempo cree que tardaría en terminar?<br />
  29. 29. Lo mismo sucede con el software, si cada vez tuviéramos que construir todos los componentes que lo conforman, tardaríamos mucho más tiempo…<br />.NET FrameworkQue es un Framework?<br />
  30. 30. ¿Qué es un Framework?<br /><ul><li>Marco de trabajo
  31. 31. Puede estar compuesto por
  32. 32. Librerías de clases
  33. 33. Documentación
  34. 34. Ayuda
  35. 35. Ejemplos
  36. 36. Tutoriales
  37. 37. Etc.</li></li></ul><li>¿Qué es .NET Framework? <br />Herramientas de Desarrollo<br />Clientes<br />Aplicaciones Web ASP.NET<br />Bases de Datos<br />Servicios Web XML<br />Aplicaciones de Usuario<br />.NET Framework<br />
  38. 38. Net Framework<br />Paquete de software fundamental de la plataforma .NET. Incluye:<br />Entorno de Ejecución (Runtime)<br />Bibliotecas de Funcionalidad (Class Library)<br />Se distribuye en forma libre y gratuita<br />Existen tres variantes principales:<br />.NET Framework RedistributablePackage<br />.NET Framework SDK<br />.NET Compact Framework <br />Está instalado por defecto en Windows 2003 Server o superior<br />
  39. 39. ¿Dónde instalar el .NET Framework?<br />Servidor<br />Cliente<br />ü*<br />ü<br />Aplicación de <br />Escritorio<br />ü<br />Aplicación Web<br />ü*<br />ü<br />Aplicación de Consola<br />.NET Compact Framework<br />Aplicación<br />Móvil<br />* Sólo si la aplicación es distribuida<br />
  40. 40. Línea del tiempo de .NET<br />Visual Studio 6.0<br />Visual Basic<br />VBA<br />Visual FoxPro<br />VBScript<br />C++<br />J++<br />JScript<br />ASP<br />Visual Studio .NET 2003<br />.NET Framework 1.1<br />.NET Compact Framework<br />J#<br />Visual Studio 2008<br />.NET Framework 3.0 – 3.5<br />.NET Compact Framework<br />2000 2001 2002 2003 2004 2005 2006 y más 2008 2010<br />Visual Studio .NET 2002<br />.NET Framework 1.0<br />Visual Basic .NET<br />C#<br />Visual Studio 2005<br />.NET Framework 2.0<br />.NET Compact Framework 2.0<br />Visual Studio 2010<br />.NET Framework 4.0<br />
  41. 41. Evolucion del .NET Framework<br />
  42. 42. Arquitectura del .NET Framework<br />VB<br />C++<br />C#<br />J#<br />…<br />Common Language Specification<br />ASP.NET<br />Windows Forms<br />.NET Framework SDK<br />.NET Framework <br />Class Library<br />.NET Framework Redistributable<br />ADO.NET y XML<br />Base Class Library<br />Common Language Runtime<br />Windows<br />COM+ Services<br />
  43. 43. Quees el .NET Framework 3.5 ?<br />
  44. 44. 2.0<br />.NET Framework 2.0<br />VB<br />C#<br />J#<br />IronPhyton<br />Ruby<br />…<br />3.0<br />.NET Framework 3.0<br />CLS y CTS<br />ASP.NET<br />WPF<br />WCS<br />WF & WCF <br />Enhancements<br />Dynamic Data<br />ADO.NET<br />LINQ<br />Additional <br />Enhancements<br />Entity <br />Framework<br />WCF<br />WF<br />Add-in <br />Framework<br />WindowsForms<br />MVC<br />Data Services<br />Biblioteca de Clases<br />Common Language Runtime (CLR)<br />Windows 7, Windows Vista,Windows XP,Windows Server 2008<br />Microsoft .NET Framework 3.5<br />
  45. 45. Common Language Runtime<br />
  46. 46. CLR – Common Languaje RuntimeArquitecturas de Ejecución de Aplicaciones<br />
  47. 47. CLR – Common Language Runtime<br />El CLR es el motor de ejecución (runtime) de .NET<br />Características<br />Compilación Just-In-Time (JIT)<br />Gestión automática de memoria (Garbage Collector)<br />Gestión de errores consistente (Excepciones)<br />Ejecución basada en componentes (Assemblies)<br />Gestión de Seguridad<br />Multithreading<br />
  48. 48. CLR – Componentes Internos<br />
  49. 49. Assembly<br /> (MSIL)<br />Compilador<br />Bibliotecao Ejecutable<br />CLR – Proceso de Compilación<br />CódigoFuente<br />Cualquier lenguaje .NET<br />
  50. 50. Demo<br />Primer vistazo a .Net<br />Desarrollar nuestra aplicación “HelloWorld”<br />
  51. 51. Microsoft Intermediately Language<br />
  52. 52. Descripción de Tipos<br />Clases<br />Clases Base<br />Interfaces Implementadas<br />Atributos de las Clases<br />Métodos de las Clases<br />MiBiblioteca.DLL<br />Metadata<br />Manifiesto del Assembly<br />Código CompiladoMSIL<br />Nombre<br />Versión<br />Cultura<br />Recursos<br />Otros Assemblies<br />Permisos de Seguridad<br />Tipos Externos<br />Assembly<br />
  53. 53. Assemblies - Aplicaciones .NET<br />Uno o más Assemblies<br />Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?<br />El Class Loader busca en el directorio local (preferido)<br />Global Assembly Cache (GAC)<br />Diferentes aplicaciones pueden usar diferentes versiones<br />Actualizaciones más simples<br />Desinstalación más simple<br />
  54. 54. .NET Framework Class Library<br />Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluídos en el .NET Framework<br />Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACES<br />Los tipos son INDEPENDIENTES del lenguaje de desarrollo<br />Es extensible y totalmente orientada a objetos<br />
  55. 55. .NET Framework Class Library<br />System.Web<br />System.Windows.Forms<br />Services<br />UI<br />Design <br />ComponentModel<br />Description<br />HtmlControls<br />Discovery<br />WebControls<br />Protocols<br />System.Drawing<br />Caching <br />Security<br />Drawing2D <br />Printing<br />Configuration<br />SessionState<br />Imaging<br />Text<br />System.Data<br />System.Xml<br />OleDb<br />Odbc<br />XSLT<br />Serialization<br />Common<br />SqlClient<br />XPath<br />System <br />Collections<br />IO<br />Security<br />Runtime<br />InteropServices<br />Configuration<br />Net<br />ServiceProcess<br />Remoting<br />Diagnostics<br />Reflection<br />Text<br />Serialization<br />Globalization<br />Resources<br />Threading<br />
  56. 56. Common Language Specification (CLS)<br />Especificación que estandariza una serie de características soportadas por el CLR<br />Contrato entre diseñadores de lenguajes de programación y autores de bibliotecas<br />Permite la interoperabilidad entre lenguajes<br />Microsoft provee implementaciones de 4 lenguajes, todos compatibles con CLS<br />Microsoft Visual Basic .NET<br />Microsoft Visual C# .NET<br />Microsoft Visual J#.NET<br />Microsoft Visual C++.NET<br />
  57. 57. Common Language Specification (CLS)<br />El resto de la industria y el sector académico han desarrollado más de 20 lenguajes compatibles con la especificación CLS<br />C#<br />Visual Basic.NET<br />J#<br />C++.NET<br />Perl<br />Java<br />JavaScript<br />PHP<br />Delphi<br />Python<br />Pascal<br />Haskell<br />RPG<br />LISP<br />Prolog<br />Mondrian<br />Eiffel<br />ML<br />Oberon<br />Smalltalk<br />Scheme<br />Cobol<br />Fortran<br />Mercury<br />Objective Caml<br />APL<br />
  58. 58. CLS - Elección del lenguaje<br />.NET posee un único runtime (el CLR) y un único conjunto de bibliotecas para todos los lenguajes<br />No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft<br />El lenguaje a utilizar, en gral., dependerá de su experiencia previa con otros lenguajes o de gustos personales<br />Si conoce Java, Delphi, C++, etc.  C#<br />Si conoce Visual Basic o VBScript  VB.NET<br />Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija<br />
  59. 59. Modelo de Ejecución del CLR<br />Código<br />Fuente<br />VB.NET<br />C++.NET<br />C#<br />Componente<br />No Manejado<br />Compilador <br />VB.NET<br />Compilador<br />C#<br />Compilador<br />C++ .NET<br />Código <br />Manejado<br />Assembly<br />Código MSIL<br />Assembly<br />Código MSIL<br />Assembly<br />Código MSIL<br />Common Language Runtime<br />Compilador JIT<br />Código Nativo<br />Sistema Operativo (Windows)<br />
  60. 60. Desarrollo<br />Assembly en <br />la máquina<br />destino<br />Instalación<br />Assembly<br />Class Loader<br />Assembly<br />Loader<br />Compilador<br />JIT<br />Seguridad<br />Garbage Collector<br />.exe Nativo<br />+<br />Tabla GC <br />Code Manager<br />Manejador Excepciones<br />Soporte MultiThread<br />COM Interop<br />Debug Engine<br />Instalación<br />Policy<br /><?xml version="1.0" encoding="utf-8" ?><br /><configuration><br /> <mscorlib><br /> <security><br /> <policy><br /> <PolicyLevel version="1"><br /> <CodeGroup class="UnionCodeGroup"<br /> version="1"<br /> PermissionSetName="Nothing"<br /> Name="All_Code"<br /> Description="Code group grants no permissions and forms the root of the code group tree."><br /> <IMembershipCondition class="AllMembershipCondition"<br /> version="1"/><br /> <CodeGroup class="UnionCodeGroup"<br /> version="1"<br /> PermissionSetName="FullTrust"<br />Ejecución<br />Modelo de Ejecución del CLR<br />
  61. 61. Ventajas de .NET<br />Unifica los modelos de programación<br />Simplifica aún más el desarrollo<br />Provee un Entorno de Ejecución robusto y seguro<br />Es independiente del lenguaje de programación<br />Interoperabilidad con código existente<br />Simplifica la instalación y administración de las aplicaciones<br />Es Extensible<br />
  62. 62. API consistente mas allá del lenguaje o del modelo de programación<br />.NET Framework<br />Basado en Servidor,<br />UI Embebido en el código<br />OOP, <br />Potencia,<br />Acceso a bajo nivel<br />Desarrollo Rapido,<br />Componentes,<br />Event Driven<br />ASP<br />MFC/ATL (C++)<br />Visual Basic<br />Windows API<br />Unificando los Modelos<br />
  63. 63. Desarrollo Simplificado<br />Alto nivel de abstracción<br />No mas accesos COM a bajo nivel<br />Orientado a Objetos desde el Núcleo<br />Sistema de tipos unificado (CTS)<br />Todo es un objeto, no mas variants<br />Componentes de Software<br />Propiedades, métodos, eventos, y atributos incluidos en la construcción de clases<br />API organizada en forma Jerárquica<br />
  64. 64. Entorno de Ejecución Robusto y Seguro<br />Gestión automática de la memoria<br />Todos los objetos son administrados por el Garbage Collector<br />Manejo de Excepciones<br />Fuertemente tipado<br />Solo casteos seguros<br />Inicialización de variables obligatoria<br />Instalación con Cero Impacto<br />No requiere registración en la Registry<br />
  65. 65. Independencia del lenguaje<br />Libertad en la elección del lenguaje<br />Todas las facilidades de la plataforma .NET están disponibles a todos los lenguajes de programación .NET<br />Los componentes de una aplicación .NET pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataforma<br />Herramientas compartidas<br />Debuggers, profilers, analizadores de código, y otras trabajan para todos los lenguajes<br />
  66. 66. Instalación y Administración más simples<br />Unidades de Ensamblado (“Assemblies”)<br />Mínima unidad de distribución, versionado y administración de seguridad de aplicaciones .NET<br />Auto-descriptas a través de un manifiesto (“manifest”)<br />Instalaciones Cero-impacto<br />Aplicaciones y componentes pueden ser compartidas o privadas<br />Versioning<br />Múltiples versiones del mismo componente pueden co-existir, aún en el mismo proceso<br />
  67. 67. Extensibilidad<br />El Framework no es una “caja negra”<br />Sus clases pueden ser extendidas a través del mecanismo de herencia<br />A diferencia de COM, usamos y extendemos las clases en si mismas, no un “wrapper”<br />Herencia entre distintos lenguajes<br />
  68. 68. Interoperabilidad<br />Servicios Web XML<br />.NET Framework<br />.NET<br />C#<br />COM<br />COM INTEROP<br />C++<br />VB<br />Otros...<br />
  69. 69. Además<br />
  70. 70. Moneando<br /><ul><li>El Proyecto MONO es una implementación en código abierto de las herramientas del Framework .NET
  71. 71. Desarrollado por Miguel de Icaza e impulsado por Novell.
  72. 72. Permite ejecutar aplicaciones desarrolladas en .NET sobre las plataformas:
  73. 73. Windows
  74. 74. Linux
  75. 75. MAC OS</li></ul>Proyecto Mono: http://www.go-mono.com/<br />
  76. 76. Y Por Fin…<br />…¿Qué le paso a COBOL?<br /> Pues con la ayuda del .NET Framework, se pudo rescatar esa reliquia (que en realidad es importante por que muchas dependencias importantes aun lo usan). Fujitsu se dio a la tarea de hacer la versión .NET llamada NetCOBOL.<br /> Así que todavía hay COBOL para un buen rato <br />
  77. 77. Gracias <br />Bernardo A. Robelo Jirón<br />Email: bernardo.robelo@gmail.com<br />Blog: bernardorobelo.blogspot.com<br />

×