Title: Introducciуn a .NET
1Introducción a .NET
- Dr. Diego Lz. de Ipiña Gz. de Artaza
- http//paginaspersonales.deusto.es/dipina
2Introducció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.
3Características de .NET I
- 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
4Características de .NET II
- .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
5Componentes de .NET
- Microsoft.NET está compuesto de
- Plataforma .NET
- .NET Framework SDK
- Visual Studio .NET
- Servicios Web (Microsoft .NET myServices)
- Servidores para empresas(SQL Server.NET...)
6Plataforma .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.
7Plataforma .NET
8Plataforma .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
9Common 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).
10Common 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
11.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
12.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.
13Common 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
14Common 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.
15Clases 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.
16Clases 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...
17Clases 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.
18Clases 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.
19Clases 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.
20ASP.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
21Windows 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.
22.NET Framework SDK
- Microsoft distribuye este kit de desarrollo como
parte del paquete .NET. - Disponible en http//msdn.microsoft.com/netframew
ork/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.
23Visual 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/
24Visual 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...
25.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
26Servidores 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...
27Desarrollando 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 (IL)
28Una 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
29Common Language Runtime
- Recordemos la figura anterior que ilustra el
proceso de compilación de un programa en .NET
30Hola Mundo en .NET
// fichero hola.cs // compilar csc
hola.cs using System class Hola public
static void Main() Console.WriteLine(Hola
desde C)
31Hola 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
32Hola Mundo en .NET III
- Path para csc.exe en mi máquina
- C\WINDOWS\Microsoft.NET\Framework\v1.1.4322
33Hola 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
34Desemsamblando Hola Mundo
- "c\Program Files\Microsoft.NET\SDK\v1.1\Bin\ildas
m.exe"
35Bibliografí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
36Enlaces 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