silverlight 5

Post on 18-Jan-2015

757 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Евгений ЖарковSilverlight MVP & MCTS

Silverlight 5

Отрисовка текста

Character Spacing

Многоколоночность

RichTextBox RichTextBoxOverflow RichTextBoxOverflow

Многоколоночность

Многоколоночность

RichTextBox RichTextBoxOverflow

RichTextBoxOverflow

RichTextBoxOverflow

RichTextBoxOverflow

Многоколоночность

Native Windows

Неограниченное количество кликов

Неограниченное количество кликов (двойной, тройной и т.д.)

Различные поведения приложения:• Word использует двойное нажатие для

выделения слова, тройное нажатие для выделения параграфа

• Safari 3, Firefox 3, & IE7: тройное нажатие выделяет весь текст внутри элемента

Неограниченное количество кликов

XAML Debugging

РАНЬШЕ:

Ищешь информацию о проблемах со связями в Output Window

Создаешь только для отладки конвертеры значений, привязываешь ко всем

связям, расставляешь внутри точки остановы

ТЕПЕРЬ:

Ставить точки останова в XAML при связке

Устанавливать точки останова во время runtime, как это делается с обычным

кодом

Использовать точки останова с условием

Наблюдать за значениями, источниками, ошибками и т.п.

Заходить в код конвертеров

Неявные шаблоны данных

• Работаю по принципу неявных стилей• Можно использовать в любом content или

items control’е• Связаны с типом данных: классом,

структурой, но не интерфейсом

Обычные (явные) шаблоны данных

class Tweet : TimelineItem {…}class DirectMessage : TimelineItem {…}class Notification : TimelineItem {…}

TimelineItem[] items = new TimelineItems[]{ new Tweet(“Pete Brown”, “pete.png”, “…”), new Tweet(“Jon Galloway”, “jon.png” , “…”), new Tweet(“Joe Stagner”, “joe.png” , “…”), new Tweet(“Jesse Liberty”, “jesse.png” , “…”)};

Data DataTemplatePete Brown

Jesse Liberty

Joe Stagner

Jon Galloway

Resulting Presentation

Неявные шаблоны данных

class Tweet : TimelineItem {…}class DirectMessage : TimelineItem {…}class Notification : TimelineItem {…}

TimelineItem[] items = new TimelineItems[]{ new Tweet(“Pete Brown”, “pete.png”, “…”), new Tweet(“Jon Galloway”, “jon.png” , “…”), new DirectMessage(“Joe Stagner”, “joe.png” , “…”), new Notification(“Jesse Liberty”, “jesse.png” , “…”)};

Pete Brown

Jesse Liberty

Joe Stagner

Jon Galloway

Tweet

DirectMessage

Notification

Data Implicit DataTemplate Resulting Presentation

Расширения разметки

Можете создавать собственные расширения разметки

Позволяет запускать свой код во время разбора XAML

Примеры расширений разметки: {Binding}, {RelativeSource} и т.п.

Проще, чем пользовательские присоединяемые свойства (attached

properties)

Более краткий синтаксис

<TextBlock Text="{my:SumExtension FirstNumber=5, SecondNumber=2}" />

Расширения разметки

Реализуйте IMarkupExtension<T> (System.XAML) Где T – тип возвращаемых данных (обязательно ссылочный тип)

Задайте свойства для параметров

Реализуйте ProvideValue() для возврата значения

public class SumExtension : IMarkupExtension<object>{ public int FirstNumber { get; set; } public int SecondNumber { get; set; }

public object ProvideValue(IServiceProvider serviceProvider) { return FirstNumber + SecondNumber; }}

Ancestor RelativeSource

Позволяет связь к свойствам на родительском элементе управления

Привязка из коробки

Реализует возможности WPF

Использует Binding.RelativeSource для указания источника в дереве Использует AncestorType для задания типа родителя

Использует AncestorLevel для указания уровня в дереве

<TextBlock Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=Grid, AncestorLevel=2}}"/>

Привязка в стилях

Возможно изменять стили в runtime

Реализует возможности WPF

Поддержка привязки реализована прямо в setter’ах стиля Стандартный синтаксис привязки

Поддержка всех возможностей (конвертеры, форматизаторы и т.п.)

<Setter Property="Foreground" Value="{StaticResource theBrush}" />

Elevated Trust

Внутрибраузерные Elevated-Trust приложения

Неограниченный доступ к файловой системе

Поддержка нескольких окон

Поддержка Automation and P/Invoke

Внутрибраузерный Elevated-Trust

Можно запускать приложения с расширенными правами внутри браузера Больше не нужно использовать OOB для получения расширенных прав

Поддержка клавиатуры в полноэкранном режиме, дополнительные возможности для таких

приложений, как киоски и медиа-проигрыватели

Доступны все возможности расширенных прав

Требуется активация через Client Access Policy или в реестре Windows Ограниченные к частной сети или одной машине

XAP должен быть подписан сертификатом Сертификат должен присутствовать в Trusted Publisher Certificate хранилище

Для разработчиков, “localhost” должен быть в белом списке

Пока только в Windows

Client Access Policy

