Подходит ли наличие нескольких веб-интерфейсов и одной базы данных в шаблоне проектирования MVC? - PullRequest
0 голосов
/ 29 октября 2009

В настоящее время у нас есть 3 веб-сайта, все из которых работают с одной и той же серверной частью базы данных, и на них приходится почти 100% бизнес-логики.

Становится больно каждый раз обновлять код 3 сайтов, чтобы учесть небольшие изменения. Будет ли работать ASP.Net MVC у нас?

Что я думаю, так это то, что бизнес-логика и база данных практически идентичны во всех трех, поэтому извлеките их в модель и элемент управления. Тогда у каждого веб-интерфейса (который выглядит по-разному) у каждого свой вид. Тогда было бы хорошо иметь один проект, в котором мы могли бы иметь общий код для Модели и Контроля. И 3 разных взгляда.

Как бы мы развернули что-то подобное? Совместно использовать одну кодовую базу для модели и элемента управления и иметь 3 отдельных URL-адреса, используя 3 разных представления. Или есть лучший способ сделать это?

Ответы [ 3 ]

3 голосов
/ 29 октября 2009

Вы, вероятно, можете использовать его, используя ASP.NET MVC, но вы также можете вставить слой службы и использовать стандартные веб-службы ASP.NET для его представления. Тогда каждое из ваших «представлений» все еще может быть в своем собственном маленьком мире, и просто использовать веб-службы для сбора и сохранения данных.

ASP.NET MVC, вероятно, в конечном итоге является лучшим решением, но это, безусловно, альтернатива.

Одна вещь, которую вы должны учитывать, это если вы хотите сохранить эти 3 сайта на отдельных доменах. Я не уверен, как ASP.NET обрабатывает разные взгляды на разные домены.

1 голос
/ 29 октября 2009

Похоже, вам действительно нужно реализовать сервисный уровень (инкапсулирующий общую бизнес-логику и данные), который используется n (тонкими) веб-приложениями. Вот и думай SOA .

0 голосов
/ 29 октября 2009

Это кажется мне разумным. С точки зрения модели и элемента управления вы могли бы рассмотреть возможность устранения любых незначительных различий между текущими моделями / элементами управления с использованием общей функциональности в базовом классе и использования наследования для обработки исключений.

Если ваш веб-интерфейс отличается только с точки зрения внешнего вида, тогда вы можете рассмотреть возможность использования одной и той же базы кода, но просто поменять местами разные темы с помощью CSS.

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