Как работает ASP.Net в Linux по сравнению со стандартным решением, ориентированным на Microsoft? - PullRequest
9 голосов
/ 19 января 2011

Я знаю, что можно разработать и разместить сайт ASP.Net под Linux, используя Mono и Apache , но я хотел бы знать, насколько хорошо он работает и стоит лихлопот?Я предпочитаю открытый исходный код, но для этого проекта я хочу самое быстрое, простое и надежное решение.

Сайт, который я буду создавать, будет довольно простым сайтом ASP.Net с использованием MySQL .

Я хотел бы знать, есть ли у кого-нибудь еще опыт использования Mono в такой ситуации, как моя, и как прошел проект.Каково это по сравнению с использованием решения, ориентированного на Microsoft?

Я знаю, Mono все еще несколько неполон, но я надеюсь, что мне не понадобятся те функции, в которых ему не хватает.

Этот вопрос может быть немного «поляризационным».На большинство подобных вопросов, похоже, есть ответы от людей, которые очень про-Microsoft или про-Linux.Я надеюсь на некоторые непредвзятые ответы, предпочтительно от людей, имеющих опыт использования обоих.

Ответы [ 3 ]

10 голосов
/ 19 января 2011

Я перешел с MS-ориентированных решений около полутора лет назад, и теперь я размещаю все свои веб-сайты и веб-проекты на виртуальных серверах на основе Linux / Mono / Apache / MySQL (изначально я использовал nginx вместо apache, но mono-fastcgi-server случайно вызывал thrashing , поэтому я выбираю apache в качестве веб-сервера).Я могу обобщить свой (субъективный) опыт работы с этой конфигурацией в несколько пунктов:

  • Может потребоваться некоторое время, чтобы привыкнуть к разнице между средами на основе Linux и MS (если вы никогда не использовали Linuxдо), но я не жалею об этом решении.Мне очень помогло создание процедур установки и настройки для определенных технологий (например, монопараллельных сред, конфигураций виртуальных хостов Apache, решения определенных проблем), которые в основном повторяются и могут быть автоматизированы.

  • Вы все еще можете использовать Visual Studio для разработки своих приложений, а затем развертывать их на компьютере с Linux.Если вы используете этот подход, это хорошая привычка регулярно тестировать ваши приложения на моно на предмет возможных несовместимостей.

  • Я разворачиваю веб-приложения через FTP, что, вероятно, является самым простым способом сделать это (хорошоможет быть, WinSCP еще проще, потому что вам не нужно настраивать FTP-сервер, но это зависит от ваших предпочтений).

  • До сих пор я столкнулся с двумя случаями с Mono / Apacheгде утечка памяти вызвала недоступность сайта.Вероятно, это было вызвано сборщиком мусора Boehm, который я использовал на старой моно установке.У меня не было подобных проблем с новым sgen GC в последних версиях mono.

  • Что мне больше всего нравится в моно, работающем в среде Linux, по сравнению с MS, так это то, что у вас нетПри выполнении административных задач приходится все время кликать.«Шелл» для меня - единый административный интерфейс, который может ускорить процесс (если у вас есть немного практики).

4 голосов
/ 19 января 2011

Хостинг ASP.NET на моно из моего опыта довольно прост и быстр. я принимал несколько моих проектов, используя Mono ASP.NET MVC 1/2 с использованием MySQL и PostgreSQL, обслуживаемых Apache mod_mono.

По сравнению с развертыванием на Windows Server. Это довольно узко при использовании современного дистрибутива Linux, который уже предоставляет весь пакет для развертывания моно ASP.NET. единственный недостаток в том, что вы должны убедиться, что ваше веб-приложение достаточно переносимо с точки зрения доступа к IO, и для отладки и публикации вашего проекта требуется только очень короткая кривая обучения и опыт.

Для развертывания нашего проекта в Linux. Легко использовать Version Control (VS), например Mercurial или Git, если у вас есть полный контроль над сервером. Если у вас больше опыта, продолжайте интеграцию, тем лучше. Я в основном использую Mercurial, поэтому шаг ниже - это шаг, который я обычно делаю, но я думаю, что он почти похож на Git:

  • Установите Mercurial и настройте mod_wsgi, hgweb.wsgi и hgwerb.config
  • Инициируйте VS repo и опубликуйте на hgweb.config и настройте ловушку для обновления и вызовите xbuild для автоматической сборки при нажатии
  • опубликовать репо (веб-часть) как моно-приложение на mod_mono.conf
  • Так что вам просто нужно кодировать в visual studio, фиксировать и отправлять свои изменения, используя tortoiseHg без входа в систему на сервер (установите URL репо, пользователя и пароль в репозитории hgrc)
0 голосов
/ 03 января 2012

Обратите внимание, что, хотя вы можете развернуть ASP в Linux с помощью таких вещей, как Mono, если вы используете Microsoft, например Visual Studio, Webmatrix или Visual Web Developer, ваша лицензия позволяет развертывать их только на серверах Microsoft!

...