Microsoft Silverlight 1.1 Tools Alpha for Visual Studio 2008

Только только появился на свет релиз Visual Studio 2008, как уже подоспели и инструменты silverlight-разработчика для новой студии! Тем, кто уже качнул себе VS 2008 могут обновляться. Стоит отметить, что тулсы не будут ставиться на VS Express, так что их обладателям не повезло :(.

Всем остальным качать отсюда – Microsoft Silverlight 1.1 Tools Alpha for Visual Studio 2008.

Posted on 27.11.2007 16:54:58 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight | Visual Studio

Tags: , ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Visual Studio 2008

Вот и дождались релиза VS 2008! Среда разработки доступна для скачивания в следующих видах:

  • Visual Studio 2008 Standart Edition
  • Visual Studio Team System 2008 Team Suite
  • Visual Studio Team System 2008 Team Foundation Server
  • Visual Studio Team System 2008 Test Load Agent
  • Visual Studio 2008 Express Edition

Как обычно предоставляется 90–дневний триал. Professional версия стоит порядка 800 зелёных и сейчас доступна для скачивания только подписчикам MSDN. На следующей неделе обещают триал выложить в паблик.

Почитать о новых возможностях можно на сайте microsoft или в блоге ScottGu.

Posted on 24.11.2007 16:52:50 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight | Visual Studio

Tags: , , ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Silverlight Streaming

Silverlight Streaming – что же это такое? Это 4Gb места под ваши SL-приложения! Вы больше не зависите от хостинга и вам не нужно выделять дополнительное место для видео на своём сайте! Плюс пользоваться этим очень просто!

Итак, идём на silverlight.live.com, для входа нужен LiveID, и если вы ещё не регистрировались, то надо бы уже догадаться и подрегиться ;) В общем, после входа в свой аккаунт и принятия соглашения об использовании вам выдадут Account ID, который будет использоваться во всех ссылках на ваши проекты. Далее жмём “Manage Applications” и “Upload a Silverlight Application”. В верхнем поле вводим название приложения, а в нижнем выбираем путь к зазипованному проекту. Об этом поподробней.


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

  • ttf – application/octet-stream
  • js - Application/x-javascript
  • dll – application/x-msdownload
  • xaml – application/xaml+xml
  • xml – application/xml
  • zip – application/x-zip-compressed
  • wma – audio/x-ms-wma
  • wmv – audio/x-ms-wmv
  • mp3 – audio/mpeg
  • gif – image/gif
  • jpeg – image/jpeg
  • png – image/png
  • txt – text/plain
  • sdx – text/plain

Если архив содержит что-то другое, то он не пройдет. Это сделано для очистки ненужного мусора на хостинге. Итак, берем любой проект, копируем в другую папку и чистим от ненужных файлов – удаляйте все, без чего программа сможет нормально работать.

Далее необходимо создать XLM-файл под названием manifest.xml. Он должен содержать описание вашего приложения для робота. Обычно он содержит:

<SilverlightApp>
   <source>Название главного Xaml-файла</source>
   <version>1.0 или 1.1 Версия (либо пустой)</version>
   <width>Ширина в пикселях или процентах</width>
   <height>Высота в пикселях или процентах</height>
   <jsOrder>
      <js>JS-файл, загружаемый первым</js>
      <js>Вторым</js>
      <js>...И так далее…</js>
   </jsOrder>
</SilverlightApp>

Этого достаточно для любого приложения. О дополнительных опциях читаем тут.

Структура файлов тоже должна быть соответствующая – каждый тип файлов, кроме xaml, сохраняем в отдельной папке:

  • JavaScript – в js/[cool.js]
  • Картинки – в images/[picture.jpg]
  • Dll – в ClientBin/[mega.dll]

В разметке также ссылаемся на относительный пути, например, картинка sample.jpg будет доступна так: <Image Source="images/sample.jpg"/>.

