Переезжаем на собственный домен и радуемся :)
среда, 8 июня 2011 г.
понедельник, 23 мая 2011 г.
Краткий конспект по запуску MVC на Mono (Ubuntu)
Краткий конспект по проблемам, с которыми сталкивался разворачивая MVC3-сайт на Ubuntu с nginx и Mono
1) Ставим последнюю версию Mono wget --no-check-certificate https://github.com/nathanb/iws-snippets/raw/master/mono-install-scripts/ubuntu/install_mono-2.10.sh когда выйдет следующая версия гуглить на тему install_mono.
2) Деплоим проект на сервер. Должна получиться следующая структура
/
- App_Code (копируем из проекта, если используем шареные хелперы)
- Views (папка с вьюшками, копируем из проекта)
- bin (папка с бинарниками. копируем из проекта)
- Default.aspx (копируем из примера приложения, см. ниже)
- Web.config (копируем из проекта)
- Global.asax (копируем из проекта)
3) В MVC проекте ставим CopyLocal=true для библиотек: System.Web.Helpers, System.Web.Mvc, System.Web.Razor, System.Web.WebPages, System.Web.WebPages.Razor, System.Web.WebPages.Deployment. Здесь важен не CopyLocal, а тот факт, чтобы они попали в папку bin на сервере.
4) Копируем в папку bin файл Microsoft.Web.Infrastructure из установленной версии Mono (/opt/mono/lib/gac...). Если библиотеки пункта 2 должны быть Майкрософтовские, то эта должна быть Моновская!
5) Настраиваем nginx. Позже здесь наверное будет ссылка :)
Возможные ошибки:
1) "The view '***' or its master was not found or no view engine supports the searched locations."
не хватает директив @using во вьюшке. Проверьте наличие недефолтных неймспейсов в Views/Web.Config.
воскресенье, 22 мая 2011 г.
Краткий конспект по старту с MVC
Дабы не забыть о свежедостигнутом в рамках MVC - законспектирую это здесь.
0) НИКОГДА не называть параметры функций в контроллере "action" и "controller". Это запутывает маршрутизацию и приводит к ошибке An item with the same key has already been added.
1) Тестить контроллер - MvcContrib.TestHelper для тестирования редиректов, для тестирования возвращаемой модели кастовать ActionResult в ViewResult и проверять ViewResult.Model;
2) Для использования strongly-typed ActionLink, RenderAction и прочего зареференсить Microsoft.Web.Mvc. Добавить @using во все вьюшки можно через Web.config и Views\Web.config
3) stringly-typed ActionLink заключать в круглые скобки, RenderAction - в фигурные ( @(Html.ActionLink
4) Использование @helper внутри вьюшки: ссылка; для глобального использования создать папку App_Code и поместить вьюшку с хэлперами туда. воркэраунд для использования Html.ActionLink в App_Code-хэлперах: ссылка