
- •14. Применение Веб-методов. Технология Jasp
- •14.1. Веб-сервисы
- •14.1.1. Введение
- •14.1.2. Веб-службы в asp.Net
- •14.1.3. Доступ к Веб-сервисам в управляемом коде
- •14.1.3.1. Взаимодействие клиент-сервер для клиентов ajax
- •14.1.3.2. Клиентская архитектура технологии ajax
- •14.1.3.3. Серверная архитектура ajax
- •Xml-сериализация. Уровень связи Веб-служб поддерживает xml-сериализацию для soap-запросов к Веб-службам и возвращения типов xml по json-запросам к Веб-службам.
- •14.1.4. Создание Веб-сервиса
- •14.1.4.1. Директива обработки WebService
- •14.1.5. Выполнение http-запросов из клиентского сценария ajax
- •14.1.6. Предоставление доступа к Веб-службам в клиентском сценарии
- •14.1.6.1. Предоставление доступа к сервисам из клиентского сценария на Веб-странице asp.Net
- •14.1.6.2. Примеры
- •14.1.7. Ключевые термины
- •14.2. Технология Jasp
- •14.2.1. Введение
- •14.2.2. "Hello World" на Jasp
- •14.2.3. Создание страницы с разметкой, скриптом и стилями
- •14.2.4. Ресурсы в Jasp
- •14.2.4.1. Css ресурсы
- •14.2.4.2. JavaScript ресурсы
- •14.2.4.3. Html ресурсы
- •14.2.4.4. Бинарные ресурсы
- •14.2.5. Страницы и компоненты
- •14.2.5.1. Создание страниц
- •14.2.5.2. Создание компонент
- •14.2.5.2.1. Создание экземпляров компонент программно
- •14.2.5.2.2. Создание экземпляров компонент через разметку
- •14.2.5.2.3. Создание экземпляров компонент на JavaScript
- •14.2.6. Передача данных на клиентскую сторону
- •14.2.7. Наследование компонент и страниц
- •14.2.7.1. Наследование разметки
- •14.2.7.2. Наследование стилей
- •14.2.7.3. Наследование JavaScript
- •14.2.8. Конфигурирование Jasp
- •14.2.9. Ключевые термины
- •14.3. Краткие итоги
14.2.4.4. Бинарные ресурсы
Также Jasp поддерживает в качестве ресурсов изображения и другие бинарные файлы. При первом старте сайта, такие файлы будут "распакованы" из всех сборок сайта по умолчанию в папку \deploy\<имя сборки> в корне сайта. В HTML, CSS и JavaScript можно использовать специальную конструкцию ~<имя сборки>/<путь к ресурсу>, например в CSS можно написать:
body {
background-image: url('~Jasp.Examples/Files/Images/background.gif')
}
В результирующий CSS попадет отформатированная ссылка на ресурс, содержащая абсолютный путь до файла (если сайт работает в виртуальной директории, то будет подставлено и имя директории):
body {
background-image: url('/deploy/Jasp.Examples/Files/Images/background.gif')
}
Примечание: Все вышеупомянутые типы ресурсов должны быть настроены как embedded resource, быть в кодировке UTF-8 и не содержать в названии более одной точки.
При разработке, нет необходимости каждый раз после изменения файла делать перекомпиляцию проекта – Jasp сам умеет следить за изменениями в ресурсах и автоматически подхватывать их.
Конечно, же, никто не мешает использовать обычный подход к ресурсам, т.е. просто хранить CSS/JavaScript/HTML и т.п. файлы, но тогда теряется ряд преимуществ, которые предоставляет Jasp: автоматическая загрузка стилей, скриптов по мере использования; минимизация скриптов и разметки; GZIP для страниц, стилей и разметки; возможность использования ресурсов и компонент, использующих их, из других проектов.
Зачастую, разные проекты на нужды одной компании имеют похожий интерфейс. Используя Jasp, можно с легкостью создать библиотеку компонент и ресурсов, содержащую базовые страницы (MasterPage с layout'ом по умолчанию, страницы ошибок, 404, 500 и т.п.), компоненты, изображения, стили, скрипты, и другие общие для проектов ресурсы. Например, используя библиотеку ExtJS сразу в нескольких проектах, достаточно сложно поддерживать одинаковую версию ExtJS библиотеки (включая все изображения, скины, плагины и bugfix'ы), т.к. это огромный набор файлов. Используя Jasp, можно с легкостью создать сборку, содержащую все необходимые ресурсы. Это решит проблему синхронизации версий всех файлов между проектами, а также возможные проблемы обновления при выходе новой версии библиотеки. Кроме того, как уже говорилось ранее, Jasp оптимизирует всю работу с ресурсами, начиная от автоматической загрузки, кончая сжатием и клиентской оптимизацией.
14.2.5. Страницы и компоненты
14.2.5.1. Создание страниц
Для создания страницы, необходимо создать класс, наследующий от класса Jasp.Web.UI.Page, после чего, Jasp будет обрабатывать запрос к одноименной странице. Вложенность страниц в папки производится через пространства имен, т.е. достаточно создать папку в проекте, после чего все классы, создаваемые в папке, будут находиться в пространстве имен новой вложенности (по умолчанию в Visual Studio), также как и путь к странице. Тут необходимо учесть, что за базовое пространство имен (от которых начинается нулевой уровень вложенности страниц), берется имя сборки. Например, для сборки с именем Jasp.Examples, страница с классом Jasp.Examples.Example1 будет обрабатываться по запросу /Example1.jasp, а с классом Jasp.Examples.OldExamples.Example2 по адресу /OldExamples/Example2.jasp. Естественно, имена страниц не чувствительны к регистру.