Главная » Silverlight » Создание проекта Silverlight, хостируемого сайтом ASP.NET

0

Приложение Silverlight может прекрасно работать само по себе, однако его можно также создать, протестировать и развернуть как часть сайта ASP.NET. Чтобы создать проект Silverlight и хостирующий сайт ASP.NET в одном и том же решении Visual Studio, выполните следующие операции.

2.     Введите (или оставьте предложенные по умолчанию) имена проекта и решения. Щелкните на кнопке ОК.

3.     Если вы используете Visual Studio 2008, установите переключатель Add a new ASP.NET Web project to the solution to host Silverlight (Добавить в решение новый проект ASP.NET, хостирующий Silverlight). В Visual Studio 2010 установите пере­ключатель Add a new ASP.NET Web project to the solution (Добавить в решение новый веб-проект ASP.NET).

4.     Задайте имя проекта для сайта ASP.NET. По умолчанию оно состоит из имени проекта Silverlight и суффикса .Web (рис. 1.7).

Рис. 1.7. Создание сайта ASP.NET, хостирующего содержимое Silverlight

5. В раскрывающемся списке Project Туре (Тип проекта) выберите, как программа Visual Studio будет управлять решением — как веб-проектом или как веб-сайтом. На работу приложения Silverlight данный выбор не влияет. Если выбрать веб- проект, рабочая среда Visual Studio создаст файл проекта для отслеживания содержимого веб-приложения и компиляции кода веб-страницы в одну сбор­ку. Если же выбрать веб-сайт, программа Visual Studio будет предполагать, что в приложение включено все содержимое папки. В этом случае код веб-страницы будет скомпилирован при первом запросе страницы пользователем (или при за­пуске утилиты предварительной компиляции aspnet_compiler. ехе).

Совет. Дополнительную информацию об отличиях между веб-проектом и сайтом без проекта, а также об основах ASP.NET можно найти в книге Microsoft ASP.NET 3.5 с примерами на С# 2008 для профессионалов, 2-е из­дание ("Вильяме", 2008).

6.        Если вы используете Visual Studio 2010, выберите в раскрывающемся списке Silverlight Version (Версия Silverlight) вариант Silverlight 2 или Silverlight 3.

7.        Щелкните на кнопке ОК, чтобы создать решение.

Ниже приведены два способа интеграции содержимого Silverlight в приложение ASP.NET.

•       Содержимое Silverlight размещается в файлах HTML. Файлы HTML, хости- рующие содержимое Silverlight, размещаются в папке сайта ASP.NET точно так же, как и обычные файлы HTML. Единственное ограничение состоит в том, что в данной ситуации страница HTML не может содержать элементы управления ASP.NET, поскольку она обрабатывается не на сервере.

•       Содержимое Silverlight размещается в форме ASP.NET. Для реализации этого сценария элемент <object>, загружающий надстройку Silverlight, вставляется на динамическую страницу . aspx. В другие области страницы можно добавить до­полнительные элементы управления ASP.NET. Единственный недостаток данно­го способа состоит в том, что страница всегда обрабатывается на сервере. Если на стороне сервера не используется содержимое ASP.NET, то при первом запросе страницы будет выполняться много лишних операций.

Конечно, оба способа можно комбинировать, используя содержимое Silverlight на от­дельных страницах HTML и на страницах ASP.NET, и все это на одном и том же сайте. При создании проекта Silverlight с сайтом ASP.NET в Visual Studio 2008 можно использовать оба способа. Например, если проект Silverlight имеет имя SilverlightApplicationl, в качестве тестовой страницы можно создать файл SilverlightApplicationlTestPage. html или SilverlightApplicationlTestPage .aspx. На момент написания данной кни­ги в ранней версии Visual Studio 2010 было определено немного другое поведение — программа создает страницу HTML, а не ASP.NET.

На рис. 1.8 показано начало разработки решения Silverlight с сайтом ASP.NET. Кроме двух тестовых страниц, сайт содержит следующие файлы: страницу Default. aspx, которую можно использовать в качестве точки входа в сайт ASP.NET; файл web. conf ід, содержащий конфигурационные параметры сайта; и файл Silverlight. j s, содержа­щий вспомогательные функции JavaScript, предназначенные для инициализации обла­сти содержимого Silverlight.

