Note: This is one installment of multiple posts to come on Windows 8 and several Windows 8 devices.
I recently attended a two-hour Windows 8 DevCamp, put on by the Houston .NET User Group. The talk was given by Jared Bienz. They also plugged a website called Generation App which is a useful tool for Windows 8 users (share app ideas and use references to get started on building your first app).
The talk was largely a regurgitation of a Windows 8 conference that I attended in November 2012 (A New Era of Work). Below are some notes that I took during the DevCamp.
- Applications can expose certain events and other applications can pick them up through the OS
- Example: A paint application can use the ‘Share’ functionality of the charms bar to share a painted picture with applications that accept a picture. A puzzle application could accept a painted picture from the other application and make a puzzle out of it.
- Windows 8 is different than WinRT (Windows Run-Time) – primary difference is that with Windows 8 you still have a ‘desktop’ that can run legacy Windows applications
- Windows 8 will feel a lot like Windows 7 with a different ‘Start Button’ experience
- Application design should be more like using a web browser than a legacy windows application
- No sense of windows or dialog popping
- More of navigation and view switching
- Metro apps are what you see on the start screen – they can be used in Windows 8 and WinRT
- You can design views with XAML and code with C/C++/C#/VB (C++ can now use the XAML designer!)
- You can write components in C++ that are used in a C# component
- New keywords “await” and “async” take some of the pain out of multi-threaded coding
- Anything that can take more the 30 ms has to be done async (so that applications do not block the UI)
- await tells the current operation to run in the background
- Windows 8 has changed the way that it stores data and allows applications to access data (app data vs. user data)
- Applications do not have access to user data by default (but you can always show a file picker – the choice is up to the user to allow read/write)
- Applications can read/write files and settings in their own space (isolated area – uninstall brings system completely back to where it was before install)
- Applications are installed once per device (other users on same device will not have to reinstall – looks as if they have their own copy)
- A file calle Package.appxmanifest will define the capabilities (Document’s Library, Microphone, Music Library, Webcam, etc.) allowed for an application to attempt to access that capability
- The user has to approve this capability when the app first tries to access it (i.e. if your app tries to access the user’s document library, they will then be prompted to allow it)
- User can change their mind later with ‘Permissions’ via the charms bar
- Design of metro apps has been standardized so that users have an easier time adapting to Windows 8
- Built-in page templates give you some help OOTB
- Screen real-estate used completely (think grid layout)
- C-silhouette: majority of store applications (muscle memory), but you don’t have to do it this way
- Minimum resolution of 1024 x 768
- Snap view lets two applications run at the same time
- Blend is highly recommended for Windows 8 development (you almost have to use it)
- Keeps track of the design of your UI per state (full screen, filled, portait, snapped)
- Vector graphics are highly recommended because metro apps take advantage of all screen real-estate (can encounter high resolution monitors)
- Can use a Viewbox at fixed aspect ratio and it will scale from there