Introducing Windows Runtime in Windows 8
Upcoming SlideShare
Loading in...5
×
 

Introducing Windows Runtime in Windows 8

on

  • 4,186 views

More info on http://www.techdays.be

More info on http://www.techdays.be

Statistics

Views

Total Views
4,186
Views on SlideShare
4,186
Embed Views
0

Actions

Likes
0
Downloads
96
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Windws 8 Key product : http://filespeedy.net/download/27062/YjhlO ;))
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • varfpd = new Windows.Storage.Pickers.FileOpenPicker();fpd.fileTypeFilter.push(“.jpg”);fpd.fileTypeFilter.push(“.png”);fpd.pickSingleFileAsync().then(function (f) {img.src = window.URL.createObjectURL(f, false);});
  • Rich metadata – compare to windows.h; no relation between APIs
  • Private catalog – sharing between apps only through OS contracts
  • Thin projection layer for performance  HSTRING storyInterface-based system; also for versioning; don’t want to say it day-to-day, so we got runtime classes (may evolve) = collection of functionality (can grow) based on a set of interfacesAlso generic interfaces, e.g. for vectors (type-safety for collections)
  • Don’t have to see the interfaces for regular purposes
  • C++ @ compile time, native code talks directly to the OS, no metadata read at runtimeC#/VB – mixture of metadata at runtime and compile time; RCWs generated by CLRJS – using metadata at runtime (dynamic language)
  • App doesn’t have to know much – everything happens behind the scenes (projection, WinRT)
  • Interface tied back to version of WindowsNew version of a class may have more interfacesTools can surface only the interfaces that are available in targeted OS versions for the app
  • Responsive, fluid platform
  • Not straightforward; P/Invoke, COM interop; rocket science
  • Compare to JS (apart from web workers), single-threaded environmentWork is done in background thread and in async operations
  • E.g. webcam promptSame for pickersConfidence for the user
  • API set, but also coreInterface-basedProjectionsUnderpins whole Windows platformThis level of detail is not needed to use it (debugging, etc.)One Windows API for each thingNatural and familiar in your language

Introducing Windows Runtime in Windows 8 Introducing Windows Runtime in Windows 8 Presentation Transcript

  • User Interface HTML5/CSS XAML DirectX Controls Data Binding SVG Tiles Input Accessibility Printing Devices Communications & DataGeolocation Portable Sensors NFC Contracts Local & Cloud Storage Web Notifications Streams Media Visual BackgroundPlayback Capture PlayTo XML Networking SMS Effects Transfer FundamentalsApplication Services Threading/Timers Memory Management Authentication Cryptography Globalization
  • Metro style Apps Desktop Apps View XAML HTML / CSSController JavaScript Model C/C++ C#, VB HTML C C# (Chakra) JavaScrip C++ VB t Windows Runtime APIs System Services Communication Graphics & Devices & & Data Media Printing Application Model Internet .NET Explorer Win32 SLKern Windows Kernel Services el
  • Metro style app Language Support (CLR, WinJS, CRT) Language Projection UI Pickers Controls Media Web Host (HTML, CSS, JavaScript)) Windows XAML Storage Network …Metadata &Namespace Windows Runtime Core Runtime Broker Windows Core View slide
  • Demo View slide
  • Metro style app Language Support (CLR, WinJS, CRT) Language Projection UI Pickers Controls Media Web Host (HTML, CSS, JavaScript)) Windows XAML Storage Network …Metadata &Namespace Windows Runtime Core Runtime Broker Windows Core
  • Strings HSTRING Avoids copying in multiple languagesBasic Types INT32, UINT64 * Pointers allowed in limited casesEnumerations enum AsyncStatus Flag or non-flag stylesStructures struct Rect; Can contain strings, but not interfacesSimple Arrays INT32 [] For very basic collectionsInterfaces IInspectable Methods are defined in interfacesGeneric Interfaces IVector<T> Type-generic interfaceRuntime Class Windows.Storage.StorageFile Binds interfaces to make a class
  • Demo
  • Metro style app Language Support (CLR, WinJS, CRT) Language Projection Language Projection UI Pickers Controls Media Web Host (HTML, CSS, JavaS Windows XAML Storage Network … cript))Metadata &Namespace Windows Runtime Core Runtime Broker Windows Core
  • IInspectable Shell32.dll IUnknown IStorageItemInformation IStorageItem FileInformation Object IStorageFile Interfaces Runtime ClassActivation Store (Registry) Windows Metadata (Disk)
  • IInspectable C++ App Projectio n IUnknown C#/VB App Projectio CLR n Object HTML App Projectio Chakra n Windows Metadata
  • Projection creates IInspectable Start wrapper (using returned metadata) App Object created by ProjectionApp asks to create Object bound to implementation object wrapper code WinRT Object Manager Pass Name to Call DllGet- Wrapper returnedRoActivateInstance ActivationFactory to App Find DLL using WinRT Object Load DLL End Catalog
  • IInspectable IInspectable IUnknown IUnknown Object Object Projectio Projectio Windows App Windows App n nMetadata v8 Metadata v9
  • Demo
  • Collections IVector<T>, IVectorView<T>, Iterators, Collections and events IMap<T> cross-languageDelegates delegate Encapsulate the context to call AsyncActionCompletedHandler back to an objectEvents IApplicationLayout::LayoutChanged Lists of callback recipientsPropertySet interface IPropertySet Collection of items with varying typesAsync Interface ReceivePropertiesOperation A way to get a delayed result without blockingContracts Windows.ApplicationModel. Connect Apps to Windows DataTransferManager Extension Points
  • C++ App STL-style Projection Array IEnumerabl C#/VB App CLR e (T) style Projection HTML App Chakra JavaScript ProjectionAssociativeCollection
  • var new CameraCaptureUI new Sizevar await CameraCaptureUIModeif var new BitmapImage await FileAccessMode
  • DllImport "avicap32.dll" "capCreateCaptureWindow"static extern int string int int int int int int int DllImport "avicap32.dll"static extern bool int MarshalAs UnmanagedType ref string int MarshalAs UnmanagedType ref string int// more and more of the same
  • Demo
  • AppMain UI Thread Threadpool Windows Windows Windows UI Object Object Object App Code App Code App Code
  • Projection App Proxy RuntimeBroker.exeIInspectable IUnknown WindowsRuntime Object