Опубликован: 27.12.2011 | Доступ: свободный | Студентов: 1333 / 35 | Оценка: 4.44 / 4.44 | Длительность: 12:31:00
Лекция 4:

Размещение приложений Silverlight на облачной платформе

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

Например, если у нас в приложении сохраняется файл содержащий медиа контент (изображении, видео, аудио) то для его использования можно воспользоватся следующим кодом.

<Grid x:Name="LayoutRoot">
<MediaElement Width="300" Height="200" Stretch="Uniform" 
Source="http://gillcleeren.blob.core.windows.net/test/Butterfly.wmv" 
AutoPlay="True"></MediaElement>
</Grid>

При сохранении XML файлов в облачном хранилище возникают сложности, если затем попытаемся прочитать сохраненный файл из приложения Silverlight. Это связано с нарушением ограничений на межтеменные взаимодействия. Для решения данной проблемы необходимо поместить в корневой каталог хранилища файл clientaccesspolicy.xml.

Корневой контейнер не может содержать файлов, а содержит только другие контейнеры. Выход заключается в том, чтобы создать специальный контейнер с именем $root, Этот специальный тип контейнера определяет корень хранилища, в него и необходимо поместить файл clientaccesspolicy.xml ( рис. 4.16).

Файл сохраненный в корневой папке

Рис. 4.16. Файл сохраненный в корневой папке

После этих манипуляций из приложения Silverlight можно использовать XML файл по ссылке на него в хранилище. Сам код стандартный.

private void LoadTrendingTopics()
{
WebClient client = new WebClient();
client.DownloadStringCompleted += 
new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://gillcleeren.blob.core.windows.net/test/trendingtopics.xml", 
UriKind.Absolute));
}
 
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
        XDocument document = XDocument.Parse(e.Result);
        List<Trend> twitterData = (from status in ocument.Descendants("trend")
                                   select new Trend
                                   {
                                       TrendingTopic = status.Value,
                                       Url = status.LastAttribute.Value
                                   }).ToList();
 
        TrendingTopicListBox.ItemsSource = twitterData;
    }
    else
    {
        MessageBox.Show(e.Error.ToString());
    }
}

Ранее указывалось, что невозможно просто обновить XAP файл в службе хостинга, так как это приведет к обновлению проекта и созданию его новой версии. Решение данной проблемы состоит в том, что можно поместить этот файл в хранилище blob. Для этого необходимо сделать следующее:

  1. Создать отдельный контейнер для хранения фала XAP ( рис. 4.17).
    Созданный контейнер

    Рис. 4.17. Созданный контейнер
  2. Поместить существующий файл XAP в хранилище с помощью Cloud Explorer ( рис. 4.18).
    Файл помещенный в контейнер

    Рис. 4.18. Файл помещенный в контейнер
  3. Обновить URL в проекте ASP.Net
    <div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," 
    type="application/x-silverlight-2"
    width="100%" height="100%">
    <param name="source" 
    value="http://gillcleeren.blob.core.windows.net/xap/RemoteXap.xap" />
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.50826.0" />
    
  4. Опубликовать хостинг сайт под Web ролью в Azurе. Используя указанный подход значительно упрощается обновление XAP и не требуется его повторная публикация. .

В заключении следует отметить, что Silverlight является одной из платформ, которая может использоваться для создания приложений Windows Phone. Возможность размещения указанных приложений в Azure является удобным и эффективным механизмом размещения приложения для телефона

Краткие итоги

  • Приложение Silverlight может быть размещено в Microsoft Azure.
  • Размещение должно осуществляться в определенной последовательности: переносится и настраивается база данных, настраивается хранилище, настраивается приложение и его библиотеки.
  • Для использования служб RIA из облака необходимо выполнить ряд настроек связанных с размещением в облаке дополнительных библиотек.
  • Хранилище обеспечивают удобный и масштабируемый механизм хранения данных,
  • Для загрузки файлов в облачное хранилище, а необходимо использовать специальные инструменты CloudBerry или CloudExplorer
  • При использовании XML файлов в облачном хранилище требуется настройка междоменного взаимодействия.
< Лекция 3 || Лекция 4: 1234 || Лекция 5 >