Использование Trace и Debug для задания утверждений

Использование Trace и Debug для задания утверждений

Для задания проверочных утверждений в C# коде используются два метода Trace.Assert и Debug.Assert. Использовать их довольно просто. Достаточно указать условие проверки и если оно ложно, то утверждение генерирует ошибку.

Различия OrderBy и ThenBy

Различия OrderBy и ThenBy

Последнее время все больше провожу сравнений различных операторов и конструкций языка. Сегодня пролистывая список методов сортировки в LINQ с удивлением обнаружил, что никогда не использовал метод ThenBy. О данном методе, а конкретно о сравнении его с OrderBy, сегодняшняя заметка.

Проверка правильности конфигурации в .NET

Команда разработчиков .NET Framework полностью избавила разработчиков приложений от создания своих велосипедов для проверки конфигурации. При создании своих ConfigurationSection достаточно просто воспользоваться одним из доступных валидаторов (IntegerValidator, LongValidator, RegexStringValidator, StringValidator, TimeSpanValidator). Уже из названий понятно, что каждый из валидаторов проверяет.

Сравнение readonly и const

Сравнение readonly и const

Необходимость использования неизменяемого объекта возникает всегда. Для этого в языке C# используется два ключевых слова readonly и const. Однако не все так просто при их использовании и нужно понимать некоторые различия.

Отличие IEnumerable от IQueryable

Отличие IEnumerable от IQueryable

Сейчас проходя интервью на новый проект мне задали вопрос о различиях между IEnumerable и IQueryable. Я, признаться откровенно, не так много работал с Entity Framework так что для меня этот вопрос стал небольшим тупиком. Потому после интервью я решил конкретно разобраться в этой теме и как оказалось разбираться нужно не особо и долго.

Свой собственный NuGet-сервер за 5 минут

Управление зависимостями одна из основных проблем в разработке ПО. .NET-разработчики чаще всего используют NuGet для установки различных библиотек, так как его поддержка есть в Visual Studio прямо из коробки. Да и чего греха таить, сейчас NuGet является чем-то вроде стандарта в .NET-мире.

Анализ логов Windows на Python

Анализ логов Windows на Python

Вчера возникла задача проанализировать лог Windows с расширением evtx для поиска определенной ошибки. Сразу подумал просто просмотреть глазами последовательно и найти нужные события. Однако файл оказался огромным (50 Мб) и задача перестала казаться такой уж простой. Так как я имел представление, что мне необходимо искать, то было решено написать небольшой скрипт на Python который сможет проанализировать все записи в файле и найти совпадение.

Проверка существования представления в .NET Core MVC

Проверка существования представления (view) порой бывает необходима при динамической загрузке, когда есть возможность, что представление не окажется на месте. По какой-то причине разработчики .NET Core не включили соотвествующий метод в расширения используемые с IHtmlHelper. Однако написать соотвествующий метод довольно просто. Его код представлен ниже.

Держим пространства имен System первыми в списке usings в VS 2013

Переезжая с Visual Studio 2010 на новую Visual Studio 2013 я столкнулся с небольшой неприятностью. Дело в том, что команда "Sort Usings", которая сортирует все подключенные в файле namespace по алфавиту, в Visual Studio 2013 работает несколько иначе. 2010 студия по умолчанию считала, что пространства имен System должны идти первыми, а уже потом в алфавитном порядке все остальное. На такой же порядок у нас настроен StyleCop.