среда, 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(...)), @{Html.RenderAction<..>(...)} ).

4) Использование @helper внутри вьюшки: ссылка; для глобального использования создать папку App_Code и поместить вьюшку с хэлперами туда. воркэраунд для использования Html.ActionLink в App_Code-хэлперах: ссылка


пятница, 9 октября 2009 г.

Rewrite everything

Somewhere in the middle of June or so, our great strategic group decided that we'll be writing all the new components on c#. Yeah, we were writing everything on VB.Net or even worse - on VB6 before. Almost none of us have written on c# before, so the group hadn't met this decision with a lot of enthusiasm.

Till September we hadn't got any c# components. Moreover - we've got a brand new one on... guess what? VB6! :)

But since then we've some kind of avalanche in our team - since the first c# thing was just introduced (at the end of September), we've a couple of ideas about rewriting several - 2 or 3 - of our old stuff on c#! And those ideas were accepted! In spite of the thing, that we are running out of time with our upcoming project! :)

Who can explain the reasons for that? :)

пятница, 2 октября 2009 г.

Alter Radio

Started tweaking the page that controls our internet-radio.

For some reason DJ Random - almost random playlist generator - started playing very good music since then :)


..btw jQuery autocompleter has a disgusting feature - after you've chosen an item from a list you can't submit a form by hitting an enter or clicking on a submit button. Only when you do click a second time the form is submitted.

Realy ugly. I wish I had time to find/integrate something similar but without this nice "feature"

среда, 30 сентября 2009 г.

File not found but downloaded

Imagine that you have a path to video file in your database. That file downloads perfectly through the web-face, but your mencoder-wrapper fails to convert it.

Both wrapper-script and web-face take the path from the same place/field/table/database/row/whatever :)

Detailed look at the logs from mencoder and... file not found!

Try downloading again and take a preciser look at the url:

http://altervideos.ru/video/Theatre%20of%20Tragedy%20-%20Let%20You%20Down.MPG

Nothing strange. Really?

Except that "%20" are not the converted spaces :) They were stored as is in the database! For sure real file-name was with spaces and my browser automatically converted them back to spaces also!