Это Asp.Net или Ajax или обе технологии могут использоваться вместе при разработке веб-сайтов? - PullRequest
1 голос
/ 20 апреля 2010

1) Некоторое время назад я начал изучать Asp.Net, но потом я услышал, что Ajax - «новая вещь».Поскольку я не хочу тратить время, потраченное на Asp.Net, я хотел бы знать, является ли распространенной / рекомендуемой практикой использование обеих технологий (Asp.Net и Ajax) при создании веб-сайтов и веб-сайтов.приложения в целом?

2) Если на самом деле общепринятой практикой является совместное использование двух технологий, верно ли это только для серверной Ajax и Asp.Net или же можно использовать Ajax на стороне клиента в сочетании с Asp.Net?

thanx

EDIT:

A)

Единственная проблема в том, что это может быть немного обманомсделать ajax-запрос с использованием jquery при использовании веб-форм asp.net (asp.net mvc был разработан с такими фреймворками, как jquery, поэтому это проще сделать).

Вы подразумеваете, что, возможно, jquery может бытьслишком много хлопот при использовании вместе с веб-формами, и поэтому я должен подумать об использовании Asp.Net Ajax вместо этого?

B) Мало что я прочитал о ajax, это то, что ему также необходимо вызывать веб-сервисы или некоторые другие технологии, которыеобеспечивает аналогичную функциональность для веб-сервисов.Если да, то какую технологию вы используете (веб-сервисы WCF или Asp.Net или ...)?

C) Является ли Ajax подразделом jquery?Таким образом, чтобы понять Ajax, мне нужно будет купить только книгу по jquery или мне также нужно будет прочитать книгу с Ajax в ее названии?

Ответы [ 7 ]

5 голосов
/ 20 апреля 2010

Вы можете использовать оба, и это обычно использовать оба. MS имеет инструментарий для использования AJAX на сайтах asp.net:

http://www.asp.net/ajax/

4 голосов
/ 20 апреля 2010

1) Да, обычно используется Ajax и Asp.net на одном сайте. Я делаю это все время (на самом деле, если вы отключите javascript на моих сайтах, они не будут работать так же хорошо, как AJAX). AJAX позволяет выполнять запросы к серверу без обновления страницы, вам все еще нужен серверный язык, чтобы выполнять работу с этим запросом. Вам также необходимо загрузить страницу в первый раз, так что элементы управления asp.net по-прежнему необходимы, и на самом деле, если вы используете asp.net asp.net, вы можете использовать панели обновления, в которые вы помещаете элементы управления, которые автоматически становятся включенными ajax.

2) Я не уверен, что вы имеете в виду, но Ajax - это в основном javascript, поэтому он работает на стороне клиента и отправляет запросы на сторону сервера.

Редактировать

Хорошо, я просмотрел большую часть материала в этих главах. На стороне сервера AJAX большая часть рендеринга выполняется на стороне сервера. Таким образом, панель обновления представляет собой серверный элемент управления ajax. Вы перетаскиваете его на свою веб-форму, добавляете к нему другие элементы управления на стороне сервера и кнопку. Если пользователь затем нажимает эту кнопку на панели обновлений, к серверу делается запрос ajax, и вы можете получить все необходимое и использовать C # для его изменения. Вам никогда не придется писать одну строку кода JavaScript, чтобы это произошло.

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

Клиентская сторона Ajax - это, по сути, Microsoft, которая пытается упростить вам работу с javascript, сделав его более похожим на синтаксис C # и предоставив вам встроенные методы. Проблема состоит в том, что многие люди слишком часто бросают модное слово Ajax и называют вещи, которые не следует называть Ajax, когда они должны называться просто javascript.

Это похоже на случай с ajax на стороне клиента, так как большая часть того, что я видел в главе о ajax на стороне клиента, - это почти весь javascript. Как в «Рис. 33.8. Выбор пункта меню». все, что вам кажется, это ваш щелчок мышью на кнопке выбора, тогда она отображает название этой кнопки, которая на самом деле не является Ajax.

Ajax для меня - это когда вы на самом деле делаете запрос к серверу на публикацию или получение какой-либо информации без обновления страницы (т. Е. Полного возврата сообщения). Например, если вы получили форму данных, которую вы хотите отправить на сервер для сохранения в базе данных. Если вы нажмете кнопку «Сохранить», и данные формы будут отправлены на сервер без обновления страницы, это будет запрос Ajax.

