Introducción a la plataforma .NET y Mono

Esta presentación está basada en una charla que di hace ya algún tiempo en la Navarparty, aunque actualizada sobretodo en lo que respecta al estado del proyecto Mono. Está basada en una introducción a la plataforma .NET y una explicación de las principales características del proyecto Mono, una implementación libre de la tecnología. Por último se muestran también algunos ejemplos de aplicaciones sencillas, principalmente ASP.NET.

Introducción a .NET

.NET es el nombre que ha dado Microsoft a su forma de ver el futuro de las aplicaciones. Esta visión se centra en un mundo en el cual las aplicaciones se ejecutan de modo distribuido, a lo largo de todo Internet, y son accesibles desde múltiples dispositivos.

Esta visión no surge al azar, si no que tiene varias motivaciones. La primera motivación, se debe a que al igual que la programación orientada a objetos, la programación distribuida fomenta la reutilización de software. De hecho, lo lleva un paso más adelante, ya que no sólo podemos reutilizar nuestro propio código, o aquellas librerías de las que disponemos, sino que se pueden reutilizar recursos disponibles en distintas ubicaciones de Internet.

Por otra parte, el poder acceder a las aplicaciones desde cualquier sitio y desde cualquier dispositivo, es una aspiración de Microsoft, que con la tecnología .NET puede llevarse a cabo de forma sencilla, mediante la utilización de servicios web.

Microsoft divide su filosofía .NET en 3 apartados muy distintos:

  • El .NET Framework
  • Servicios (MyServices, Passport)
  • Otras cosas con la etiqueta «.NET»

En esta presentación vamos a ceñirnos al primero de ellos, que es sobre el cual se sustenta toda la tecnología, y del que se está desarrollando su versión Open Source, mono.

.NET puede considerarse en ciertos aspectos como la respuesta de Microsoft a Java, aunque tiene bastantes diferencias. Reúne en una misma plataforma un conjunto interesante de características, como independencia de plataforma, independencia de lenguaje, soporte de bases de datos, soporte para XML, servicios Web y aplicaciones Web, entre otras. De entre todas estas, quizás una de las más importantes sean las dos primeras, referentes a la independencia tanto del lenguaje como de la plataforma.

Independencia del lenguaje

Se puede desarrollar aplicaciones en múltiples lenguajes dentro de la plataforma .NET, pero lo más interesante, es que una aplicación puede tener diferentes partes desarrolladas en diferentes lenguajes, y todas estas pueden comunicarse entre sí, transparentemente, sin tener que utilizar ningún tipo de capa intermedia que posibilite esta comunicación. Esto permite a su vez una gran reutilización de código, ya que las clases desarrolladas para un proyecto en un lenguaje concreto, podrán ser reutilizadas en un nuevo proyecto, independientemente del lenguaje en el que se desarrolle éste.

Independencia de plataforma

Al igual que en Java, el código .NET no se compila a código máquina, sino a un código en un formato intermedio, independiente de la plataforma. Esto permite llevar los binarios producidos de una plataforma a otra, tal como sucede en Java. Para que esto sea posible, así como en Java existe la máquina virtual (JVM), que es la encargada de interpretar o compilar JIT los bytecodes de una aplicación, en la plataforma .NET existe el Common Language Runtime (CLR), que se encarga de ejecutar el código intermedio o Common Intermediate Language (CIL).

Páginas: 1 2 3 4 5 6

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

