tag net mvc for asp asp.net mono razor

asp.net - net - ¿El Razor View Engine funciona para Mono?



select asp-for asp-items (5)

Mi suposición es que tendrás que esperar el lanzamiento de MVC3 (cuando se convierte en código abierto) antes de que pueda responderse perfectamente.

Estoy seguro de que el equipo de Mono lo hará funcionar, sin embargo.

Traté de buscar un poco y no encontré una respuesta. ¿El Razor View Engine funciona en Mono?


Mono 2.10 en adelante es totalmente compatible con MVC3 y Razor, aunque el Mono Project actualmente no puede enviar Mono con una implementación de código abierto de la pila MVC3 / Razor incluida (de la misma manera que MVC1 y MVC2 están incluidos) por el momento.

De las notas de la versión :

Aunque ASP.NET MVC3 es de código abierto y está licenciado según los términos de la licencia MS-PL, requiere algunas dependencias de nuevas bibliotecas que no son de código abierto ni forman parte de Microsoft.NET Framework.

En este momento no tenemos implementaciones de código abierto de esas bibliotecas, por lo que no podemos enviar la pila completa de ASP.NET MVC3 con Mono (todavía enviamos ASP.NET MVC 1 y MVC 2 con Mono para su disfrute de implementación).

Sin embargo, esta versión Mono tiene suficientes correcciones de errores y parches que usted podrá ejecutar con ella sitios ASP.NET MVC3.



Sí, lo hace. Lo tengo trabajando con mono en Linux.

Necesita mono 2.10.2+ de las fuentes estables de
http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/

Luego, debe localizar localmente estos ensamblajes en el directorio bin de su aplicación (los toma de Visual Studio en Windows):

System.Web.Mvc.dll
System.Web.Razor.dll
System.Web.WebPages.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.Razor.dll

Entonces, es posible que deba deshacerse de los siguientes errores que podría haber cometido así:

Error: los ámbitos de almacenamiento no se pueden crear cuando _AppStart se está ejecutando.
Causa: Microsoft.Web.Infrastructure.dll se copió localmente en el directorio bin.
Resolución: elimine Microsoft.Web.Infrastructure.dll y use la versión mono .

Error: código IL no válido en System.Web.Handlers.ScriptModule: .ctor (): el cuerpo del método está vacío.
Causa: System.Web.Extensions.dll de alguna manera se copia localmente en el directorio bin.
Resolución: elimine System.Web.Extensions.dll y use la versión mono .


Error: las clases en el módulo no se pueden cargar. Descripción: HTTP 500. Solicitud de procesamiento de error.
Causa: System.Web.WebPages.Administration.dll se copió localmente en el directorio bin.
Solución: elimine System.Web.WebPages.Administration.dll y desvísela.


Error: no se pudo cargar el tipo
''System.Web.WebPages.Razor.RazorBuildProvider'' del ensamblado ''System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35''. Descripción: HTTP 500. Solicitud de procesamiento de error.
Causa: System.Web.Razor.dll está dañado o falta (o x64 en lugar de x32 o viceversa) ...
Solución: obtenga una versión no corrupta de System.Web.Razor.dll y localcopy en el directorio bin

Editar
A partir de mono 2.12 / MonoDevelop 2.8, todo esto ya no es necesario.

Tenga en cuenta que en 2.10 (Ubuntu 11.10), también es necesario copiar localmente System.Web.DynamicData.dll , o bien se produce un error que solo ocurre en App_Start (si no lo hace, obtiene un YSOD por primera vez) llama a una página, pero SOLAMENTE la primera vez, porque solo entonces se llama a App_Start).

Nota
para mono 3.0+ con ASP.NET MVC4: hay un "error" en el script de instalación. O más bien un estado incompleto.

mod-mono, fastcgi-mono-server4 y xsp4 no funcionarán correctamente.
Por ejemplo: fastcgi-mono-server4 le da esta salida de depuración:

[error] 3384#0: *101 upstream sent unexpected FastCGI record: 3 while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8000"

Esto es, porque después de la instalación de mono3, usa framework 4.5, pero xsp, fastcgi-mono-server4 y mod-mono no están en el 4.5 GAC, solo el 4.0 gac.
Para arreglar esto, usa este script bash:

#!/bin/bash # Your mono directory #PREFIX=/usr PREFIX=/opt/mono/3.0.3 FILES=(''mod-mono-server4'' ''fastcgi-mono-server4'' ''xsp4'') cd $PREFIX/lib/mono/4.0 for file in "${FILES[@]}" do cp "$file.exe" ../4.5 done cd $PREFIX/bin for file in "${FILES[@]}" do sed -ie ''s|mono/4.0|mono/4.5|g'' $file done

Y si lo usa a través de FastCGI (por ejemplo, nginx), también necesita esta solución para TransmitFile para el error chuncked_encoding
¿Por qué tengo bytes adicionales no deseados al comienzo de la imagen? (arreglado en mono 3.2.3)

PD:
Puedes obtener los .debs para 3.x desde aquí:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/ o compilarlos usted mismo desde github Instalar Mono 3.x en Ubuntu / Debian o como este de las fuentes estables http://ubuntuforums.org/showthread.php?t=1591370

2015

Ahora puede usar los paquetes proporcionados por Xamarin

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list sudo apt-get update

Si necesita las características más recientes, también puede buscar los paquetes de CI (construcciones nocturnas, por así decirlo) , si necesita la última versión (o casi la más reciente)

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list sudo apt-get update