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