пятница, 15 марта 2013 г.

301 редирект для Windows Azure

С недавнего времени пробую себя в создание сайтов, начал, естественно, с простых вещей и с того, что мне сейчас реально могло бы пригодиться - детский сайт: с колыбелями, загадками, почемучками и т.п., что бы можно было читать дочке с любого девайса. 
Для меня это занятие в целом новое, но весьма затянуло. Так как проработал несколько лет программистом на C# - решил попробовать написать на ASP.NET MVC4. В качестве хостинга, пока заюзал бесплатный для меня Windows Azure. Сделал простенький детский сайт, купил домен, в зоне ru. И теперь началось самое интересное (хотя, учитывая мое нубство в асп.нете веселого было гораздо больше :) ) - я захотел, что бы с адреса Azure сайта был редирект на купленный домен в зоне ру.
Для начала начал рыть интернет с целями - как это вообще делается, нашел статьи про .htaccess, с которым тоже была целая история - оказывается винда не даст просто так взять и переименовать файл в файл такого вида - говорит имя файла надо задать :) Но командная строка решает всё. Создал файл, довольный - паблишу в Azure. Не тут то было - ничего не происходит. Для IIS'a - такой вариант не работает. 
Но в ажуре же и доступа к интерфейсу ИИСа нет, что делать? Очень много решений по интернету, описывающих, как с шарпного кода редиректить на другой сайт. Но вот не понравилось мне это, не понимаю я, зачем запрос вообще должен обрабатываться моим кодом. Начал рыться дальше - решение оказалось довольно простым.
Достаточно в конфиге, в секции 
<system.webServer>
Вставить следующий конфиг:

 <rewrite>
      <rules>
        <clear/>
        <rule name="cloudredirect" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^subdomain\.azurewebsites\.net$"/>
          </conditions>
          <action type="Redirect" url="http://domain.ru/{R:0}" redirectType="Permanent"  />
        </rule>
      </rules>
    </rewrite>

Какие параметры, что значат - думаю не составит труда найти, скажу лишь, что настроек очень много, можно настроить и исключения для конкретных страниц (negate="true"), и правила для различных переходов, тип редиректа, а так же настроить редирект со страницы www на страницу без и наоборот.
И да - студия ругается на такой конфиг, интеллисенс не знает о такой секции, так что не пугайтесь.

воскресенье, 13 января 2013 г.

jQuery documentation

С недавнего времени перешел от Desktop разработки к Web и сейчас я познаю все прелести JavaScript'a и jQuery. После WPF и C# очень сложно привыкнуть к не типизированному языку, но никуда не деться :)
jQuery в современном WEB'e стала неотъемлемой частью разработки, без этой библиотеки вместо 2-3 строчек кода - приходится, порой, писать десяток. Сегодня я напишу о том, как облегчить использование этой библиотеки в Visual Studio, а именно - о документации, которая предоставляется с этой библиотекой и о которой не все в курсе.
WEB проекты созданные в VS2010 или VS2012 сразу имеют подключенные файлы jquery и jquery-vsdoc. Однако, если Вы мигрировали проект с восьмой студии или изначально вам не нужен был jQuery, а потом захотели его использовать, то Вам помимо самого файла - нужна документация, с помощью которой можно активировать нормальный IntelliSense.
Скачать документацию для конкретной версии jQuery можно отсюда:
http://appendto.com/community/jquery-vsdoc/ 
Нужно создать JS файл вида jquery-1.8.3-vsdoc.js
Вуаля, можно наслаждаться подробным описанием функций и их параметров.

И безусловно удобный способ подключения - через nuget, он установит и сам jQuery и документацию к нему.

В некоторых случаях, этого может оказаться недостаточно. Тогда на странице, к которой Вы хотите подключить документацию необходимо дописать:

<% if(false) 
{ %>
    <script src="/path/to/vsdoc.js" type="text/javascript"></script>
<% } %>
или же в .js файле:
/// <reference path="/path/to/vsdoc.js" />