locked
Deploying metro style apps

    Question

  • I am aware that there are APIs which we can use in Desktop apps to install Metro style apps. But can we use install shield to deploy Metro style apps?

    Also, since the above APIs can only be used in Desktop apps, dont we still have to use the namespaces like Management::Deployement in Desktop apps? Please tell how we can use such APIs in Desktop apps?

    Friday, June 29, 2012 1:18 PM

Answers

  • its_me_here wrote:

    Thank you Raffaele, for your detailed reply. In my case, I have to finally deploy the app to the AppStore. But before that we have to deploy it for testing.

    Anyway, is there anything wrong in creating a desktop app which installs the app using the AddPackageAsync API as given in the Samples Collection(AddPackage Sample ) .I can then distribute the desktop app . But this desktop app will have to handle developer license validation in target PC. Is this approach recommended?

    I would use the powershell scripts instead.
    When you create a package (in the offline mode), you also have a script to install the app.

    Take a look to these too:
    http://technet.microsoft.com/en-us/library/hh856045.aspx

    Obviously you can create a desktop app that make the exact things contained inside the powershell script. But if you really want a desktop exe, I guess you can invoke powershell from your desktop app.

    Be aware that the app won't last forever. The app deployed with a temporary developer license currently expire after 1 month. Maybe they will change this right after the RTM.


    Raffaele Rialdi  http://www.iamraf.net
    Weblog: http://blogs.ugidotnet.org/raffaele
    Microsoft MVP profile https://mvp.support.microsoft.com/profile/raffaele
    UGIdotNET - http://www.ugidotnet.org/


    Raffaele Rialdi [MVP] My articles and videos: http://www.iamraf.net Italian blog: http://blogs.ugidotnet.org/raffaele
    • Marked as answer by Jesse Jiang Monday, July 09, 2012 4:49 AM
    Monday, July 02, 2012 7:00 AM

