Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
206
Добавлен:
10.05.2015
Размер:
8.8 Mб
Скачать

14.1.7. Ключевые термины

ASP.NET, .NET Framework, Веб-служба, Веб-сервис, AJAX, JSON, Сериализация, XmlHttpExecutor, WebRequestManager, WebRequest, JavaScript.

14.2. Технология Jasp

14.2.1. Введение

Jasp является библиотекой для разработки Веб-приложений с использованием платформы Microsoft .NET Framework [9, 10]. Основным отличием Jasp от ASP.NET является ориентация библиотеки на клиентскую сторону, чтобы программисту было проще создавать "богатый" пользовательский интерфейс в первую очередь средствами языка JavaScript, CSS и в последнюю очередь HTML, сгенерированным на стороне сервера (как это часто бывает при разработке на ASP.NET). Такие приложения зачастую состоят из небольшого количества страниц (чаще всего одной), и все необходимое подгружают по мере использования без перезагрузки страницы. Примером таких приложений могут п ослужить сервисы: GMail, Google Maps, Pusk.ru и другие.

Примечание: скачать библиотеку Jasp, а также примеры и документацию можно на http://code.google.com/p/jaspproject/ или www.jaspproject.ru.

Основной недостаток ASP.NET заключается в сложности разработки клиентских компонент (использующих JavaScript).

Рассмотрим простой пример: предположим, на странице необходимо вводить дату, и в целях экономии места на странице было решено сделать текстовое поле с выпадающим вниз календарем. Есть два пути решения: создать наследника UserControl, и наследника WebControl. У каждого из вариантов есть плюсы и минусы. В первом случае несомненным плюсом является возможность создания разметки, скриптов и стилей прям в ASCX-файле, но при этом данный компонент нельзя использовать в других проектах (только если копировать код из одного проекта в другой). Во втором случае нет ASCX-файла, а все дочерние компоненты приходится создавать программно. С другой стороны такой компонент можно использовать повторно.

В обоих случаях, при реализации клиентской части компонента возникает ряд проблем:

  • всегда необходимо передавать ClietnID компонента в JavaScript-код, что конечно возможно, но не всегда удобно;

  • приходится следить за загрузкой связанных с компонентом ресурсов: изображений, стилей и вспомогательных JavaScript-файлов;

  • вместо отсутствующей клиентской части компонент есть простой набор вызовов и несколько объявлений JavaScript-функций.

Обобщим все возможные проблемы, при создании компонент на классическом ASP.NET:

  1. Различные трудности, возникающие при связи серверной и клиентской части компонента, в результате которых зачастую на клиентской стороне получается не полноценный объект с набором свойств и методов, а набор строк JavaScript-кода, с которым, нельзя работать как с одним объектом.

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

  3. Использование ASP.NET Ajax зачастую приводит к непредсказуемым результатам. ViewState пересылается при каждом, пусть и асинхроном PostBack'e, даже там, где это не нужно, что в свою очередь не очень хорошо сказывается на производительности;

  4. Ресурсы, загружаемые с помощью WebResource.axd. Порой на одной странице их скапливается довольно много, тем самым, осложняя жизнь браузеру. К тому же не все браузеры способны одновременно загружать несколько ресурсов на страницу.

  5. При большой вложенности компонент получаем огромные ClientID, что плохо сказывается на результирующем размере HTML разметки, а иногда приводит к полной неработоспособности страницы.

  6. Нет возможности полноценного наследования компонент (включая клиентскую сторону или HTML разметку).

  7. При создании WebControl'ов создание дочерних компонент приходится делать вручную.

  8. При создании UserControl'ов, их нельзя использовать в других проектах.

Технология Jasp пытается решить все указанные проблемы. Компонент Jasp одновременно является как серверным (разработка в ключе классического ASP.NET), так и клиентским (JavaScript-компонентом). Каждый компонент можно использовать и в других проектах (даже имеющий разметку и собственные ресурсы) без всяких изменений. Присутствует возможность наследования, как серверной части, так и клиентских частей: JavaSctpt, CSS и разметки. Все ресурсы загружаются автоматически и по мере использования (синхронно или асинхронно). При первой загрузке страницы загружаются только необходимые ресурсы, оптимизирова нные и сгруппированные в несколько файлов. Jasp можно использовать со всеми распространенными JavaScript-библиотеками: jQuery, ExtJS, Prototype и т.п.