IIS7 + NHibernate: Недопустимая операция попыталась на ключе реестра, который был отмечен для удаления

Если Вы хотите сделать "реальный" TDD (чтение: протестируйте сначала с красным, зеленым цветом, осуществите рефакторинг шаги), тогда, также необходимо начать использовать насмешки/тупики, когда Вы хотите протестировать точки интеграции.

, Когда Вы начнете использовать насмешки, через некоторое время, Вы захотите начать использовать Внедрение зависимости (DI) и контейнер Инверсии управления (IoC). Чтобы сделать это, необходимо использовать интерфейсы для всего (которые имеют много самих ловушек).

В конце дня, необходимо записать намного больше кода, чем если бы Вы просто делаете это "простой путь". Вместо просто потребительского класса также необходимо записать интерфейс, ложный класс, некоторую конфигурацию МОК и несколько тестов.

И помнят, что тестовый код нужно также сохраняться и заботиться. Тесты должны быть столь же читаемыми как все остальное, и это занимает время для записи хорошего кода.

Многие разработчики не вполне понимают, как сделать все они "правильный путь". Но потому что все говорят им, что TDD является единственным истинным способом разработать программное обеспечение, они просто стараются изо всех сил, они могут.

Это намного более твердо, чем можно было бы думать. Часто проекты, сделанные с TDD, заканчиваются с большим количеством кода, который никто действительно не понимает. Модульные тесты часто тестируют неправильную вещь, неправильный путь. И никто не согласовывает, как хороший тест должен быть похожим, даже так называемые гуру.

Все те тесты делают его намного тяжелее для "изменений" (напротив рефакторинга), поведение системы и простых изменений просто становится слишком трудным и трудоемким.

при чтении литературы TDD всегда существуют некоторые очень хорошие примеры, но часто в реальных применениях, у Вас должны быть пользовательский интерфейс и база данных. Это - то, где TDD становится действительно твердым, и большинство источников не предлагает хорошие ответы. И если они делают, это всегда включает больше абстракций: фиктивные объекты, программируя к интерфейсу, шаблоны MVC/MVP и т.д., которые снова требуют большого знания, и... необходимо записать еще больше кода.

Так быть осторожными..., если у Вас нет восторженной команды и по крайней мере одного опытного разработчика, который знает, как записать хорошие тесты и также знаете несколько вещей о хорошей архитектуре, действительно необходимо думать дважды перед потерей работоспособности по дороге TDD.

9
задан eyelidlessness 3 December 2009 в 17:58
поделиться

2 ответа

Это похоже на ошибку в самой платформе .NET.

Обратите внимание, что вызываемый самый внутренний метод не указывает, что он может вызывать исключение ComException.

] Я бы посоветовал выполнить обновление до последней версии Castle Dynamic Proxy (2.2 beta), чтобы проверить, сохраняется ли проблема.

Если да, вы можете попробовать использовать одного из других провайдеров прокси.

А также сообщить об этой проблеме. в Microsoft Connect

3
ответ дан 4 December 2019 в 20:24
поделиться

Это похоже на то, что я видел с COM + и MSMQ в Windows 2008. Что происходит, так это то, что Windows 2008 выгружает куст реестра пользователей, как только пользователь выходит из системы независимо от оставшихся открытых дескрипторов. Вы должны увидеть в журнале событий записи о том, что куст был выгружен, а процессы все еще его используют.

Существует объект групповой политики, который может быть настроен таким образом, чтобы этого не происходило (DisableForceUnload)

Дополнительная информация здесь:

http://blogs.msdn.com/distributedservices/archive/2009/11/06/a -com-server-application-may-stop-working-on-windows-server-2008.aspx

8
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: