Fermer

avril 6, 2018

Pourquoi et comment publier des applications WinForms / WPF dans le magasin de MicrosoftUne minute de lecture

WPF and WinForms to Windows Store Image


Apprenez à empaqueter, exporter et publier vos applications WPF et WinForms sur le Microsoft Store et à les mettre plus rapidement entre les mains de vos utilisateurs.

En tant que développeurs développant des applications de bureau avec WinForms ou WPF, vous avez probablement considéré la possibilité de les publier sur le Microsoft Store. C'est une opportunité formidable. le Microsoft Store fournit le canal et l'infrastructure à vendre directement aux utilisateurs. La question est de savoir comment le faire. Dans cet article, je vous montre comment publier vos applications WinForms et WPF sur le Microsoft Store. Comme vous le verrez, il y a beaucoup de raisons évidentes et pas si évidentes pour faire cela.

 ms-desktop-bridge "title =" ms-desktop-bridge "/></p data-recalc-dims=

Avec la mise à jour de Windows 10 Anniversary Microsoft a annoncé le Desktop Bridge précédemment connu sous le nom de Project Centennial, qui comprend un outil qui vous aide à convertir votre application de bureau (Win32 ou .NET) en une application Universal Windows Platform (UWP). Quelques raisons:

  1. Seules les applications UWP sont autorisées dans le Microsoft Store.UWP fournit un écosystème plus sécurisé que les autres runtimes (ce qui est important lors de la fourniture d'applications de tiers.)
  2. The Microsoft Store in construit dans Windows 10, qui a beaucoup d'utilisateurs ; plus de 600 millions d'utilisateurs actifs par mois en fait.C'est une énorme opportunité.
  3. Le Microsoft Store fournit l'infrastructure dont vous avez besoin pour vendre des applications en ligne, pensez à la quantité de travail nécessaire pour démarreurs, vous auriez besoin d'un site Web avec des serveurs et une passerelle de paiement. Oh, et il y a aussi le défi de la gestion des mises à jour. À vrai dire: c'est un mal de tête qui peut vous empêcher de travailler sur votre application. Le magasin Microsoft fait tout cela pour vous.
  4. Après avoir converti votre application (plus sur cela plus tard), votre application est empaquetée, entretenue et déployée en tant que paquet AppX. Cela fournit des capacités améliorées pour l'installation et la suppression, l'achat et les mises à jour automatiques.

Des informations détaillées sur la préparation et la conversion des applications sont disponibles sur la page de documentation Microsoft sur Desktop Bridge . Chaque rubrique décrit en détail les étapes précises de préparation et de conversion de votre application.

Récemment, nous avons converti nos plus grandes applications de démonstration en UWP avec le Desktop Bridge. Ces applications présentent tous les contrôles que nous effectuons pour WinForms et WPF. Pour être clair: nous avons des centaines de contrôles . Chacun d'eux peut être fortement personnalisé et à thème. Pour montrer à nos clients comment ils fonctionnent, nous avons construit des applications vitrines qui non seulement démontrent leurs fonctionnalités mais fournissent également le code source sous-jacent. Ce sont de très grosses applications

 telerik-ui-for-wpf-showcase "src =" http://d585tldpucybw.cloudfront.net/sfimages/default-source/blogs/ 2018 / 2018-03 / telerik-ui-for-wpf-showcase.png? Sfvrsn = 9d2af75_1 "data-displaymode =" Original "title =" telerik-ui-pour-wpf-showcase "/></p><p> Nous avons décidé de convertissez ces applications en UWP parce que nous voulions offrir à nos utilisateurs un accès plus facile.Le processus de conversion s'est déroulé sans problème, même si dans nos contrôles, dans certains endroits, nous appelons l'API Windows natif (par exemple, les graphiques, gestes, événements souris, paramètres DPI, crochets).</p><p> <img alt=

Ce que cela signifie est:

Il est sûr de convertir Windows Forms et les applications WPF construites wi UI Telerik pour WinForms et UI Telerik pour WPF . Vous pouvez commencer à récolter les bénéfices de Microsoft Store AUJOURD'HUI.

Vous pouvez trouver nos applications de démonstration déjà converties sur les liens suivants:

Conversion d'une application WinForms / WPF en UWP

Vous êtes arrivé si loin, ce qui signifie que vous êtes intrigué ou du moins intéressé par la façon dont vous pouvez réellement publier votre application existante sur le Microsoft Store. La première étape serait de convertir votre application WPF ou WinForms en UWP .

Je ne vais pas toucher à chaque étape du processus, car celles-ci sont très bien décrites dans le Desktop Bridge documentation . Je mentionnerai plutôt quelques points clés au cours du processus de conversion ainsi que quelques murs rencontrés et comment nous les avons résolus.

Tout d'abord, nous devons emballer notre application de bureau en tant que projet UWP. Comme présenté dans la documentation de Desktop Bridge, vous pouvez choisir entre quelques méthodes pour cela: en utilisant Desktop App Converter, via Visual Studio ou manuellement. Dans notre cas, nous avons choisi de convertir notre application de démonstration en utilisant le DesktopAppConverter . Malgré son nom, il ne modifie pas réellement votre application, mais génère un package d'application Windows.

Préparation de votre package

Le processus de mise en package de vos applications est relativement simple et détaillé dans la documentation Desktop Bridge. Même si je ne veux pas que vous relisiez les mêmes étapes, je voulais attirer votre attention sur certaines choses dont nous devions nous occuper pour terminer le processus.

Conversion de votre application WinForms

Voici quelques remarques que nous avons faites pendant la préparation et la conversion de l'application WinForms:

  • La première exigence est d'utiliser une machine Windows 10 Anniversary Update (10.0.14393.0 et ultérieure) pour créer et tester le package converti et installer le [10] Windows 10 SDK . Une liste complète des exigences est disponible ici .
  • Le convertisseur prend en charge les applications avec le framework cible .NET 4.6.1. Si votre application cible une version antérieure, vous devrez la recibler.
  • Une autre étape importante intervient lorsque l'application est prête et prête à être convertie. Ne placez que les fichiers nécessaires à votre application dans le répertoire d'entrée. DesktopAppConverter parcourra tous les fichiers et dossiers du répertoire d'entrée, les regroupera et les placera dans le répertoire de sortie.
  • Il est très important d'utiliser des répertoires différents pour l'entrée et la sortie si vous ne voulez pas conduire le convertisseur en boucle infinie. 😉
  • Après la conversion, nous avons découvert que certains de nos exemples modifiaient des fichiers dans le répertoire d'installation, ce qui soulevait UnauthorizedAccessException . Pour éviter cela, vous devez stocker les données modifiées dans un autre dossier. Par exemple, le dossier AppData . Pour plus d'informations sur la gestion des données dans les applications converties, visitez le lien suivant: Gestion des données dans une application de bureau convertie avec le pont de bureau
  • Ne placez PAS votre exécutable dans le dossier installeur ou sous-dossier. Cela provoquera des "résultats erronés" en essayant d'exécuter le DesktopAppConverter.exe pour convertir votre application.

Voici un exemple de quand le fichier MyAppExecutable.exe existe à la fois dans C: InstallerFolder et son child dossier C: InstallerFolder Subfolder entraînant une erreur :

 DesktopAppConverter.exe -Installer C:  InstallerFolder -AppExecutable "MyAppExecutable.exe" -Destination C:  ResultFolder -PackageName "MyPackageName" -Publisher "MyPublisher" -PackageArch x86 -Version 2017.3.912.0 -MakeAppx -Sign -Verbose -Verify -AppDisplayName "MonApp" -PackageDisplayName "MyApp" -PackagePublisherDisplayName "MonCompagnie" 

Conversion de votre application WPF [19659024] La conversion d'une application WPF, en revanche, nécessite quelques étapes supplémentaires

Dans le cas de notre application WPF, nous utilisions un déploiement privé basé sur des fichiers de SQL Server Compact afin supprimer le prérequis de SQL Server C Compacter l'installation sur la machine cliente. Cela a nécessité que nous distribuions toutes les DLL pour SQL Server Compact, comme décrit dans l'article ci-dessus, ainsi que la base de données .sdf. Tous les exemples fonctionnant avec cette base de données étaient juste en train de lire. Cependant, parce que nous utilisons EntityFramework pour notre accès aux données, il fallait également un accès en écriture à notre base de données. Ainsi, comme décrit dans l'article sur manipulant des données dans notre application convertie nous devions nous assurer de deux choses:

  1. Notre base de données est copiée dans le dossier ApplicationData après l'installation . Nous l'avons fait parce que ce dossier est l'un des deux dossiers où notre application doit écrire toutes les données générées par les utilisateurs lors de l'exécution. (Voir la section «Où puis-je stocker mes données?» du lien ci-dessus):
  2.  public partial class App: Application
    {
      override protected void OnStartup (StartupEventArgs e)
      {
        // copie notre base de données au démarrage de l'application
        this.CopyDatabase ();
      }
    
      void CopyDatabase ()
      {
        // données d'application itinérantes
        chaîne roamingPath = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
        chaîne emplacement = Assembly.GetExecutingAssembly (). Location;
        int index = location.LastIndexOf ("\");
        chaîne sourcePath = location.Substring (0, index);
        chaîne destinationPath = Path.Combine (roamingPath, "MyApp");
        string fileName = "Northwind.sdf";
    
        if (! Directory.Exists (destinationPath))
        {
            Directory.CreateDirectory (destinationPath);
        }
    
        chaîne sourceFichier = Path.Combine (sourcePath, fileName);
        chaîne destFile = Path.Combine (destinationPath, fileName);
        File.Copy (sourceFile, destFile, true);
      }
    } 
  3. Notre chaîne de connexion pour accéder à la base de données pointe vers la base de données copiée. Nous y sommes parvenus en ajoutant une chaîne de connexion EntityFramework avec un mot-clé ("keyword" est juste une chaîne que nous remplacerons par Environment.SpecialFolder.ApplicationData ) et en utilisant cette chaîne de connexion pour créer notre modèle EntityFramework. Nous faisons cela parce qu'il n'y a pas de chaîne de substitution pour le dossier ApplicationData dans connectionString :
  4. 
    
      
        
          
          
        
      
      
        
      
    
     public Example ()
    {
      InitializeComponent ();
     
      var connectionString = ConfigurationManager.ConnectionStrings ["NorthwindEntities461"] .ConnectionString;
      connectionString = connectionString.Replace ("% APPDATA%", Chemin d'accès.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "MyApp"));
    
      var myModel = new NorthwindEntities (connectionString) .Orders;
    } 

Closing Words

J'espère que vous avez trouvé cet article utile pour le processus de publication de vos applications WinForms et WPF sur le Microsoft Store. La disponibilité de votre application dans le magasin présente de nombreux avantages, de la monétisation à la gestion et la distribution plus faciles des nouvelles versions, mais la manière dont vous en bénéficierez dépendra du type d'application et de projet que vous utilisez. Cependant, une chose est sûre: vous disposez de tous les outils et de la documentation nécessaires une fois que vous avez décidé de convertir votre candidature. En outre, comme présenté ci-dessus, il est possible de le faire même si vous utilisez notre UI Telerik pour WPF ou Telerik UI pour les suites WinForms.

Enfin, si vous avez encore du temps, assurez-vous de vérifier [19659043] L'état du .NET 2018 Whitepaper qui couvre l'évolution du .NET Framework ces dernières années et comment sa dernière incarnation répond aux défis présentés par les nouvelles applications portables multiplateformes et les technologies de l'avenir que les développeurs utilisent

Merci et bonne codification!


Les commentaires sont désactivés en mode prévisualisation.
[ad_2]
Source link

0 Partages