Рассол имеет и текст и форматы двоичного выхода. При использовании основанного на тексте формата, можно сохранить его в Текстовом поле, но это должен будет быть BLOB при использовании (более эффективного) двоичного формата.
Я с тобой. Я предпочитаю размещать свои интерфейсы в отдельном проекте И в другом пространстве имен. Классический пример - классы доступа к данным. Вы хотите иметь возможность кодировать версию MSSQL и версию MySQL, реализующие один и тот же интерфейс. Поэтому я предпочитаю, чтобы определение интерфейса находилось в отдельной сборке / проекте. Вот пример того, как я размещаю сборки и пространства имен:
Это позволяет мне изменять реализации, не затрагивая проект, содержащий определения интерфейсов. Это также помогает мне контролировать версии и отслеживать изменения. Могут быть другие способы снять шкуру с этой кошки, поэтому я буду очень рад узнать ответы других людей.