Большинство вещей в наборе инструментов ajax - это больше javascript

http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Calendar/Calendar.aspx

Например, элемент управления календаря, чтобы он выбирал разные даты, он не выполняет никаких запросов к серверу, поскольку все это javascript, так почему он будет ajax, если никогда не отправляет сообщения на сервер?

Если вы возьмете значение в текстовом поле, в которое элемент управления календаря поместит дату, и отправите ее на сервер, не обновляя страницу, которая будет Ajax-запросом.

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

Кроме того, похоже, прошло 5 лет с тех пор, как он написал это, и asp.net сильнее, чем когда-либо. Ajax по-прежнему нуждается в сервере для подключения, вам все равно нужно визуализировать начальную загрузку страницы с помощью простых серверных элементов управления html или asp.net.

Редактировать 2

1) Да, я думаю, jquery лучше MS Ajax по нескольким причинам:

  1. Он использует меньше ресурсов, чем перетаскивание и управление падением
  2. Это сильно упрощает JavaScript облегчает использование (например, выбор элементов управления html и т. д.). Так что если Я использовал MS AJAX, я, вероятно, до сих пориспользовать JQuery для селекторов это так что это своего рода излишним в использовании оба, если у вас нет веских причин тоже.

Единственная проблема заключается в том, что сделать ajax-запрос с использованием jquery при использовании веб-форм asp.net может быть немного сложнее (asp.net mvc был разработан с такими фреймворками, как jquery, поэтому это проще сделать).

2) Вам действительно нужно учить только jquery, а не javascript. Я прочитал книгу на javascript примерно за один день, затем запрыгнул в jquery, даже не выполняя упражнения в книге, и никогда раньше не делал javascript, и у меня не было проблем с выполнением jquery. Конечно, если у вас есть опыт работы с javascript, это плюс, так как иногда вы будете пытаться найти решение jquery, когда в javascript уже есть метод для того, что вы хотите сделать.

Редактировать 3

A)

Единственная проблема в том, что это может быть немного хитрости, чтобы сделать запрос AJAX, используя jquery при использовании asp.net webforms (asp.net mvc был разработан с рамки, как JQuery в виду, так что это легче сделать).

Вы подразумеваете, что, возможно, jquery может быть слишком много хлопот, когда используется вместе с веб-формами, и поэтому я следует подумать об использовании Asp.Net Ajax вместо этого?

Нет, я не намекаю на то, что это слишком хлопотно для веб-форм, просто констатирую, что в некоторых ситуациях это будет немного сложнее, чем ms ajax и jquery, например, с asp.net mvc.

Веб-формы asp.net на самом деле не были созданы для фреймворка, такого как jquery, и им сложно с ним работать, потому что мешает жизненный цикл страницы. MS Ajax может иметь свои собственные проблемы, хотя (как и все обычно). Jquery задумывался о том, чтобы попытаться работать во всех браузерах, поскольку в javascript много раз вы писали что-то, что работало в IE, но не работало ни в каком другом браузере, и я не уверен, что версия на стороне клиента MS ajax думала об этом.

B) Я мало читал о ajax, что это также необходимо позвонить в веб-службы или некоторые другие технологии, которые обеспечивают схожая функциональность с веб-сервисами. Если это правда, какую технологию вы используете ( Веб-сервисы WCF или Asp.Net или…)?

Да, это правда. В этом и заключался весь смысл многих людей, включая меня, пытаясь доказать, что этот парень был неправ, что asp.net умирает из-за ajax, так как вам нужно что-то на заднем конце, чтобы сделать звонок тоже.

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

Однако вы не можете просто сделать обычный метод в вашей page_load и попытаться вызвать его, так как он должен пройти весь жизненный цикл страницы.

http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

http://weblogs.asp.net/craigshoemaker/archive/2008/11/07/using-jquery-to-call-asp-net-ajax-page-methods-by-example.aspx

http://dotnetslackers.com/articles/ajax/using-jquery-with-asp-net.aspx

