Может ли приложение asp.net mvc также иметь веб-сервис? - PullRequest
6 голосов
/ 25 апреля 2009

У меня есть приложение asp.net mvc, и теперь мне нужно добавить веб-сервис, чтобы согласиться с ним. Каково лучшее решение для этого? Просто создайте новый проект веб-службы и добавьте его в мое решение, а затем разверните его на том же веб-сервере, используя другой URL-адрес? Я бы хотел, чтобы он был частью приложения mvc только потому, что у меня есть весь код моей базы данных.

Любые предложения будут оценены. Спасибо.

Ответы [ 6 ]

9 голосов
/ 25 апреля 2009

Нет причин не добавлять проект веб-службы.

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

Я также настоятельно рекомендую вам не использовать веб-сервисы ASMX для каких-либо новых разработок.

Используйте только WCF, если у вас нет выбора. Существует неправильное представление о том, что службы WCF не выполняют SOAP, а делают WCF вместо ASMX.

3 голосов
/ 25 апреля 2009

Веб-сервис может означать веб-сервис на основе мыла или веб-сервис RESTful. Я не могу придумать причину, по которой вы не сможете просто добавить файл asmx в свой проект и заниматься бизнесом. Это маршрут на основе мыла. Если вы хотите быть действительно крутым, вы можете просто вернуть xml из действия контроллера и реализовать решение RESTful прямо в среде MVC.

2 голосов
/ 25 апреля 2009

Если вы хотите использовать обычный веб-сервис ASP.NET asmx, это, безусловно, возможно. Вот пример от Скотта Хансельмана , который делает именно то, о чем вы спрашиваете, и в качестве примера добавляет некоторые другие технологии ASP.NET.

Все, что вам нужно сделать, это Файл -> Новый элемент -> Веб-служба, и он должен работать как обычное приложение ASP.NET в вашем проекте Mvc.

1 голос
/ 25 апреля 2009

Я думаю, что здесь есть пара вещей.

вы действительно можете добавить веб-сервис в приложение MVC. Вы можете даже рассмотреть возможность идентификации веб-службы (служб) как службы сценариев, чтобы упростить выполнение операций, подобных REST, с помощью JavaScript. это может быть необязательным из-за ваших обстоятельств.

Я думаю, что есть более сильный вопрос относительно базовой архитектуры. Если вы размещаете веб-сервис вместе с вашим mvc-приложением, потому что код вашей базы данных уже есть ... так и должно быть? это может быть хорошее время, чтобы немного абстрагировать слой данных. Однако, если вы имеете дело с относительно небольшим проектом и не нуждаетесь в гибкости, то, безусловно, добавьте веб-сервис прямо сейчас. Я предполагаю, что он действительно сводится к удовлетворению реальных потребностей вашего приложения.

0 голосов
/ 25 апреля 2009

Если ваше приложение не очень маленькое, я бы порекомендовал вам создавать разные проекты для каждой логической части приложения. Хорошей отправной точкой является проект для каждого из них:

  • Доменные объекты
  • Доступ к данным
  • Веб-сервисы
  • Пользовательский интерфейс (ваше приложение ASP.NET MVC)

Это обеспечивает чистое разделение, соответствующее вашей архитектуре, и поддерживает повторное использование.

0 голосов
/ 25 апреля 2009

MVC построен на платформе asp.net. Вы должны иметь возможность включить веб-сервис в тот же проект. Я не сделал этого, но я знаю, что вы можете объединить приложения форм asp.net с приложениями MVC в одном проекте. То же самое относится и к веб-сервисам.

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