none
Create Desktop apps for Windows RT devices RRS feed

  • Question

  • Will it be possible to compile win32 or .NET CLI desktop apps to run on Windows RT devices?  The preinstalled apps (office, IE, paint, etc.) do this, but will this capability be accessible to other developers?
    Saturday, September 1, 2012 8:01 PM

Answers

  • I see your point that the blog doesn't directly state what is possible with desktop app development.  Please keep in mind that Windows RT is not yet released and so we are sharing with you what we can discuss *at this time*.  We are looking forward to when we are ready to release the product and discuss it in more detail.

    When you use Visual Studio 2012 RTM (which you can get from the MSDN subscriber downloads) to build a C/C++ Win32 app (say a simple console "hello, world" app) and set the target CPU to ARM in the Build Configuration Manager, you will get the following build error:

       "error MSB8022:  Compiling Desktop applications for the ARM platform is not supported." 

    If you use the command-line tools (use C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat) to compile the same console app for ARM processors, you will get the following compiler error:

       "fatal error C1189: #error :  Compiling Desktop applications for the ARM platform is not supported."

    The primary focus for app development for Windows RT will be Windows Store apps.  I hope this answers your question.  We are looking forward to the release when we can share more information.  We hope this helps you with your app development plans.

    Sincerely,

    Dan Ruder, Microsoft


    Thursday, September 6, 2012 12:03 AM
  • Currently, the most detailed information about Windows RT is still the Building Windows 8 Blog post "Building Windows for the ARM Processor Architecture".  Since the Windows RT devices have not been released, we are not prepared to go into details beyond the blogs yet.  The excerpts from this article should answer your question:

    "Metro style apps in the Windows Store can support both WOA and Windows 8 on x86/64. Developers wishing to target WOA do so by writing applications for the WinRT (Windows APIs for building Metro style apps) using the new Visual Studio 11 tools in a variety of languages, including C#/VB/XAML and Jscript/ HTML5. Native code targeting WinRT is also supported using C and C++, which can be targeted across architectures and distributed through the Windows Store. WOA does not support running, emulating, or porting existing x86/64 desktop apps. Code that uses only system or OS services from WinRT can be used within an app and distributed through the Windows Store for both WOA and x86/64. Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update."

    and

    "As we announced and demonstrated at //build/ and other forums, WOA has all the WinRT capabilities present in the Windows Developer Preview, and all the tools and techniques that you can use to build new Metro style apps for x86/64 are available to developers to also target WOA. Developers can use our tools to create native C/C++ code for maximal performance and flexibility, in addition to the C#, XAML, VB, and HTML5 based tools, to target apps for WOA, so long as their code targets the WinRT API set. Additionally, developers with existing code, whether in C, C++, C#, Visual Basic, or JavaScript, are free to incorporate that code into their apps, so long as it targets the WinRT API set for Windows services."

    In the last sentence, "WinRT API set for Windows services", refers not to Win32 service processes but to system services/capabilities exposed through the WinRT API set.  (There are no WinRT API functions for writing Win32 service processes.)

    According to Windows Team Blog:  Announcing the Windows 8 Editions, Windows RT includes a desktop experience.  Apps like Notepad, Paint, and Microsoft Office (Word, Excel, PowerPoint, OneNote) are present as part of the desktop experience.  The included apps should not be used to extrapolate above and beyond what is written in the blog, however.

    Some additional articles that mention Windows RT may also be of help to you:

    http://blogs.msdn.com/b/b8/archive/2012/08/13/collaborating-to-deliver-windows-rt-pcs.aspx
    http://blogs.msdn.com/b/b8/archive/2012/04/19/managing-quot-byo-quot-pcs-in-the-enterprise-including-woa.aspx
    http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx
    http://blogs.msdn.com/b/windowsstore/archive/2012/04/25/deploying-metro-style-apps-to-businesses.aspx
    http://www.microsoft.com/surface/en/us/default.aspx 

    When the time comes, there will be more to say about Windows RT.  Please stay tuned!

    Sincerely,

    Dan Ruder, Microsoft

    • Marked as answer by phailyoor Wednesday, September 5, 2012 1:32 AM
    Wednesday, September 5, 2012 12:38 AM

