Комментарии на страничке Братухина Андрея
Ум ленивее чем тело. Ларошфуко

Новости

1 февраля 2006 г.
Новый дизайн

25 января 2006 г.
Проект OleDatecs закрыт. Если Вас интересует данный проект, то пишите на мой адрес электронной почты.

Архив

Июнь 2006 г.
Май 2006 г.

eXTReMe Tracker

Мои комментарии

Управление бизнес-правилами


Выдержка из Delegates And Business Objects.
Пример бизнес-правила: Название учетной записи не должно быть пустым и не должно превышать 20 символов.
И вот простая реализация:
public string Name 
{
    get { return _name; }
    set 
    {
        if (value == null
            || value.Trim().Length == 0
            || value.Trim().Length > 20) 
        {
            throw new ArgumentException("Account names can't be blank, and can't be 
                                         longer than 20 characters.");
        }
        _name = value; 
    }
}
Рассмотрим недостатки этого решения:
  • нельзя создать временный объект с пустым названием;
  • требуется отдельная обработка исключения для отображения сообщения в GUI;
  • трудно расширяется;
  • трудно выяснить какие правила действуют для данного объекта;

  • Теперь рассмотрим вариант решения выше изложенных проблем:
    public string Name {
        get { return _name; }
        set { _name = value; }
    } 
    protected override List(Rule) CreateRules() {
        List(Rule) rules = base.CreateRules();
        rules.Add(new SimpleRule("Name", "An account name is required and cannot be left blank.", 
                                  delegate { return this.Name.Length != 0; }));
        rules.Add(new SimpleRule("Name", "Account names cannot be more than 20 characters in length.", 
                                  delegate { return this.Name.Length (= 20; }));
        return rules;
    } 
    
    Теперь осталось реализовать простую функцию проверки состояния объекта.
    Если в класс добавить реализацию интерфейса IDataErrorInfo, то для обработки правил на уровне GUI потребуется намного меньше усилий. Компонента DataGridView сама вызывает этот интерфейс, а для остальных контролов можно использовать ErrorProvider.

    NUnit 2.4 alpha


    Вышел NUnit 2.4 alpha. Добавлен очень полезный assert - CollectionAssert с поддержкой следующих возможностей:
    - AllItemsAreNotNull;
    - AllItemsAreUnique;
    - Contains;
    - IsEmpty;
    - IsSubsetOf/IsNotSubsetOf;

    Windows Vista


    Microsoft определилась с требованиями к аппаратному обеспечению для Vista. Читаем на ZDNet.ru

    Сохранение сессии в ASP.NET


    Полезный способ сохранения данных для сессии ASP.NET, используя CallContext. Читаем...

     
    Web andrey-bratuhin.narod.ru
    Последние изменения: 02 июля 2006 г.
    Сайт управляется системой uCoz