60 Respuestas para “Introducción a la plataforma .NET y Mono”

  1. !!muy interesante!! gracias !!!

    me lo leeré más tranquilamente, pero a primera vista, para los que venimos del mundillo de Java exclusivamente, me parece una introducción muy buena.
    Aunque, la comparativa de Java con C# quizás debería estar más actualizada con el JDK 1.5, que tiene enumerados, bucles foreach sobre las colecciones… 😉 (solo por decir algo)

  2. esta muy interesante!!!!!!!!!!!
    creo que es super intersante la informacion detallada, para quienes quieren ponerse al dia en la tecnologia, pero deberian actualizar mucho mas!!!
    =oD

  3. Me gusto yo boje mono pero no se como se instala me gustaria saber instalar mono en mac os x tambien quiero instalar el mod_mono para apache y xsp. gracias esta pag. es muy buena

  4. Está mono ya terminado para soportar web services?

  5. Mono soporta web services de forma completa en este momento. Yo he hecho algunas pruebas consumiendo servicios generados desde aplicaciones .NET de microsoft, así como servicios web buscados por internet y funciona a la perfección. En cuanto a la parte de ofrecer servicios web sobre mono, lo he probado poco pero me ha funcionado correctamente, aparte sí que hay gente que lo está utilizando bastante.

  6. Es buen articulo.
    Sabes quisiera saber los pasos para correr un ejemplo de ASP.net con apache en linux fedora:
    me descargue el mono 1.1 para fedora y los servidores web mon_mono y xsp que hago ??????????

  7. Lo que te recomiendo es que antes de ponerte a configurar apache con mod_mono, pruebes directamente a ejecutar una página de test hecha en ASP.NET, utilizando directamente xsp.exe

    Para ello créate una carpeta con el archivo ASP.NET que vayas a utilizar y desde una consola ejecuta «mono xsp.exe», para que se lance el servidor. Puedes utilizar «mono xsp.exe –help» para obtener las distintas opciones soportadas. Asegúrate de utilizar un puerto distinto al 80 si tienes apache corriendo, por ejemplo el 8080.

    Ahora ya podrías abrir el navegador y acceder a la página ASP.NET de prueba, utilizando por ejemplo: http://localhost:8080/test.aspx

  8. Hola, sabes, no entiendo porque tendría que probar una pagina asp.net con xsp.exe si al final quiero pobrar mi pagina asp.net en LINUX con apache y para apache necesito saber instalar el mod_mono. Me podrias explicar porque tendría que hacer lo anterior.
    Gracias.

  9. Basicamente es para acotar posibles errores. Apache utiliza mod_mono para servir páginas asp.net y éste se comunica por debajo con xsp.exe para procesar la petición. Por eso lo que te recomiendo es que si haciendo la instalación normal de apache, mono y mod_mono te encuentras con algún problema, pruebes que xsp.exe funciona correctamente y una vez probado utilices mod_mono para comunicarlo con apache. Si lo pruebas todo a la vez vas a tener más difícil saber si no te funciona porque esté mal configurado apache, mod_mono, xsp o mono.

  10. GuillermoTola 08. Ago, 2005 en 4:32 pm

    De donde consigo el instalador de CLR (Runtime)
    Tengo que realizar un instalador para eso necesito un CLR
    donde cvonsigo o viene con los instaladores de Visual Studio 7.0
    Pronto

  11. Hola, me gustaria saber si se pueden correr las paginas asp.net desde el dreamweaver, es decir, en lugar de utilizar el IIS utilizar apache con el mod_mono.

  12. Hola, quisiera que me dieran una direccion web para descargar el compilador mas actual de C#.Net o algo relacionado gracias

  13. Comence a migrar un proyecto realizado en .net con C#. Descargue el mono 1.1.8.3 que viene con el servidor para asp.net XSP. Pero no se cómo ejecutar la aplicacion. Aguien me puede decir cómo?

  14. Hola,
    estoy haciendo mi proyecto Fin de Carrera sobre la plataforma .NET y los webservices, y de todas las páginas y foros que he leído éste es el mejor.
    A Fernix no le entiendo bien la pregunta, la aplicación de mono se lanza escribiendo en la consola «mono nombre_del_ejecutable» y para conseguir el ejecutable escribes el código y lo compilas escribiendo «mcs nombre_del_programa». mcs es el compilador de mono.
    Un saludo.

  15. que se me había olvidado!

    Felicidades por la página Patxi!

  16. Hola NETXO, Fernix se refiere a cómo ejecutar una aplicación web. Mediante el comando «mono ejecutable» lanzas una aplicación digamos de consola o escritorio, pero si lo que has preparado es un conjunto de páginas web realizadas con ASP.NET, hay que lanzar antes un servidor al que pedirle estas páginas. De esto se encarga xsp.exe, puedes ejecutarlo y lo que crea en un demonio que escucha en el puerto seleccionado las peticiones que se le vayan realizando. Aparte de esta opción, que es recomendable únicamente para pruebas o desarrollo, lo conveniente es utilizar como servidor web apache y conectarlo con mono mediante el módulo mod_mono.

  17. Hola,

    quiero hacer unas pruebas con xsp y al escribir «mono xsp.exe » en la consola , me sale lo siguiente:

    cannot open assembly xsp.exe

    ¿estoy haciendo algo mal?

    gracias.

  18. Parece que ya va todo ok, con poner «xsp» ya se me ha lanzado el servidor.

  19. la introduccion de la plataforma.net y mono es muy buena

  20. Hola,

    tengo una duda sobre los servicios web; quiero hacer un servicio web y he encontrado información sobre servicios web de ASP.NET (.asmx), todo los servicios web son de ASP.NET o ASP.NET es un tipo de servicios web…?

    Gracias.

  21. ASP.NET es el nombre que dio Microsoft a la parte del Framework encargada de servir páginas web. Las páginas basadas en ASP.NET tendrán normalmente la extensión .aspx. Una parte de ASP.NET son los servicios web, que suelen tener la extendión .asmx.

    De todas formas ten en cuenta, que así como es posible hacer páginas web con otras tecnologías diferentes a ASP.NET, también es posible desarrollar servicios web con otras tecnologías, es suficiente que éstas entiendan el protocolo SOAP y se encarguen de la gestión de los mensajes XML que se intercambian. Esto permite la interconexión de sistemas que utilizan distintas tecnologías o plataformas, utilizando para ello los servicios web como «lingua franca» en su comunicación.

  22. Hola,

    estoy pensando en hacer un servicio web que pueda ser accedido desde un móvil. En ese caso tendría que añadir algún módulo escrito en WAP? o se intercala WAP en el código C# del servicio WEB?… vaya que tengo un poco de lío con todo esto, creo que algo se me está escapando.

    Si alguien me puede echar una mano…

    Gracias.

  23. Hola,
    Necesito correr un sistema hecho en asp.net en visual studio en un servidor linux q tengo q hacer???
    espero y me puedan ayudar.

  24. Excelente para alguien que no utilzo, ni sabe programar java

  25. Hola,

    estoy programando en mono con c#. He hecho un programa de con variables funciona, pero cuando cambio estas variables por propiedades al ejecutar el programa me da una excepción de «violación de segmento mono –debug (y el path del archivo)» alguien sabe a qué se debe esto?

    gracias y felices fiestas para tod@s!

  26. Cuales serian las ventajas que ofrece .net para trabajar con graficos que no proporciona java. Alguien podria aclararmelo.
    Gracias

  27. Hola a todos, quiero entrar al mundo de mono, estoy trabajando sobre suse 10 y al momento de cargar el mono me sale un error en esta parte

    initialize… Main Windows

    estoy utilizando la ultima version de mono, sinceramente ya no se que mas hacer instale todos los paquetes de mono para suse 10

    Alguien puede ayudarme con esto

  28. Hola a todos, estoy haciendo un proyecto en .NET y necesito crear una grafica y no se como hacerla.
    Si alguien sabe por favor espero que me ayude.
    Muchas Gracias

  29. Hola amigos, quisiera saber como puedo instalar la extension de mono para php, (PHP Mono Extension), ya que me descarge el tar.gz de php.net y me dice que tengo que ejecutar un archivo llamdo buildconf, pero no esta este por ningun lado. alguine me podri ayudar por favor?, saludos.
    pd: tengo suse 10.0 y php 5

  30. Hola,
    tengo un programa escrito en c# y quisiera saber qué pasos tengo que seguir para convertirlo a aspx, me podéis decir dónde puedo encontrar esta información?
    gracias!

  31. Hola a todos, en http://www.monohispano.es tenéis muchas de estas cuestiones resueltas con ayudas y tutoriales. También hay una lista de correo al respecto.

    También he tenido problemas con la instalación de la última versión de mono en SUSE 10

  32. Esta bien chida esta pagina yo soy alumno de la ut en santa catarina n el area de infomatica me gusta mucho el diseño de paginas en ASP.net nomas me gustaria q en el area de descargas pusieran al alcanse punteros ,iconos nuevos y por que no gif’s con movimiento para mejor desempeño de la informatica y asi contagiarse todos bueno grasias si tienen alguna novedad para la novatada en .NET aganla saber al correo mio
    es lalo_anaid@hotmail.com

  33. Hola!!!
    Pues gracias por leer esto primero que nada. Apenas estoy aprendiendo a usar todo esto de .net y necesito el compilador de C#pero no lo encuentro en Internet ¿Alguien podría ayudarme???
    Gracias!

  34. Hola Wendy, puedes obtener el compilador con el SDK de microsoft si estás en entornos windows, o bajándote Mono si quieres probar con este proyecto opensource, que te funcionará tanto en windows como en linux.

  35. Hola. soy Yami, estudio programación y estoy dando PHP y Visual.Net. mi problema es que el Apache simplemente no corre aun cuando le cambie el puerto. Me han dicho que existe un «semaforo» que permite a ambos programas trabajar, pero todavia no me han sabido decir como se llama el programa. Alguno de ustedes conoce cual es el nombre de ese «semaforo».
    Me gustaría obtener la información pues trabajo ambos lenguajes y no puedo trabajar bien con php por culpa de eso

    Les agradezco de antemano su ayuda

  36. ola, estuve leyendo sobre mono y me parece muy interesante. Quisiera que me dieran mas informacion sobre mono, cuales son sus utilidades y bueno exactamnete todo lo que puedan enviar a mi correo seria bienvenido…

  37. hola mil disculpoas por esta pregunta pero estuve buscando una repuesta a mis preguntas pero no las encontre y quisiera que me ayuden porfa:
    mis preguntas son las sigueintes:
    1¿se puede actualizar un proyecto de visual basic 6.0 en visual basic.net?
    2¿se puede instalar el visual basic.net en un sistema operativo linux?con respecto a esta pregunta solo se que si se puede mediante el proyecto mono pero no se porque o de que modo.
    3¿cuando fue lanzado la primera version del visual estudio.net y con cuantos lenguajes?
    porfavor quisiera que ayeden con estas preguntas se los agradecere bastante..

  38. Para el que preguntó por el «semaforo» ese programa se llama EasyPHP solo haz una consulta en google y ya esta!

  39. interesante…..Falta informacion

  40. Hola

    Mi nombre es rodrigo lacalle y tengo el siguiente problema,

    Al cargar una pagina con mono en apche me abre sin problemas pero siempre sean extencion aspx , el problema que la pagina esta entera con extencion asp y esta extencion en ves de abrirla me la trata de descargar.

    Alguien me podria ayudar

  41. Hola si alguien le interesa visitar como instalar mono en Fedora 5
    http://marcoachs.blogspot.com/2006/10/instalar-mono-en-fedora-core-5.html

  42. Hola, estoy desarrolando un Web Service en .NET y necesito migrarlo a Mono sobre Linux Red Hat para consumirlo desde PHP. Alguien me puede dar algunos consejos?? Gracias de antemano.

    PD: El foro buenisimo

  43. Pues es muy posible que no tengas que hacer nada, aunque dependerá del servicio web que hayas desarrollado. Si ya tienes hecha la instalación de Mono en Linux, seguramente te valdrá con copiar y pegar el servicio web.

    un saludo

  44. Hola, estoy trabajando con Mono, con xsp. Tengo el siguiente problema, creé un proyecto en visualstudio 2005 bastante sencillo, sumar dos números, y el proceso invoca a un dll que se encarga de hacer la suma y retornar el resultado a la página .apsx . Mi problema es que quiero ejecutar ese mismo código en mono, pero no me resulta y creo que el problema es debido a que no puede dar con la librería, pues me arroja este error:

    error CS0246: The type or namespace name «libreria» could not be found. Are you missing using a directive or an assembly reference?

    Agradecería tu ayuda, gracias !!!

  45. Hola rommel, prueba a copiar la librería dentro de la carpeta bin de la aplicación web. Es en esa ruta donde en una aplicación web se buscan por defecto las librerías. Si eso te funciona, luego ya puedes buscar otras alternativas como guardarla en el GAC si la necesitas para más webs.

  46. hola, podrias publicar esta informacion en un solo archivo para bajarla?

    gracias

  47. Puedes utilizar el botón de versión para imprimir, para obtener una página con todos los contenidos del artículo, incluidos los comentarios. Luego puedes guardar la página como html, pdf o cómo quieras 😉

  48. Hola a todos, porfavor necesito que me colaboren explicando que es una plataforma y una tecnologia y hacer un comparativo entre una plataforma java y .net pero como plataformas. Muchas Gracias

  49. Hola a todos, apenas estoy trabajando en un sistema, que debo realizalo en Asp.net (aspx), en Mono, utilizando c#. he instalado el compilador de mono, y utiliso xsp, como servidor, mi pregunta es: ¿el servidor xsp, compila las paginas aspx, o solo las interpreta?, pregunto esto debido a: que tengo una aplicacion en VS.net con c#, y asp.net, me marca un error, pero esta parte del codigo ya la quite, y me sige marcando el mismo problema….

    agradezco su tiempo y si alguien sabe algo, favor de enviarme un correo, gracias. apenas estoy empezando en el mundo de asp.net