пятница, 17 декабря 2010 г.

Service Locator - паттерн или антипаттерн?

В предыдущей статье про одно из нововведений в ASP.NET MVC 3 RC я в заключении упомянул про мнение по поводу паттерна Service Locator, вот ссылка на тот самый коммент Марка Симонна, а в нём есть ссылка на статью, где разбирается означенный вопрос. Я не буду дословно переводить всю статью, но попробую описать мысли из статьи и свои собственные, на которые меня этот материал навёл.

четверг, 2 декабря 2010 г.

ASP.NET MVC 3: Поддержка Dependency Injection

Материал основан на опыте использования ASP.NET MVC 3 RC.
Одно из нововведений ASP.NET MVC 3 - это поддержка инъекций кода "из коробки". Уже в preview 1 была добавлена поддержка инъекций для:
  • инстанцирование фабрики контроллера и самих контроллеров;
  • инстанцирование движков представлений и самих страниц представлений;
  • инстанцирование фильтров действий.
И тогда же разработчики пообещали в будущем добавить поддержку инъекций кода и для:
  • для механизма Model Binder;
  • для провайдеров значений (Value Providers);
  • для провайдеров валидации;
  • для провайдеров метаданных моделей.
Что и было сделано уже в Beta версии. Также при переходе к Beta несколько изменился механизм применения этих нововведений. Как раз о применении инъекций кода в ASP.NET MVC 3 я и хочу рассказать далее.

среда, 17 ноября 2010 г.

jQuery Templates plugin: Template Tags

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

Синтаксис шаблонов довольно функционален. В теле шаблона разработчик может обращаться к полям объекта, к полям полей объекта, вызывать методы объекта и его полей, обращаться к внешним объектам JavaScript и jQuery, просто писать JS-выражения. Кроме всего этого внутри шаблона можно итеративно выводить коллекции, организовать условный вывод, использовать вложенные шаблоны. Но давайте обо всём по порядку.

jQuery Templates plugin

4 октября 2010 года была опубликована запись в официальном блоге jQuery об анонсе трёх плагинов jQuery, созданных при поддержке команды Microsoft. Эти плагины - плагин шаблонов (the jQuery Templates plugin), плагин привязки данных (the jQuery Data Link plugin) и плагин глобализации (the jQuery Globalization plugin) - получили статус “Официальные плагины проекта jQuery” (officially supported plugins of the jQuery project).

Плагин шаблонов используется при необходимости вывести объект данных или массив объектов в разметку страницы. Плагин привязки данных нужен для связи объектов с элементами страницы и синхронного изменения значений. Плагин глобализации позволяет выводить такие данные, как числа, дата и время, сумма денег и т.п., на страницу в соответствии с форматом текущего языка.

Следует отметить, что команда Microsoft использовала свои немалые наработки в этих направлениях, как и команда проекта jQuery, и при хорошо сложившемся взаимодействии получились, на мой взгляд, отличные инструменты для разработчиков. В подтверждение моего мнения могу добавить, что разработчики jQuery анонсировали включение плагинов шаблонов и привязки данных в ядро библиотеки jQuery уже версии 1.5, а плагина глобализации - в соответствующую версию jQuery UI. Плагины пока ещё не получили статус релиза, но уже активно ведется написание документации на сайте http://api.jquery.com. К слову, команда Microsoft последовала традициям разработки jQuery и разместила материалы по разработке плагинов на github.com, где доступны описание и исходники плагинов.

пятница, 19 марта 2010 г.

Сворачиваем окна в трей

На днях просматривал диск с софтом и наткнулся на программку, которая сворачивает любое окно в трей (область со значками около часов на панели задач). А так как у меня обычно открыто много окон, которые нужны не постоянно, но и закрывать их не хочется (например, почтовая программа, браузер с нужными страницами и прочие), и в результате панель задач загромождена, то я заинтересовался этой темой.