Портирование ASP.NET приложение для Mono / Apache под Linux
У меня относительно небольшой ASP.NET проект, написанный с использованием C# 4.0.
Мне было интересно, удалось ли кому-нибудь перенести такой проект на работу под веб-сервером на Linux, последняя информация, которую я могу найти, кажется, имеет только поддержку ASP.Net 2.0 -настройка и запуск Mono ASP.NET 3.5 (AJAX.NET) на компьютерах Linux
проект использует LINQ-to-SQL для всего уровня доступа к данным, и я знаю, что Mono сам поддерживает LINQ, поэтому Я подумал, что это должно сработать.
Я просто хочу знать, является ли это пустой тратой времени или нет, прежде чем начать.
спасибо.
2 ответов
Я запускаю ASP.NET 4.0 приложение на SUSE Linux с использованием mono. Мой опыт работы с mono заключается в том, что он просто работает. Мое приложение ~ 15.000 LOC и использует сторонние компоненты, такие как mongo-CSharp-driver, lucene.net Эльма, Мунк и сфориум.webdavserver.
У меня почти не было проблем с совместимостью во время разработки - и те, которые у меня были, где легко работали (например, sphorium обращается к реестру; это, очевидно, работает по-разному на Linux/Mono). Я даже начал развиваться с Visual Studio instaed из MonoDevelop и без плагина Mono, потому что Visual Studio-лучшая IDE, и она просто работает, когда я компилирую свое веб-приложение в linux и развертываю его на Apache (хотя я разрабатываю с .NET в Windows).
Это определенно не пустая трата времени. Компания, в которой я работаю, преобразовала нашу VB.Net приложение на C#, чтобы оно могло работать под mono. Это приложение имеет более 200k строк кода. Теперь мы работаем с Ubuntu/Apache/Mono / Postgresql на Amazon ec2.
единственное, что меня беспокоит, это ваша база данных. Если это MS SQL, вам нужно будет посмотреть на миграцию в MySQL или Postgresql. Снова мы сделали это с 300+ таблицами и 900 хранимыми процедурами. Это определенно что-то в конечном счете, стоит.
Я думаю, что лучший способ начать работу - это Настроить локальную среду под управлением Ubuntu. Вы можете получить ближайшем последних версиях моно из репозиториев в http://badgerports.org/ или если вы предпочитаете вы можете последней версии, как скрипты сборки, которые ведутся здесь. Установите monodevelop и создайте свой код на linux с помощью mono. По опыту mono с C# является довольно полным реализация .net framework. Я был бы удивлен, если бы в вашем приложении было что-то, что еще не реализовано в mono.
У меня есть ответ здесь отображение простой конфигурации для вашего приложения под apache. Я использую эту конфигурацию для моно-приложений, работающих на Ubuntu.