2009-06-13 20 views
13

Me gustaría crear una aplicación utilizando ASP.NET MVC, que debe ejecutarse bajo mono 2.4 (la compilación se realizará en un cuadro de Windows). ¿Alguien tiene suerte con esto? Esto es lo que ya he intentado:ASP.NET MVC 1 y 2 en Mono 2.4 con Fluidez NHibernate

  1. ASP.NET MVC en mono sin ningún apoyo modelo de persistencia, y el uso de nhaml como el motor de vista
  2. S # AML arquitectura, que es una bastante buena en mi humilde opinión marco, pero depende demasiado de las cosas, que no funcionan bien en mono (como windsor)

La primera parte funcionó bien, no encontré ningún problema importante. Pero no pude hacer funcionar la segunda parte. Parece que su dependencia de Castle.Windsor rompe todo el soporte mono (pero también puede haber otras partes).

Por lo tanto, decidí crear un marco alternativo, que toma prestadas algunas de las ideas de s # arp-architecture, pero diseñado para trabajar bajo mono (y si soy capaz de hacerlo, lo lanzaré para el comunidad, por supuesto). El controlador y vista parcial está funcionando bien (no hay mucha magia aquí, sin embargo, han sido siempre trabajando), pero tengo algunas preguntas antes de empezar el trabajo por parte de persistencia:

  • versiones Qué NHibernate están trabajando bajo mono? He escuchado que 1.2 está funcionando bien. ¿2.0.1/2.1 beta funciona bajo mono?
  • ¿Fluent.NHibernate y NHibernate.Linq funcionan en mono? (para este último parece que necesita algunas dependencias que no están disponibles en mono)
  • ¿Hay alguna buena alternativa para el soporte de persistencia a NHibernate en mono?

preguntas alternativos:

  • ¿Hay alguna marcos que tienen mono + + persistencia apoyo asp.net mvc ya o soy yo el primero en pensar en esto?
  • Si ya ha hecho esto: ¿cuál es su opinión sobre la estabilidad/usabilidad?

Gracias por las respuestas

EDIT: Actualizado el marco de apoyo a ASP.NET MVC 2: http://shaml.sztupy.hu/

+0

¿Qué es s # aml, shaml ??? – AnthonyWJones

Respuesta

4

Bien. Empecé un nuevo proyecto que incorpora lo mejor de la arquitectura S # arp con cosas que funcionan en mono. En lugar de T4Toolkit utiliza un script de ruby ​​para hacer el trabajo de generación, al igual que con los rieles o merb.

Para utilizar instalar la gema SHAML de GitHub:

gem install shaml 

A continuación, cree una nueva aplicación:

shaml generate app AppName 

y crear recursos:

shaml generate resource NewRes "name:string;date:DateTime" 

S página principal del proyecto Arquitectura # AML : http://shaml.sztupy.hu/

Proyecto GitHub: http://github.com/sztupy/shaml/tree/master

+0

Recién probado: se compila en mono – SztupY

9

estoy usando mono 2.4 para ejecutar un servicio de aplicaciones + ventanas asp.net mvc. La compatibilidad es muy buena. Hay algunos errores y diferencias que con las ventanas, pero una vez que aprende cuáles son se vuelve más fácil (puede haber dolor al principio)

Estoy usando NHibernate (2.1) FluentNhibernate, StructureMap, NBehave, Moq y open id lib y todos parecen funcionar como se esperaba.

En cuanto a la estabilidad, ya que he solucionado los principales errores en mi código, no he tenido ningún problema.

Usabilidad, bueno, es una plataforma completamente diferente, por lo que debes venir con una mente abierta y estar preparado para dejar atrás el camino de las ventanas ... la buena noticia es que una vez que lo haces las cosas se vuelven más fáciles. Apache es mucho mejor que IIS y configurar y administrar un linux box es más fácil que Windows.

Estoy muy contenta de haber elegido mono ..lo siento, esto está empezando a sonar como un disco de PR, ¡pero estoy realmente feliz con eso!

+0

¿Tuviste algún problema con AntiForgeryTokens? Para mí, el método auxiliar arroja una NullPointerException al serializar algo en el espacio de nombres System.Web.UI ... Por cierto. actualmente este es el único error que estoy encontrando. – SztupY

+0

¡No puedo decir que los he probado! No tomo mucha información del usuario, así que no he buscado usarlas en absoluto. –

+0

¿Intentó utilizar NHibernate.Linq (nuevo en 2.1) dentro de su aplicación? Parece requerir System.Data.Serviecs y System.Data.Entity que no está en Mono. Parece que no puedo correr. Estoy construyendo mi sitio MVC en Visual Studio e implementando en Apache. – mbp