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.
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.
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…
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.
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.
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.
.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.
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/
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…
.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
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…
.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
.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
Recordemos la figura anterior que ilustra el proceso de compilación de un programa en .NET
Common Language Runtime
(Gp:) CLR
(Gp:) Código fuente
(Gp:) Código intermedio
(Gp:) Código nativo
(Gp:) Compilador
(Gp:) C#, Visual Basic…
(Gp:) MSIL(Microsoft
Intermediate Language)
(Gp:) Intel 8086, Windows,
Solaris…
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 .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
Hola Mundo en .NET III
Path para csc.exe en mi máquina:
C:WINDOWSMicrosoft.NETFrameworkv1.1.4322
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
Desemsamblando Hola Mundo
"c:Program FilesMicrosoft.NETSDKv1.1Binildasm.exe"
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
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/
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
Página anterior | Volver al principio del trabajo | Página siguiente |