В результате недолгих мучений и исследований различных форумов и issue трекеров мне удалось то, что раньше казалось немыслимым. Код написанный на C#, который запускается в среде придуманной и разработанной в MS, который представляет из себя ASP.NET MVC приложение (!) заработал.
Для начала нужно скачать и установить саму операционку. Я брал образ с официального сайта.
http://ift.tt/1Hq8tCg
Далее этот образ я развернул на VirtualBox, поскольку это был просто эксперимент.
Чтобы запустить приложение на ASP.NET vNext под Ubuntu нам необходимо две вещи: проект оформленный в новом стиле ASP.NET vNext и развернутый и запущенный KRuntime с возможностью поднятия веб сервера Kestrel.
Создание приложения
Первая задача решается просто. Можно взять готовый очень простой пример с гитхаба:
http://ift.tt/1oqH0sj.
Если гит еще не установлен, устанавливаем его:
sudo apt-get install git
Затем клонируем себе репозиторий с примерами:
git clone http://ift.tt/1x0njZo
Инфраструктура
Вторая задача посложнее, но тоже решаема. Процесс состоит из следующих этапов:
Установка Mono
wget http://ift.tt/1Hq8tCl
sudo apt-key add xamarin.gpg
echo "deb http://ift.tt/1xRYUGZ wheezy main" | sudo tee --append /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-complete
Установка KRuntime
Разрешаем kvm лазить на свои сайты по своим сертификатам.sudo certmgr -ssl -m http://ift.tt/Xwe5Yn
sudo certmgr -ssl -m http://ift.tt/Xwe5Yp
sudo certmgr -ssl -m https://nuget.org
mozroots --import --sync
Скачиваем скрипт установки kvm и запускаем его, после чего запускаем kvm upgrade. Теперь все, что нужно, у нас уже установлено:curl http://ift.tt/1maOhG0 | sh && source ~/.kre/kvm/kvm.sh && kvm upgrade
Вытягиваем все зависимости KRuntime:kpm restore
Установка Bower
Если не установлен NPM, устанавливаем:sudo apt-get install npm
Запуск Web-сервера
Компилим libuv, и (жесткий хак), копируем сборку в папки KRuntime, поскольку там лежат по умолчанию несовместимые версии, поскольку MS еще не работали над поддержкой Linux.На данный момент KRuntime необходима версия 1.0.0-rc1 и сам KRuntime находится в версии 1.0.0-beta1. Все это очень быстро меняется, поэтому всегда необходимо знать какие версии линковались между собой последний раз. (Скрипт был взят и немного поправлен отсюда).
wget http://ift.tt/1xRYUXj
tar -xvf libuv-v1.0.0-rc1.tar.gz
cd libuv-v1.0.0-rc1/
./gyp_uv.py -f make -Duv_library=shared_library
make -C out
sudo cp out/Debug/lib.target/libuv.so /usr/lib/libuv.so.1.0.0-rc1
sudo cp out/Debug/lib.target/libuv.so ~/.kpm/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-beta1/native/darwin/universal/libuv.dylib
sudo ln -s libuv.so.1.0.0-rc1 /usr/lib/libuv.so.1
Вся работа с KRuntime выполняется над приложением, соответственно мы должны находится в директории с проектом, где лежит project.json. В нашем случае делаем:cd Home/samples/HelloWeb/Запускаем наше приложение на сервере kestrel (все настройки в файле project.json):
k kestrel
Открываем браузер и переходим по адресу:http://localhost:5004
Ну или другой адрес указанный в project.json рядом с kestrel:
Процесс очень непривычный, многое изменилось, но радует само развитие. Приятно и то, что ограничений становится все меньше и границы стираются.
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий