2011-12-23 2 views
8

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

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

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

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

Спасибо.

+4

Вы пытались запустить свои сборки под Apache/Mono? Лучшее, что вы можете сделать, это просто попробовать и посмотреть, что ломается или использовать анализатор Mono Migration http://mono-framework.com/MoMA. –

+0

Есть хороший шанс, что он будет работать неплохо. Дайте ему попробовать, как указано выше. – IanNorton

ответ

7

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

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

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

3

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

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

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

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

+0

«Единственное, что у меня было бы с вашей базой данных». - наш сервер базы данных MS SQL, но это другой компьютер, чем тот, на котором я хочу запустить этот проект. Не следует ли мне использовать проект ASP.NET под Apache, когда он подключается с помощью SQL-провайдера данных для MSSQL к нашей базе данных на нашем сервере db? –

+1

Да, вы сможете это сделать. – startupsmith

+0

@lanks, могу ли я спросить только вопрос, не относящийся к теме, какой ORM (если есть) вы использовали? Заранее спасибо. – greenoldman

Смежные вопросы