Globalization and Silverlight 2 Poornima Priyadarshini Shawn Steele
What is Silverlight? â€œMicrosoft Silverlight is a cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Webâ€?
Web and Media: Then â€Ś
Web and Media: Then and Now Silverlight 2 “lights up” www.NBCOlympics.com
Web Video Adoption on the Rise Growing Broadband Adoption Global Broadband Households by Region
Web Video Ad Revenue is Soaring Total Internet Video Ad Revenue (Billions) (Source: Yankee Group 12/2006
(Source: Strategy Analytics, 12/2005)
450 400 350 300 250 200 150 100 50 0
4.23 3.84 3.16 2.21 1.49 0.91 2006
Video streams viewed per month will rise from 3bn (2006) to 12.4bn (2010) (Source: Parks & Assoc. 12/2006)
55% of online video consumed will be usergenerated (by 2010) (Source: Screen Digest December 2006)
Flexible, Connected Media Across Platforms Compelling Cross-Platform User Experiences Seamless, fast installation for end users Consistent experiences on Mac & Windows Stunning vector-based graphics, media, text, animation and overlay Dramatically improved performance Flexible programming model with collaboration tools Similar to the .NET Framework SDK Choice of development languages Integration with existing Web technologies Role specific tools for designers / developers Low cost, high quality media Broad media ecosystem Tools for live and on-demand publishing Connected to data, servers and services Easily mash-up and incorporate services and data Increase discoverability/searchability Rapidly scale applications with Silverlight Streaming service
The Story Today: Silverlight 2
Images Sounds Videos RSS/Atom Feeds New services you build
Managed Code (C#/VB) XAML
Existing Intranet services Public Internet mashup APIs
Compelling Cross-Platform Experiences: Windows? Apple OSX? It doesnâ€™t matter â€“ it works on both platforms
Unified programming model Supported platforms
Silverlight Audiences Content Providers Engage visitors with highest quality interactive web sites, video and game experiences with lower costs
Designers / Developers Role-specific suite of tools for designers and developers using existing skills and domain knowledge and building on existing application investments
Viewers / End Users Sites â€œlight upâ€? equally on Windows and Mac, with a onetime, fast install
Interaction With the Outside World
Coordinates Map images
What makes Silverlight different? Small download size Web based client applications Consistent cross-browser experience Familiar C# & Visual Basic API set Powerful user controls
Globalization in Silverlight vs. .Net Silverlight Only supports Unicode UTF-8 and UTF-16 are supported for I/O .NET supports multiple encodings.
Globalization data Silverlight Depends on the OS for globalization data. .NET is consistent cross-OS Silverlight is limited to the data of the underlying OS.
Reduced API surface area for target market Custom cultures are supported as available in the OS
Globalization in Silverlight vs. Windows Silverlight relies on Windows for globalization data Culture set and data set depends on OS Newer OSes like Vista have newer data.
Silverlight uses RFC 4646 style culture names Windows still supports Microsoft LCIDs (locale ids)
Supports Unicode as the only character encoding Windows still allows ANSI code pages
Globalization in Silverlight vs. OS X OS X utilizes different paradigms than Microsoft products Silverlight has to adapt the OS API and data differences
Apple users have different expectations than Windows users Silverlight has to make sure our APIs fit those expectations Applications may need to adapt to those expectations
OS X supports multiple UI fallback languages OS X allows selecting language, formatting, calendars and sorting independently
Globalization Essentials Usability and Localizability Unicode Sorting behavior Culture data
Usability and Localizability Users expect an appropriately globalized experience Many Globalization APIs are useful for presentation Globalization support varies by OS Data also varies by OS and user overrides Globalized applications provide a good user experience
Users needing globalization support live in your market. International businesses may have global needs. Consumers may need globalization @ home or with friends.
Expatriates may need global formats
Unicode UTF -8 is the default encoding Unicode Normalization Windows normally provides composed data OS X typically uses decomposed forms. OS X can change the normalization form Normalization APIs are not provided (NFC/NFD, etc.)
Unicode properties arenâ€™t OS dependent. Unicode character properties are available.
Sorting & Casing Depends on the OS data Silverlight is intended for presentation Some strings won’t be defined on all OS’s. Sorts won’t be available on all OS’s. Sorts that are available will change orders.
Culture sensitive comparisons may differ. Native strings can grow in OS X when changing case, but in Silverlight that is not expected.
Sachiko (OS X)
Differences in the sorting of various Hiragana, Katakana and Kanji versions of the name â€œSachikoâ€?
Culture & Region Data Depends on the OS data Supported Cultures vary by OS OS X can always find a locale, but it may only return root data. Windows provides individual data for each locale that succeeds.
Data values and properties vary by OS OS X uses CLDR data and methodology Windows provides its own data
Hong Kong (Vista)
Hawaiian (Vista Custom Locale)
Danish (OS X)
Hong Kong (Server 2003)
Hawaiian (OS X)
Best Practices Use Unicode (easy for Silverlight) Use the appropriate culture data Use globalization for presentation… … not for machine readable values Assume the data will change Watch formatting and parsing APIs (make sure you’re doing what you think you’re doing)
Build once, but test everywhere
Best Practices (more) Assume that machines will disagree about data. Clients and servers may have different perspectives. Clients, even the same OS or user, may vary as well.
Do server stuff on the server and client stuff on the client. Ensure the target UI culture is supported on your target OS and have a fallback when it isnâ€™t.
Use the userâ€™s UI culture and preferences. Multilingual or kiosk apps may need an easy way for the user to change the machineâ€™s default preference.
Resources http://silverlight.net/getstarted http://msdn.microsoft.com/silverlight http://msdn.microsoft.com/goglobal http://blogs.msdn.com/shawnste http://code.msdn.microsoft.com http://www.codeplex.com http://www.microsoft.com/downloads/results.aspx? freetext=locale%20builder