Fermer

juin 28, 2019

3 façons de déployer une application WinForms ou WPF .NET Core


Cet article vous aidera à déployer et à apporter votre application finalisée à vos utilisateurs. NET Core 3 nous offre trois façons de déployer une application et chacune a ses avantages.

Je sais que le vrai plaisir est de développer une application et qu'en tant que développeurs, nous nous concentrons principalement sur cette partie de la création d'une application. Cependant, le but réel de chaque application est d’atteindre ses utilisateurs finaux.

Pour y parvenir, le déploiement est une partie très importante de ce processus.
Dans un précédent post, j'ai parlé des avantages des applications .NET Core et de la conversion d'une application WinForms et WPF existante en .NET Core.

Que l'application soit convertie ou totalement nouvelle, il est temps de continuer à vous guider sur la manière de la déployer et d'apporter l'application terminée à ses utilisateurs. .NET Core 3 nous offre trois façons de déployer une application – et chacune a ses avantages:

Le déploiement dépendant du cadre (FDD) et les exécutables dépendant du cadre (FDE)

Ces deux approches ont un point commun important: ils dépendent du .NET Core installé en dehors de l'application. Cela nous conduit à des avantages et des inconvénients communs:

Quels sont les avantages de ces deux approches?

Les avantages incluent une taille plus petite et le fait que plusieurs applications utilisent la même installation .NET Core, ce qui réduit à la fois l'espace disque et l'utilisation de la mémoire. sur les systèmes hôtes.

Quels sont les inconvénients?

Comme .NET Core ne fait pas partie du package, votre application risque de ne pas fonctionner ou de changer de comportement en fonction de la version installée de .NET Core sur la machine hôte.

REMARQUE! Quelles sont les principales différences entre les approches FDD et FDE ?

  • Le premier produit des fichiers * .dll, le second des fichiers * .exe.
  • Le premier peut être utilisé sur plusieurs plates-formes, vous n'avez pas à définir les systèmes d'exploitation cibles car votre application .NET Core s'exécutera à l'avance, le second devant être publié séparément pour chaque plate-forme cible.
  • Avec l'approche FDE, votre application peut être exécutée en appelant l'exécutable publié sans appeler directement l'utilitaire dotnet.

Parlons maintenant de la troisième approche:

Déploiement autonome (SCD)

Il s'agit de la nouvelle approche proposée avec .NET Core qui ouvre de grandes possibilités et sur laquelle nous nous concentrerons davantage. ce post. Avec cette approche, votre application inclut .NET Core. Les SCD incluent un exécutable (tel que app.exe sur les plates-formes Windows pour une application nommée app), qui est une version renommée de l'hôte .NET Core spécifique à la plate-forme, et un fichier .dll (tel que app.dll), qui est: l'application réelle.

Quels sont les avantages?

Vous contrôlez la version de .NET Core déployée avec votre application. Les autres applications ou mises à jour ne peuvent pas altérer le comportement de votre application!

Quels sont les inconvénients?

  • Vous devez sélectionner au préalable les plates-formes cibles pour lesquelles vous créez des packages de déploiement.
  • La taille de votre package de déploiement est relativement grande, car vous devez inclure .NET Core ainsi que votre application et ses dépendances tierces

    Toutefois, avec .NET Core 3 Preview 6 il est possible d'utiliser Assembly Linker et de réduire considérablement la taille de l'application.

    IL linker analyse l’IL de votre application pour détecter le code réellement requis, puis élimine les bibliothèques non utilisées. Cela peut réduire considérablement la taille de certaines applications. Il suffit de définir PublishTrimmed = true dans votre projet. En règle générale, les petites applications de type console sont les plus utiles car elles ont tendance à utiliser des sous-ensembles assez petits du cadre et sont généralement plus faciles à couper. Si votre application utilise la réflexion, soyez prudent et lisez comment gérer le cas ici .

À présent, comme je l'ai dit, nous allons nous concentrer sur la troisième approche et explorer de manière approfondie comment nous pouvons l'utiliser. Il existe deux manières de créer des fichiers de déploiement pour une telle application: avec l'invite de commande ou avec Visual Studio .

Comme d'habitude, j'utiliserai les modèles Telerik Visual Studio pour créer une application à des fins de démonstration. Cependant, cette fois-ci, j’utiliserai les tout nouveaux modèles .NET Core publiés avec la version R2 2019. Après avoir installé les composants Telerik pour WPF ou WinForms ils apparaîtront dans votre Visual Studio comme suit:

 template telerik

 vsx

En quelques clics, j'ai préparé un application de bureau fonctionnelle pour .NET Core – Application de calendrier WPF.

 calendar "src =" https://d585tldpucybw.cloudfront.net/sfimages/default-source/default-album/calendarf61d377a0bf746e2a2a88a13a displaymode = "Original" /> </p>
<p>
 Maintenant, déployons-le. </p>