All replies

  • its_me_here wrote:


    I am aware that there are APIs which we can use in Desktop apps to install Metro style apps. But can we use install shield to deploy Metro style apps?

    Also, since the above APIs can only be used in Desktop apps, dont we still have to use the namespaces like Management::Deployement in Desktop apps? Please tell how we can use such APIs in Desktop apps?

    I am not sure if I completely understand your question but I'll give a try.

    Explorer on the desktop side expose COM interfaces to deal with the Metro environment. You can find some detail by exploring the powershell scripts that manage the packages.

    Microsoft created those scripts only for the developer. Currently, as far as I know, the only correct way to install a package is via the Store. Windows 8 definitely targets end-user scenario.


    Raffaele Rialdi  http://www.iamraf.net
    Weblog: http://blogs.ugidotnet.org/raffaele
    Microsoft MVP profile https://mvp.support.microsoft.com/profile/raffaele
    UGIdotNET - http://www.ugidotnet.org/


    Raffaele Rialdi [MVP] My articles and videos: http://www.iamraf.net Italian blog: http://blogs.ugidotnet.org/raffaele
    Saturday, June 30, 2012 1:53 PM
  • I am sorry I missed an important point in my question. By deploying/installation I meant not via app store but to other users PCs using an installation setup. Currently we can create the setup package from the VS 12 environment.   The setup API I mentioned takes an appx( created as part of packaing)  file as input and installs the app in the PC. These APIs are available in Desktop app.

    My question is, just like we used to install desktop apps in user PCs using Install shield setup package or some other setup packages, is it possible to install Metro apps in other user's PCs using an installation setup?

    Currently we can create the app package and run the shell script in the package. The user has to accept some details on the shell script prompt. If the developer license is not available in the PCs then he has to get it. This we way can install the app. Fine. But can we put all these steps as an installation package so that the user can install using minimal steps?


    I just found that there is a project type called "Enable InstallShield Limited Edition" in VS 2012. Is it any hope? But I think I need to download it first..

    • Edited by its_me_here Saturday, June 30, 2012 4:31 PM
    Saturday, June 30, 2012 3:31 PM
  • its_me_here wrote:

    I am sorry I missed an important point in my question. By deploying/installation I meant not via app store but to other users PCs using an installation setup. Currently we can create the setup package from the VS 12 environment.   The setup API I mentioned takes an appx( created as part of packaing)  file as input and installs the app in the PC. These APIs are available in Desktop app.

    My question is, just like we used to install desktop apps in user PCs using Install shield setup package or some other setup packages, is it possible to install Metro apps in other user's PCs using an installation setup?



    Currently we can create the app package and run the shell script in the package. The user has to accept some details on the shell script prompt. If the developer license is not available in the PCs then he has to get it. This we way can install the app. Fine. But can we put all these steps as an installation package so that the user can install using minimal steps?

    Microsoft stated that they do not intend to support the scenario with a custom installation of a Metro application.
    Until now, I heard of two types of deployment:
    - via the Microsoft Windows Store (that should support "hidden"/private applications too)
    - via a specific Windows Server Enterprise package that will permit the enterprises to deploy Metro apps inside their network (via AD).

    I am not aware about any other possibility and I was told multiple times that it will not supported deploying as the current destkop app do now.
     BTW, there are good security reasons for this decision. They need to keep the Metro environment clear, as much as possible, of any treat. The Store can examine the package and see if the app intend to use APIs that can be dangerous for the target PC. As Metro applications permit the use of native code, they must not allow APIs like LoadLibrary or GetProcAddress, otherwise there is no way to give any reasonable security.
     -- Raffaele Rialdi  http://www.iamraf.net
    Weblog: http://blogs.ugidotnet.org/raffaele
    Microsoft MVP profile https://mvp.support.microsoft.com/profile/raffaele
    UGIdotNET - http://www.ugidotnet.org/


    Raffaele Rialdi [MVP] My articles and videos: http://www.iamraf.net Italian blog: http://blogs.ugidotnet.org/raffaele
    Saturday, June 30, 2012 5:34 PM
  • Thank you Raffaele, for your detailed reply. In my case, I have to finally deploy the app to the AppStore. But before that we have to deploy it for testing.

    Anyway, is there anything wrong in creating a desktop app which installs the app using the AddPackageAsync API as given in the Samples Collection(AddPackage Sample ) .I can then distribute the desktop app . But this desktop app will have to handle developer license validation in target PC. Is this approach recommended?

    Also, I am not able to call this API from a dialog based application( I selected a dialog based MFC application ). I am getting error.. What are the steps/project settings to call these APIs from a dialog application?


    Monday, July 02, 2012 4:39 AM
  • its_me_here wrote:

    Thank you Raffaele, for your detailed reply. In my case, I have to finally deploy the app to the AppStore. But before that we have to deploy it for testing.

    Anyway, is there anything wrong in creating a desktop app which installs the app using the AddPackageAsync API as given in the Samples Collection(AddPackage Sample ) .I can then distribute the desktop app . But this desktop app will have to handle developer license validation in target PC. Is this approach recommended?

    I would use the powershell scripts instead.
    When you create a package (in the offline mode), you also have a script to install the app.

    Take a look to these too:
    http://technet.microsoft.com/en-us/library/hh856045.aspx

    Obviously you can create a desktop app that make the exact things contained inside the powershell script. But if you really want a desktop exe, I guess you can invoke powershell from your desktop app.

    Be aware that the app won't last forever. The app deployed with a temporary developer license currently expire after 1 month. Maybe they will change this right after the RTM.


    Raffaele Rialdi  http://www.iamraf.net
    Weblog: http://blogs.ugidotnet.org/raffaele
    Microsoft MVP profile https://mvp.support.microsoft.com/profile/raffaele
    UGIdotNET - http://www.ugidotnet.org/


    Raffaele Rialdi [MVP] My articles and videos: http://www.iamraf.net Italian blog: http://blogs.ugidotnet.org/raffaele
    • Marked as answer by Jesse Jiang Monday, July 09, 2012 4:49 AM
    Monday, July 02, 2012 7:00 AM