Introducción a la plataforma .NET y Mono
May 11th, 2005Esta 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).
delicious
menéame
fresqui

May 12th, 2005 a las 3:56 pm
!!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.
(solo por decir algo)
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…
July 2nd, 2005 a las 9:13 pm
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
July 19th, 2005 a las 8:55 pm
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
July 20th, 2005 a las 11:15 am
Está mono ya terminado para soportar web services?
July 23rd, 2005 a las 12:20 pm
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.
July 27th, 2005 a las 10:20 pm
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 ??????????
July 28th, 2005 a las 10:39 am
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
August 4th, 2005 a las 3:41 pm
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.
August 4th, 2005 a las 10:36 pm
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.
August 8th, 2005 a las 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
August 8th, 2005 a las 9:13 pm
El instalador del .NET Framework de Microsoft lo puedes obtenerlo en http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3 y el de Mono en http://www.mono-project.com/Downloads
August 16th, 2005 a las 12:00 am
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.
August 25th, 2005 a las 8:02 am
Hola, quisiera que me dieran una direccion web para descargar el compilador mas actual de C#.Net o algo relacionado gracias
September 19th, 2005 a las 4:19 pm
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?
November 15th, 2005 a las 7:29 pm
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.
November 15th, 2005 a las 7:30 pm
que se me había olvidado!
Felicidades por la página Patxi!
November 15th, 2005 a las 8:08 pm
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.
November 17th, 2005 a las 7:37 pm
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.
November 17th, 2005 a las 8:21 pm
Parece que ya va todo ok, con poner “xsp” ya se me ha lanzado el servidor.
November 18th, 2005 a las 11:32 am
la introduccion de la plataforma.net y mono es muy buena
November 22nd, 2005 a las 7:36 pm
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.
November 23rd, 2005 a las 1:27 pm
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.
November 24th, 2005 a las 9:29 pm
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.
December 5th, 2005 a las 8:56 pm
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.
December 15th, 2005 a las 9:10 pm
Excelente para alguien que no utilzo, ni sabe programar java
December 29th, 2005 a las 7:25 pm
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!
January 4th, 2006 a las 12:22 am
Cuales serian las ventajas que ofrece .net para trabajar con graficos que no proporciona java. Alguien podria aclararmelo.
Gracias
January 6th, 2006 a las 7:30 pm
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
January 21st, 2006 a las 10:42 pm
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
January 25th, 2006 a las 6:57 pm
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
January 25th, 2006 a las 7:30 pm
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!
March 8th, 2006 a las 7:05 pm
Hola a todos, en 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
March 16th, 2006 a las 3:28 am
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
April 5th, 2006 a las 8:59 am
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!
April 5th, 2006 a las 9:41 am
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.
May 15th, 2006 a las 2:38 am
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
June 10th, 2006 a las 1:21 am
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…
July 12th, 2006 a las 8:16 pm
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..
July 24th, 2006 a las 7:40 am
Para el que preguntó por el “semaforo” ese programa se llama EasyPHP solo haz una consulta en google y ya esta!
July 28th, 2006 a las 5:20 pm
interesante…..Falta informacion
September 1st, 2006 a las 7:47 pm
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
October 31st, 2006 a las 4:37 pm
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
November 11th, 2006 a las 7:56 am
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
November 13th, 2006 a las 1:01 am
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
January 17th, 2007 a las 6:52 pm
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 !!!
January 18th, 2007 a las 10:09 am
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.
January 25th, 2007 a las 5:06 am
hola, podrias publicar esta informacion en un solo archivo para bajarla?
gracias
January 25th, 2007 a las 10:06 am
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
May 2nd, 2007 a las 9:15 pm
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
May 22nd, 2007 a las 1:07 am
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
June 9th, 2007 a las 10:23 pm
hola Patxi sabes me piden que haga un trabajo todos sobre mono ventajas, y modos de intalarse en diversas plataformas kisiera saber si tienes algunos documentos ke me puedan ayudar a realizarlo poara poder hacer un tutorial te lo agradeceria muchisimo saludos desde tabasco.
June 29th, 2007 a las 8:02 pm
Hola:
me parece muy interesante el articulo. Yo tambien estoy iniciandome en este mundo y como deben saber tengo muchas dudas, por el momento quisiera que trataran de ayudarme con esta:
si voy a migrar un sitio donde los .aspx estan en una carpeta y los .ascx estan en otra y asi, como resolver los problemas que da mod_mono con los caminos ?
les agradeceria mucho que alguien me ayudara o me diera alguna idea.Cualquier comentario es valido.
Si no es mucha molestia quisiera que me escribieran a bricelno@gmail.com
Muchas gracias a todos
December 4th, 2007 a las 9:03 am
Hola.. to2
Muy interesante articulo ademas de completo.. me acabo de solucionar dudas de concepto que tenia..
Una pregunta: La plataforma .net es solo para redes ?.. es decir soy programador y estoy buscando alternativas a VisualBasic, Vfox, las tipicas de siempre.. me encontre son SharpDevelop. que dice que permite programa en C# pero quiero hacer aplicativos normales ,, esta herramienta de programacion me sirve o la orientacion es diferente…
December 7th, 2007 a las 4:25 pm
Hola Jose, en efecto, con .NET puedes desarrollar cualquier tipo de aplicativo, desde aplicaciones de escritorio hasta aplicaciones web empresariales. Para ello puedes utilizar multitud de entornos de desarrollo, como Visual Studio, SharpDevelop, o incluso simplemente el editor de notas y el compilador del SDK. Además también puedes programar en diferentes lenguajes, como C#, Visual Basic, Delphi, etc…
July 30th, 2008 a las 6:33 pm
Hola Mi Nombre es Rafael.
He leido algo sobre el proyecto mono y pienso que el proyecto es muy interesante, y precisamente por esto quiero ver si puedo migrar una aplicacion web desarrollada en VB .net a CENTOS 5, mi aplicacion consta con web services y conexiones a bases de datos SQL Server 2005, ya baje los programas de instalacion de MONO para Windows y tambien para CENTOS 5, pero el problema esque no se como instalar la parte de CENTOS 5, si alguien me puediese decir que tan bueno es el proyecto en este momento para intenetar migrar mi aplicacion para que funcione sobre Linux se los agradeceria.
Aparte no se si alguien tenga documentacion acerca de como instalar mono sobre CENTOS 5 paso a paso y como probar mi aplicacion, se los agradeceria infinitamente.
Saludos y felicidades por esta pagina.
August 12th, 2008 a las 6:23 am
Disculpa, pero podrias ayudarme para instalar mono sobre fedra core 8?, recien estoy empezando con el desarrollo sobre linux, porque antes utilice SharpDevelop pero para windows y ahora quiero intentarlo con linux, porfaa