Рис. 1.9. Страница ASP.NET, содержащая приложение Silverlight

Чтобы открыть другую страницу проекта ASP.NET, можно ввести ее локальный URL в адресной строке браузера (маршрут в файловой системе, естественно, обработан не будет).

Примечание. Не забывайте, что при создании решения Silverlight на основе ASP.NET исходный код и все файлы Silverlight находятся в проекте Silverlight, Сайт ASP.NET обрабатывает только готовые файлы, т.е. скомпилированную сборку Silverlight и тестовый файл . aspx. Остальные файлы проекта он игнорирует.

Элементы управления ASP.NET, выводящие содержимое Silverlight

В предыдущих версиях для включения содержимого Silverlight использовался специ­альный элемент управления ASP.NET, имевший имя Silverlight. Как и любой элемент управления ASP.NET, элемент Silverlight обрабатывался на сервере. Когда драйвер ASP.NET генерировал страницу HTML, элемент Silverlight создавал элемент <obj ect>, определяющий область содержимого Silverlight. Однако теперь модель программирова­ния на стороне сервера немного изменилась.

Преимущество использования элемента ASP.NET для генерации области содержимо­го Silverlight состоит в том, что это открывает возможность взаимодействия с сервером. Например, серверный код может динамически устанавливать свойство Source элемента управления Silverlight, чтобы указать на другое приложение. Однако элемент Silverlight предоставлял не так уж много возможностей взаимодействия с серверным кодом. Фактически, он был не более чем декоративной оболочкой элемента <object>.

Компания Microsoft больше не рекомендует использовать элемент Silverlight, и в пакете Silverlight SDK его больше нет. При модернизации существующего проекта Silverlight 2, содержащего веб-сайт ASP.NET, в проекте будет использоваться элемент Silverlight, однако при создании нового проекта программа Visual Studio применит более прямолинейный подход — создаст элемент <ob j ect>. Если вы хотите по-прежнему использовать в новых проектах элементы управления Silverlight и MediaPlayer, загрузите их с сайта www. code.msdn. microsoft. com/aspnetproj ects.

Взаимодействие элементов управления ASP.NET и содержимого Silverlight

Почти во всех примерах данной книги применяются тестовые страницы HTML. Разработчики ASP.NET могут использовать Silverlight для увеличения возможностей существующих страниц ASP.NET. Например, с помощью Silverlight на страницу можно добавить меню или внедрить аплеты, выводящие игры или калькулятор. Однако при создании такой страницы необходимо учитывать следующие обстоятельства.

Код ASP.NET выполняется на веб-сервере. Для запуска серверного кода на выпол­нение в элементах управления ASP.NET используется механизм обратного вызова, передающий текущую страницу на сервер. Например, страница передается обратно на сервер при щелчке на кнопке ASP.NET. Проблема состоит в том, что при обратной пере­даче страницы приложение Silverlight завершается. После выполнения кода на стороне сервера, браузер получает новую версию страницы. Браузер загружает новую страницу, и в этот момент приложение Silverlight вновь запускается. Однако это уже не предыду­щий экземпляр приложения. Пользователь не только попадает в начальную точку, но и вынужден ждать завершения повторной инициализации среды Silverlight.

Если хотите избежать разрыва приложения, используйте технологию ASP.NET Ajax. Особенно полезный инструмент — класс UpdatePanel. При его использовании элементы управления, запускающие обратный вызов и модифицируемые при этом, заключаются в оболочки с помощью нескольких элементов UpdatePanel. Затем, когда пользователь щелкает на кнопке, на сервер вместо полнофункционального обратного вызова пере­дается асинхронный запрос. Получив ответ, браузер обновляет соответствующие части страницы, не прерывая приложение Silverlight.

Совет. Подробнее элемент UpdatePanel рассматривается в книге Microsoft ASP.NET 3.5 с примерами на С# 2008 для профессионалов, 2-е издание ("Вильяме", 2008)

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии