ASP.NET + Mono + Apache

Published 9/22/2009 by e0ne in Mono | Web Development

Всё больше и больше можлно услышать о Mono. Как изестно, основное его идеей является реализация действительно кроссплатформенной среды .NET. Таким образом, чеще всего Mono испльзуют в операционной системе, отличной от MS Windows. А если не Windows, то Linux или какой-то из Unix. И всё было бы хорошо, если б не 2 момента (в данном случае я не акцентрирую внимание на степень готовности реализации Mono: аналог WinForms и замена Internet Information Services (IIS).На за мену WinForms приходят GTK, QTи другие библиотеки. А вот с заменой IIS все не тах хорошо: либо Apache с соответствующими модуляли, либо "родной" для Mono веб-сервер XSP2. А так как Apache наиболее популярен, то будем пользоваться им.

Все примеры я буду приводить для Ubuntu linux, но для других nix-подобных ОС все будет делаться таким же способом, за исключением установки пакетов.

Для начала нам все же надо установить Mono и IDE для нее. В качестве IDE  будем использовать MonoDevelop. Устанавливаем всё необходимое:

apt-get install mono-2.0-runtime mono-2.0-gac mono-2.0-service mono-2.0-devel mono-xsp2 mono-xsp2-base 

После чего можно запустить MonoDevelop, созать простое ASP.NET приложение и запустить. В результате получаем что-то похожее на это:

Теперь мы уже можем без проблем заниматься разработкой вплоть до момента, когда нужно запустить приложение на test-сервере, на которов, в качестве web-сервера, должен стоять Apache. Дело за малым - установить Apache и настроить его для работы с Mono.

Для наала, устанавливаем необходимы пакеты:

sudo apt-get install apache2 mono-apache-server2 libapache2-mod-mono

 

Говорим веб-серверу о необходимости загрузки нового модуля:

sudo a2enmod mod_mono

И создаём новый конфиг (/etc/mono-server2/monotest.webapp) для нашего приложения:

  <apps>
      <web-application>
         <name>Mono test</name>
         <vpath>/mono</vpath>
         <path>/var/www/</path>
        <vhost>localhost</vhost>
      </web-application>
</apps>


Последние что нас осталось сделать - это подправить конфигурационный файл Apache'а для нашего сайта (/etc/mono-server2/mono-server2-hosts.conf). Добавляем в него такие строки:

Alias /mono "/var/www"
AddMonoApplications default "/mono:/var/www"
    <Directory /var/www>
       SetHandler mono
          <IfModule mod_dir.c>
             DirectoryIndex Default.aspx
          </IfModule>
    </Directory>

Перезагружаем Apache командой:

sudo /etc/init.d/apache2 restart

И смотрим в браузере что у нас получилось:


Новый релиз Mono 2.2

Published 1/21/2009 by e0ne in .NET Framework
Tags: ,

Делюсь моими впечатлениями от знакомства с Mono.

На прошлой неделе вышел очередной релиз Mono - open source реализации .Net framework, разрабатываемый при поддержке компаний Novell и Microsoft. Подробно но нововведения можно почитать на странице проекта http://www.mono-project.com/Release_Notes_Mono_2.2.

Радует, что Mono в последних версиях поддерживает C# 3.0. Также есть Moonlight 1.0  - аналог Silverlight 2.0. Для миграции существующих проектов есть утилита Mono Migration Analyzer, которая позволяет узнать будет ли работать существующий код под Mono. Хочу сказать, что запуск небольшого WinForms приложения написаного на .Net framework 3.5 прошел порблем, а вот с web-приложением все немного хуже. Оффицияльня IDE MonoDevelop не поддерживает Web Application проекты, созданные в VS2008, поэтому для открытия каккого-ннибудь сужествующего проекти или StarterKit пришлось создавать новый проект и вручную добавлять в него все необходимые файлы. По удобству работы MonoDevelopв данный момент существенно проигрывает своему старшему брату и конкуренту - VisualStudio, но работать вполне можно. За время её использования MonoDevelop не разу не упала, аботала стабильно.

 Вот так прошло моё знакомство с тем, что неоторые называют "убийцей .net", а некоторые просто не верят в жизнеспособность этого продукта.

To be continued...