Возможно ли или имеет смысл создать веб-сайт только для jquery / .NET Service? - PullRequest
5 голосов
/ 20 января 2011

Я имею в виду то, что, кажется, направление заключается в том, чтобы делать больше на клиенте ... Почему бы просто не иметь веб-сайт, который представляет собой просто jquery / HTML на переднем конце, и ничего кроме веб-служб .NET на заднем которые вызываются командами jquery ajax?

Это сделано где-нибудь? Я не вижу, как это делается .. как получилось? Похоже, простое решение. Нет необходимости работать со слоем абстракции ASP.NET ..

Ответы [ 2 ]

3 голосов
/ 20 января 2011

У Google есть демонстрационная версия, демонстрирующая методологию, на которую вы ссылаетесь.Это Autoshoppe Demo для Google App Engine.Хотя это Java, эти понятия также применимы к приложениям .NET.

Приложение содержит простые ванильные HTML-страницы с расширениями .html.Нет серверных технологий, которые усложняют жизнь программисту HTML.HTML-страницы используют JavaScript AJAX для взаимодействия с веб-службами REST, созданными с использованием Spring 3.0, которые взаимодействуют с хранилищем данных.

  • Данные запроса передаются в виде JSON в запросе
  • Ответв ответе данные возвращаются в виде JSON.

Это означает, что любой может создать пользовательский интерфейс на основе этого API или создать проект .NET, который взаимодействует с этими данными.REST - это отличная архитектура для создания расширяемых многоуровневых сервисов.

Я думаю, что причина того, что этот метод не получил широкого распространения, заключается в том, что многие люди застряли на технологиях представления, которые побуждают разработчиков использовать разметку поставщика технологии представления в HTML., например, файлы ASP (или JSP для Java).Это практика, которая существует уже некоторое время, потому что в основном авторы этих сред являются инженерами, а не веб-дизайнерами и дизайнерами пользовательского интерфейса.

Требуется также достаточно сильное понимание REST, чтобы увидеть преимущества этого метода, иначинающие разработчики иногда борются с этими концепциями.

Если бы вы занялись этим в .NET, используя демонстрацию AutoShoppe в качестве руководства, вы, скорее всего, захотите использовать объектный преобразователь, который может преобразовать ваш JSON в a.NET объект и обратно в JSON.Это гораздо более чистый подход, чем попытка самостоятельного анализа JSON.

Преимущества этого подхода RESTful в том, что ваш контент, поведение и презентация полностью, на 100% отделены от точки, в которой вы могли бы дать своему веб-программистуHTML-файлы, и он / она может запускать их полностью вне среды .NET.Затем ваши дизайнеры могут использовать свои инструменты и сосредоточиться на своих сильных сторонах, при этом не нужно устанавливать, настраивать или запускать Visual Studio.NET.На самом деле файлы будут запускаться прямо с рабочего стола.

EDIT : возможно, недостатком является то, что во многих средах MVC такая поддержка не поддерживается, в основном потому, что это новая концепция,Мост между стороной клиента и стороной сервера в настоящее время должен быть написан разработчиком.

В демонстрационной версии AutoShoppe разработчики написали класс-прототип на JavaScript для обработки преобразования данных в JSON перед отправкой на сервер, и им пришлось написать код JavaScript для маршалинга JSON в объекты JavaScript и манипулирования этими данными обратно.в HTML.На стороне сервера они использовали Object Mapper для десериализации JSON для объектов.Большая часть сложности была на сервере.

Преимущества превращения серверного компонента в 100% повторно используемую службу RESTful, с которой дизайнеры и клиенты могут легко взаимодействовать, могут перевесить недостатки в зависимости от сценария.Хорошим примером может служить служба, в которой вашим клиентам рекомендуется кодировать свои собственные пользовательские интерфейсы или иметь полный контроль над маркировкой продукта.Это одна из многих причин , почему я не буду использовать серверные технологии .

0 голосов
/ 20 января 2011

Это вполне возможно. У меня есть сайт, который после загрузки начальной страницы сервер отправляет только данные JSON, которые отображаются на клиенте. (хотя сервер в этом случае запускает php)

...