2009-06-13 10 views
13

Chciałbym utworzyć aplikację przy użyciu ASP.NET MVC, który powinien działać w mono 2.4 (kompilacja zostanie wykonana na polu Windows). Czy ktoś ma szczęście? Oto, co już próbowałem:ASP.NET MVC 1 i 2 na Mono 2,4 z Fluent NHibernate

  1. ASP.NET MVC na mono bez wsparcia modelu wytrwałość i używając nhaml jako silnik widoku
  2. S # AML architektury, która jest całkiem dobre ramy imho, ale to zależy zbytnio od rzeczy, które nie działają dobrze pod mono (jak windsor)

Pierwsza część działała dobrze, nie napotkałem żadnych większych problemów. Ale nie mogłem sprawić, by druga część działała. Wygląda na to, że to zależność od Castle.Windsor przerywa całe wsparcie mono (ale mogą być też inne części).

Dlatego postanowiłem stworzyć alternatywne ramy, które zapożyczają niektóre z pomysłów architektury s # arp, ale zaprojektowano je do pracy pod mono (i jeśli będę w stanie to zrobić, wydam je dla wspólnota oczywiście). Kontroler i widok część pracuje bez zarzutu (nie dużo magii tu jednak były one zawsze działa), ale mam kilka pytań zanim zacznę pracę na część trwałości:

  • wersje Co NHibernate pracuje pod mono? Słyszałem, że 1.2 działa dobrze. Czy wersja 2.0.1/2.1 beta działa w trybie mono?
  • Czy Fluent.NHibernate i NHibernate.Linq działają w trybie mono? (dla tych ostatnich wydaje się, że potrzebuje pewnych zależności, które nie są dostępne w mono).
  • Czy istnieją jakieś dobre alternatywy dla podtrzymywania wsparcia dla NHibernate w mono?

Alternatywne pytania:

  • czy są jakieś ramy, które mają mono + trwałość + ASP.NET MVC lub wsparcie już jestem pierwszą osobą, która o tym myśleć?
  • Jeśli już to zrobiłeś: jakie są Twoje opinie na temat stabilności/użyteczności?

Dzięki za odpowiedzi

EDIT: zaktualizowany ramy wspierać ASP.NET MVC 2: http://shaml.sztupy.hu/

+0

Co to jest s # aml, shaml ??? – AnthonyWJones

Odpowiedz

4

OK. Zacząłem od nowego projektu, który zawiera najlepsze z architektury S # arp z materiałami, które działają na mono. Zamiast T4Toolkit używa on skryptu ruby ​​do wykonania zadania generowania, tak jak w przypadku szyn lub merb.

Aby korzystać zainstalować gem shaml z github:

gem install shaml 

następnie utworzyć nową aplikację:

shaml generate app AppName 

i tworzyć zasoby:

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

S domowej projektu Architektura # AML : http://shaml.sztupy.hu/

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

+0

Właśnie testowane: kompiluje się pod mono – SztupY

9

używam mono 2.4 do uruchomienia aplikacji ASP.NET MVC + Windows usługę. Kompatybilność jest bardzo dobra. Występują pewne błędy i różnice w porównaniu z oknami, ale gdy już się dowiesz, co to jest, staje się łatwiejsze (na początku może być ból!)

Używam NHibernate (2.1) FluentNhibernate, StructureMap, NBehave, Moq i open id lib i wszystkie po prostu działają zgodnie z oczekiwaniami.

Jeśli chodzi o stabilność, ponieważ usunąłem główne błędy w moim kodzie, nie miałem żadnych problemów.

Użyteczność, to zupełnie inna platforma, więc musisz do niej podejść z otwartym umysłem i być przygotowanym na opuszczenie okna. Dobra wiadomość jest taka, że ​​gdy to zrobisz, wszystko stanie się łatwiejsze. Apache jest dużo lepszy niż IIS, a konfigurowanie i zarządzanie linux-boxem jest po prostu łatwiejsze niż Windows.

Cieszę się, że wybrałem mono ..Przepraszam, że to zaczyna brzmieć jak napęd PR-owy, ale jestem po prostu bardzo z niego zadowolony !!

+0

Czy wystąpiły jakieś problemy z modułem AntiForgeryTokens? Dla mnie metoda pomocnika zgłasza wyjątek NullPointerException podczas serializacji czegoś w przestrzeni nazw System.Web.UI ... Przy okazji. obecnie jest to jedyny błąd, który napotykam. – SztupY

+0

Nie mogę powiedzieć, że ich wypróbowałem! Nie biorę zbyt wielu danych wejściowych od użytkownika, więc nie przyjrzałem się ich używaniu. –

+0

Czy próbowałeś użyć NHibernate.Linq (nowy w 2.1) w swojej aplikacji? Wydaje się wymagać System.Data.Serviecs i System.Data.Entity, który nie jest w Mono. Nie mogę sprawić, żeby to działało. Buduję swoją witrynę MVC na Visual Studio i wdrażam do Apache. – mbp