Стоит отметить, что видео-файл не должен превышать 22Mb, такие уж ограничения. Выход – разбить видео-файл на несколько частей и по-очереди проигрывать.

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

1) Это можно вставить в любое место страницы: <script type="text/javascript" src="http://agappdom.net/h/silverlight.js"></script>
<script type="text/javascript" src="CreateSilverlight.js"></script>

2)Див копируем в то место, где должно находиться приложение на странице: <div id="Wrapper_CoolAnim" style="width:1280px; height:1024px; overflow:hidden;"></div>
<script type="text/javascript">
var Wrapper_CoolAnim = document.getElementById("Wrapper_CoolAnim");
CreateSilverlight();
</script>

3)Создаем файл CreateSilverlight.js и копируем туда: function CreateSilverlight(){
  Silverlight.createHostedObjectEx({
    source: "streaming:/36889/CoolAnim",parentElement: Wrapper_CoolAnim});
}

Грузим в браузере страницу и наслаждаемся результатом! Вы можете легко обновлять приложения с помощью кнопки “Upload Updated Application”.

Любые вопросы пишем в комменты, хотя, я думаю, остаться их не должно 8)

Posted on 21.11.2007 16:52:28 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight | Video | Streaming

Tags: , ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Проблемы временных зависаний приложений на Silverlight 1.0

Почему SL 1.0 далека от идеала? Есть огромное множество причин, но особенно выделяется проблема “зависания” всего приложения при выполнении JavaScript-кода. Замечали тормоза при выполнении кода, производящего долгие вычисления, и невозможность работать с интерфейсом? Лично я да. Особенно это заметно, когда на сайте используется AJAX. В чем же дело, неужели это так и должно быть? Ответ: да!

Действительно, в документации сказано, что на время выполнения JS-кода, все приложение блокируется до завершения вычислений. Тут есть два пути выхода из ситуации: либо дожидаться выхода SL 1.1 (Потому, что на альфе очень расковано начинать хоть какой-то более менее серьёзный проект – поддерживать приложение станет невыносимо, ведь до финального релиза будет ещё куча изменений), либо разбивать код на много мелких функций. Почему это спасает? Да потому, что в перерывах между выполнениями нескольких методов интерфейс приложения будет доступен пользователю, а значит и никаких зависаний не произойдет!

Posted on 10.11.2007 16:48:18 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight

Tags: ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Автоматический повтор видео в SL

На форуме Silverlight.ru появился вопрос о повторении видео-ролика бесконечно или необходимое количество раз. Сделать это очень просто, необходимо назначить слушателя события окончания видео.

Есть уйма способов решения. Приведу конкретный пример. Для начала создаем пустой JavaScript файл, в  который добавляем код:

//Количество повторений

var countRepeat = 2;

//Ссылка на слушателя события

var eventListener = null;

 

function MediaElement_Loaded(sender, e) {

    //Добавим слушателя события MediaEnded,

    //вызывается по окончании ролика

    eventListener = sender.addEventListener("MediaEnded",

      replayVideo);

}

function replayVideo(sender, e) {

    //Останавливаем видео, т.к. иначе реплей не начинается

    sender.stop(); 

    if(countRepeat < 0) {

        sender.play();

    } else if(countRepeat > 0) {

        //Начинаем проигрывание сначала

        sender.play();

        //Вычитаем счётчик

        countRepeat--;

    } else {

        //Удаляем слушателя

        sender.removeEventListener("MediaEnded",

          eventListener);

    }

}

Затем необходимо создать MediaElement и добавить атрибуты x:Name=”любое имя” и Loaded=”MediaElement_Loaded”. Здесь задается функция-обработчик, которая вызывается после загрузки медиа-элемента. Примерно так должен выглядеть ваш Xaml, естественно не считая другие элементы:

<Canvas

    xmlns="http://schemas.microsoft.com/client/2007"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="640" Height="480"

    Background="White"

    x:Name="Page"

    >

    

    <MediaElement Loaded="MediaElement_Loaded"

                x:Name="myVideo"

                Width="330"

                Height="227"

                Canvas.Left="62"

                Canvas.Top="78"

                Volume="1"

                Stretch="Fill"

                Source="Butterfly.wmv"/>

