Microsoft released Windows 8 Developer Preview with the sole intention of introducing developers with the tools and techniques needed to develop applications for Metro UI.
So far, Microsoft has only discussed about using Visual Studio Express to build applications for Windows 8 but you can expect a large number of third party application development tools to be released in the market by the time the final version of Windows 8 is released.
Microsoft has mentioned a set of design principles or guidelines that developers should follow to ensure that the applications are robust, scalable and work with optimal performance on a variety of environments.
Requirements of Metro applications
- The applications should be fast and fluid.
- They should be capable of declaring contracts that outline how they work with other applications.
- They should be capable of providing cloud-computing facilities and integrate with cloud.
- The applications should accept input gathered from touch sensitive devices.
- Applications should run on a range of devices from small tablets to large 1920×1080 monitors.
Applications are bound together by contracts. The three types of contracts are Share, Search and Picker.
Any application can be a source for sharing but only those applications that publish; store or process data can be targets in a sharing environment.
All applications avail themselves of search functionality through a common interface. Different contexts are explored by applications while searching such as Email, Internet and social networking applications.
Search is a resource consuming process and hence should be implemented only when required. Applications can connect with local or network content as well as other applications that connect online through pickers.
You may be familiar with Icons used in previous versions of Windows. Tiles are dynamic elements unlike Icons that can display and update state of the item being displayed.
The applications developed for Metro should be capable of displaying important information in Tile format so that the user need not open the application every time to check something.
Developers should create small and large tiles and the applications should allow users to create secondary tiles if necessary.
One feature can be information that is downloaded from the internet and displayed on the Web browser tile so that the user does not have to open the Web browser every time.
This tile can be placed at the Start section so that users can access them easily. Instead of using pop up boxes to display notifications, developers should focus on relaying the same information by using Live Tiles.
Application state management:
When the user minimizes an application and leaves, it should be able to save the current state.
For example, if you finish a particular level in a game, you will never have to play that level again on any device.
This is possible since you use a Windows Live account to login to your machine which forwards all your settings to Microsoft so that the information is relayed back to you when you login using a different machine.
Applications are suspended after running for 5 seconds and their state is saved automatically.
The .NET based applications developed for x86 are capable of running on Windows 8.
APIs are used extensively to reduce coding. A manifest file contains a list of permissions that the application has requested or allowed. The applications that are not active can be suspended and the scheduler in this process conserves resources.
Applications can be developed using Visual Studio Express on previous versions of Windows that comes equipped with a Windows 8 emulator to display final output.
Microsoft has undertaken many efforts to ensure that developers can develop complex applications for Windows 8 using less code.
What do you think about the new design principles imposed by Microsoft at its conference? Will it require a greater learning curve?