Ejecutar ASP .NET con MonoDevelop

Esta pequeño tutorial ha sido probado en ubuntu pero en otras distribuciones de linux no debería ser muy distinto.

Primero instalamos todos los paquetes relacionados con mono o monodevelop :

  • sudo apt-get install mono mono-gmcs mono-utils monodevelop monodoc mono-xsp monodoc-http monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gtk2.0-manual monodoc-gecko2.0-manual monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gecko2.0-manual mono-xsp2 monodevelop-java libnunit-doc monodevelop-nunit monodevelop-versioncontrol

Si os falta algún paquete, o teneis algún problema de dependencias, probar a poneros el repositorio de getdeb, que tiene versiones más actualizadas de mono y monodevelop:

  • echo deb http://ubuntu.org.ua/ getdeb/ | sudo tee -a /etc/apt/sources.list
  • Actualizamos la lista de repositorios : sudo apt-get update

Si quieres, instalate los ejemplos para ASP.NET 1.1 y 2.0:

  • sudo apt-get install asp.net-examples asp.net2-examples
  • El ejemplo de 2.0 tiene un bug tonto que se arregla : sudo cp /usr/share/asp.net2-demos/index.aspx /usr/share/asp.net2-demos/index2.aspx
  • Para ver el ejemplo nos vamos a:
    • nos vamos al directorio de trabajo que corresponde : cd /usr/share/asp.net-demos/
    • Ahora simplemente ponemos en consola xsp2
    • Nos monta un servidor donde podemos ver el ejemplo : http://127.0.0.1:8080/
    • El ejemplo de asp 1.1 es igual pero esta en cd /usr/share/asp.net-demos/y ejecutando xsp
    • Además del server de testing que montas sobre el actual directorio de trabajo en el puerto 8080, los paquetes mono-xsp y mono-xsp2 montan 2 demonios en el 8081 y el 8082 respectivamente. Yo los he dejado pero sabeis que podeis configurar los opciones por defecto de un demonio en /etc/default. En concreto en /etc/default/mono-xsp y /etc/default/mono-xsp2 respectivamente.

El ejemplo es poco educativo,así que vamos hacer un ejemplo para ir empezando:

  • Empezamos un proyecto en MonoDevelop:
monodevelop1
  • En Default.aspx escribimos entre las etiquetas body:
monodevelop2
  • En Default.aspx.cs detectamos el evento del boton:
monodevelop3
  • Ya esta ahora tenemos que construir el proyecto cada vez que modifiquemos algo. El ejecutar solo le damos la primera vez para montar el server xsp2 en http://localhost:8080/ y las siguientes veces el ciclo de desarrollo sera: 1º Realizar cambio, 2º Construir el proyecto y 3º Actualizar con F5 sobre la pestaña de firefox que corresponda :P
  • Por último, os explico alguna conceptos que pueden seros útil para ir empezando, tanto en visual studio como en monodevelop una solución es un conjunto de proyectos, mientras que un proyecto es un conjunto de paginas (en ASP.NET), por eso hay un botón para construir proyecto y otro para construir solución.
  • Una página tiene por un lado la vista(Default.aspx) y por otro lado la lógica de la pagina.
  • Los IDE suelen autogenerar parte de la lógica. Por ello la lógica a su vez se divide en dos.
  • Lógica para que el usuario añada a eventos concretos de la página(Default.aspx.cs), cuando empieza la carga, se pulsa un botón, empieza a escribir …,
  • La lógica autogenerada por el IDE (Default.designer.aspx.cs), que en el caso de MonoDevelop es editable.Estas dos páginas son la misma clase definida en 2 partes, que es una de las novedades de .NET 2.0, la inclusión de clases parciales. Por tanto las variables que añade automaticamente en Default.designer.aspx.cs tienen ambito visible desde Default.aspx.cs y nos permite hacer lo del ejemplo.
  • Nota: Si en la vista borrais un boton asp u otro objeto asp(borrando el html a pelo) que esta identificado por un id, y por tanto tiene una variable en Default.designer.aspx.cs, vereis que la variable no se borra. Parece que la versión de MonoDevelop 0.16 que uso solo añade lógica autogenerada pero nunca borra. La solución es simplemente borrar todas las variables que ha autodefinido y cuando construyas la solución o el proyecto se generaran las variables que falten.
  • Nota 2: Es imprescindible el uso de monodoc (además de google, no hace falta decirlo xD)
  • Hoy ha salido MonoDevelop 1.0, todavía no lo he probado, si algo de este tutorial ha cambiado (especialmente la nota anterior), editare el post en cuanto lo pruebe.