All replies

  • The ARM(WinRT use this CPU) is for Windows 8 UI style app, not the desktop app.


    Mike Zhang[MSFT]
    MSDN Community Support | Feedback to us



    Monday, September 3, 2012 3:59 AM
    Moderator
  • The ARM(WinRT use this CPU) is for Windows 8 UI style app, not the desktop app.


    Mike Zhang[MSFT]
    MSDN Community Support | Feedback to us



    Can you provide a source to confirm this?  Programs like office and paint run in the desktop mode on Windows RT devices.  Is there an official source stating that development of other applications like those will not be possible?
    Monday, September 3, 2012 2:51 PM
  • [

    • Metro style apps in the Windows Store can support both WOA and Windows 8 on x86/64. Developers wishing to target WOA do so by writing applications for the WinRT (Windows APIs for building Metro style apps) using the new Visual Studio 11 tools in a variety of languages, including C#/VB/XAML and Jscript/ HTML5. Native code targeting WinRT is also supported using C and C++, which can be targeted across architectures and distributed through the Windows Store. WOA does not support running, emulating, or porting existing x86/64 desktop apps. Code that uses only system or OS services from WinRT can be used within an app and distributed through the Windows Store for both WOA and x86/64. Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update.
    • WOA can support all new Metro style apps, including apps from Microsoft for mail, calendaring, contacts, photos, and storage. WOA also includes industry-leading support for hardware-accelerated HTML5 with Internet Explorer 10. WOA will provide support for other industry-standard media formats, including those with hardware acceleration and offloading computation, and industry-standard document formats. In all cases, Microsoft seeks to lead in end-user choice and control of what apps to use and what formats to support.
    • WOA includes desktop versions of the new Microsoft Word, Excel, PowerPoint, and OneNote. These new Office applications, codenamed “Office 15”, have been significantly architected for both touch and minimized power/resource consumption, while also being fully-featured for consumers and providing complete document compatibility. WOA supports the Windows desktop experience including File Explorer, Internet Explorer 10 for the desktop, and most other intrinsic Windows desktop features—which have been significantly architected for both touch and minimized power/resource consumption.

    ]   http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx


    Mike Zhang[MSFT]
    MSDN Community Support | Feedback to us

    Tuesday, September 4, 2012 2:57 AM
    Moderator
  • [

    • Metro style apps in the Windows Store can support both WOA and Windows 8 on x86/64. Developers wishing to target WOA do so by writing applications for the WinRT (Windows APIs for building Metro style apps) using the new Visual Studio 11 tools in a variety of languages, including C#/VB/XAML and Jscript/ HTML5. Native code targeting WinRT is also supported using C and C++, which can be targeted across architectures and distributed through the Windows Store. WOA does not support running, emulating, or porting existing x86/64 desktop apps. Code that uses only system or OS services from WinRT can be used within an app and distributed through the Windows Store for both WOA and x86/64. Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update.
    • WOA can support all new Metro style apps, including apps from Microsoft for mail, calendaring, contacts, photos, and storage. WOA also includes industry-leading support for hardware-accelerated HTML5 with Internet Explorer 10. WOA will provide support for other industry-standard media formats, including those with hardware acceleration and offloading computation, and industry-standard document formats. In all cases, Microsoft seeks to lead in end-user choice and control of what apps to use and what formats to support.
    • WOA includes desktop versions of the new Microsoft Word, Excel, PowerPoint, and OneNote. These new Office applications, codenamed “Office 15”, have been significantly architected for both touch and minimized power/resource consumption, while also being fully-featured for consumers and providing complete document compatibility. WOA supports the Windows desktop experience including File Explorer, Internet Explorer 10 for the desktop, and most other intrinsic Windows desktop features—which have been significantly architected for both touch and minimized power/resource consumption.

    ]   http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx


    Mike Zhang[MSFT]
    MSDN Community Support | Feedback to us


    Thanks for the link, but it does not mention whether or not desktop application development will be supported on ARM devices.
    Tuesday, September 4, 2012 1:36 PM
  • Currently, the most detailed information about Windows RT is still the Building Windows 8 Blog post "Building Windows for the ARM Processor Architecture".  Since the Windows RT devices have not been released, we are not prepared to go into details beyond the blogs yet.  The excerpts from this article should answer your question:

    "Metro style apps in the Windows Store can support both WOA and Windows 8 on x86/64. Developers wishing to target WOA do so by writing applications for the WinRT (Windows APIs for building Metro style apps) using the new Visual Studio 11 tools in a variety of languages, including C#/VB/XAML and Jscript/ HTML5. Native code targeting WinRT is also supported using C and C++, which can be targeted across architectures and distributed through the Windows Store. WOA does not support running, emulating, or porting existing x86/64 desktop apps. Code that uses only system or OS services from WinRT can be used within an app and distributed through the Windows Store for both WOA and x86/64. Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update."

    and

    "As we announced and demonstrated at //build/ and other forums, WOA has all the WinRT capabilities present in the Windows Developer Preview, and all the tools and techniques that you can use to build new Metro style apps for x86/64 are available to developers to also target WOA. Developers can use our tools to create native C/C++ code for maximal performance and flexibility, in addition to the C#, XAML, VB, and HTML5 based tools, to target apps for WOA, so long as their code targets the WinRT API set. Additionally, developers with existing code, whether in C, C++, C#, Visual Basic, or JavaScript, are free to incorporate that code into their apps, so long as it targets the WinRT API set for Windows services."

    In the last sentence, "WinRT API set for Windows services", refers not to Win32 service processes but to system services/capabilities exposed through the WinRT API set.  (There are no WinRT API functions for writing Win32 service processes.)

    According to Windows Team Blog:  Announcing the Windows 8 Editions, Windows RT includes a desktop experience.  Apps like Notepad, Paint, and Microsoft Office (Word, Excel, PowerPoint, OneNote) are present as part of the desktop experience.  The included apps should not be used to extrapolate above and beyond what is written in the blog, however.

    Some additional articles that mention Windows RT may also be of help to you:

    http://blogs.msdn.com/b/b8/archive/2012/08/13/collaborating-to-deliver-windows-rt-pcs.aspx
    http://blogs.msdn.com/b/b8/archive/2012/04/19/managing-quot-byo-quot-pcs-in-the-enterprise-including-woa.aspx
    http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx
    http://blogs.msdn.com/b/windowsstore/archive/2012/04/25/deploying-metro-style-apps-to-businesses.aspx
    http://www.microsoft.com/surface/en/us/default.aspx 

    When the time comes, there will be more to say about Windows RT.  Please stay tuned!

    Sincerely,

    Dan Ruder, Microsoft

    • Marked as answer by phailyoor Wednesday, September 5, 2012 1:32 AM
    Wednesday, September 5, 2012 12:38 AM
  • Currently, the most detailed information about Windows RT is still the Building Windows 8 Blog post "Building Windows for the ARM Processor Architecture".  Since the Windows RT devices have not been released, we are not prepared to go into details beyond the blogs yet.  The excerpts from this article should answer your question:

    "Metro style apps in the Windows Store can support both WOA and Windows 8 on x86/64. Developers wishing to target WOA do so by writing applications for the WinRT (Windows APIs for building Metro style apps) using the new Visual Studio 11 tools in a variety of languages, including C#/VB/XAML and Jscript/ HTML5. Native code targeting WinRT is also supported using C and C++, which can be targeted across architectures and distributed through the Windows Store. WOA does not support running, emulating, or porting existing x86/64 desktop apps. Code that uses only system or OS services from WinRT can be used within an app and distributed through the Windows Store for both WOA and x86/64. Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update."

    and

    "As we announced and demonstrated at //build/ and other forums, WOA has all the WinRT capabilities present in the Windows Developer Preview, and all the tools and techniques that you can use to build new Metro style apps for x86/64 are available to developers to also target WOA. Developers can use our tools to create native C/C++ code for maximal performance and flexibility, in addition to the C#, XAML, VB, and HTML5 based tools, to target apps for WOA, so long as their code targets the WinRT API set. Additionally, developers with existing code, whether in C, C++, C#, Visual Basic, or JavaScript, are free to incorporate that code into their apps, so long as it targets the WinRT API set for Windows services."

    In the last sentence, "WinRT API set for Windows services", refers not to Win32 service processes but to system services/capabilities exposed through the WinRT API set.  (There are no WinRT API functions for writing Win32 service processes.)

    According to Windows Team Blog:  Announcing the Windows 8 Editions, Windows RT includes a desktop experience.  Apps like Notepad, Paint, and Microsoft Office (Word, Excel, PowerPoint, OneNote) are present as part of the desktop experience.  The included apps should not be used to extrapolate above and beyond what is written in the blog, however.

    Some additional articles that mention Windows RT may also be of help to you:

    http://blogs.msdn.com/b/b8/archive/2012/08/13/collaborating-to-deliver-windows-rt-pcs.aspx
    http://blogs.msdn.com/b/b8/archive/2012/04/19/managing-quot-byo-quot-pcs-in-the-enterprise-including-woa.aspx
    http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx
    http://blogs.msdn.com/b/windowsstore/archive/2012/04/25/deploying-metro-style-apps-to-businesses.aspx
    http://www.microsoft.com/surface/en/us/default.aspx 

    When the time comes, there will be more to say about Windows RT.  Please stay tuned!

    Sincerely,

    Dan Ruder, Microsoft

    So there is no official Microsoft statement on desktop development support on Windows RT devices?  I just want to make sure, because the blogs never directly mention desktop development on RT devices.
    Wednesday, September 5, 2012 1:32 AM
  • I see your point that the blog doesn't directly state what is possible with desktop app development.  Please keep in mind that Windows RT is not yet released and so we are sharing with you what we can discuss *at this time*.  We are looking forward to when we are ready to release the product and discuss it in more detail.

    When you use Visual Studio 2012 RTM (which you can get from the MSDN subscriber downloads) to build a C/C++ Win32 app (say a simple console "hello, world" app) and set the target CPU to ARM in the Build Configuration Manager, you will get the following build error:

       "error MSB8022:  Compiling Desktop applications for the ARM platform is not supported." 

    If you use the command-line tools (use C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat) to compile the same console app for ARM processors, you will get the following compiler error:

       "fatal error C1189: #error :  Compiling Desktop applications for the ARM platform is not supported."

    The primary focus for app development for Windows RT will be Windows Store apps.  I hope this answers your question.  We are looking forward to the release when we can share more information.  We hope this helps you with your app development plans.

    Sincerely,

    Dan Ruder, Microsoft


    Thursday, September 6, 2012 12:03 AM
  • Surface for Windows RT is now available for pre-order.   So is there a development platform that will run on it?

    http://www.saberman.com

    Tuesday, October 16, 2012 7:25 PM
  • Visual Studio 2012 itself runs only on x86 and X64 systems, but it enables you to build and remote debug apps using the WinRT API for x86, X64, and ARM processors.  To debug an app that you build and want to test on a Windows RT device, you will use the "Remote Tools for Visual Studio 2012".  You can download the tools from here:

       http://www.microsoft.com/visualstudio/eng/downloads

    The instructions for setting up the debugger for remote debugging are here:

       http://msdn.microsoft.com/en-us/library/hh441469.aspx

       http://msdn.microsoft.com/en-us/library/bt727f1t.aspx

    Sincerely,

    Dan - Microsoft Corporation

    Tuesday, October 16, 2012 7:40 PM
  • Hallo Dan,

    I still have some big own VB6 applications that should run on as lot of computers as possible. This is no problem even at Windows 8. But now RT does not support Win32/x86 appl…

    1.) So may I ask you why Microsoft changed its mind considering the desktop appl. support at Win 8 RT ALTHOUGH there is no real difference in usability between Microsoft's new tablets Surface RT (ARM) and Surface Pro (x86) [as we know: Surface Pro has Windows 8 installed while Surface RT has 'only' the RT version]. So the argument that a tablet does not need the desktop mode cannot be the right argument!!...

    This is obvious as the display size of tablets is big enough to show (and to use UI objects of) desktop applications easily. And even if usability would not be optimal for touch screen it would be easy for Microsoft to offer a UI object library (for exchange with classical select boxes, buttons, etc.) that have a bigger hot spot for better touchscreen use. (and you do not need just XAML to support the 'stretching' effect of UIs!)

    There is one further argument I have heard from them: the different conditions of the application lifecycle (suspend, resume, activate) for saving accu power which Win32 apps do not fulfill, right? But isn’t the control of program states just the responsibility of an op. sys.? For freezing a program it must not be prepared for.

    Also should the decision be left to the user if he wants to start an more power consuming program, or not?

    So the same from developer’s side: I believe that MS should keep the decision of styling the UI by the developers but not by dropping the support of WinForms at RT platforms!!.. I am sure everybody will agree!?

    So then, what is the real reason then??... I could imagine that it is just the marketing: Microsoft will have much more problems to sell its expensive Surface Pro tablet if there are not enough arguments to pay a three times higher price. So it is the desktop mode they argue with and ALL providers/developers will have to suffer cause there is a need for them to offer a RT version of their software as well. Cause Surface RT tablets will be much more favoured by users than the Surface Pro type (price, accu power, etc.). Don’t you think so as well?...

    Microsoft didn’t do a good job for us developers when bridging the gap to the mobile world. Desktop developers have a hard (migration) time now. However, I really hope that Microsoft is still planning some better migration methods/solutions as a following second step!!...

    I could imagine that Visual Studio would get a migration method (or at least a powerful wizard) generating XAML code from a WinForms UI. Would that be so impossible/unrealistic?...

    2.) So which is the way for developers right now to adapt an existing .NET application to Win RT? Which steps have to be done? And which IDE can be used for that? Just Visual Studio 2012?...

    And because Microsoft makes a big difference between Win 8 and Win 8 RT refering UI design and power consumption there is another question I have then: Why does Microsoft make a difference for developers/code between Windows 8 Phone and Windows 8 RT? Cause both run on ARM processors. There actually is no additional difference except the display size!! And which ARE the differences for us developers here?

    3.) And is there an efficient way (in VS 2012?) to migrate Win RT code to Windows 8 Phone??

    4.) The last step then is: migration of those apps to all the tablets and smartphones out there - especially Android and iOS. Is there a chance for that as well?... We know that there are plenty of possibilities/IDEs to build apps for ALL common smartphone platforms related on just ONE code base. Examples are Titanium, Phonegap, jQuery mobile, etc. pp.
    So will Microsoft offer a method to develop ‘common’ webapps with Visual Studio?

    Thank you very much for your comments and feedback!
    Wednesday, October 24, 2012 4:38 PM
  • well ,okey ; i have found the csc.exe compiker on the folder c:\windows\microsoft.net\framework\v4.0.39319 , on my surface rt ; i compiled a simple helloworld app , there is no problem with compilation ; but the exe dont run ; hope to find a way to run exes on windows rt ; the question is why there is a c# compiler on the windows rt ; !!! there is an app certification kit that propose the choice of certifying desktop apps ,

    Sunday, December 30, 2012 1:08 PM
  • WRT to the question about Windows phone 8, see How to Leverage your Code across WP8 and Windows 8 (BUILD 2012)

    Wednesday, January 2, 2013 8:51 PM
  • Hello Softterrier and Cherkaoui,

    Thank you for your questions and comments.  Even if you were to compile a desktop app for the ARM processor, it still won't run on Windows RT.  This was decided for a number of reasons to improve the end-user's experience and the developer's experience.  It helps to keep in mind that devices that run Windows RT have some characteristics of phones and tablets even though they also offer capabilities found in PCs and laptops.

    Windows RT was designed so that over time, the experience (performance, reliability, battery life) remains consistently good.  A user should feel confident they can download, try, and use apps knowing the apps won't modify their systems and will get cleaned up completely when removed.  One way to achieve this is to change the way apps are built and what they are allowed to do.  Certainly I think some desktop apps can meet these goals, but not all.  And that's where the challenges begin when you consider bringing the whole universe of existing desktop apps to Windows RT.

    It's also why there is choice; there are touch-centric x86/x64 devices that provide the benefits of tablets and the benefits of traditional laptops & PCs for running the wide range of desktop apps.  I'm not privy to what devices will be coming out, but I optimistic we'll see a wide range of devices to meet a wide range of needs and preferences.

    As Chuck Walbourn posted, there is guidance about how you can share code between Windows Phone 8 and Windows 8. And certainly porting a desktop app to Windows Store may be possible depending on the scope of the app and the API capabilities it needs--whether they are available in WinRT API equivalents or can be achieved through the Win32 APIs that are marked as OK for Windows Store apps by the build process and the Windows App Cert Kit.

    I hope this helps!

    Sincerely,

    Dan

    Wednesday, January 2, 2013 10:54 PM
  • Dan: I've been in contact with some USB GPS manufacturers for the past few months about support for their devices under WinRT, and the response I got was basically that they have been unable to get the necessary driver kits or docs (from Microsoft) to write a driver for their device. So it seems Microsoft itself may be unintentionally impeding progress on this front.

    To date there does not seem to be a single USB GPS solution, nor does there seem to be any support which would allow a Windows Store App to communicate with a Bluetooth device, so that rules out Bluetooth devices as well. Since we can't write 'desktop' apps for WinRT, that leaves us in nowhere land. 

    Could you please point me towards the person to whom I would speak with, so as to get these manufacturers the requisite materials/docs? If not please provide some guidance here, as this situation is bit counterproductive on many fronts.

    Thanks in advance.

    Tom

    Thursday, February 14, 2013 9:34 PM