Like September 12th for Apple, it’s October 26th for Windows. The launch of the legendry, much talked about, possible game changing Windows 8 will release. Surely, developers need to gear up and figure what it would take to develop applications on this brand new platform. And I am sure, there are a million questions right now about what this newbie can or can’t do. Will there be different versions of it? Which type of applications and user experience will it offer? Can MS’s existing technologies like .NET, Silverlight etc. be used? Can existing Windows phone application be ported?
Then, popular windows blog (http://windowsteamblog.com/windows/b/bloggingwindows/archive/2012/04/16/announcing-the-windows-8-editions.aspx) had thrown some light on different versions of Windows 8 but there were many shades of grey. Let’s start with different versions of Windows8, different type of application that can be developed and that run on Windowd8 and then about the development tools and APIs available for Windows 8 application development.
Until now there were two categories of products, very different from each other in our minds. PCs with a monitor, keyboard, processing power, flexibility and mobility. And tablets with touch screen capabilities, providing mobility, flexibility and a whole slew of nice to haves. Now combine the two, that’s Windows tablet idea for you.
Windows 8 Family Members
- Windows 8
- This will be the standard version of Windows 8 having all features that a standard Windows user would require e.g. windows explorer, windows media player, storage spaces, web browsing etc.
- Windows 8 Pro
- This will be targeted to Windows Professionals and technical enthusiasts. It will support all Windows 8 standard features and will include encryption, virtualization, domain etc.
- Windows RT
- This is a new born member of Windows family. Interestingly, unlike other versions of Windows this will not be available separately to install on the device on CD/DVD. It will always come pre-installed into the device. This version is specifically targeted to ARM architectures. All metro-style applications (now Windows Store applications) will run on this version of Windows. This version will not support to install and run traditional Windows Desktop type applications. For desktop type application you would need to have Windows 8 standard/pro/enterprise version.
- Windows 8 Enterprise
- This will be a special version and available to enterprise customers having software assurance agreements. For this blog, we do not require to go into more details of this version.
Unique Windows User Experience: “Metro”
Metro is becoming popular now for its unique design and user experience. Windows 8 will support Metro user interface design and also will continue its support for standard desktop type user interface. WinRT version will only have Metro support and not desktop style.
Types of Applications
Windows 8 comes with a new type of application: Windows Store Applications. Windows Store applications are metro-style applications having unique design & user experience and run on almost all versions of Windows 8. Unlike Windows Store applications, windows desktop applications will not run on Windows RT version.
- Windows Desktop Applications
- Windows Desktop application are traditional desktop applications having the same well known look and feel e.g. task bar, window bar, minimize, maximize, close buttons. They still run in same style.
- Windows Store Applications
- “Content before Chrome” is the mantra of Windows Store Applications. This new type of application runs and takes the center stage and is more content driven. It has unique metro user experience and supports amazing live tiles. Windows Store application are downloaded and installed from “Windows Store” which comes with Windows 8.
Developing Windows 8 Applications
Visual Studio 2012 is the primary application development tool for developing windows applications. It has support for developing different types of windows applications and now supports for developing Windows Store applications.
When thinking about Windows Store applications, I was curious about using WinRT APIs with existing .NET Framework, Silverlight, Windows Presentation Foundation etc. Also was curious to know how best I can port my existing Windows Phone application to Windows Store application. After doing some exploration, I discovered some interesting information. So here goes:
Windows RT API
This is a new set of APIs for developing Windows Store applications. It provides access to all platform features. Almost all namespaces of this API starts with Windows.
.NET for Windows Store apps
.NET Framework is there for us as a subset of managed types known as —“.NET for Windows Store apps“. It is very similar to the other .NET framework types which can be used into Windows Store apps. If you plan to port existing .NET framework code to Windows Store app then you are lucky if major part of your code falls under .NET for Windows Store appsJ. Here is list of supported APIs into .NET for Windows Store (http://msdn.microsoft.com/en-US/library/windows/apps/br230232)
Porting Windows Phone apps to Windows Store App
Despite the fact that Windows Phone and Windows Store apps provide same metro-style user experience, not all Windows Phone code will run as it is on Windows RT. First and foremost is to scale the existing Windows Phone application to take advantage of large and multiple screen resolution type screens. Then perform exercise of porting the code.
And the big question, how much time & effort is required to port my existing application? Effort and time required to port the existing Windows Phone application is dependent on the use of APIs into the existing Windows Phone application which is not supported into Windows Runtime. Windows Store applications support .NET for Windows Store apps and if the existing app uses many of APIs which are supported by .NET for Windows Store then you are lucky!
Here are few important points that one may need to consider while porting from Windows Phone to Windows Store app:
- Multiple screen resolutions
- Multiple input types e.g. touch, pen, mouse and key-board
- Games using XNA Framework — Sorry! No support of XNA Framework for Windows Store apps, start learning DirectX!