http://sites.google.com/site/spyderhoodcommunity/tech-stuff/usingjqueryinaspnetappswithhttphandlersashx

Я не читал эти учебные пособия, но эти учебные пособия должны показать вам 3 различных способа выполнения ajax-запроса к веб-службе asp.net, код asp.net за страницей и универсальный обработчик asp.net.

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

C) Является ли Ajax подразделом jquery? Таким образом, чтобы понять Ajax, мне понадобится купить только книгу на jquery или мне также нужно будет прочитать книгу с Аякс в своем названии

Ajax - это просто часть jquery, и, вероятно, вам не придется долго учиться. Если вы купите книгу о JQuery, вероятно, будет около 1 главы. Единственный недостаток - все книги jquery, о которых я знаю, все в php.

Так что, если вы просто покупаете его, чтобы изучить часть ajax, вероятно, не стоит, так как они покажут целый пример того, как сделать это с php, который может немного отличаться, чем если бы вы делали это с asp.net (в основном просто настройка на стороне сервера для приема вызовов jquery - см. ссылки, которые я разместил выше).

Если вы хотите изучить селекторы jquery и прочее, тогда имеет значение, находится ли одна глава в php, поскольку все это на стороне клиента ожидается для части ajax (что касается стороны клиента и стороны сервера).

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

$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     alert("Data Loaded: " + data);
   });

Вышесказанное - это, в основном, все, что вам нужно сделать на стороне jquery, чтобы отправить что-нибудь из ajax. Первый параметр - это путь, по которому должен идти этот запрос. В этом случае это какой-то php файл под названием test. Следующий параметр - это фактические данные, отправленные как результат json, и, наконец, последняя строка - это строка обратного вызова функции. Когда ajax post запрос сделан, эта строка вызывается и выполняет действия. Данные - это данные, которые вы вернули с сервера.

http://api.jquery.com/jQuery.post/

Так что я бы просто просмотрел уроки, которые я опубликовал, и поиграл с селекторами jquery. Как только вы это сделаете, вы сможете решить, хотите ли вы использовать jquery или нет. Последнее, что я хотел сказать о том, почему мне нравится jquery, это тот факт, что если вы изучаете MS Ajax, вы в основном зависаете с asp.net (с чем у меня нет проблем, так как я люблю .Net), но с jquery вы можете легко возьмите свой код или те навыки jquery и используйте его с php, ruby ​​или чем-то еще, и все селекторы jquery на стороне клиента не изменятся при переключении на другой язык. Единственное, что будет отличаться, - это материал ajax, и даже он не будет отличаться на 100%, так как сторона клиента jquery ajax может быть такой же.

2 голосов
/ 20 апреля 2010

Ajax - это новая «старая вещь» - ASP.NET MVC - это новая «новая вещь»: -)

А если серьезно, вы можете смешать все эти технологии в одном веб-приложении, если хотите:

2 голосов
/ 20 апреля 2010

Ajax - это методология, которую можно использовать вместе с другими фреймворками, такими как asp.net. Asp.net позволит вам интегрировать JavaScript для реализации решений AJAX. Распространенной реализацией является использование javascript для вызова веб-службы asp.net для выполнения операций ajax.

1 голос
/ 20 апреля 2010

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

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

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

1 голос
/ 20 апреля 2010

AJAX не заменяет ASP.NET. Их можно использовать вместе или независимо. ASP.NET - это скорее фреймворк, где AJAX представляет собой набор методов, построенных на основе JavaScript и HTML.

Существует структура, которую Microsoft называет ASP.NET AJAX . Существуют элементы управления, которые будут выводить JavaScript, поэтому при желании вы сможете использовать функциональность AJAX, не заходя слишком далеко в JavaScript.

Однако вы также можете написать JavaScript вручную и использовать XMLHttpRequest s для отправки запросов на URL-адреса ASP.NET и получения данных.

1 голос
/ 20 апреля 2010

AJAX - это метод, по существу добавленный поверх существующего веб-сайта, позволяющий выполнять действия на этой странице без обновления всей страницы. Например, здесь, в StackOverflow, вы можете голосовать, нажимая стрелки вверх / вниз через AJAX, без обновления страницы, которое вы видели бы без AJAX.

Он не заменяет ASP.NET (или любой другой язык).

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