Cuestiones sobre MONO y .NET

nicojpm
05 de Abril del 2005
¡Hola a todos!
Soy un estudiante de informática de primer curso y estoy aprendiendo C, pero tengo que hacer un trabajo acerca de la plataforma .NET y MONO y ¿qué mejor sitio para consultaros algunas dudas que éste?, ¿me ayudáis?

¿En qué consisten estas plataformas?
Quisiera saber qué diferencias existen entre una y otra
¿En qué consiste el lenguaje C#? (Me refiero al potencial que tiene y qué aspectos mejora y empeora respecto de otros lenguajes)

Según he investigado he visto que MONO es una implementación de varias tecnologías:
[code]
• Un compilador para el lenguaje C#, Visual Basic.Net y JScript
• Un entorno de ejecución virtual: Un compilador JIT ( Just-In-Time = justo-a-tiempo, esto es, que compila el código justo antes de ser ejecutado), un compilador AOT ( AOT=ahead-of-time, antes-de-tiempo , esto es, que compila a código nativo un archivo y de esta forma no necesita la compilación JIT cada vez que se ejecute el programa), gestión automática de memoria, un interprete ( mint ), motor multiproceso.
• Una máquina virtual para los bytecodes del Lenguaje Intermedio Común (CLI)
• Una implementación de la librería de clases de .NET: manipulación XML, Entrada/Salida, funciones matemáticas, criptografía, xslt, etc.
• Librería de clases multiplataforma para el acceso a bases de datos: Postgress, MySQL, DB2, TDS, Sybase, Oracle, ODBC y Gnome-GDA
• Librería de clases UNIX: Mono.Posix
• Librería de clases GNOME: la familia Gtk#
[/code]
¿Qué me podéis comentar de .NET?
¿Qué quiere conseguir realmente Microsoft implantando la plataforma .NET?


Agradezco de antemano vuestra colaboración

Deibid
05 de Abril del 2005
Mira por lo poco que se, MONO y .NET tienen muchas cosas en común, de hecho MONO es una iniciativa para implementar la plataforma .NET de Microsoft en Sistemas Operativos de código abierto como Linux. El marco de trabajo de .Net (.Net Framework) tiene como propósito:
1- Proporcionar un ambiente totalmente Orientado a Objetos (si recuerdas COM esta orientado a componentes) donde el código es ejecutado remotamente (lo que sustituye a DCOM) o localmente
2- Ya que no se utiliza COM o DCOM y todo el desarrollo se encuentra basado en Programación Orientada a Objetos (utilizas librerias de clases y todas esas cosas), no existen problemas de versiones :-)
3- El marco utiliza una cosa llamada Common Language Runtime (CLR) que tiene como tarea supervisar que los programas corran en un medio seguro, esto es, que las aplicaciones no puedan utilizar otros recursos (como direcciones de memoria, accesos a archivos, etc) y solo aquellos para los que fueron creadas especificamente.
4- Gracias al CLR te olvidas de destruir tus objetos (algo parecido al recolector de basura de JAVA, mmm ¿de dónde se le ocurrió a Microsoft? jeje) y según esto, hay un aumento en el desempeño de tus aplicaciones. Además de que te olvidas de los punteros.
5- Lo padre esta en que no importa en que lenguaje programes, si éste se encuentra apegado al estandar (Common Language Specification o CLS) y utiliza tipos de datos comunes (Common Type Specification CTS), puedes hacer librerias de clases en C# y utilizarlas en aplicaciones VB, Delphi, J# o cualquier otro lenguaje que siga el estandar del marco de trabajo de .Net
6. Como todos los compiladores pasan el código fuente a un código llamado IL (Intermediate Language) puedes hacer una aplicación que corra tanto en Win98, Me, XP, 2000, etc. (algo parecido al Byte Code de JAVA ¿mera coincidencia?)
Bueno, te recomiendo las siguientes ligas donde encontrarás suficiente información para que puedas hacer bien tu trabajo:
De entrada, el MSDN Library de microsoft, la documentación del .NET Framework SDK:
http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/NETFxAnchor.asp
El FAQ General del sitio de MONO:
http://www.mono-project.com/FAQ:_General#What_is_Mono.E2.84.A2_exactly.3F
y el sitio de MONOHISPANO:
http://www.monohispano.org/index.php
Mucha suerte!!! y si es posible cuando termines tu trabajo nos pases una copia para echarle una leida no?
Saludos!