Download NET Framework
Document related concepts
Transcript
Introducción a .NET Desarrollo Avanzado de Software Tema 13 José Luis Barros Justo Introducción • Microsoft.NET es un conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando durante los últimos años, con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios, que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programación y modelo de componentes con los que hayan sido desarrollados. Características de .NET • .NET es una plataforma Microsoft para Servicios Web XML • Y también: – es una plataforma para el desarrollo y explotación de aplicaciones “gestionadas” (managed) orientadas a objetos – Las aplicaciones .NET se pueden desarrollar en cualquier lenguaje de programación que se ajuste a .NET – .NET soporta un extenso framework de librerías de clases independientes del lenguaje de programación – .NET soporta la creación de componentes auto-describibles – .NET ofrece integración multi-lenguaje, reutilización de componentes, y herencia entre componentes desarrollados en diferentes lenguajes Características de .NET – .NET ofrece un nueva manera de desarrollar aplicaciones de sobremesa usando las clases Windows Forms – .NET ofrece una nueva manera de desarrollar aplicaciones basadas en navegador Web a través de ASP.NET – Las clases ADO.NET proveen una arquitectura para acceso a datos a través de Internet – .NET soporta la creación de Servicios Web XML independientes de la plataforma, a través de SOAP (Simple Object Access Protocol) y WSDL (Web Services Description Language), usando http. La plataforma .NET Internet Visual Studio .NET .NET Framework .NET Enterprise Servers .NET Building Block Services Clientes para la plataforma .NET • La plataforma .NET es compatible con los siguientes dispositivos inteligentes: – PCs portátiles – Estaciones de trabajo – PCs de bolsillo – PDAs – Teléfonos móviles inteligentes – Consolas de juegos – Tablet PCs Componentes de .NET • Microsoft.NET está compuesto de: – Plataforma .NET – .NET Framework SDK – Visual Studio .NET La plataforma Microsoft .NET Visual Studio .NET Internet Orquestación .NET Framework Internet COM+ .NET Enterprise Servers Servicios Building Block Windows Disponible en la actualidad Con mejoras .NET Nuevas capacidades Plataforma .NET • El concepto en el que se basa .NET no es nuevo. • Java y su entorno de ejecución (JVM) ya utilizan el concepto de encapsulamiento del sistema operativo para permitir la interoperabilidad entre diferentes sistemas operativos. Plataforma .NET ASP.NET Servicios Web Windows Forms .NET Framework Base Classes Common Language Runtime Plataforma .NET • Componentes: – Common Language Runtime(CLR): Entorno de ejecución de la plataforma. – .NET Framework Base Classes o FCL (Framework Class Library): Añaden funcionalidad. – ASP.NET: Versión .Net de ASP. Incluye los servicios Web. – Windows Forms Common Language Runtime • Un Runtime no es más que un entorno en el que se ejecutan los programas. • De esta forma, el CLR es el entorno donde se ejecutarán las aplicaciones .NET que han sido compiladas a un lenguaje común llamado Microsoft Intermediate Language(MSIL). Common Language Runtime – El proceso de compilación produce un fichero ejecutable en Windows al que se denomina portable executable (PE) – CLR sólo ve IL, por lo que se puede reemplazar el compilador JIT para usar un nuevo lenguaje Código fuente C#, Visual Basic... Compilador Código intermedio MSIL(Microsoft Intermediate Language) CLR Código nativo Intel 8086, Windows, Solaris... Runtime de lenguaje común (Common Language Runtime) Soporte de biblioteca de clases de .NET Framework Soporte de subprocesos COM Marshaler Corrector de tipos Administrador de excepciones Motor de seguridad Motor de depuración MSIL para compiladores nativos Gestor de código Cargador de clases Recolector de elementos no utilizados Componentes del .NET Framework ASP .NET Formularios y Servicios Web Interfaz de usuario ADO.NET: Datos y XML Biblioteca de clases del .NET Framework Common Language Runtime Descripción del .NET Framework C++ C# J# Common Language Specification .NET Framework … Visual Studio .NET Visual Basic .NET y código gestionado • Las aplicaciones que siguen el modelo de la figura anterior son managed applications (aplicaciones gestionadas) – En contrapartida, las aplicaciones Windows no gestionadas se denominan unmanaged applications – Managed applications y unmanaged applications pueden convivir .NET y código gestionado • Metadata describe los campos, propiedades, firmas de • métodos y operaciones soportadas De esta manera, los componentes en .NET son autodescribibles y se permite la interacción entre componentes escritos en diferentes lenguajes. Common Language Runtime • Caracteríticas y servicios que ofrece: – Ejecución multiplataforma – Integración de lenguajes – Gestión de memoria(Recolector de basura) – Tratamiento de excepciones – Soporte multi-hilo – Distribución transparente – Interoperabilidad con código antiguo Common Language Runtime • El CLR se encarga de gestionar la ejecución de las aplicaciones .NET. • Al código escrito para ejecutarse en la plataforma .NET se le llama código gestionado. • Al código no escrito para ejecutarse directamente bajo la plataforma se le llama código no gestionado. El modelo de ejecución CLR Código fuente Código VB VB C# C# C++ C++ Compilador Compilador Compilador Código de code ensamblado IL Código de code ensamblado IL Compiler Código de code gestionado ensamblado IL Assembly IL Compiler Assembly IL Common Language Runtime Runtime de lenguaje común Compiler Assembly IL JIT compiler Compilador JIT Native code Código nativo Operating system services Servicios del sistema operativo Unmanaged Componente nocomponent gestionado Clases de la plataforma .NET • La librería de clases (FCL) es una librería formada • por cientos de tipos que permiten acceder a los servicios ofrecidos por el CLR y a sus funcionalidades más frecuentes. Además el programador puede crear nuevas clases que extiendan su funcionalidad y se integren con el resto de las clases de la FCL. La biblioteca de clases de .NET Framework System Collections IO Security Runtime Configuration Net ServiceProcess InteropServices Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization Clases de la plataforma .NET • Esta librería de clases está escrita en MSIL, por tanto, cualquier lenguaje cuyo compilador genere MSIL podrá usarla. • Con esta librería podemos crear todo tipo de aplicaciones: aplicaciones de consola, de ventanas, servicios Web, ASP.NET... Clases de la plataforma .NET • Dada la amplitud de la FCL, ha sido necesario organizar las clases en espacios de nombres, que agrupen clases con funcionalidades similares. • El espacio de nombres System es el espacio raíz del que cuelgan todos los demás. Clases de la plataforma .NET • Espacios de nombres más usados: – System: Contiene tipos de datos muy usados, datos básicos, tablas, excepciones... Es el raíz. – System.Object: Soporta toda la jerarquía de las clases de .NET. – System.Collections: Colecciones de datos de uso común como pilas, colas, listas... – System.Data: Manipulación de base de datos. Forma la denominada arquitectura ADO.NET. Clases de la plataforma .NET – System.IO: Manipulación de ficheros. – System.Reflection: Acceso a los metadatos que acompañan a los módulos de código. – System.Math: Funciones logarítmicas, trigonométricas... – System.XML: Acceso a datos en formato XML. – Sytem.Web: Aplicaciones Web. Biblioteca de clases .NET Framework System System.Security System.Runtime. InteropServices System.Net System.Text System.Globalization System.Reflection System.Threading System.Configuration System.IO System.Diagnostics System.Collections ASP.NET • ASP.NET es la versión para la plataforma .NET de la tecnología ASP (Active Server Pages). • Dentro de esta capa podemos distinguir tres partes muy diferenciadas: – Web Forms – Server Controls – Web Services Windows Forms • Los Windows Forms son una forma avanzada • • • e integrada de crear aplicaciones de escritorio Win32 estándar. Los WinForms descienden de las Windows Foundation Classes (WFC) de Microsoft. Cualquier lenguaje de la plataforma .Net puede utilizar WinForms. De hecho, actualmente, las WinForms forman parte de las clases de la plataforma .NET en el espacio de nombres System.Windows.Forms. Interfaz de usuario System.Windows.Forms System.Drawing .NET Framework SDK • Microsoft distribuye este kit de desarrollo como parte del paquete .NET. – Disponible en: http://msdn.microsoft.com/netframework/technologyi nfo/howtoget/default.aspx • En este kit podemos encontrar documentación sobre la plataforma, ejemplos y código fuente, y una serie de utilidades que sirven para desarrollo y prueba de aplicaciones .NET. Visual Studio.NET • Es un entorno gráfico que permite a los desarrolladores crear, probar y depurar aplicaciones desarrolladas o no para la plataforma .NET. • Inicialmente se llamó Visual Studio 7.0 ya que es la evolución del Visual Studio 6.0. • La última versión a 05/2006, es el Visual Studio 2005. • SharpDevelop es un IDE open source para .NET que representa una buena alternativa a Visual Studio.NET: http://www.icsharpcode.net/opensource/sd/ Visual Studio.NET • Microsoft incorpora en este entorno los siguientes lenguajes de programación: – – – – Visual Visual Visual Visual Basic.NET: Versión .NET de Visual Basic 6.0. C++.net: Evolución de Visual C++. J#.NET: Adaptación de Visual J++. C#.NET: Un nuevo lenguaje de programación OO. • Empresas ajenas han creado compiladores de sus lenguajes para la plataforma .NET: – Cobol, Eiffel, Perl, Python, Haskell, Pascal, Oberon... Desarrollando para la plataforma .NET • .NET es independiente del lenguaje de programación, no estamos restringidos a desarrollar en Visual C++ y Basic: – Existen compiladores para C#, Visual Basic.NET, Jscript.NET, COBOL, Python, Perl, etc. – .NET soporta estos lenguajes no soportando realmente ninguno de ellos • .NET sólo entiende Microsoft Intermediate Language (MSIL) Una plataforma independiente del lenguaje • .NET traduce código fuente a IL (Intermediate Language). – El resultado de la compilación es IL + Metadata – IL es como un lenguaje ensamblador para una CPU virtual, basada en un pila (similar a Java bytecode) – IL es compilado antes de ser ejecutado y no está diseñado para un lenguaje en particular como en Java – Las sentencias IL manipulan tipos comunes compartidos por todos los lenguajes .NET (Common Type System – CTS) – El Common Language Runtime (CLR) es responsable de cargar y ejecutar una aplicación .NET • Usa compilación JIT (Just-In-Time) para traducir IL a código nativo • IL es siempre compilado y nunca interpretado no como con JVM • El código IL por cada método sólo es compilado cuando es indicado Hola Mundo en .NET // fichero: hola.cs // compilar: csc hola.cs using System; class Hola { public static void Main() { Console.WriteLine(“Hola desde C#”); } } Hola Mundo en C# • Todo programa en C# contiene al menos una clase • Main es el punto de entrada del programa • Console.WriteLine(“Hola desde C#”), visualiza • • • un mensaje, invocando método WriteLine de la clase Console El espacio de nombres System pertenece a .NET FCL (Framework Class Library) FCL contiene muchas clases útiles, que pueden usarse desde nuestras aplicaciones .NET Para compilar el programa necesitamos una copia de .NET SDK, y usar el compilador de C#, csc Hola Mundo en Visual Basic.NET ' fichero: hola.vb ' compilar: vbc hola.vb Imports System module Hello sub main() Console.WriteLine(“Hola desde VB.NET”) end sub end module Enlaces de interés • GotDotNet: The Microsoft .NET Framework Community: – http://www.gotdotnet.com/ • .NET home page: – http://www.microsoft.com/net/ • MSDN .NET Framework site: – http://msdn.microsoft.com/netframework/ • Website con ejemplos y ayuda en programación C#: – http://www.c-sharpcorner.com/ – http://www.csharphelp.com/ – http://www.csharp-station.com/ • Implementación Open Source .NET (Proyecto mono): – http://www.go-mono.com/ • Fundamental: Class Library en la sección Reference de .NET Framework SDK Documentation Introducción a Visual Studio .NET tomado de http://www.microsoft.com/net/ Descripción Escribir código Crear Interfaz Conceptos básicos de .NET Explorar el entorno de desarrollo Use Visual Uso de Visual Studio .NET Studio .NET Acceso a datos Depurar e implantar Lección: Conceptos básicos de .NET ¿Plataforma ¿Visual Studio .NET? .NET? ¡AYUDA! .NET ¿.NET Framework? ¿Visual Basic .NET? ¿Qué es la plataforma .NET? Herramientas de desarrollo Clientes Servicios Web XML Servidores Experiencias de usuario Cómo funciona el .NET Framework Servicios de programación .NET Framework Tipos de datos Aplicaciones Visual C++ ADO.NET Aplicaciones Visual C# Biblioteca de clases Servicios Web XML Windows Aplicaciones Visual Basic Common Language Runtime El código fuente se compila como MSIL Código de la plataforma .NET El compilador JIT produce lenguaje máquina ¿Qué es Visual Studio .NET? Herramientas de Formularios Web Múltiples Lenguajes Herramientas de Formularios Windows Visual Studio .NET Gestor de errores Herramientas de Servicios Web XML Diseño Acceso a datos Desarrollo Depuración Implantación Cómo utilizar la página de inicio Get Started What’s New Online Community Headlines Search Online Downloads XML Web Services Web Hosting My Profile Open Project New Project ¿Qué es una plantilla de aplicación? Proporciona archivos de inicio, estructura de proyecto y configuración del entorno Cómo utilizar el Explorador de soluciones Lección: Explorar el entorno de desarrollo Menú principal Nuevo proyecto Cuadro de herramientas Diseñador de Windows Forms Ventana Propiedades Menús y barras de herramientas Menú principal Barra de herramientas estándar Nuevo proyecto Guardar Form1.vb Deshacer Cuadro de herramientas Controles para crear el interfaz de usuario Diseñador de Windows Forms Editor de código Lista de nombres de clases Lista de nombres de métodos Ventana Propiedades Establecer propiedades como tamaño, título y color Otras ventanas de programación Ventana de programación Objetivo Lista de tareas Ayuda a organizar y gestionar el trabajo de generar la aplicación Resultados Muestra mensajes de estado para varias características en el entorno de desarrollo Vista de clases Permite examinar el código tras las clases y navegar por los símbolos de la solución Comandos Permite emitir comandos o evaluar expresiones en el entorno de desarrollo Examinador de objetos Permite visualizar objetos y sus miembros Sistema de ayuda en línea Menú de la Ayuda Ayuda dinámica El proceso de desarrollo 1 Crear una especificación de diseño 2 Crear el interfaz de usuario 3 Establecer las propiedades de los objetos del interfaz de usuario 4 Escribir código para añadir funcionalidad 5 Probar y depurar la aplicación 6 Generar un archivo ejecutable 7 Crear una aplicación de instalación Cómo crear el interfaz de usuario Ubicar controles en el formulario desde el Cuadro de herramientas Cómo establecer las propiedades de los controles Propiedades Configuración (Name) Textbox1 BackColor Blue Autosize True Visible True Border Fixed 3D Font Microsoft SanSerif, 8.2 pt Text Textbox1 Cómo añadir código a los controles En la lista Nombre de clase, hacer clic en el control En la lista Nombre de método, hacer clic en el evento Añadir código entre Private Sub y End Sub Private Sub Button1_Click(. . .)Handles Button1.Click 'Your code goes here End Sub Como guardar, ejecutar y generar la aplicación Guardar la aplicación Ejecutar la solución en el entorno de desarrollo Generar un archivo ejecutable