Inspiriert von der alten Hacker News-Unterhaltung über diese Website frage ich mich:
Könnten Ubuntu und Mono eine ASP.NET MVC-Website wie Ask Ubuntu betreiben?
Die Technologie steht hier im Mittelpunkt anstatt auf der Website. Könnten Sie IIS, ASP.NET, MVC usw. durch kostenlose und Open Source-Technologien ersetzen, ohne die Site vollständig neu entwickeln zu müssen?
Anmerkung von Oli : Die Meta- Diskussion (dh: Wird Ask Ubuntu auf Ubuntu + Mono migrieren?) Wurde in eine separate Frage im Meta-Teil der Website verschoben
Antworten:
Ich habe keine Codebasis für Ask Ubuntu, daher kann ich nicht wirklich sagen, ob es etwas besonders Plattformspezifisches gibt, das einen Blocker verursachen würde, aber als Antwort auf die Frage, ob Sie es migrieren können , lautet die Antwort wahrscheinlich Ja .
Sie müssen bedenken, dass die Plattform, auf der sich ASP.NET-Websites befinden, mehr als eine magische ASP.NET-Binärdatei ist:
ASP.NET kann weitgehend durch Mono ersetzt werden. Es ist nicht immer schön und die Leistung ist nicht immer großartig, aber es kann getan werden.
ASP.NET MVC ist die Vorlagen-Engine. Es befindet sich normalerweise auf ASP.NET, kann jedoch mit einigen Änderungen unter Mono ausgeführt werden .
IIS konnte ziemlich einfach entfernt werden, sodass benutzerdefinierte Handler, auf denen SO ausgeführt wird, durch Apache (et al.) Ersetzt werden konnten.
Die Datenbank ist technisch der größte Teil des Ganzen. In einfachen Fällen, in denen Sie guten Code verwenden, sicher. Rippen Sie die Datenbank heraus und ersetzen Sie sie. Speziell hier könnte die Clusteranordnung von MSSQL-Servern, auf denen die StackExchange-Sites ausgeführt werden, wahrscheinlich auf MySQL (oder andere) portiert werden, aber es würde wahrscheinlich erhebliche Arbeit erfordern, da wahrscheinlich ein beträchtlicher Teil des DB-spezifischen Codes in der Datenbank lauert selbst oder (weniger wahrscheinlich) auf der Website selbst. Die meisten codebasierten, datenbankspezifischen Datenprobleme gehören dank LINQ, das Mono unterstützt (auch für Nicht-SQL Server-Datenbanken), der Vergangenheit an.
Das ist keineswegs eine endgültige Liste dessen, was ersetzt werden würde, aber sie sind die Hauptelemente.
Ob Sie wollen oder nicht ... Das ist eine schwierigere Frage. Bis Sie ein paar Dutzend Probleme durchgearbeitet haben, sind Sie wahrscheinlich bereits an dem Punkt angelangt, an dem Sie das System in etwas wie Django einfach neu implementieren könnten. Das hängt natürlich von der Komplexität des Systems ab. Es ist so schwer wie ein Stück Schnur.
quelle