12. Text Based UI
• User Experience
• Usability – Low
• Flexibility – Low
• Engagement – None
• Performance – Excellent
• Development Experience
• Reasonable skillset
• Clunky editors and
debuggers early on
• No Choice
• Deployment Experience
• Easy
Era: Mainframe to DOS
13. Desktop GUI
• User Experience
• Usability – High
• Flexibility – High
• Engagement – Medium
• Performance – Very Good
• Development Experience
• Good tools, platforms,
languages
• Generally needed only two
languages: VB/C# and SQL
• Deployment Experience
• Very Difficult at first
• Easier with .NET
Era: Windows 3.1 to Present
14. Web Based UI
• User Experience
• Usability – Medium/Low
• Flexibility – Medium
• Engagement – High
• Performance – Poor-Good
• Development Experience
• High Effort, High Cost
• Cross Browser Problems
• Multiple Languages: VB/C#,
JavaScript, xml, xsl, SQL, HTML,
CSS
• Debugging Difficult
•Deployment Experience
• Easy
Era: Internet era to Present
15. RIA
• User Experience
• Usability – High
• Flexibility – TBD
• Engagement – High
• Performance – Good to
Excellent
• Development Experience
• Good tools, platforms,
languages
• Generally need only: VB/C#,
XAML and SQL
•Deployment Experience
• Easy, via browser
• Silverlight
• Click-once for WPF
Era: Flash v1 to Present
29. Silverlight 2.0 Runtime
• 2D, Graphics • Networking
• Audio, Video • .NET Support
• Animations • LINQ
• Text, Text Input • XMLAPIs
• Controls • Generics
• Layouts • HTML Integration
• Styles/Templates • Local Storage
• Data Binding • Crypto APIs
30. Silverlight 2 SDK Libraries
• Dynamic Languages
– JScript
– IronRuby
– IronPython
• Additional Controls
• LINQ for XML
• XML Serialization
• Syndication APIs (RSS)
31. Сравнение SL 1 и SL 2
Возможности SL 1.0 SL 2.0
2D Graphics, Animations
+ +
AJAX Support
+ +
Cross-Browser (Firefox, IE, Safari)
+ +
Cross-Platform (Windows, Mac)
+ +
Framework Languages
(Visual Basic, Visual C#, IronRuby, Ironpython)
+
HTML DOM Integration
+ +
HTTP Networking
+ +
Isolated Storage
+
32. Сравнение SL 1 и SL 2
Возможности SL 1.0 SL 2.0
JavaScript Support
+ +
JSON, REST, SOAP/WS-*, POX, and RSS Web Services
(включая Sockets)
+
Cross Domain Network Access
+
LINQ to Objects
+
Canvas Layout Support
+ +
StackPanel, Grid and Panel Layout Support
+
Полный набор Control`ов (TextBox, RadioButton, Slider,
Calendar, DatePicker, DataGrid, ListBox, и т. д.)
+
Deep Zoom Technology
+
33. Сравнение SL 1 и SL 2
Возможности SL 1.0 SL 2.0
Managed HTML Bridge
+
Managed Exception Handling
+
Media – Content Protection
+
LINQ to XML
+
Media – 720P High Definition (HD) Video
+ +
Media – Audio/Video Support (VC-1, WMV, WMA, MP3)
+ +
Media – Image Support (JPG, PNG)
+ +
Media Markers
+ +
34. Сравнение SL 1 и SL 2
Возможности SL 1.0 SL 2.0
Rich Core Framework (Generics, collections)
+
Security Enforcement
+
Silverlight ASP.NET Controls (asp:media, asp:xaml)
+ +
Type Safety Verification
+
Windows Meda Server Support
+ +
XAML Parser (based on WPF)
+ +
XMLReader/Writer
+
37. Silverlight Roadmap
• Silverlight 1 – Сентябрь `07
• Silverlight 2
– 5 Марта Beta 1 (некоммерческая)
– Q208: Beta 2
• Инструменты
– Expression Studio 2+ и Visual Studio
– Поддержка в Visual Studio Designer – позже, но
в этом году
38. Moonlight 0.6 (Profile 1.0 и 2.0)
• Скачать
– http://www.go-
mono.com/moonlight
• Блог Мигеля де Иказа
– http://tirania.org/blog
39. Silverlight Sandbox
• Silverlight живет в песочнице
• Разработчики не могут расширять песочницу
• Дополнительные «безопасные возможности»
– Local storage (isolated storage)
• Похоже на cookies
– FileOpen dialog
– Sockets
• Beta 1: Site of origin, ограничения на порты
– Cross domain HTTP(S) запросы
• Поддерживает Silverlight и подмножество Flash policy
файлы
42. Data Binding
• Property Binding
– One way, two way и one time
– Поддержка преобразования значений
• Collection/List Binding
– Поддерживаются шаблоны данных
(repeaters)
43. Local Storage
• Cookies on steroids
• Доступно до 10MB на каждое приложение
• Используется .NET IsolatedStorage APIs
44. Open File Dialog
• Позволяет пользователю выбрать файл
• Приложение получает доступ к потоку
• Поддерживается множественный выбор и
фильтры
• Позволяет:
– Загрузку файлов(w/ HttpWebRequest)
– Просмотр локальных изображений
(w/ Image element)
– Просмотр локальных медиа-файлов
(w/ MediaElement)
45. Deep Zoom!
• Простой способ просмотра и
масштабирования больших изображений
• Подгружает только необходимые данные
46. Deep Zoom!
• Предварительная обработка изображения
– Разбиение на куски 256х256
• Построение пирамиды изображений