2008-09-23 4 views
48

Добавляет ли веб-сервис моему проекту ASP.NET MVC всю концепцию MVC?ASP.NET MVC & Web Services

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

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

ответ

27

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

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

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

+0

Разве вы не будете дублировать логику контроллера в сервисе? И ничего не экономя, используя модель, поскольку вы в конечном итоге пишете код контроллера дважды. – 2009-04-09 03:25:49

19

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

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

+0

Это довольно старый, но у вас может быть ответ на вопрос, который у меня есть. Мне кажется, что для динамической загрузки, скажем, выпадающего списка со значениями, которые меняются при изменении другого раскрывающегося списка, мне нужен веб-сервис. Вот как это сделать в webForms. Как это делается в MVC? – Erix 2012-07-26 22:29:10

+2

Ссылка не работает, и мне не удалось найти обновленную ссылку. Содержимое доступно на Wayback Machine: http://web.archive.org/web/20130119131317/http://wekeroad.com/2007/12/06/aspnet-mvc-using-restful-architecture – 2013-07-23 15:55:42

0

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

+4

Веб-службы могут создаваться с использованием MVC, а также сайтов или RSS-каналов. На самом деле, это одна из сильных сторон концепции MVC - одно и то же действие контроллера может передавать свои данные на любой вид - веб-служба выводит данные, так что это * вид. :) – hangy 2008-10-26 00:39:13

2

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

11

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

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

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

MVC Storefront Video Series

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

1

У меня было Идите при этом.

Смотрите мой результат на my blog

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

0

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