Подтвердить что ты не робот

Является ли [HTML5 + jQuery] (без ASP.NET) + WCF действительным решением для веб-приложения уровня предприятия?

Чтобы получить некоторую перспективу, мы используем веб-формы 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, содержащий всю информацию, которую моя страница должна выполнять ( включая правила проверки), кому-то придется привязать его к этим элементам управления.

Надеюсь, что эта идея достаточно ясна, и спасибо заранее.

4b9b3361

Ответ 1

Вы не "бросили всю абстракцию на стороне сервера", вы разворачиваете функциональность иначе, чем стандартное веб-приложение. Абстракция на стороне сервера теперь поступает из службы WCF, которая передает данные в уровень представления

Вам нужно будет использовать API-интерфейсы в стиле Web, чтобы вернуть JSON, чтобы он был легко потребляемым, - и я бы предложил использовать для этого новый веб-API, поскольку он дает вам тонкий контроль над взаимодействием HTTP, который был несколько скрыт в предыдущем Реализация REST в WCF

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

Вероятно, одна из недостатков заключается в том, что для каждой страницы будет по крайней мере два roundtrips - один, чтобы получить HTML + JS, а другой для JS для получения данных - с помощью традиционного веб-приложения есть только один roundtrip для достижения того же самого, что и данные загружаются на стороне сервера при рендеринге страницы в первую очередь

Ответ 2

Вы можете проверить некоторые более продвинутые js-библиотеки, например KendoUI, которые сделают для вас большую часть сантехники. Вы можете наслаждаться некоторыми действительно классными функциями, которые разработчики ASP.NET использовали с серверным кодом, готовым только с кодом на стороне клиента. Рамка все еще находится в разработке, и вы можете ожидать появления более интересных функций.

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