Сообщения

AutoFixture

AutoFixture - автоматическое наполнение тестируемого объекта и вложенных объектов произвольным данными. Интересная библиотека, приятная и удобная в использовании. Имеет ги...

Test Not First

From http://www.simple-talk.com/dotnet/.net-framework/on-writing-unit-tests-for-c/ A practice that is made popular by Agile and Extreme Programming methodologies is ‘test-first development’. From Wikipedia: ‘The tests should be written before the functionality that is being tested’. I don’t agree with that. Tests for a portion of code should be written at the same time as the code itself. I advocate this because not all edge cases can be faced up-front, even by domain experts or professional testers. Edge cases are generally discovered only when thoroughly implementing an algorithm. This is an iterative process where you write a few tests, then write the few corresponding lines of code and methods, and repeat until the features and classes are completely implemented and 100% covered by tests. By talking with many who advocate test-first principles, I find that they are also talking of a process where code and test writing are iterated. We are certainly ...

Cannot register duplicate Name 'XXX' in this scope

Изображение
Для решения проблемы замените в XAML атрибут x:Name на x:Key. Cannot register duplicate Name 'XXX' in this scope

TortoiseSVN сделал это! Теперь папка ".svn" будет только одна и в корне проекта

Изображение
Случилось! Трюки с папками ".svn" закончились. Пару месяцев назад TortoiseSVN стал работать с одной папкой ".svn" в корне проекта. Вложенные папки больше не нужны. Для начала работы с новой версией (в новом режиме) сначала надо конвертировать старые папки (проекты) из контекстного меню Windows. На сервер SVN это, понятно, никак не влияет. Для VisualSVN тоже вышел релиз, который такой режим работы с SVN поддерживает.

Реализации IEndpointBehavior бесполезны без открытого конструктора

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

Конструктор класса OracleCommand небезопасен и может выкидывать исключения

Изображение
Конструктор класса OracleCommand небезопасен и может выкидывать исключения при рассогласовании версий DLL от ODP.NET и Oracle Client, или при рассогласовании разрядности (x32 vs x64) и путей. Это означает, что использовать его вне Data Access Layer нельзя. Также любое создание объекта new OracleCommand  должно быть обработано в блоке try catch .

ASP.NET: причуда - точка останова в Global.asax срабатывает два раза.

Изображение
Точка останова в дебаггинге срабатывает два раза на Application_Error в файле  global . asax , если в файле  MyClass , который определен в  <% @   Application    Inherits =" MyClass "   Language ="C#"   %>  в коде тоже определен метод Application_Error. При чем в этом файле точка останова не срабатывает. Мало того, код в этом втором  Application_Error  игнорируется. А вот если из  Global . asax   убрать  Application_Error, то другой метод заработает и точки останова будут устанавливаться. Проверялость на  ASP.NET  Development Server. С другими методами ожидаю такое же поведение. Всегда есть место багам, даже в старом добром  ASP . NET .