ASP.NET MVC Добавление уровня веб-службы - PullRequest
2 голосов
/ 21 июля 2011

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

Наша текущая структура проекта, которой мы следуем для наших приложений ASP.NET MVC:

Приложение MVC (View / Controller / ViewModel / Service Layer) -> BAL (Уровень бизнес-доступа) -> DAL (Уровень доступа к данным)

Приложение MVC, BAL и DAL - это отдельные сборки.

Существует также сборка предметной области (модели), которая совместно используется слоями MVC / BAL / DAL.

Планируется создать веб-сервис, который будет обрабатывать все функции безопасности. Этот веб-сервис будет использоваться несколькими веб-приложениями. Когда мы вносим изменения в веб-службу безопасности, мы хотим изменять код только в одном месте, а не в каждом веб-приложении. Поэтому я бы предпочел, чтобы в проекте MVC не было ничего связанного с веб-сервисом.

Поэтому я подумывал добавить слой веб-службы между слоями BAL и DAL.

Так что-то вроде этого:

Проект MVC (Просмотр / Контроллер / Просмотр модели / Сервисный уровень)

1024 * звонки *

BAL Layer (обрабатывает кеширование / транзакции с БД)

называет

Уровень веб-службы

звонки

DAL Layer

Ваше мнение?

Ответы [ 2 ]

0 голосов
/ 22 июля 2011

Пара мыслей.

Вы размещаете слой своего веб-сервиса между BAL и DAL. Это означает, что все должно пройти через ваш веб-сервис, включая функции, которые не связаны с безопасностью. Я думаю, что это добавляет дополнительный уровень сложности. Если несколько веб-сайтов используют веб-службу, создайте ее как стенд приложения / службы. Затем вы можете вызывать сервис из разных уровней вашего приложения в зависимости от того, какой уровень нуждается в сервисе. Обычно вы создаете оболочку Webservice с чистым интерфейсом, чтобы вы могли легко вызывать Web-сервис из любого уровня в вашем приложении.

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

                                      MVC APP
                                      /    \
                                    BAL --> Web Service Wrapper
                                    /        \
                                  DAL        WCF WEB SERVICE
0 голосов
/ 21 июля 2011

Как тот, кто поддерживает приложение, которое смехотворно наслоено как таковое.

  • GUI
  • BAL
  • DAL для WebService
  • Webservice
  • WebBAL
  • WebDAL

Я бы предложил разместить ваш графический интерфейс как можно ближе к вашему веб-сервису.

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