Ich habe ein relativ kleines ASP.NET-Projekt, das mit C # 4.0 geschrieben wurde.
Ich habe mich gefragt, ob jemand es geschafft hat, ein solches Projekt auf einen Webserver unter Linux zu portieren, die neuesten Informationen, die ich finden kann, scheinen nur ASP.Net 2.0 zu unterstützen - Konfigurieren und Ausführen von Mono ASP.NET 3.5 (AJAX.NET) auf Linux-Computern
Das Projekt verwendet LINQ-to-SQL für die gesamte Datenzugriffsebene, und ich weiß, dass Mono selbst LINQ unterstützt, daher dachte ich, es sollte vernünftig funktionieren.
Ich will nur wissen, ob es Zeitverschwendung ist oder nicht, bevor ich anfange.
Danke.
Ich verwende eine ASP.NET 4.0-Anwendung unter Suse Linux mit mono. Meine Erfahrung mit Mono ist, dass es einfach funktioniert. Meine App ist ~ 15.000 LOC und verwendet Komponenten von Drittanbietern wie mongo-csharp-driver, lucene.net, elmah, munq und sphorium.webdavserver.
Ich hatte während der Entwicklung fast keine Kompatibilitätsprobleme - und die, die ich hatte, waren leicht zu finden (zum Beispiel greift sphorium auf die Registrierung zu; das funktioniert offensichtlich auf Linux / Mono anders). Ich habe sogar begonnen, mit Visual Studio MonoDevelop und ohne das Mono-Plugin zu entwickeln, weil Visual Studio eine bessere IDE ist, und es funktioniert nur, wenn ich meine Webanwendung unter Linux kompiliere und auf Apache (obwohl ich mit. NET unter Windows).
Ich habe geschrieben ein kurzer Blogpost zum Einstieg in das Setup
Das ist definitiv keine Zeitverschwendung. Die Firma, für die ich arbeite, hat unsere VB.Net-Anwendung in C # konvertiert, damit sie unter Mono laufen kann. Diese Anwendung hat über 200.000 Zeilen Code. Wir laufen jetzt mit Ubuntu / Apache / Mono / Postgresql auf Amazon ec2.
Die einzige Sorge, die ich haben würde, ist mit Ihrer Datenbank. Wenn es MS SQL ist, dann müssen Sie die Migration zu MySQL oder Postgresql betrachten. Wir haben das wieder mit über 300 Tabellen und 900 gespeicherten Prozeduren gemacht. Es ist auf jeden Fall etwas wert auf lange Sicht.
Ich denke, dass der beste Weg wäre, eine lokale Umgebung einzurichten, die so etwas wie Ubuntu ausführt. Sie können die neusten Versionen von mono aus den Repositories unter Ссылка erhalten oder wenn Sie es vorziehen, können Sie die neuesten Versionen als Build-Skripte, die gepflegt werden hier . Installieren Sie monodevelop und bauen Sie Ihren Code unter Linux mit Mono auf. Aus Erfahrung ist das Mono mit C # eine ziemlich vollständige Implementierung des .NET-Frameworks. Ich wäre überrascht, wenn es in Ihrer Anwendung etwas gibt, das noch in Mono implementiert werden muss.
Ich habe eine Antwort hier , die eine einfache Konfiguration für Ihr zeigt Anwendung unter Apache. Ich benutze diese Konfiguration für Mono-Anwendungen, die auf Ubuntu laufen.