Блок приложения проверки и кодовые контракты .NET 4.0 - PullRequest
3 голосов
/ 17 марта 2010

Кто-нибудь реализовывал корпоративную библиотеку VAB вместе с контрактами кода в .NET 4.0?

Если это так, вы можете поделиться некоторыми идеями? Помогло ли это в производительности? Любые другие факторы, которые следует учитывать?

1 Ответ

5 голосов
/ 20 марта 2010

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

Позвольте мне сказать иначе: Code Contracts предназначен для предотвращения ошибок программирования, а не ошибок пользователя, и обеспечивает поддержку во время компиляции. VAB предотвращает ошибки пользователя, а не ошибки программирования * и обеспечивает поддержку во время выполнения.

* Хорошо, VAB также может быть использован для ошибок программирования (и фактически я сам использую его таким образом), но основным сценарием является ввод данных пользователем IMO.

...