![Page 1: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/1.jpg)
Introducción a .NET
Dr. Diego Lz. de Ipiña Gz. de Artazahttp://paginaspersonales.deusto.es/dipina
![Page 2: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/2.jpg)
Introducción Microsoft.NET es el 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.
![Page 3: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/3.jpg)
Según Microsoft “.NET es una plataforma Microsoft para Servicios Web XML”.
Sin embargo es mucho más: .NET es una nueva plataforma para el desarrollo y explotación de
aplicaciones “gestionadas” (managed) modernas y orientadas a objetos
Las aplicaciones .NET se pueden desarrollar en cualquier lenguaje de programación que se ajusta a .NET
.NET soporta una extensa 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 I
![Page 4: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/4.jpg)
.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 desconectada 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)
.NET ofrece una nueva arquitectura para el desarrollo y explotación de objetos remotos
.NET convierte a varias tecnologías y técnicas Windows en obsoletas
Características de .NET II
![Page 5: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/5.jpg)
Componentes de .NET
Microsoft.NET está compuesto de:Plataforma .NET.NET Framework SDKVisual Studio .NETServicios Web (Microsoft .NET
myServices)Servidores para empresas(SQL
Server.NET...)
![Page 6: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/6.jpg)
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.
![Page 7: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/7.jpg)
Plataforma .NET
Common Language Runtime
.NET Framework Base Classes
ASP.NETServicios Web
Windows Forms
![Page 8: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/8.jpg)
Plataforma .NETComponentes:
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
![Page 9: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/9.jpg)
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).
![Page 10: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/10.jpg)
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
Common Language Runtime
CLR
Código fuente
Código intermedio
Código nativo
Compilador
C#, Visual Basic...
MSIL(Microsoft Intermediate Language)
Intel 8086, Windows,Solaris...
![Page 11: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/11.jpg)
.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
![Page 12: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/12.jpg)
.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
auto-describibles y se permite la interacción entre componentes escritos en diferentes lenguajes.
Plataforma .NET
Sistema Operativo
![Page 13: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/13.jpg)
Common Language RuntimeCaracteríticas y servicios que ofrece:
Ejecución multiplataformaIntegración de lenguajesGestión de memoria(Recolector de
basura)Tratamiento de excepcionesSoporte multi-hiloDistribución transparenteInteroperabilidad con código antiguo
![Page 14: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/14.jpg)
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.
![Page 15: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/15.jpg)
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 frecuentemente usadas.
Además el programador puede crear nuevas clases que extiendan su funcionalidad y se integren perfectamente con el resto de las clases de la FCL.
![Page 16: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/16.jpg)
Clases de la plataforma .NET
Esta librería de clases está escrita en MSIL luego 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...
![Page 17: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/17.jpg)
Clases de la plataforma .NET
Dada la amplitud de la FCL, ha sido necesario organizar las clases en ella incluida 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.
![Page 18: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/18.jpg)
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.
![Page 19: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/19.jpg)
Clases de la plataforma .NETSystem.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.
![Page 20: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/20.jpg)
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 FormsServer ControlsWeb Services
![Page 21: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/21.jpg)
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.
![Page 22: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/22.jpg)
.NET Framework SDK
Microsoft distribuye este kit de desarrollo como parte del paquete .NET. Disponible en: http://msdn.microsoft.com/
netframework/technologyinfo/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.
![Page 23: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/23.jpg)
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 02/2004, es el Visual Studio 2003.
SharpDevelop es un IDE open source para .NET que representa una buena alternativa a Visual Studio.NET: http://www.icsharpcode.net/opensource/sd/
![Page 24: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/24.jpg)
Visual Studio.NET
Microsoft incorpora en este entorno los siguientes lenguajes de programación: Visual Basic.NET: Versión .NET de Visual Basic 6.0. Visual C++.net: Evolución de Visual C++. Visual J#.NET: Adaptación de Visual J++. Visual C#.NET: Un nuevo lenguaje de
programación OO. Empresas ajenas han creado compiladores de
sus lenguajes para la plataforma .NET: Eiffel, Perl, Python, Haskell, Pascal, Oberon...
![Page 25: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/25.jpg)
.NET My Services
Microsoft ha creado una serie de servicios Web a los que llama “.NET My Services” o “HailStorm”.
.Net My Services son un conjunto de servicios Web XML que permiten al usuario almacenar y recuperar información confidencial (contactos, agenda, documentos...).http://msdn.microsoft.com/myservices
![Page 26: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/26.jpg)
Servidores para empresas
La evolución de.NET ha obligado a Microsoft a realizar cambios en los servidores para empresas (Enterprise Servers) que distribuye.
Los nuevos servidores, “.NET Enterprise Servers” tratan de ayudar a las empresas a integrar y orquestar servicios y aplicaciones en una sola solución comprensible.
Algunos de estos servidores son: Application Center, BizTalk, Commerce Server, Exchange...
![Page 27: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/27.jpg)
.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
(IL)
Desarrollando para la plataforma .NET
![Page 28: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/28.jpg)
.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
Una plataforma independiente del lenguaje
![Page 29: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/29.jpg)
Recordemos la figura anterior que ilustra el proceso de compilación de un programa en .NET
Common Language Runtime
CLR
Código fuente
Código intermedio
Código nativo
Compilador
C#, Visual Basic...
MSIL(Microsoft Intermediate Language)
Intel 8086, Windows,Solaris...
![Page 30: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/30.jpg)
Hola Mundo en .NET// fichero: hola.cs// compilar: csc hola.csusing System;
class Hola {public static void Main() {
Console.WriteLine(“Hola desde C#”);}
}
![Page 31: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/31.jpg)
Hola Mundo en .NET 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
![Page 32: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/32.jpg)
Hola Mundo en .NET III
Path para csc.exe en mi máquina:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
![Page 33: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/33.jpg)
Hola Mundo en Visual Basic.NET' fichero: hola.vb' compilar: vbc hola.vbImports System
module Hellosub main()
Console.WriteLine(“Hola desde VB.NET”)end sub
end module
![Page 34: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/34.jpg)
Desemsamblando Hola Mundo "c:\Program Files\Microsoft.NET\SDK\v1.1\Bin\
ildasm.exe"
![Page 35: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/35.jpg)
Bibliografía usada para preparar el curso
Microsoft.NET for Programmers, Fergal Grimes, Manning, ISBN 1-930110-19-7, 2002: http://www.manning.com/grimes
Programming Microsoft.NET, Jeff Prosise, Wintellect, Microsoft Press, ISBN 0-7356-1376-1, 2002 http://www.microsoft.com/mspress/books/5200.asp
Microsoft .NET SDK Framework Documentation http://msdn.microsoft.com/netframework/ http://www.microsoft.com/net/
Seminario.NET y C#, Ander Barbier y Unai Extremo, Universidad de Deusto, 2003: http://asignaturas.deusto.es/Seminario.NET
![Page 36: Introducción a.NET Dr. Diego Lz. de Ipiña Gz. de Artaza](https://reader033.vdocuments.net/reader033/viewer/2022061304/55005a454a7959ca428b632a/html5/thumbnails/36.jpg)
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