Feel Good.

29 апреля 2010

Hello, Unity 2.0

Рассматривая ранее принцип инверсии зависимости, мы остановились на том, что нам нужен некий IoC/DI фреймворк, который помог бы нам избавиться от рутинной работы. Как я уже говорил, существуем множество различных IoC/DI фреймворков:
  1. Microsoft Unity
  2. Ninject
  3. Autofac
  4. StructureMap
  5. Castle
  6. Spring.Net
В этой статье мы познакомимся с open-source IoC/DI контейнером от Microsoft Unity 2.0 под .NET 4.0. Работать с данным фреймворком очень легко, и я продемонстрирую это Вам на простом примере, проделав простых 5 шагов:
  1. Создадим новый проект и добавим в него основные сущности. Смотри предыдущую статью.
  2. Скачаем необходимые библиотеки.
  3. Добавим references на них в проекте.
  4. Настроим IoC-контейнер через конфигурационный XML-файл.
  5. С помощью IoC-контейнера получим экземпляр объекта нашего класса.

26 апреля 2010

Используем Fluent Builder

Продолжая тему Fluent interface, решил написать про Fluent builder. Основная цель Fluent builder - упростить процесс конструирования объектов, используя для этого цепочки методов (set-методы).

20 апреля 2010

Extension Methods как «Синтаксический сахар»

Решил начать собирать на этой страничке интересные и полезные решения на базе Extension Methods, которые облегчают процесс написания кода, или другими словами «Синтаксический сахар».

16 апреля 2010

Используем Fluent Filters

В этой статье я хотел бы рассказать про очень элегантное решение получении выборок с помощью Fluent Filters, основная идея которого заключается в построении цепочки методов, называемые фильтрами, для искомого набора данных. Под набором я буду подразумевать объект типа IQueryable (IEnumerable). Цель Fluent Filters - свести процесс создания сложного фильтра к процессу композиции нескольких более простых фильтров, причем композиция фильтров реализована в форме Fluent interface.

14 апреля 2010

Используем процессор шаблонов. NVelocity.

В этой статье я расскажу о том, как можно решить проблему создания представлений для моделей, используя NVelocity. Классическая задача программиста: имея бизнес объект(Model) необходимо построить для него представление(View). При решении подобной задачи, требуется помнить о том, что для конкретной модели может быть несколько представлений, в то время, как модель даже о них и не догадывается. На сегодняшний день существует несколько известных View Engine:
  • System.Web.Mvc.WebFormViewEngine
  • Brail
  • NDjango
  • NHaml
  • NVelocity
  • Spark View Engine

13 апреля 2010

Аутентификация по OpenID в ASP.NET MVC

В этой статье я хочу поделиться с Вами опытом разворачивания инфраструктуры OpenID в ASP.NET MVC приложении. По тексту я создам простое ASP.NET MVC приложение, поддерживающее аутентификацию клиента по OpenID. Точнее сама аутентификация будет проходить на стороне OpenID провайдера, который, относительно нашего приложения, выступает в роли подтверждающей стороны владения данным OpenID. Что такое OpenID и зачем он нужен можно найти здесь. Существует несколько видов аутентификации, но мы рассмотрим наиболее распространенный - checkid_setup. На пути достижения нашей цели выделим несколько этапов:
  1. Получение OpenID аккаунта.
  2. Установка API DotNetOpenAuth.
  3. Создание тестового проекта на ASP.NET MVC.
  4. Запуск и тестирование.

09 апреля 2010

User Stories или чего хочет пользователь

Переход на User Stories это первый шаг на пути к Agile software development. User story это атомарное требование к программному продукту, записанное в виде одного, двух предложений, сформулированное пользователем (заказчик или клиент) на простом языке и прежде всего сфокусированное на то, чего хочет пользователь.

08 апреля 2010

Arrange-Act-Assert

Использование шаблона Arrange-Act-Assert (AAA) при написании unit тестов, намного повышает шансы других разработчиков понять Ваш код. Наверняка Вы уже использовали AAA в своих проектах, но не догадывались об этом. Давайте разберемся, что же это за шаблон. Итак, все просто, данный шаблон всего лишь разделяет и группирует код теста на 3 секции, придавая, удобную для чтения, структуру unit теста:
  1. Arrange - выставление начальных условий.
  2. Act - отработка тестируемого функционала.
  3. Assert - сверка ожидаемых значений с полученными.

05 апреля 2010

Аутентификация. WCF

Аутентификация клиента на стороне WCF сервиса - одна из важнейших задач при разворачивании безопасности на WCF сервисе, позволяющая ответить на главный вопрос "КТО?". В этой статье я расскажу, как я реализовывал аутентификацию клиента на стороне WCF сервиса. Наша конечная цель: развернуть WCF сервис, реализующий интерфейс ISecretService, содержащий метод GetSecretCode, доступ к которому разрешен только аутентифицированным клиентам.

04 апреля 2010

Смотрим логи. NLogViewer

Однажды, я написал статью, в которой рассказал про то, как быстро начать работать с системой логирования NLog. Да, все это хорошо, мы умеем вести лог файл, но что с ним делать? Этот, правильный на мой взгляд, вопрос мне задавали мои читатели. И я решил рассказать о NLogViewer - системе анализа лог файла, созданным NLog. Вообще, лог файл не зависит от системы логирования, поэтому существует множество различных систем просмотра(анализа) лог файлов. В этой статье я расскажу о NLogViewer, и о том, как сделать связку NLog+NLogViewer.