Я использовал сериализованные объекты конфигурации nhibernate (также обсуждаемые здесь и здесь ), чтобы ускорить запуск моего приложения с 8 секунд до 1 секунды. Я также использую fluent-nhibernate, поэтому путь больше похож на
- Определения классов ClassMap в коде
- fluentconfiguration
- XML
- Конфигурация nhibernate
- конфигурация сериализована на диск.
Проблема от этого заключается в том, что существует риск устаревших сопоставлений - если я изменяю сопоставления, но забываю перестроить сериализованную конфигурацию, то в итоге я использую старые сопоставления, не осознавая этого. Это не всегда приводит к немедленной и очевидной ошибке во время тестирования, и несколько раз неправильное поведение было реальной болью для обнаружения и исправления.
Кто-нибудь знает, как я смогу определить, изменились ли мои карты классов, чтобы я мог сразу же выдать предупреждение / ошибку или перестроить его по требованию?
В данный момент я сравниваю метки времени на моей скомпилированной сборке с сериализованной конфигурацией. Это приведет к изменениям в отображении захвата, но, к сожалению, оно генерирует значительный процент ложных срабатываний, поскольку ЛЮБОЕ изменение кода приводит к появлению устаревшего флага. Я не могу переместить карты классов в другую сборку, поскольку они тесно интегрированы в бизнес-логику.
Это какое-то время мучало меня, поэтому мне было интересно, есть ли у кого-нибудь какие-либо предложения?