ASP.NET MVC и веб-сервисы - PullRequest
       61

ASP.NET MVC и веб-сервисы

48 голосов
/ 23 сентября 2008

Разве добавление веб-службы в мой проект ASP.NET MVC нарушает всю концепцию MVC?

Эта веб-служба (WCF) зависит от уровня модели из моего проекта MVC для связи с серверной частью (поэтому мне кажется, что она должна быть частью решения MVC).

Должен ли я добавить это на уровень контроллера или модели?

Ответы [ 7 ]

27 голосов
/ 23 сентября 2008

Похоже, вам следует разделить вашу модель на собственную сборку и сослаться на нее из вашего MVC-приложения и WCF-приложения.

  • YourApp.Data - может быть общая модель и доступ к данным
  • YourApp.Web - если вы хотите делиться больше со своими веб-приложениями
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

Если вы хотите использовать WebServices в стиле MVC, возможно, вам следует использовать MVC для создания собственного REST-приложения.

19 голосов
/ 23 сентября 2008

Есть ли конкретная причина, по которой вам нужно добавить веб-сервисы в ваше приложение MVC? Если нет особой причины, вы должны использовать свои контроллеры в режиме RESTful так же, как и в случае веб-службы RESTful.

Проверьте это сообщение от Роба Коннери для получения дополнительной информации: ASP.Net MVC: использование архитектуры RESTful

11 голосов
/ 25 февраля 2009

Разделение модели на собственный проект не нарушает шаблон «MVC». Во-первых, это просто шаблон. Целью паттерна MVC является четкое разграничение ваших данных, обработчиков данных и докладчиков и способа взаимодействия между ними. Лучший способ сделать это так, как предложил Себ:

  • YourApp.Data
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

Что-то, что может вам помочь, - это витрина магазина MVC, которую собрал Роб Конери. Посмотрите видео здесь:

Серия видеороликов MVC для магазина

И если вы хотите посмотреть на реальный код в вашем браузере, чтобы быстро увидеть, как он это сделал, перейдите сюда: MVC Browser Codeplex для витрин

2 голосов
/ 03 октября 2008

Я не думаю, что разделение модели на собственную сборку имеет какое-либо отношение к тому, используете ли вы MVC или нет, у вас все еще есть модель. Где это не имеет значения наверняка?

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

Я попробовал это сделать.

Смотрите мой результат на мой блог

ps: я не верю, что это нарушит концепцию MVC, если вы считаете, что веб-сервис - это модель репозитория, потому что все, что делает веб-служба, - это возврат дамп XML.

0 голосов
/ 22 марта 2011

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

0 голосов
/ 23 сентября 2008

Я добавил веб-сервисы в свое приложение, и оно работает хорошо. Я не верю, что это нарушает MVC, потому что это альтернативный интерфейс для вашей модели. MVC не подходит для веб-сервисов, потому что веб-сервисы не имеют представления.

...