<h2> Déploiement avec Visual Studio </h2>
<p>
 C'est ma méthode préférée! I <strong> <3 </strong> Visual Studio et ses avantages.</p>
<blockquote><p> Notez qu'il existe une différence d'approche selon la version de Visual Studio. J'utiliserai la version officielle de VS 2019 (version supérieure à 15.7) et décrirai les étapes en détail.<br />
Cependant, si vous utilisez une version antérieure, veuillez vous reporter à l'article <a title= de Microsoft .

Encore une fois, je vous rappelle que l'approche SCD du déploiement nécessite de créer un profil pour chaque plate-forme. vous devez répéter les étapes ci-dessous pour chaque plate-forme que vous devez cibler!

S étape 1 . Cliquez avec le bouton droit sur le projet (pas la solution) dans l'Explorateur de solutions et sélectionnez Publier.

 publish1 "src =" https://d585tldpucybw.cloudfront.net/sfimages/default-source/default-album/publish1.png?sfvrsn=62606c87_1 "data-displaymode =" Original "/> </p>
<p>. .et la boîte de dialogue "Choisir une cible de publication" s'ouvre: </p>
<p> <img decoding=

Étape 2. Choisissez un emplacement de déploiement.

S 3e étape . Après cela, cliquez sur Paramètres de configuration et choisissez le mode de déploiement autonome puis choisissez le temps d’exécution cible.

 configurez le profil

S tep 4. Enregistrez la configuration et exécutez le bouton Publish .

Voyons maintenant ce qu'il y a dans le dossier de sortie:

 output "src =" https: / / d585tldpucybw.cloudfront.net/sfimages/default-source/default-album/output71b71cb316dc4103864cb91a7e2780b3.png?sfvrsn=dbd38b7e_1 "data-displaymode =" blies et assemblages de votre application, y compris ceux de Telerik. </p>
<blockquote><p> Notez que le dossier d’emplacement contient des fichiers qui ne sont pas obligatoires pour la publication, mais je vous recommande de les enregistrer * .pdb – enregistrez-les pour pouvoir les utiliser pour déboguer l’application déployée, le cas échéant. </p></blockquote>
<p>
 les fichiers de sortie que vous pouvez déployer de quelque manière que ce soit sur la machine cible – zippez-les, utilisez simplement la commande copy ou … avec le nouveau format MSIX. </p>
<h2> Qu'est-ce que MSIX? </h2>
<p>
 Il s'agit d'un nouveau format de packaging d'application pour Applications Windows prenant en charge les applications Win32, WPF et WinForm </p>
<h3 id= Quels sont les avantages?

  • Fonctionne avec toutes les applications Win32, WPF ou WinForms (que ce soit en .NET Core 3)
  • Permet une distribution transparente vers the Microsoft Store
  • Permet le chargement latéral avec la page de téléchargement et d'installation simplifiés
  • Mises à jour automatiques des applications
  • S'intègre facilement à l'intégration continue
  • Illumine certaines fonctionnalités de Windows 10 telles que le lancement d'URI

Quels sont les inconvénients?

  • Ne prend en charge que Windows 10 pour le "mode d'installation transparente" [19659013] Requiert des outils spéciaux sous Windows 7/8 (programme d'installation MSIX)
  • Requiert la signature de l'application à chargement latéral avec cert (jolie norme, mais elle n'est pas idéale pour les développeurs indépendants).
  • L'application Sandboxes ressemble à une application UWP

] Pour en savoir plus sur la mise en package de l'application, reportez-vous à cet article publié après .

Voyons maintenant une autre solution sans utiliser le studio.

Déploiement avec une invite de commande

Devinez quoi ? C'est très facile. Appelez simplement dotnet publish - un vrai dans votre répertoire de travail et vous avez presque terminé.

Pour configurer le déploiement, utilisez les paramètres suivants:


-c
Spécifiez la configuration
-f
à utiliser pour le cadre
-r
Plate-forme d'exécution cible

Dans mon cas, la commande sera la suivante:

 dotnet publish -c Release -f netcoreapp3.0 -r win10-x64 - vrai en soi 

Plus à lire

J'espère que vous êtes aussi enthousiasmé par tous les avantages de .NET Core 3 que par les personnes travaillant sur l'interface utilisateur de Telerik composants – sont! C'est pourquoi nous aimerions en savoir plus sur la conversion de vos applications existantes. Avez-vous des problèmes avec ça? Souhaitez-vous que la version .NET Core de l'interface utilisateur Telerik pour WPF et WinForms soit incluse? S'il vous plaît partager vos commentaires!

Faites-nous savoir dans les commentaires ci-dessous ou dans nos portails pour WinForms et WPF .

Dans cet article, j'ai essayé de couvrir le scénario de base, mais pour plus de détails, Vous pouvez vous référer à ces articles de Microsoft:

Bon déploiement!





Source link