Переключаемый бэкэнд XML и SQL - PullRequest
0 голосов
/ 15 февраля 2012

У меня архитектурный вопрос, нам нужно разработать информационную систему с двумя внешними интерфейсами: легким веб-приложением (ASP.NET) и настольным (WIN-FORMS) приложением.Пока ничего особенного, но эти два интерфейса должны иметь возможность взаимодействовать с двумя общими и переключаемыми (после перезапуска приложения) базами данных, одной базой данных SQL (сервером SQL) и одним, скорее всего, каким-то хранилищем XML (все в одном файле).было бы достаточно).Эти два магазина не будут синхронизированы.Оба приложения будут очень простыми, только в нескольких формах.

Пожалуйста, есть какие-нибудь готовые вещи, например, в Entity Framework, которые можно настроить, как описано выше?

Или какой архитектурный дизайн вы бы порекомендовали?

1 Ответ

2 голосов
/ 15 февраля 2012

Хм.

Лучше всего иметь проект библиотеки классов для вашего хранилища данных .

Дайте ему известный интерфейс и используйте фабричный шаблон , чтобы решить во время выполнения, генерировать ли он экземпляр SQL или экземпляр XML.

Лучше всего иметь хранилище на основе одноэлементного шаблона .

Таким образом, у вас будет что-то вроде Repository base, наследующего IRepository, с XMLRespository и SQLRepository, наследующего от Repository.

Тогда ваша бизнес-логика просто ссылается на IRepsository или Repository и не заботится о том, что там на самом деле (XMLRepository или SQLRepository).

Это похоже на шаблон репозитория .

Если вы хотите использовать одну и ту же бизнес-логику с разными интерфейсами и придерживаться ASP.NET Webforms and Winforms, то я бы сделал то же самое с бизнес-логикой , т.е. поместил бы ее в библиотека классов и вызов из кода ASP или Winform при необходимости.

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