2011-01-19 9 views
8

Sé que es posible desarrollar y alojar un sitio ASP.Net en Linux utilizando Mono y Apache, pero me gustaría saber qué tan bien funciona y si vale la pena la molestia? Prefiero el código abierto, pero para este proyecto quiero la solución más rápida, fácil y confiable.¿Cómo se compara el funcionamiento de ASP.Net en Linux con la solución estándar centrada en Microsoft?

El sitio que construiré será un sitio ASP.Net bastante básico usando MySQL.

Me gustaría saber si alguien más tiene experiencia en el uso de Mono en una situación como la mía y cómo fue el proyecto. ¿Cómo se compara con el uso de una solución centrada en Microsoft?

Sé que Mono todavía está algo incompleto, pero espero no necesitar las características que le faltan.

Esta pregunta puede ser un poco "polarizante". La mayoría de las preguntas similares parecen tener respuestas de personas que son muy pro-Microsoft o pro-Linux. Espero algunas respuestas imparciales, preferiblemente de personas con experiencia en el uso de ambos.

+0

realmente depende de lo que quiere decir con simple sitio asp.net. ¿Se aloja usted mismo? –

+0

¿Por qué no usar algo que es más preferible de acuerdo con sus requisitos? P.ej. Ruby/PHP? Especialmente si va a ser un sitio web bastante básico (como dijiste). – volpav

+0

Este sitio es para una compañía de techado, utilizada para ayudarlos a calcular las estimaciones. Trataré de que se vea razonablemente atractivo, pero la funcionalidad es el objetivo principal. – ks78

Respuesta

9

Cambié de soluciones centradas en MS hace un año y medio y ahora alojo todos mis sitios web y proyectos web en servidores virtuales basados ​​en Linux/Mono/Apache/MySQL (originalmente estaba usando nginx de apache, pero mono-fastcgi-server estaba causando aleatoriamente thrashing, así que elijo apache como servidor web). Puedo resumir mi experiencia (subjetiva) con esta configuración en unos pocos puntos:

  • Puede tomar algún tiempo para acostumbrarse a la diferencia entre los entornos basados ​​en Linux y MS (si nunca has usado Linux antes), pero no te arrepientas de esta decisión. Lo que me ayudó mucho fue crear procedimientos de instalación y configuración para tecnologías particulares (por ejemplo, entornos mono paralelos, configuraciones de hosts virtuales de Apache, que tratan ciertos problemas) que son principalmente repetibles y pueden automatizarse.

  • Aún puede usar Visual Studio para desarrollar sus aplicaciones y luego implementarlas en una máquina Linux. Si está utilizando este enfoque, es una buena costumbre probar sus aplicaciones regularmente en mono para posibles incompatibilidades.

  • Implemento de aplicaciones web a través de FTP, que es probablemente la forma más fácil de hacerlo (bueno, quizás WinSCP sea aún más fácil, porque no tiene que configurar el servidor FTP, sino que depende de sus preferencias).

  • Hasta ahora me he encontrado con 2 casos con Mono/Apache donde la pérdida de memoria causaba la falta de disponibilidad del sitio web. Esto probablemente fue causado por el recolector de basura Boehm que estaba usando en la antigua instalación mono. No he tenido problemas similares con un nuevo GC sgen en versiones recientes de mono.

  • Lo que más me gusta de la ejecución mono en entorno Linux en comparación con las cosas de MS es que no tienes que hacer clic todo el tiempo cuando realizas tareas administrativas. Shell es para mí una interfaz administrativa unificada que puede acelerar las cosas (si tienes algo de práctica).

+0

Tengo curiosidad, ¿notaron alguna diferencia en la capacidad de respuesta del sitio al cambiar de Microsoft a Linux? ¿O era más o menos idéntico? – ks78

+2

Diría que es idéntico, pero no tuve la oportunidad de probarlo con mayor tráfico todavía. Sin embargo, es una gran diferencia cuando quiere (o necesita) escalar sus sistemas, lo que puede dañar seriamente sus finanzas si está utilizando soluciones MS. Tampoco me gusta estar limitado por la cantidad de núcleos de CPU o la cantidad de RAM por el tipo de licencia del sistema operativo de MS, por lo que los sistemas basados ​​en Linux (o de código abierto) son bastante superiores en esta área. – yojimbo87

+0

jimbo +1 - las restricciones financieras pueden ser un problema. pero si su (s) sitio (s) comienzan a traer más $$, puede agregar un Servidor Win2008 al clúster web en una configuración de equilibrio de carga básica (F5) ... incluso con clústeres MySql. El único problema que tengo es que RavenDB no funciona bien en la producción en Linux :( – bbqchickenrobot

4

Hosting ASP.NET en mono desde mi experiencia es bastante fácil y rápido. He sido anfitrión múltiple de mi proyecto usando Mono ASP.NET MVC 1/2 usando MySQL y PostgreSQL, servido por Apache mod_mono.

Comparado con la implementación en Windows Server. Es bastante limitado cuando se usa la distribución moderna de Linux, que ya proporciona todo el paquete para implementar mono ASP.NET. El único inconveniente es que debe asegurarse de que su aplicación web sea lo suficientemente portátil en términos de acceso IO y solo se necesita una curva de aprendizaje y experiencia muy cortas para depurar y publicar su proyecto.

Para implementar nuestro proyecto en Linux. Es fácil usar Control de versiones (VS) como Mercurial o Git si tienes control total en el servidor. Si U tiene más experiencia en el uso, la integración continua es mucho mejor. I utilizando principalmente mercurial por lo paso abajo es el paso que suelo hacer, pero creo que casi similar a Git:

  • Instalar mercurial, y configurar mod_wsgi, hgweb.wsgi y hgwerb.config
  • Init VS de recompra y publicar en hgweb.config y configurar el gancho para actualizar e invocar xbuild para construir automáticamente cuando u empuje que
  • publicar el repositorio (pieza de la tela) como aplicación de mono en mod_mono.conf
  • por lo que u sólo hay que codificar en el estudio visual, comprometer y enviar sus cambios usando tortoiseHg sin que el evento inicie sesión en el servidor (configure la URL del repositorio, el usuario y la contraseña en su repositorio hgrc)
+1

mi sugerencia si está usando Amazon EC2 está usando la imagen de openSuSe generada fácilmente usando http://susestudio.com/ como soporte de openSuSe para mono imho es muy bueno –

+0

Gracias. He estado considerando susestudio, aunque nunca antes había usado openSuSe. – ks78

+0

Al principio estaba pensando que susestudio era gratis, pero aparentemente no lo es. ¿Cuánto cuesta, solo por curiosidad? – ks78

-2

Tenga en cuenta que, si bien puede implementar ASP en Linux a través de cosas como Mono, si se utiliza un IDE de Microsoft, como Visual Studio, WebMatrix, o desarrollador web Visual su licencia sólo permite implementar estos en los servidores de Microsoft !

+1

Microsoft EULA no impone esa restricción. Vuelva a consultarlos. –

Cuestiones relacionadas