Доступнен установив атрибут ElevatedPermissions в элементе

SecuritySettings в значение Required

<Deployment.OutOfBrowserSettings> ... <OutOfBrowserSettings.SecuritySettings> <SecuritySettings ElevatedPermissions="Required" /> <OutOfBrowserSettings.SecuritySettings> ...</Deployment.OutOfBrowserSettings>

Реестр Windows

Найдите элемент:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Silverlight

Устанавливаете AllowElevatedTrustAppsInBrowser (DWORD) в 0x00000001

для разрешения запуска elevetad-trust приложений внутри браузера

Используйте AllowInstallOfElevatedTrustApps для активации/деактивации

полной инсталляции elevated-trust приложений (внутри браузера или OOB)

Используйте AllowLaunchOfElevatedTrustApps для активации/деактивации

elevated-trust приложений (внутри браузера или OOB)

Доступ к файловой системе

Неограниченный доступ к файловой системе для elevated-trust

приложений Одинаковые права с пользователем

Доступ к полной информации

Доступ к файловой системе

Silverlight 4 Silverlight 5

Улучшения в стеке графики

Улучшена производительность и отрисовка

Аппаратное ускорение Расширенная поддержка GPU

Новое 3D API

Векторная печать

Предпросмотр печати

Улучшенная производительность

Улучшена стартовая производительность Поддержка многоядерности в JIT

Улучшено время парсинга XAML Особенно для UserControls и ResourceDictionaries

Добавлена поддержка 64-bit

Оптимизация задержек в сети (network latency)

90% прирост производительности в сценариях ClientHttpWebRequest

Аппаратное ускорение отрисовки у Internet Explorer 9 в безоконном

режиме Используется новое SurfacePresenter API

Другие улучшения

Доступнка поддержка WS-Trust в WCF

Поддержка Windows Azure

Поддержка In-browser HTML

Автоматизированные тесты UI

Улучшенная поддержка профилирования Память

CPU

Thread contention

А также другие мелкие улучшения во многих “уголках” продукта

Векторная печатьPrintDocument doc = new PrintDocument();

doc.PrintPage += (s, ea) => { StackPanel printPanel = new StackPanel();

Random rnd = new Random();

for (int i = 0; i < 30; i++) { TextBlock row = new TextBlock(); row.Text = "This is row " + i + " of the current page being printed in vector mode.";

printPanel.Children.Add(row); }

ea.PageVisual = printPanel; ea.HasMorePages = false; };

doc.Print("Silverlight Vector Print");

Векторная печатьPrintDocument doc = new PrintDocument();

doc.PrintPage += (s, ea) => { StackPanel printPanel = new StackPanel();

Random rnd = new Random();

for (int i = 0; i < 30; i++) { TextBlock row = new TextBlock(); row.Text = "This is row " + i + " of the current page being printed in vector mode.";

printPanel.Children.Add(row); }

ea.PageVisual = printPanel; ea.HasMorePages = false; };

PrinterFallbackSettings settings = new PrinterFallbackSettings(); settings.ForceVector = true; settings.OpacityThreshold = 0.5;

doc.Print("Silverlight Vector Print" , settings);

Активация PostScript

3D

•ПОЧЕМУ 3D• Одно из главных требований клиентов (третье в

списке на user voice)• Шаг вперед в плане визуализации,

производительность и интерактивность• Современные устройства готовы к 3D

• В ОСНОВЕ ЛЕЖИТ XNA

3D

Результат Структура проекта

3D

ДЕМО

Изменения в работе с Media

Улучшено управление батареей Никаких скринсейверов в полноэкранном режиме

Поддержка дистанционного управления

Аппаратное декодирование; больше GPU H.264 видео теперь декодируется аппаратно

В Beta отсутствует DRM и поддержка Mac

Поддержка 1080p В сочетании с GPU, вы можете просматривать 1080p видео на нетбуках и планшетах

Изменения в Media

Управление скоростью проигрывания (Trick Play)

Передачи аудио-данных с малой задержкой (low-latency)

IIS Media Services 4 Теперь с поддержкой Windows Azure

Управление скоростью (Trick Play)

Позволяет управлять скоростью проигрывания в MediaElement

Позволяет замедлить или ускорить проигрывание

Умеет проигрывать видео в обратную сторону

Используйте PlaybackRate для указания скорости (-8, -4, -2, …, 0.5, 1.2,

1.4, 2, 4, 8)

Ограничения: Нужно задавать значения из кода, если это делать в XAML они сбрасываются при

старте приложения

Low-Latency Sounds

Поддержка low-latency звуков Raw данные (например wave файлы)

Использует XNA подход

Контроль громкости, частоты и стерео-направление звука в

пространстве

Используйте SoundEffect для загрузки wave файлов

Используйте SoundEffectInstance для проигрывания нескольких

экземпляров одного и того же аудио

Ограничения: Идентичны XNA: 8 или 16bit PCM, моно или стерео, 22.5, 44.1 или 48khz

Будущее Silverlight

Вы здесь

Но не забывайте смотреть сюда

Вопросы?

eu.zharkov@gmail.com@2j2e

top related