Чтобы получить некоторую перспективу, мы используем веб-формы ASP.NET целую вечность.
Мы также знаем о преимуществах MVC над веб-формами, однако альтернативный вариант подбрасывается вокруг, чтобы обойти все эти уровни абстракции и просто перейти с чистой страницы .HTML к службе WCF.
Нет .ASPX, no.cshtml/.vbhtml, просто чистые .HTML файлы, чтобы избежать логики и рендеринга на стороне сервера.. Эта идея предлагается некоторыми и становится более привлекательной с HTML5 и его особенности. Кроме того, способность отслеживать большее количество устройств, полностью контролируя HTML, является движущей силой.
Я знаю, что это возможно с технической точки зрения - особенно, когда jQuery делает вещи намного проще, но я беспокоюсь, что, бросив всю абстракцию на стороне сервера (код в веб-формах, контроллере и привязке к виду в MVC), мы закончим тем, что сделаем больше сантехники, о которых нам не нужно было беспокоиться ранее.
Вопрос сводится к следующему:
- Является ли это серьезной проблемой, и если да, то какая сантехника может нам сделать?
- Что именно мы можем потерять, отбросив всю структуру ASP.NET(со стороны веб-приложения) и просто полагаясь на прямую связь с нашей службой WCF с чистых HTML-страниц?
NB: Я использовал термин "уровень предприятия", чтобы подчеркнуть, что это не простое веб-приложение с несколькими страницами, где окончательное решение базовой архитектуры не имеет значения, мы говорим о приложении большой задницы:)
Изменить: Чтобы быть более ясными, основными областями, которые нас интересуют в таком подходе, являются:
-
Аутентификация и авторизация → MVC обрабатывает это очень простым способом с помощью атрибутов (например, AuthorizeAttribute), этот "статический" подход, однако, означает, что WCF должен будет обрабатывать токены, шифровать/расшифровывать их и решать, кто будет делать то, что сам по себе, сохраняя всю эту информацию в течение каждого вызова. Это единственное решение?
-
Разделение проблемы → MVC явно это делает, и я очень хорошо могу добавить. Однако этот подход заставляет вас явно писать в вашем HTML, какой вызов функции WCF необходим. Таким образом, не только ваш уровень представления обрабатывает то, что нужно рисовать, но также встроил в него логику вызова, чтобы получить свои данные, и как распространять его на странице. Это может быть не так уж и важно, но, наоборот, ViewBag в MVC дает вам возможность использовать URL-адреса службы WCF как динамическое свойство, что означает, что логика теперь является частью вашего контроллера, а не вашей HTML-страницы. Изменение этой логики исключает хлопоты по просмотру HTML-страниц вообще.
-
Связывание и проверка → Я поместил эти два в одну корзину, потому что, как только служба WCF ответит на объект JSON, содержащий всю информацию, которую моя страница должна выполнять ( включая правила проверки), кому-то придется привязать его к этим элементам управления.
Надеюсь, что эта идея достаточно ясна, и спасибо заранее.