1 / 47

обзор silverlight 2

Михаил Черномордиков Developer Evangelist, Microsoft Россия mikcher@microsoft.com http://blogs.msdn.com/mikcher. обзор silverlight 2. Кросс-браузерная кросс-платформенная реализация .NET для построения и распространения следующего поколения медиа и

Download Presentation

обзор silverlight 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Михаил Черномордиков Developer Evangelist, Microsoft Россия mikcher@microsoft.com http://blogs.msdn.com/mikcher обзор silverlight 2 http://www.remix.ru

  2. http://www.remix.ru

  3. Кросс-браузернаякросс-платформеннаяКросс-браузернаякросс-платформенная реализация .NET для построения и распространения следующего поколения медиа и богатых интерактивных приложений (RIA) для Web http://www.remix.ru

  4. Аудитория Silverlight Поставщики контента Привлекать посетителей интерактивными высококачественными сайтами, включая видео и игры с низкой ценой Разработчики и дизайнеры Ролевые средства для разработчиков и дизайнеров, с использованием существующих навыков и знаний и с базированием на существующих приложениях Конечные пользователи Сайты одинаково хорошо работают на Windows и Mac с однократной легкой установкой плагина (~4.5MB) http://www.remix.ru

  5. Архитектура Silverlight Silverlight 1 .NET for Silverlight Server Data WPF for Silverlight Inputs Media Silverlight 2 LINQ LINQ-to-XML Extensible Controls Keyboard WMV / VC1 Web Services ASP.NET AJAX Libs Mouse WMA Legend REST RSS SOAP Dynamic Languages BCL POX JSON Ink MP3 <asp:xaml> Ruby Python Generics Collections <asp:media> Common Language Runtime XAML UI Core Controls DRM 2D Vectors Images Layout Media Animation Transforms Editing Text Presentation Core Integrated Networking Stack DOM Integration JavaScript Engine Installer Browser Host http://www.remix.ru

  6. Производительность Silverlight 2 DHTML = 64 fps Flash 9 / Flex 2 = 65 fps Java (Swing) = 64 fps Silverlight 1.0 = 64 fps Silverlight 2 = 462 fps www.bubblemark.com

  7. Silverlight – текущий статус • Silverlight 1.0 – вышел осенью 2007 • Silverlight 2 – вышел 14 октября 2008 • Установка с http://silverlight.net/getstarted/ • Silverlight 2 Runtime • Silverlight Tools for Visual Studio 2008 SP1 • Expression Blend 2 SP1 • Silverlight Toolkit – вышел 29 октября 2008 • Элементы управления • AutoCompleteBox, Chart, DockPanel, Label, Expander, TreeView, UpDown, ViewBox, WrapPanel, ImplicitStyleManager • Темы • Silverlight 3 – 2009 год • AAC, H.264, 3D, hardware acceleration http://www.remix.ru

  8. Медиа сценарий • Богатые возможности по работе с медиа(полноэкранное, HD, потоковое, adaptive) • Простое создание медиаплеера на сайте • Комплексное медиа-решение • Интерактивная реклама • NBCOlympics.com – в среднем сессия пользователя длилась 27 минут

  9. Бизнес сценарий • Интерактивные бизнес-приложения • Конкурентное преимущество • Технология Deep Zoom • Авиалинии, финансы, медицина и др.

  10. Развлекательный сценарий • Казуальные игры • Создание своих собственных игр (Popfly) • Использование технологии Deep Zoom • Комплексное решение для развлечений

  11. Медиа и пользовательские интерфейсы http://www.remix.ru

  12. Presentation Core – Графика • 2D графика • Основа на векторной графике • Стандартные фигуры + «пути» (Paths) • Маски и клиппинг • Трансформации: skew, rotate, scale, translate, matrix • Основы анимации • Основанная на времени • Поддержка линейной, дискретной и сплайновой анимации • Типы анимационных свойств: • Double, Color, Point • Анимация и графика могут быть определены в XAML-разметке ил в коде

  13. Presentation Core - Видео Качество Интерактивность • Поддержка HD • Кодек VC-1 • Видео – полноценный «житель» • Медиамаркеры • Видеокисть Стоимость Форматы • Windows Media Server • Adaptive streaming • Byte range seeking • Silverlight Streaming • Throttling (c IIS7) • Видео: VC-1, WMV v7,v8,v9 • Аудио: WMA V7, V8, V9, MP3, WMA 10 Pro Защита контента • PlayReady DRM для онлайн-просмотра

  14. Extensive Application Markup Language XAML C# VB.NET <Button Width="100"> OK <Button.Background> LightBlue </Button.Background> </Button> Button b1 = new Button(); b1.Content = "OK"; b1.Background = new SolidColorBrush(Colors.LightBlue); b1.Width = 100; Dim b1 As New Button b1.Content = "OK" b1.Background = New _ SolidColorBrush(Colors.LightBlue) b1.Width = 100 Декларативная разработка с XAML • Декларативная разметка, поддержка инструментами • Код и представление разделены • Подмножество Windows Presentation FoundationXAML http://www.remix.ru

  15. Элементы управления • Microsoft предоставляет готовый набор элементов • Поставка с исходными кодами и юнит-тестами • Смоделированы после элементов управления WPF • Расширяемые • Большая партнерская экосистема с более специфическими элементами управления http://www.remix.ru

  16. Styling - стилизация • Определение стилей для задания внешнего вида http://www.remix.ru

  17. Skinning – поддержка шаблонов • Полностью заменяет текущее представление, оставляя прежнюю логику работы http://www.remix.ru

  18. DataTemplate Data Templates – шаблоны данных class Car { string Image {get;set} string Model {get;set] } <DataTemplate x:Key="carTemplate"> <Border BorderBrush="Blue" BorderThickness="2" Background="LightGray" Margin="10" Padding="15,15,15,5"> <StackPanel> <Image HorizontalAlignment="Center" Source="{Binding Path=Image}" /> <Border HorizontalAlignment="Center" BorderBrush="Navy" Background="#DDF“ BorderThickness="1" Margin="10" Padding="3"> <TextBlockFontSize="18" TextContent="{Binding Path=Model}" /> </Border> </StackPanel> </Border> </DataTemplate> http://www.remix.ru

  19. Databinding – связывание данных • Двустороннее связывание данных между пользовательским интерфейсом и бизнес-объектами • Уведомление через INotifyPropertyChanged • DataContextнаследуется через визуальное дерево отрисовки • Из XAML • Из кода • <TextBlock Text="{Binding Nasdaq.Points, Mode=OneWay}"/> Binding binding = new Binding("Nasdaq.Points"); binding.Mode = BindingMode.OneWay; TextBlocktb = new TextBlock(); tb.SetBinding(TextBlock.TextProperty, binding) http://www.remix.ru

  20. DeepZoom • Работа с изображениями любого размера и разрешения с оптимизацией ширина канала и размера загрузки • Плавные переходы и масштабирование http://www.remix.ru

  21. .NET, Base Class Library, Dynamic CLR http://www.remix.ru

  22. Рефакторинг .NET http://www.remix.ru

  23. Core Base Class Library System.Windows System.Windows.Controls System.Windows.Input System.Windows.Interop System.Windows.Media System.Windows.Shapes System.Windows.Threading System System.Collections System.Collections.Generic System.Diagnostics System.Globalization System.IO System.IO.- IsolatedStorage System.Reflection System.Security System.Security.Cryptography System.Text System.Threading System. Windows mscorlib System. Windows. Browser System.Windows.Browser System System. Core System.Linq System.Linq.Expressions System.Runtime.CompilerServices System.Security.Cryptography System System.Collections.Generic System.ComponentModel System.Diagnostics System.Text.RegularExpressions System. Xml System.Xml System.XmlSchema System.Xml.Serialization

  24. LINQ • Позволяет исполнять специальные запросы с проверкой синтаксиса, строгой типизацией и Intellisense • Работает на любом источнике на базе IEnumerable<T> • Поддерживает фильтрацию и сортировку данных в памяти • Унифицированный доступ к различным источникам • LINQ to XML • LINQ to JSON* • LINQ to Objects Возвращает отсортированный список всех игроков с 20+ домашних игр varfilteredPlayers = from p in players wherep.HomeRuns > 20 orderbyp.HomeRunsdescending select p; http://www.remix.ru

  25. Dynamic Language Run-time (DLR) • Движок и языки с открытым исходным кодом • Script Server (Chiron) для локальной разработки • Возможности по отладке class App: def __init__(self): self.scene = Application.Current.LoadRootVisual("app.xaml") def start(self): self.scene.Message.Text = "Welcome to Silverlight and IronPython!" App().start() IronPython class App def initialize @scene = System::Windows::Application.Current.LoadRootVisual "app.xaml" end def start @scene.find_name('message').text = "Welcome to Silverlight and IronRuby!" end end App.new.start IronRuby Managed JScript Import("System.Windows.Application") function App() { this.scene = Application.Current.LoadRootVisual("app.xaml") } App.prototype.start = function() {this.scene.Message.Text = "Welcome to Silverlight and Managed JScript!" } app = new App app.start() http://www.remix.ru

  26. Сетевое взаимодействие http://www.remix.ru

  27. Сетевое взаимодействие • Асинхронные HTTP-запросы • GET/POST • Доступ к большинству заголовков, cookies • Использует сетевой стек браузера • Работа с кэшем, аутентификация, прокси, сжатие данных http://www.remix.ru

  28. Веб-сервисы • SOAP 1.1 • Базовый профиль • Несколько ограничений (например, не поддерживаются SOAP Faults) • Асинхронный доступ • Работа в соответствии с кросс-доменными ограничениями • Связывание данных через прокси http://www.remix.ru

  29. Сокеты • Только TCP • Асинхронный API • Нет явного связывания, нет поддержки режиме listen/accept • Ограничения по портам (4502-4534) void Connect(AddressFamily family) { SocketAsyncEventArgsconnectArgs = new SocketAsyncEventArgs(); connectArgs.RemoteEndPoint = new DnsEndPoint( Application.Current.Host.Source.Host, 4502); connectArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnConnectCompleted); socket = new Socket(family, SocketType.Stream, ProtocolType.Tcp); if (!socket.ConnectAsync(connectArgs)) OnConnectCompleted(socket, connectArgs); } http://www.remix.ru

  30. Поддержка кросс-доменного доступа <?xmlversion="1.0"?> <!DOCTYPEcross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-fromdomain="*" /> </cross-domain-policy> • 2 формата: • Flash policy file • Silverlight policy file Cross-domain.xml <?xmlversion="1.0"?> <access-policy> <cross-domain-access> <policy> <allow-from> <domainuri="http://customers.shop.com”/>" <domainuri="http://partner.com/app.xap"/> </allow-from> <grant-to> <grantpath="/sales/serialnumbers.xml" /> <grantpath="/partners"include-subpaths="false"/> </grant-to> </policy> </cross-domain-access> </access-policy> clientaccesspolicy.xml http://www.remix.ru

  31. Безопасное расширение «песочницы» http://www.remix.ru

  32. OpenFileDialog • Обеспечивает родной интерфейс ОС • Sandboxed API возвращает безопасное имя файла и поток на чтение • Поддержка нескольких файлов OpenFileDialogofd= newOpenFileDialog(); ofd.Filter = "Text Files (*.txt)|*.txt|All files (*.*)|*.*"; if (ofd.ShowDialog() == DialogResult.OK) { http://www.remix.ru

  33. Isolated Storage • Основанный на потоках доступ к приватным файлам и каталогам • Основан на классах IsolatedStorage в .NET Framework • Чтение и запись текстовых и бинарных данных • Отдельное хранилище на каждое приложение • Код приложения может запросить увеличение места • Запрос пользователю на увеличение квоты • Квота находится внутри заранее определенного объема • Увеличение квоты возможно только после явного согласия пользователя http://www.remix.ru

  34. Silverlight на сервере • Silverlightработает с любым сервером • Единственное требование – обработка XAML и XAP-файлов • Использование техник AJAX может улучшить интерфейс • ASP.NET AJAX поддерживает дополнительную интеграцию • <asp:xaml> • <asp:media> Silverlight Component (XAML, .NET) AJAX Control (Script) ASP.NET AJAX Server Control

  35. Интеграция с браузером http://www.remix.ru

  36. HTML/AJAX и интеграция с .NET веб-страница HTML Silverlight .NET язык Javascript веб-страница HTML HTML + Silverlight http://www.remix.ru

  37. Работа с HTML/Javascript ScriptObject HtmlDocument HtmlWindow HtmlElement HtmlObject http://www.remix.ru

  38. Доступ к HTML DOM из кода HTML-доступ через пространство имен usingSystem.Windows.Browser; Статический классHtmlPage – единый доступ HtmlPage.Navigate("http://www.microsoft.com"); String server = HtmlPage.DocumentUri.Host; События, методы и свойства HtmlElementmyButton = HtmlPage.Document.GetElementByID("myButtonID"); myButton.AttachEvent("onclick", new EventHandler(this.myButtonClicked)); privatevoidmyButtonClicked(object sender, EventArgs e) { ... } http://www.remix.ru

  39. Доступ к коду из JavaScript 1.- Пометка свойств, методов и событий как [Scriptable] [ScriptableMember] publicvoidSearch(stringName) { ... } 2.- Регистрация объектов HtmlPage.RegisterScriptableObject ("EntryPoint", this); 3.- Доступ к коду из скрипта var control = document.getElementById("SilverlightControl"); control.Content.EntryPoint.Search(input.value); http://www.remix.ru

  40. Инструменты и платформа .NET http://www.remix.ru

  41. Совместная работа разработчика и дизайнера =

  42. Взаимодействие дизайнера и разработчика Дизайнер Разработчик • Инструментарий Microsoft для дизайнеров и разработчиков • Декларативная разработка с помощью XAML Создает дизайн Добавляет бизнес логику

  43. Интеграция с ASP.NET • Два серверных элемента в ASP.NET • Поставляются с SDK: System.Web.Silverlight.dll • Развертываются в папку /bin • Доступны в design-time в Visual Studio • Соответствующие AJAX-типы • Оба элемента предоставляют клиентский доступ через JavaScript http://www.remix.ru

  44. Silverlight и WPF • Silverlight связан с WPF • Плюс дополнительные веб-возможности и кросс-платформенность • Минус мощность локальных ресурсов • Стратегия повторного использования • Те же умения • Те же инструменты • Те же XAML и внешний вид • Silverlight-код работает в WPF с минимальными изменениями http://www.remix.ru

  45. Silverlight и .NET: вместе веселее • Мощная библиотека для разработки • Поддержка нескольких языков • Последние инновации (LINQ, Generics) • Интеграция с AJAX • Удобные инструменты • Visual Studio • Expression Studio • Кросс-платформенность и кросс-браузерность • Официальная поддержка в Safari, Firefox иInternet Explorer • Официальная поддержка Mac OS XиWindows • Любой веб-сервер • Быстрая и легкая установка • Безопасное расширение веб-песочницы • Off-line storage, OpenFileDialog, Sockets, cross-domain http://www.remix.ru

  46. http://www.remix.ru

  47. Михаил Черномордиков Developer Evangelist, Microsoft Россия mikcher@microsoft.com http://blogs.msdn.com/mikcher обзор silverlight 2 http://www.remix.ru

More Related