2011-12-23 12 views
8

Mam stosunkowo mały projekt ASP.NET napisany przy użyciu C# 4.0.Przenoszenie aplikacji ASP.NET do Mono/Apache pod Linuksem

Zastanawiałem się, czy ktoś zdołał portu taki projekt nad uruchomieniem w ramach serwera WWW na Linuksie, najnowsze informacje mogę znaleźć wydaje się tylko wsparcie dla ASP.NET 2.0 - Configuring and running Mono ASP.NET 3.5 (AJAX.NET) on Linux computers

Zastosowania projektu LINQ-SQL dla całej warstwy dostępu do danych i wiem, że Mono sama obsługuje LINQ, więc pomyślałem, że ma powody, by to działało.

Po prostu chcę wiedzieć, czy to kompletna strata czasu, czy nie, przed rozpoczęciem.

Dzięki.

+4

Czy próbowałeś już uruchamiać swoje zespoły w Apache/Mono? Najlepszą rzeczą, jaką możesz zrobić, to po prostu spróbować zobaczyć, co się psuje lub użyć analizatora Mono Migration http://mono-framework.com/MoMA. –

+0

Istnieje duża szansa, że ​​zadziała całkiem nieźle. Spróbuj, jak powyżej: – IanNorton

Odpowiedz

7

Uruchamiam aplikację ASP.NET 4.0 na Suse Linux przy użyciu mono. Moje doświadczenie z mono jest takie, że po prostu działa. Moja aplikacja ma około 15 000 LOC i korzysta z komponentów innych firm, takich jak mongo-csharp-driver, lucene.net, elmah, munq i sphorium.webdavserver.

Nie miałem prawie żadnych problemów ze zgodnością podczas programowania - i tych, które miałem gdzie łatwo się udało (na przykład sphorium uzyskuje dostęp do rejestru, co oczywiście działa inaczej w systemie Linux/Mono). Zacząłem nawet tworzyć z Visual Studio instaed z MonoDevelop i bez wtyczki Mono, ponieważ Visual Studio jest lepszym IDE, i to po prostu działa, kiedy kompiluję moją aplikację internetową na Linuksie i wdrażam ją na Apache (mimo że rozwijam się z. NET w systemie Windows).

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

3

To na pewno nie jest to strata czasu. Firma, w której pracuję, przekształciła naszą aplikację VB.Net w C#, aby mogła działać w trybie mono. Ta aplikacja ma ponad 200 000 linii kodu. Teraz działamy z Ubuntu/Apache/Mono/Postgresql na Amazon ec2.

Jedyny problem, jaki mógłbym mieć, to Twoja baza danych. Jeśli jest to MS SQL, musisz spojrzeć na migrację do MySQL lub Postgresql. Znowu zrobiliśmy to przy 300+ tabelach i 900 przechowywanych procedurach. Jest to na pewno coś wartego na dłuższą metę.

Myślę, że najlepszym sposobem na rozpoczęcie byłoby ustawienie lokalnego środowiska działającego na wzór systemu Ubuntu. Możesz uzyskać prawie najnowsze wersje mono z repozytoriów pod numerem http://badgerports.org/ lub jeśli wolisz najnowsze wersje jako skrypty kompilacji, które są utrzymywane w stanie here. Zainstaluj monodevelop i zbuduj swój kod na Linuksie z mono. Z doświadczenia mono z C# jest prawie kompletną implementacją framew .net. Byłbym zaskoczony, gdyby było coś w twojej aplikacji, które nie zostało jeszcze zaimplementowane w mono.

Mam odpowiedź here przedstawiającą łatwą konfigurację aplikacji pod apache. Używam tej konfiguracji dla aplikacji mono działających w systemie Ubuntu.

+0

"Jedyny problem, jaki mógłbym mieć, to Twoja baza danych." - nasz serwer bazy danych to MS SQL, ale jest to inna maszyna niż ta, na której chcę uruchomić ten projekt. Czy nie powinienem móc korzystać z projektu ASP.NET pod Apache, mając połączenie z wykorzystaniem dostawcy danych sql dla MSSQL do naszej bazy danych na naszym serwerze db? –

+1

Tak, będziesz w stanie to zrobić. – startupsmith

+0

@Bank, czy mogę zapytać tylko trochę nietypowe pytanie, z jakiego ORM (jeśli w ogóle) korzystałeś? Z góry dziękuję. – greenoldman

Powiązane problemy