Показаны сообщения с ярлыком C#. Показать все сообщения
Показаны сообщения с ярлыком C#. Показать все сообщения

пятница, 15 февраля 2013 г.

Библиотека Quartz.NET

В одном из текущих проектов понадобилось реализовать windows-сервис, который бы запускался раз в час, делал своё дело и засыпал до следующего запуска. Реализовал просто - через таймер.
Потом понадобилось добавить еще одну периодическую задачу, которая должна запускаться с другим интервалом. Как бы не проблема: создаём еще один таймер и радуемся. И что плодить таймеры каждый раз? Не хочу, ибо не красиво. Создать свой движок, управляющий созданием таймеров - тоже вариант. Но решил поискать существующие решения этой задачи.
Натолкнулся на Quartz.NET - портированный с Java open source framework Quartz. На сайте библиотеки есть много примеров использования scheduler.

вторник, 15 февраля 2011 г.

Анализ зависимостей программно? NDepend!

Натолкнулся на просторах интернета на хорошую статью:
Regfor's devblog: Анализ зависимостей программно? NDepend!: "Как поддерживать качества код на должном уровне? Есть много способов – культура написания кода, регулярное code review, всевозможные договор..."
Сам недавно поработал с этой утилитой. Хотел написать заметку, но меня опередили :)
Постараюсь поподробнее описать функционал, если меня не опередят :)

вторник, 25 января 2011 г.

Явное и неявное преобразование в строку

Тут что-то подумалось. Почему люди так любят вызывать метод ToString() в случаях подобном этому:
int x = 10; 
string str = "Значение = " + x.ToString();
Лично я предпочитаю следующую запись:
string str = "Значение = " + x;
Это удобно для меня во многих случаях. Самый яркий пример: есть коллекция и я пытаюсь получить оттуда значение:
IList<string, int> list = new List<string, int>();
list.Add("key", 10);
string str = "Значение = " + list["key2"]; //Напишет "Значение = "
Если попробовать применить ф-ю list["key2"].ToString(), то получим исключение. Чтобы не было исключений, надо проверять возвращаемое значение из коллекции.
Лично мне кажется это неудобным и поэтому я использую комбинацию:
  • list["key2"] + ""
  • Последующая проверка на string.IsNullOrEmpty(), если нужно.
А вы что думаете?

пятница, 12 ноября 2010 г.

LINQ Extensions

Сегодня понадобился ForEach для IEnumerable коллекции. Начал искать способы решения, но коллега помог и дал ссылку на статью LINQ, или “чего не хватает для счастья?”, в которой была ссылка на интересную библиотеку MoreLINQ, в которой есть еще больше интересных методов для реализации выражений.

Обновление 01.02.2012:
Вышел NuGet-пакет.
Так же обратить внимание на две другие библиотеки авторства Джона Скита – MiscUtils и NodaTime (NuGet Package). В его блоге можно почитать много интересного на тему того, чем плохи для этих целей стандартные классы .Net и какие подводные грабли поджидают разработчика, серьезно работающего со временем. Например перевод: Что же всё-таки не так со структурой DateTime? 

Перегрузка операторов

Ссылка: http://sivan.22host.ru/?p=8

Неявное преобразование
public static implicit operator Int32(MyIntStruct instance)
{
  return instance.m_IntValue;
}

MyIntStringStruct myIntStringStructInstance = "Hello World";

Console.WriteLine(myIntStringStructInstance);

Явное преобразование
public static explicit operator string(MyIntStringStruct instance)
{
  return instance.m_StringValue;
}

MyIntStringStruct myIntStringStructInstance = "Hello World";
Console.WriteLine((string)myIntStringStructInstance);

Перегрузка операторов
public static MySize operator +(MySize mySizeA, MySize mySizeB)
{
  return new MySize(
    mySizeA.m_Width + mySizeB.m_Width,
    mySizeA.m_Height + mySizeB.m_Height);
}

Еще статьи

2leep.com