En definitiva, monodevelop para mí es un IDE que estoy empezando a tener en cuenta, yo estoy ahora mismo como programador PHP4(sin objetos)+MYSQL y no uso editores WYSIWYG para nada, utilizo eclipse+aptana si el pc en el que trabajo tiene bastante memoria y uso quanta en el curro que es un PIII justito. Cuando ya tienes experiencia con html+ css+ javascript + librerias ajax(jquery,mootols …) perfectamente puedes prescindir de este tipo de editores y tirar de F5 de firefox. No me convenze la POO de PHP5 y por eso veo mejor opción ASP.NET con C#, por la forma más correcta de tratar los objetos. Ante todo me gusta el software libre, por eso empeze con php, … pero aunque .NET heche atras por ser de M******** parece que se ha estandarizado, eso ha ayudado a la implementación que ha hecho la gente de Miguel Icaza. El problema es que pienso que en unos años ni M******** NO respetará su propio estandar con tal de marcar una diferencia de mercado. Hoy os digo que tengo intención es de aprender .NET profesionalmente asi que igual os digo mañana que no vale la pena por que todavía no se ha estabilizado como lenguaje.

9 respuestas

  1. Excelente acabo de correr mi primera aplicación mono

  2. Yo todavía no hecha gran cosa con mono pero lo vigilo de cerca :D

  3. Pues ya desarrollé una aplicación completa de hojas de vida (incluida foto), nómina y contabilidad con monodevelop con muy buenos resultados y estoy programando con ASP.NET sobre linux. No he utilizado monodevelop en este caso pero estoy muy interesado en saber cuan madura está dicha fase. Alguien ha avanzado en esta área?.

  4. bueno me parece una buena herramienta, monodevelop, tanto Mocosoft como en linux, tratan de implementar el .Net pero en realidad el futuro lo veo standar en cuanto al lenguaje, sabiendo C# podras programar en linux o Windows esto veneficia mucho a todos… Asi no hay confuciones, solo usar la herramienta que mas te agrade. Que dicen Pildora roja O azul. Linux o Windows. Monodevelop o Visual Estudio.

  5. […] de C++ y Estilo de C# Publicado el Agosto 4, 2009 por makiolo Hace tiempo hice mis primeros pinitos en mono, mediante ASP.NET pero como ya puse en ese post, no me terminaba de convencer que las decisiones de la comunidad […]

  6. en verdad , muy bueno el aporte, pero yengo un problema , al momento d ejecutar no me muestra como corre la pagina, me gustaria q puedas explicar un poco mas sencillo para realizar esto y si no es molestia, como seria realizar una aplicacion web con el mvc

    gracias….

  7. Perdon que te contrarie un poco de lo que digas en Microsoft pero MonoDevelop todavia le falta mucho por igualarse a MS Visual Studio puesto que ahora ya existe la version 4.0 de .NET Framework y las versiones de Mono solo llegan a la version 2.0
    Hay poca documentacion todavia puesto que no hay tutoriales claros sobre como implementar una aplicacion ASP.NET en Linux. El Sr. Icaza le falta mucho por conocer a fondo puesto que ya puedes generar aplicaciones en WPF de .NET o bien Web Services Mejorados. Ademas te comento que las librerias de Microsoft Office en Mono no estan desarrolladas.
    Tambien te comento que pude instalar Apache2 y correr solamente aplicaciones ASP.NET 2.0 pero por la POCA DOCUMENTACION que se tiene… pues los usuarios de Mono tendran que desgastarselas por un rato ya que la funcionalidad del ASP.NET en Mono es totalmente limitada.

    Y no es que apoye a Microsoft. La mayoria de las buenas aplicaciones en ASP.NET hechas en VS estan bien hechas y que pueden soportarse correctamente en MAC, Solaris y otros, pero insisto… hay poca documentacion lamentablemente.

Replica a joeslr Cancelar la respuesta