Портирование приложения ASP.NET в Mono / Apache под Linux - PullRequest
8 голосов
/ 23 декабря 2011

У меня есть относительно небольшой проект ASP.NET, который был написан с использованием C # 4.0.

Мне было интересно, если кому-то удалось перенести такой проект на запуск под веб-сервером в Linux, последняя информация, которую я могу найти, похоже, имеет поддержку только ASP.Net 2.0 - Настройка и запуск Mono ASP. NET 3.5 (AJAX.NET) на компьютерах Linux

В проекте используется LINQ-to-SQL для всего уровня доступа к данным, и я знаю, что Mono сама поддерживает LINQ, поэтому я подумал, что он должен работать.

Я просто хочу знать, если это пустая трата времени или нет, прежде чем начать.

Спасибо.

Ответы [ 2 ]

7 голосов
/ 23 декабря 2011

Я запускаю приложение ASP.NET 4.0 на Suse Linux, используя моно.Мой опыт работы с моно заключается в том, что он просто работает.Мое приложение ~ 15.000 LOC и использует сторонние компоненты, такие как mongo-csharp-driver, lucene.net, elmah, munq и sphorium.webdavserver.

У меня почти не было проблем с совместимостью во время разработки - ите, которые у меня были, где легко работали (например, sphorium обращается к реестру; это очевидно работает по-другому на Linux / Mono).Я даже начал разрабатывать с Visual Studio вместо MonoDevelop и без плагина Mono, потому что Visual Studio - лучшая IDE, и она работает только тогда, когда я компилирую свое веб-приложение на linux и разворачиваю его на Apache (даже если я разрабатываю с помощью.NET в Windows).

Я написал небольшой пост в блоге о том, как начать установку

3 голосов
/ 23 декабря 2011

Это определенно не пустая трата времени.Компания, в которой я работаю, преобразовала наше приложение VB.Net в C #, чтобы оно могло работать под моно.Это приложение имеет более 200 тысяч строк кода.Сейчас мы работаем с Ubuntu / Apache / Mono / Postgresql на Amazon ec2.

Единственное, что меня беспокоит, - это ваша база данных.Если это MS SQL, вам нужно будет перейти на MySQL или Postgresql.Мы снова сделали это с 300+ таблицами и 900 хранимыми процедурами.Это определенно что-то стоящее в долгосрочной перспективе.

Я думаю, что лучший способ начать работу - это настроить локальную среду, в которой работает что-то вроде Ubuntu.Вы можете получить самые последние версии mono из репозиториев по адресу http://badgerports.org/ или, если хотите, можете использовать последние версии в качестве сценариев сборки, которые поддерживаются здесь .Установите monodevelop и соберите свой код на linux с помощью mono.Исходя из опыта, моно с C # является практически полной реализацией .net framework.Я был бы удивлен, если бы в вашем приложении было что-то, что еще не было реализовано в моно.

У меня есть ответ здесь , показывающий простую конфигурацию для вашего приложения под apache.Я использую эту конфигурацию для моно приложений, работающих в Ubuntu.

...