Charla Microsoft .NET un mundo de posibilidades Julio Cesar Pupo Vega CIDS OBJETIVOS “El que quiera tener razón y habla solo, de seguro logrará su objetivo.” Johann Wolfgang Goethe Presentar una introducción de la plataforma de Microsoft .NET, puntualizando en su arquitectura de Framework, evolución, principios básicos, Además posibilidades laborales de este. Tópicos “¡Confiamos demasiado en los sistemas, y muy poco en los hombres!” Benjamin Disraeli • • • • • • • • Introducción a Microsoft .NET. Historia. Java Vs .Net Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales Ventajas de .NET Herramientas de Desarrollo .NET Que no es .Net Antes de decir qué es .NET, es conveniente aclarar qué NO es .NET: • .NET no es un sistema operativo, como si lo es Microsoft Windows en sus distintas versiones. • .NET no es un Lenguaje de Programación: si bien la plataforma Microsoft .NET incluye lenguajes de programación de aplicaciones, su concepto es más amplio y va más allá de éstos. • .NET no es un Entorno de Desarrollo: si bien la plataforma Microsoft .NET incluye entornos de desarrollo integrados (IDEs), su concepto es más amplio y va más allá de éstos. • .NET no es un servidor de aplicaciones (Application Server) • .NET no es un producto empaquetado que se pueda comprar como tal, sino que es una plataforma que engloba distintas aplicaciones, servicios y conceptos y que en conjunto permiten el desarrollo y la ejecución de aplicaciones. Que si es .Net • Plataforma de Desarrollo compuesta de – Entorno de Ejecución (CLR - Common Language Runtime) – Bibliotecas de Funcionalidad (Class Library – ASP.Net, XML, Windows Form, ADO.Net , etc). – Lenguajes de Programación(VB.Net, C#, F#, J#, etc) – Compiladores – Herramientas de Desarrollo (IDE & Tools) – Guías de Arquitectura • La evolución de la plataforma COM Características Cuatro características corresponden al juez: Escuchar cortésmente, responder sabiamente, ponderar prudentemente y decidir imparcialmente. Socrates • Unifica los modelos de programación • Simplifica aún más el desarrollo • Provee un Entorno de Ejecución robusto y seguro • Es independiente del lenguaje de programación • Interoperabilidad con código existente • Simplifica la instalación y administración de las aplicaciones • Es Extensible Características (2/2) Cuatro características corresponden al juez: Escuchar cortésmente, responder sabiamente, ponderar prudentemente y decidir imparcialmente. Socrates • • • Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardware Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas Microsoft Se integra fácilmente con aplicaciones desarrolladas en otras plataformas ->(XML, HTTP, SOAP, WSDL y UDDI.) .NET como evolución de COM • Entorno de Ejecución (Runtime) – COM: Windows – .NET: Common Language Runtime • Librerías de Funcionalidad – COM: Algunas (ADO, FSO, etc.) – .NET: Muy extensa (.NET Framework Class Library) • Lenguajes de Programación – COM: VB, C++, VFP, ASP, J++ – .NET: Common Language Specification • Entorno de Desarrollo (IDE) – COM: Uno para cada lenguaje – .NET: Uno independiente del lenguaje (VS.NET) Historia Funcionalidad “La historia es la ciencia de lo que nunca sucede dos veces.” Paul Ambroise Valéry Windows 3.0 MFC COM Win32 Win16 1980 1990 2000…. Historia “La historia es la ciencia de lo que nunca sucede dos veces.” Paul Ambroise Valéry Historia “La historia es la ciencia de lo que nunca sucede dos veces.” Paul Ambroise Valéry Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP 2000 2001 Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C# ADO.NET Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J# 2002 2003 2005 Visual Studio 2005 .NET Framework 2.0 .NET Compact Framework 2.0 Visual Studio 2008 .NET Framework 3.5 .NET Compact Framework 3.5 LINQ ADO.NET Entity Framework 2008 2010 Visual Studio 2010 .NET Framework 4.0 .NET Compact Framework 4.0 Parellel LINQ Task Parallel Library ¿Qué es el .NET Framework? • Paquete de software fundamental de la plataforma .NET. Incluye: – Entorno de Ejecución (Runtime) – Bibliotecas de Funcionalidad (Class Library) • Se distribuye en forma libre y gratuita • Existen tres variantes principales: – .NET Framework Redistributable Package – .NET Framework SDK – .NET Compact Framework • Está instalado por defecto en Windows 2003 Server o superior Arquitectura del .NET Framework? La arquitectura es una profesión peligrosa. Rem Koolhaas Aplicación .NET Lenguajes de Programación Librerías de Funcionalidad Entorno de Ejecución Sistema Operativo (Familia Windows) Entorno de Desarrollo Arquitectura del .NET Framework? La arquitectura es una profesión peligrosa. Rem Koolhaas C++ C# J# … Common Language Specification .NET Framework Redistributable Windows Forms ADO.NET y XML Base Class Library Common Language Runtime Windows COM+ Services .NET Framework ASP.NET Class Library .NET Framework SDK VB CLR – Componentes Internos CLR – Proceso de Compilación Assembly (MSIL) Código Fuente Compilador Cualquier lenguaje .NET Biblioteca o Ejecutable CLR - MSIL .method private hidebysig static void Main(string[] args) cil managed { .entrypoint maxstack 8 L_0000: ldstr "Hola Mundo" L_0005: call void [mscorlib]System.Console::WriteLine(string) L_000a: ret } ¿Qué es un “Assembly”? Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET Descripción de Tipos MiBiblioteca.DLL Metadata Recursos Código Compilado MSIL Clases Clases Base Interfaces Implementadas Atributos de las Clases Métodos de las Clases Manifiesto del Assembly Nombre Versión Cultura Otros Assemblies Permisos de Seguridad Tipos Externos .NET Framework Class Library • Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluídos en el .NET Framework • Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACES • Los tipos son INDEPENDIENTES del lenguaje de desarrollo • Es extensible y totalmente orientada a objetos .NET Framework Class Library El namespace raíz es SYSTEM System.Web System.Windows.Forms Services Description UI HtmlControls Discovery WebControls Protocols Design ComponentModel System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml OleDb Odbc XSLT Common SqlClient XPath Serialization System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization Common Language Specification (CLS) El lenguaje es el bien más precioso y a la vez el más peligroso que se ha dado al hombre. Friedrich Hölderlin • Especificación que estandariza una serie de características soportadas por el CLR • Contrato entre diseñadores de lenguajes de programación y autores de bibliotecas • Permite la interoperabilidad entre lenguajes • Microsoft provee implementaciones de 5 lenguajes, todos compatibles – – – – – Microsoft Visual Basic .NET Microsoft Visual C# .NET Microsoft Visual J#.NET Microsoft Visual C++.NET Microsoft Visual F# .NET Common Language Specification (CLS) El resto de la industria y el sector académico han desarrollado más de 20 lenguajes compatibles con la especificación CLS C++.NET Delphi Pascal Visual Basic.NET Java Haskell Oberon Mondrian Cobol PHP Fortran Perl LISP Smalltalk APL C# F# J# Python JavaScript RPG Prolog Eiffel Objective Caml RUGBY ML Scheme Mercury CLS - Elección del lenguaje • .NET posee un único runtime (el CLR) y un único conjunto de bibliotecas para todos los lenguajes • No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft • El lenguaje a utilizar, en gral., dependerá de su experiencia previa con otros lenguajes o de gustos personales – Si conoce Java, Delphi, C++, etc. C# – Si conoce Visual Basic o VBScript VB.NET • Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija Modelo de Ejecución del CLR Código Fuente VB.NET Compilador VB.NET Código Manejado Assembly Código MSIL C# C++.NET Compilador C# Compilador C++ .NET Assembly Código MSIL Assembly Código MSIL Common Language Runtime Compilador JIT Código Nativo Sistema Operativo (Windows) Componente No Manejado Modelo de Ejecución del CLR System.Data Common SqlClient OracleClient OleDb Odbc SqlTypes System.Xml XSLT Serialization XPath Schema Interoperabilidad Servicios Web XML .NET Framework C# COM INTEROP C++ COM VB Otros... .NET ADO .Net System.Data Common SqlClient OracleClient OleDb Odbc SqlTypes System.Xml XSLT Serialization XPath Schema ADO .Net Escenario Conectado • Un entorno conectado es uno en el cual los usuarios están constantemente conectados a la fuente de datos • Ventajas: – Mayor seguridad – Mejor control de concurrencia – Los datos se mantienen actualizados • Desventajas: – Se requiere una conexión constante (consume recursos del servidor) – Escalabilidad Animación ADO.Net Duda siempre de ti mismo, hasta que los datos no dejen lugar a dudas. Louis Kronenberg ADO .Net Escenario Desconectado • En un entorno desconectado, una parte de los datos del repositorio central se copia y modifica en forma local, para luego sincronizarse con éste. • Ventajas – Se puede trabajar en forma independiente – Mayor escalabilidad y performance • Desventajas – Los datos no están sinconizados – Resolución manual de conflictos ADO.NET- Clases más comunes Base de Datos Maneja la conección a una base de datos Ejecuta comandos contra una base de datos XxxConnection Intercambia datos entre un dataset y una base de datos XxxCommand Copia local de datos relacionales Provee acceso a datos read-only, Forward-only XxxDataAdapter XxxDataReader DataSet ADO.NET- DataSet DataSet DataColumn DataTable DataRow Relaciones Esquema XML Restricciones ADO.NET - Soporte a XML <XML> DocumentNavigator XmlTextWriter XmlReader XmlTextReader XmlValidatingReader XmlDocument XmlNodeReader APP Windows System.WinForms Design ComponentModel System.Drawing Drawing2D Printing Imaging Text Aplicaciones Web: ASP.NET System.Web Services Description UI HtmlControls Discovery WebControls Protocols Caching Security Configuration SessionState ¿Qué es ASP.NET MVC? • ASP.NET MVC es, básicamente, una implementación del patrón Modelo - Vista Controlador (MVC) para tecnología ASP.NET. El patrón MVC no es ni nuevo (data de finales de los años 70) ni está pensado para aplicaciones web, pero en realidad en aplicaciones web encaja perfectamente. MVC Brevemente podemos decir que el patrón MVC separa la lógica (y acceso a datos) de una aplicación de su presentación, usando 3 componentes: • Modelo: Representa las reglas de negocio de la aplicación (y el acceso a datos subyacente). • Vistas: Representan la presentación de la aplicación. • Controlador: Actúan de intermediario entre el usuario y el Modelo y las Vistas. Recogen las peticiones del usuario, interaccionan con el modelo y deciden que vista es la que debe mostrar los datos. MVC Arquitectura de ADO.NET Entity Framework Soporte para consultas vía LINQ denominado LINQ to Entities Un objeto para generar consultas dentro del modelo Object Services Un modelo de objetos para acceder a la capa conceptual Lenguaje denominado eSQL o Entity SQL semejante a SQL pero con capacidades Proveedor deadicionales acceso a datos semejante a SqlClient Niveles de abstracción Nivel conceptual descrito por un lenguaje denominado Conceptual Schema Definition Language (CSDL) Un lenguaje de mapeado de esquema lógico a esquema conceptual (MSL) Nivel Lógico descrito por un lenguaje denominado Store Schema Definition Language (SSDL) Base de Datos relacional Microsoft Silverlight Silverlight conserva un modo de gráficos de sistema, similar al del WPF e integra en un solo complemento multimedia, gráficos de computador, animaciones e interactividad. La base de su programación es XAML y el acceso a los objetos esta dado por C# y Visual Basic (aunque la versión 1.0 trabajaba a partir de JavaScript). El XAML puede ser usado para marcar los gráficos vectoriales y las animaciones Java - .Net Java arranco siendo un lenguaje tremendo y bastante "revolucionario". Vale la pena aclarar que tiene ya mas de 15 años. .NET, como suele hacer Microsoft, llego después pero (a mi criterio) le paso el trapo ampliamente. La idea de tener un framework atrás que te permita compilar código en muchísimos lenguajes y te lo convierta a algo común es increíble. Herramientas de Desarrollo - Free Casarse es la forma más cara de tener sexo gratis. Anónimo • • • • Visual Studio 2005-2008-2010 Express Editions SQL Server 2005 - 2008 Express WEB Matrix MONO Herramientas de Desarrollo Testers Arquitectos Desarrolladores Consultores Profesionales VB6 Devs Part-Timers Hobbyists Estudiantes Entusiastas Novatos Ejemplo de Paginas • • • • • • • • http:// www.semana.com http://www.ecopetrol.com.co http:// www.msn.com http:// www.paginasamarillas.com http://www.elempleo.com http://www.everis.com http://www.grupobancolombia.com http://www.caracoltv.com/ Expectativas Laborales El ocio es la pérdida del salario. Francisco de Quevedo y Villegas Gracias! El aburrimiento es la enfermedad de las personas afortunadas; los desgraciados no se aburren, tienen demasiado que hacer. A. Dufresnes Cids@unimagdalena.edu.co