</Canvas>

Если хотите динамически создать реплей видео, то можно использовать следующую функцию:

//Конструктор принимает ссылку на 

//объект MediaElement и количество повторений

function repeatVideo(mediaElementLink, numberRepeat) {

    countRepeat = numberRepeat;

    eventListener = 

    mediaElementLink.addEventListener("MediaEnded",

     replayVideo);

};

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

Posted on 10.11.2007 16:47:38 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight | Video

Tags: , ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Sapphire - свежие контролы для Silverlight 1.1 Alpha

Нужны готовые элементы пользовательского интерфейса, но не хочется ждать выхода Silverlight 1.1? Создайте их сами! Но ведь не каждый из нас дизайнер и способен создать достойный контрол.В таком случае, встречайте новые компоненты UI для вашего приложения - Silverlight Toolset Controls.

Sapphire (маркетинговое название продукта) - нехилый набор, включающий в себя:

  • Кнопки
    • Button
    • RepeatButton
    • CheckButton
    • CheckBox
    • GroupButton
    • RadioButton
  • Контейнеры
    • FlowPanel
    • StackPanel
    • DockPanel
    • HyperPanel
    • SplitContainer
    • ScrollViewer
  • Работа со временем
    • DatePicker
    • MonthCalendar
  • Списки
    • ListBox
    • TreeView
    • Menu
    • Accordion
  • Слайдеры
    • Slider
    • RangeSlider
    • ProgressBar
    • ScrollBar
  • Текст
    • Label
    • LinkLabel
    • TextBox
    • NumericTextBox
    • MaskedTextBox
    • ComboBox
  • Разное
    • ControlBase
    • ColorPicker
    • RotatingCube
  • Расширенные 
    • C1DataGrid
    • C1Chart

Как видите, набор включает в себя не только основные элементы типа кнопок и списков, и и достаточно сложные, как например чарт, грид, вращающийся куб.

Скачать все это в одном удобном исталлере можно с официального сайта - http://labs.componentone.com/Sapphire, но только после регистрации.

Posted on 07.11.2007 16:40:16 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight

Tags: , ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Новые контролы для Silverlight 1.1 - TreeView и AnimatedWrapPanel

Недавно Пит Браун в своём блоге опубликовал два интересных элемента UI. Первый - хорошо известный древовидный элемент, отображающий ваши собственные элементы в виде иерархической структуры, который хорошо подходит для создания навигации по вашему приложению. Второй - панель, элементы которой, при изменении размеров контейнера, плавно занимают все отведённое пространство по ширине, располагаясь в несколько вертикальных рядов при нехватке места. Как следует из названия плавность обеспечивается за счёт использования анимации. Работающий пример можно увидеть тут. Вот как это выглядит в моем лисе:

Все контролы доступны для скачивания в исходниках - download the work-in-progress code. Не забывайте, что SL 1.1 все ещё в альфе, так что к финальному релизу код может стать неработоспособным. Тем не менее, Пит продолжает работать над кодом, поэтому ждите новых релизов.

Posted on 05.11.2007 16:35:53 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight

Tags: , ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Сделай видео-обои на Silverlight!

