Presentation to the Silverlight User Group in London on October 12th to provide a round-up of the recent BUILD conference in LA and an introduction to Windows 8 and the Windows Runtime.
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
SLUGUK BUILD Round-up
1. build Is Silverlight Dead or Not? / / / / round-up
2. Who am I? Derek Lakin@dereklakin Senior User Experience Developer@ Pixel Lab http://thinkpixellab.com Evernote RunKeeper SketchFlow for Windows Phone Agent 008 Ball
3. Agenda DEMO: Windows 8 Keynote highlights Windows Runtime overview DEMO: Converting Silverlight to WinRT Silverlight and .NET on Windows 8 Summary Q & A
12. Windows 8 Experience Fast and fluid user experienceResponsive, alive and beautiful with animations and Metro style Immersive and full-screenFocuses attention on your apps Touch-first with full keyboard and mouseEnables your choice of interaction Web of apps working togetherApps are connected to each other and the cloud Experience for all PC devices & architecturesNo compromise across new factors, desktops and laptops
13. Developer Platform & Tools New APIs and tools to build Metro appsDelivers a modern platform, great tools, accelerated graphics Rapid and scalable development of Metro appsIncludes powerful touch-enabled controls, layouts, and templates Choice of world-class dev tools & languagesSupports coding in JavaScript, C#, VB, C++, HTML/CSS, XAML for x86/x64/ARM Business opportunity is the world of Windows 8 customersIntroduces the Windows Store
14. Hardware Platform Smaller and faster on widest range of hardware Native SoC implementation across x86/x64/ARM Integrated support for broad range of new mobile peripherals
15. Cloud Services New Metro style apps for Mail, Photos, Calendar, PeopleConnects to Live and the other services you use Sync across your PC devices and phoneEnables clean start on new device and roaming between devices SkyDrive for the information you create and care aboutStores and shares your photos, documents, and files to the cloud Live APIs for SkyDriveBuild your own cloud connected Metro style apps
22. One Windows API, Natural and Familiar EverywhereDon’t need to understand how it worksbut …
23. Metro Style Application APIs User Interface HTML5/CSS XAML DirectX Controls Data Binding Input Accessibility Printing Tiles SVG Devices Communications & Data Web Contracts Sensors Geolocation Portable NFC Local & Cloud Storage Streams Notifications Media SMS Background Transfer XML Networking Visual Effects Playback PlayTo Capture Fundamentals Application Services Memory Management Threading/Timers Authentication Cryptography Globalization
24. Windows 8 Metro style Apps Desktop Apps HTML JavaScript HTML / CSS XAML View JavaScript (Chakra) C/C++ C#, VB Model Controller C C++ C# VB Windows Runtime APIs Devices & Printing Communication & Data Graphics & Media System Services .NET SL Win32 IE Application Model Windows Kernel Services Kernel
25. Windows Runtime Architecture Language Support (CLR, WinJS, CRT) Metro style app Language Projection Web Host (HTML, CSS, JavaScript)) UI Pickers Media Controls Windows Metadata & Namespace XAML Storage … Network Runtime Broker Windows Runtime Core Windows Core
26. Windows Metadata Concise, complete description of the Windows Runtime Generated natively from C++ or C#/VB compiler Efficient binary format Rich enough to allow multi-language projection generation Full IntelliSense on statically known information
49. Predictions Windows 8 will have multiple SKUs with and without the Desktop and Metro shell The next major update to Windows Phone will move to Windows Runtime HTML5 + JavaScript is the next “big thing” There won’t be another major update to Silverlight (beyond v5) or WPF But … XAML isn’t going anywhere Disclaimer: These are my personal thoughts and opinions and are not based on any insider information, neither do they necessarily reflect the opinions of anyone else, let alone my employer.
50. Resources Metro from the Trencheshttp://metrotrenches.wordpress.com Windows DevCenterhttp://dev.windows.com Windows Dev Forumshttp://forums.dev.windows.com
51. Parting Thoughts “this is the most excited I've been about Microsoft for 5 years” - Robby Ingebretsen “Microsoft is really investing in user experience” - Laurent Bugnion “The new Windows 8 Start screen isn’t just a good idea, it’s a great interface that will make sense on phones, tablets, PCs of all stripes, and even servers. And before you know it, you’ll forget all about that old-fashioned Start menu.” – Paul Thurrott
Agent 008 Ball – We helped Microsoft launch a new version of Internet Explorer with an HTML5 pool game that defies your expectations of what can be done in a browser!RunKeeper – We jumped at the change to port our favourite fitness tracking application to Windows Phone. Working closely with the RunKeeper team, we did everything from design to implementation to help RunKeeper ship one of the most popular Windows Phone apps yet!Evernote – We helped Evernote design the Windows Phone version of their classic note-capture app. They came to us because of our deep experience with the metro design language and together we produced one of the top Windows Phone apps in the marketplace!Kinect Code Camp – We were invited to the Kinect Code Camp just a day before the launch of the new Kinect Developer Kit for Windows. The result? We had a great time and built a cool game!SketchFlow for Windows Phone – We worked with the SketchFlow team at Microsoft to add support for Windows Phone to their award winning prototyping tools.
Steve (Sinofsky) is the new “Steve” (take your pick as to which Steve that means). He was confident, enthusiastic, and on stage for the full keynote, including the demos by various VPs, which were more like a conversation at times.New opportunity for developers: Express yourself Get the most out of PCs now matter what size or shape Approaching 450K copies of Windows 7 sold. Windows 7 consumer use is more than Windows XP usage. Changing World of ComputingForm factors and user interaction models create new scenarios and opportunities. Touch is becoming ubiquitous. Fingerprints all over your non-touch monitor after you've used touch on Windows 8. Mobility means devices you use while carrying , not just devices you carry then use (tablet vs. laptop) Web of applications that connect and share with each other Windows 8Everything that was great about Windows 7, we made it better in Windows 8 Everything that runs on Windows 7 will run on Windows 8 Reimagine Windows from the chipset to the experience New range of capabilities, scenarios, form factors Touch-first but equally comfortable on the Desktop ARM-based devices. The Keynote was split into four main sections covering:The Windows 8 Experience with demos from Julie Larson-Green (Corporate VP of Windows Experience)Metro Style Platform and Tools with demos from Antoine LeBlond (Senior VP of Windows Web Services)Hardware Platform with demos from Michael Angiulo (Corporate VP of Windows Planning and Ecosystem)Cloud Services with demos from Chris Jones (Senior VP of Windows Live)
Steve's first generation Lenovo netbook: Atom processor and 1GB RAM. Windows 7: 404MB RAM in use with 32 processes. Windows 8: 281MB RAM and 29 processes. Julie Larson-Green: Corporate VP of Windows Experience. Notifications on lock screen Picture (or PIN) password Start screen: Windows Phone Start screen on steroids Apps are showcase samples and not indicative of what will ship with Windows 8 Some apps (eg Email) are not available in the Developer Preview yet Start screen is personal to you: just the apps you want (multi-touch rearrange). Tiles and notifications, launch and resume apps Contextual zoom on Start screen not yet working (AFAIK) Type to search Touch-centric Control Panel (for most commonly used tasks). Apps: App bar "Fast-and-fluid" Settings in Charms bar (app and system) [video] Swipe from left to switch apps Dock to left or right (HUD view when docked) Metro browser (chromeless) "I can't think of anything better than a completely "chrome"-less browsing experience" (unintended pun) Launch pinned web site. Open associated app from web site (buildwindows.com) Swipe, zoom. Select and share (from Charms bar) MRU list for sharing (apps and people) "Semantically rich clipboard" Spell-checking integrated throughout the system (and auto-complete) Search apps, files, internet from Search charm File picker integration with apps via contracts Settings synced via the cloud (can sign-in using Live IDs) Steve: "I can launch the Bing app" Julie: "No don't"
"Lets you pick the language that you want to use to build Metro applications" Windows Runtime Sits on top of Win32 Native code with language projections XAML + C#/VB/C++ HTML5 + JavaScript + CSS Antoine LeBlond: Senior VP, Windows Web Services (the new Gu?) Same standard templates for all languages Demo: PhotoDoodle app created using HTML5 Picker contract (pull photos from Facebook, etc without having to write any FB-specific code) Share contract (share with Twitter/Facebook without having to write Twitter/FB-specific code) New version of Expression Blend: HTML5 DOM explorer, highlight elements from CSS selectors Orientation and resolution preview (similar to Windows Phone) Application bar 58 lines of code for full app. Submit to Windows store (not ready yet) Submission lifecycle feedback (better than WP) Built using HTML5 + JS One-tap download and install for apps List "classic" apps Demo: Scott Gu's SL Bing image search app converted to WinRT (XAML + C#) 400 million people <- Potential customer base for developer opportunity when Windows 8 launches
Michael Angiulo: Corporate VP, Windows Planning and Ecosystem UEFI to boot within seconds (8 seconds for one HP laptop) and securely (can't boot from infected devices) Connected Standby mode: system is on, but using minimal power Same build of apps running on ARM device HP Phoenix enthusiast system: superfast USB 3 4.7 Teraflops of computing power (running regular Windows) Hardware accelerate graphics for all apps (not just games) Improved 1st pixel sensitivity for 1 pixel edge boundary (charms, switch, etc) Samsung Series 7 Slate: Sensor Fusion: Gyro, Accelerometer, Magnetometer (simple API to work with all 3) Near Field Communications (NFC) for "tap-to-share" scenarios Device settings in Charms bar (eg, printers) Intel Ultrabooks: Super thin, resume from sleep in seconds, battery is bigger than the motherboard Slate: TPM, UEFI, Compass, Gyro, Accelerometer, Magnetometer, NFC, Ambient Light, LCD TSP, SSD, WLAN, GPS, Cameras, Touch, Ink, BlueTooth, 3G BIOS POST in 5 seconds 2nd generation Intel Core i5 Samsung Super PLS 1366x768 display AT&T 3G (1 yr, 2GB/month) 4GB DDR3 64GB SSD micro HDMI Dock w/ USB, HDMI, Ethernet 11.6" diagonal, 909g, 12.9mm Experience a Windows tablet & develop on it 170 degree viewing angle Developer-focused Demo (Steve) Windows Update notifications on lock screen (not anywhere else) Task Manager Suspended apps (not using CPU or battery) Better display of resource usage CPU, Memory, Disk, Ethernet performance App history Startup app list Resources by User Metro-style Control Panel New Reset and Refresh feature Command-line tool to update reset image. Windows Assessment Console for performance metrics (part of deployment kit) Metro style Remote Desktop app w/ live preview on Start screen Hyper-V on Windows 8 Mount VHDs and ISOs in Windows Explorer Multi-monitor support: Background spanning Mirrored taskbar or per-monitor taskbar Start screen on one monitor, Desktop on the other Same rendering engine between Desktop and Metro browsers (but not plugins for Metro) New Magnifier and other Ease of Access options Keyboard language switching On-screen keyboard: Ink input Thumb keyboard Numeric keyboard Sync PC settings when signed in via Live ID
Chris Jones: Senior VP, Windows Live New Metro style apps for Windows Live (not yet released) Integrated inbox Integrated calendars Connected address books (work, personal, Facebook, LinkedIn, etc) Photos: connected to all services already set up on Live Live Connect SDK for connecting to Windows Live for developers (including SkyDrive) Same SDK powers the same features on Windows Phone 7.5 (Mango)
The “what can Windows Runtime do for me” view of WinRT.
The Windows Runtime is the solid, efficient foundation for building great Metro style apps.
You can inspect the metadata using ILDASM (or similar) on *.winmd files.Metadata provides full IntelliSense in VS for all supported languages, including JavaScript.
New HSTRING type, exposed as appropriate string type via language projections, to prevent data copying when calling down to Windows and maintain performance. Windows Runtime is an interface-based system, but mostly exposed by Runtime classes.
All the patterns you’re used to (as .NET developers, but perhaps new to JS developers) are available in WinRT with the addition of better async support and Contracts.
Silverlight to Windows Runtime Conversion Application Conversion File > New Project: Talk about the different templates. Copy and paste the XAML. Replace the image assets. Replace <Hyperlink /> elements with a <HyperlinkButton /> inside an <InlineUIContainer />. Replace the NavigateUri attribute with a Tag attribute and remove the TargetName attribute on all <HyperlinkButton /> elements. Add a generic Click handler for the <HyperlinkButton /> elements. Add the Brushes.xaml file as a resource dictionary. Add the font files and update the XAML (remove the "component" prefix). Remove the alignment attributes from the root <Grid />. Run. Adding Tile Notifications Create SetTileNotificationAsync method and call from MainPagector. Clear notifications. Pick a template. Enable cycling through notifications. Get the RSS feed using SyndicationClient. Create tile notifications from feed. Add Internet (Client) capability to manifest. Run. Using the Share Contract Create SetShareSource method and call from MainPagector. Get the DataTransferManager. Add a handler for the DataRequested event. Set the Title and Description for sharing. Set the text of the share content. Run.
The .NET Framework 4.5 is still here in Windows 8.Just like the Client Profile, there are profiles for Windows Phone and for Silverlight.XAML-based Metro style apps use the .NET Profile for Metro and so the code is still managed, and the CLR is still loaded at runtime (providing the relevant language projection).The full surface of .NET Framework 4.5 is available for implementing desktop apps. A subset of .NET Framework 4.5 is available for Metro style apps.
Even the upcoming Windows Store is built as an HTML5+JS+CSS app.