2011-12-23 11 views
8

Tengo un proyecto ASP.NET relativamente pequeño que se escribió usando C# 4.0.Portando la aplicación ASP.NET a Mono/Apache bajo Linux

Me preguntaba si alguien había logrado puerto este proyecto a ejecutar en un servidor web en Linux, la información más reciente que puedo encontrar parece tener sólo un apoyo para ASP.Net 2,0-Configuring and running Mono ASP.NET 3.5 (AJAX.NET) on Linux computers

Los usos de proyectos LINQ-to-SQL para toda la capa de acceso a datos, y sé que Mono es compatible con LINQ, así que pensé que era lógico pensar que debería funcionar.

Solo quiero saber si es una pérdida total de tiempo o no antes de comenzar.

Gracias.

+4

¿Ha intentado ejecutar sus ensamblajes en Apache/Mono? Lo mejor que puede hacer es probar y ver qué rompe o usar el analizador Mono Migration http://mono-framework.com/MoMA. –

+0

Existe una buena posibilidad de que funcione bastante bien. Pruébalo como se indica arriba – IanNorton

Respuesta

7

Ejecuto una aplicación ASP.NET 4.0 en Suse Linux usando mono. Mi experiencia con mono es que simplemente funciona. Mi aplicación es ~ 15.000 LOC y utiliza componentes de terceros como mongo-csharp-driver, lucene.net, elmah, munq y sphorium.webdavserver.

No he tenido casi ningún problema de compatibilidad durante el desarrollo, y las que tenía se resolvieron fácilmente (por ejemplo, sphorium accede al registro, obviamente esto funciona de manera diferente en Linux/Mono). Incluso comencé a desarrollar Visual Studio con MonoDevelop y sin el plugin Mono, porque Visual Studio es un IDE mejor, y simplemente funciona cuando compilo mi aplicación web en Linux y la despliego en Apache (aunque desarrollé con. NET en Windows).

I've written a short blogpost on getting started with the setup

3

Esto definitivamente no es una pérdida de tiempo. La empresa para la que trabajo convirtió nuestra aplicación VB.Net en C# para que pueda ejecutarse en modo mono. Esta aplicación tiene más de 200k líneas de código. Ahora estamos ejecutando Ubuntu/Apache/Mono/Postgresql en Amazon ec2.

La única preocupación que tendría es con su base de datos. Si es MS SQL, entonces tendrá que mirar migrar a MySQL o Postgresql. Nuevamente lo hicimos con más de 300 tablas y 900 procedimientos almacenados. Definitivamente es algo que vale la pena a largo plazo.

Creo que la mejor manera de comenzar sería configurar un entorno local que ejecute algo así como Ubuntu. Puede obtener las últimas versiones de mono de los repositorios en http://badgerports.org/ o si lo prefiere, puede utilizar las últimas versiones como scripts de compilación que se mantienen en here. Instale Monodesarrollo y construya su código en Linux con mono. Por experiencia, el mono con C# es una implementación más o menos completa del framework .net. Me sorprendería si hubiera algo en su aplicación que aún no se haya implementado en mono.

Tengo una respuesta here que muestra una configuración fácil para su aplicación en apache. Utilizo esta configuración para aplicaciones mono que se ejecutan en Ubuntu.

+0

"La única preocupación que tengo es con tu base de datos". - nuestro servidor de base de datos es MS SQL, pero es una máquina diferente a la que quiero ejecutar este proyecto. ¿No debería poder utilizar el proyecto ASP.NET en Apache mientras lo conecto usando el proveedor de datos sql para MSSQL a nuestra base de datos en nuestro servidor db? –

+1

Sí, usted será capaz de hacer esto. – startupsmith

+0

@lanks, ¿podría hacer una pregunta un tanto fuera de tema sobre qué ORM (si lo hay) usó? Gracias de antemano. – greenoldman