Слыхали про Dreamscene? Это новая фича от microsoft, позволяющая пользователям Windows Vista устанавливать видео-ролики в качестве обоев рабочего стола. Но к сожалению доступна она только пользователям Windows Vista Ultimate ;(. Не отчаиваемся, сейчас сделаем себе обои не хуже на любимом Silverlight.

Для начала создаем новый проект и добавляем в XAML-файл MediaElement с атрибутами:

  • x:Name="MyVideo" - понадобиться для VideoBrush - видео-кисти, которую будем использовать в качестве фона страницы.
  • Width=0, Height=0 - для сокрытия MediaElement, чтобы не получилось две копии видео на экране.
  • Source="Ваше_видео.wmv" - путь к вашему ролику.

Затем назначаем фоном страницы элемент VideoBrush с атрибутом SourceName="MyVideo" - имя, назначенное медиа-элементу. Получается такой код:

   1:  <Canvas

   2:      xmlns="http://schemas.microsoft.com/client/2007"

   3:      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   4:      Width="1280" Height="994"

   5:      x:Name="Page"

   6:      >

   7:    <Canvas.Background>

   8:      <VideoBrush SourceName="MyVideo"

   9:                  Stretch="Fill"/>

  10:    </Canvas.Background>

  11:      <MediaElement x:Name="MyVideo"

  12:                  Width="0"

  13:                  Height="0"

  14:                  Source="Bear.wmv"

  15:                  Volume="1"/>

  16:  </Canvas>

 

Размеры canvas'a задаем так: ширину устанавливаем равной разрешению по горизонтали (у меня стоит 1280x1024, поэтому я задал 1280), а высоту - ваше разрешение по вертикали минус размеры панели пуск (приблизительно 40 пикселей).

Далее необходимо убрать отступы непосредственно в xhtml-странице. Задаем margin и padding 0px у элементов body и вашего div'a, в котором помещается silverlight-плагин. Вот как примерно должен выглядеть ваш Default.html файл:

   1:  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

   2:   "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">

   3:  <html xmlns="http://www.w3.org/1999/xhtml">

   4:  <head>

   5:      <title>Videowallpaper</title>

   6:   

   7:      <script type="text/javascript"

   8:       src="Silverlight.js"></script>

   9:      <script type="text/javascript"

  10:       src="Default_html.js"></script>

  11:      <script type="text/javascript"

  12:       src="Page.xaml.js"></script>

  13:      <style type="text/css">

  14:          .silverlightHost {

  15:              height: 994px;

  16:              width: 1280px;

  17:              margin:0px;

  18:              padding:0px;

  19:          }

  20:          body 

  21:          {

  22:              margin:0px;

  23:              padding:0px;

  24:          }

  25:      </style>

  26:  </head>

  27:   

  28:  <body>

  29:      <div id="SilverlightControlHost"

  30:           class="silverlightHost">

  31:          <script type="text/javascript">

  32:              createSilverlight();

  33:          </script>

  34:      </div>

  35:  </body>

  36:  </html>

 

После запуска проекта должно получиться следующее (конечно видео будет ваше):

Наши видео обои готовы!

Перейдем к рабочему столу. В Windows есть функция установки на рабочий стол веб-содержимого, в XP щёлкаем правой кнопкой крысы на рабочем столе -> рабочий стол -> Настройка рабочего стола -> Вкладка "Веб" -> Создать -> Обзор -> Выбираем файл Default.html из папки с созданными обоями -> Ok. Галочку "Закрепить элементы рабочего стола убираем. Щёлкаем Ok -> Применить. На столе должно появиться окно с видео:

Жмём кнопку, показанную на предыдущем скриншоте и наслаждаемся видео-обоями! Как видите с помощью Silverlight небольшими усилиями мы построили довольно эффектную фичу, которой не стыдно похвастаться перед друзьями ;)

Что можно добавить:

  • Автоматическое проигрывание видео сначала после того как оно завершится.
  • Добавить кнопки управления.
  • Загружать автоматически последние видео из сети.
  • и т.п.

Интересно, что весь проект занимает всего 10кб (конечно без видео)! Качаем исходники - VideoWallpaper Source.

Не менее интересно было бы узнать сколько будет весить такое чудо на AIR или Flash/Flex, поэтому, если не трудно, сделайте аналоги и отпишитесь пожалуйста в комментах.

Posted on 04.11.2007 16:41:22 by Admin

Permalink | Комментарии (0) | Post RSSRSS comment feed |

Categories: Silverlight | Video

Tags: ,

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5