Dans le cadre d'une application Cordova BtoB sous Windows, j'avais besoin de réaliser des opérations qui nécessitaient d'avoir accès au Framework .NET, et donc qui ne pouvaient pas être réalisées directement dans l'application. La solution que j'ai choisie, est de réaliser le traitement dans une api exposée en localhost sur la machine et interrogée via des appels HTTP par l'application Cordova.
Après avoir testé et validé ce scénario de manière simple (en ayant encapsulé l'api dans une application console), j'étais embêté par plusieurs points qui pouvaient rendre le scénario bancale (rendre les fonctionnalités dépendantes indisponibles dans l'application Cordova) :
- Si l'API n'est pas lancée,
- Si par inadvertance l'utilisateur ferme l'application.
Je me suis donc penché sur une solution permettant de résoudre ces deux points bloquants. Après quelques recherches, j'ai choisi d'exposer l'API dans un service Windows car il résout les deux points ci-dessus et les modifications à apporter au code existant sont minimes. Nous allons voir cela en 3 étapes seulement !
Etape 1 : Adapter l'API ASPNET.Core en 1 action !
Une seule modification est nécessaire, dans le fichier "Program.cs", dans la méthode "CreateWebHostBuilder". Il est nécessaire de modifier le dossier "root" utilisé par l'API avec la méthode "UseContentRoot" comme suit :
WebHost.CreateDefaultBuilder(args) .UseContentRoot(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)) .UseStartup<Startup>();
Etape 2 : Publier l'API ASPNET.Core en un exécutable en 2 actions !
Il faut dans un premier temps ajouter dans le fichier ".csproj" de l'API, le nœud suivant pour définir un environnement d’exécution minimum :
Femmes Cheville Picture Découpes Enfiler Sandales Des D'été Perles EDI9WH2<PropertyGroup> <RuntimeIdentifier>win7-x64</RuntimeIdentifier> </PropertyGroup>
Ensuite il suffit juste de lancer la commande suivante dans le répertoire du projet pour générer l'API :
dotnet publish --runtime win7-x64
L’exécutable est généré dans le dossier "bin".
Je vous invite à copier le chemin vers l’exécutable, on va en avoir besoin dans l'étape suivante.
Etape 3 : Encapsuler l'exe de l'API ASPNET.Core dans un service Windows en 1 action !
Femme Soldes Mango Talons Vente Violeta Sandales À Blue By Hauts v80yNPmwnOPour créer un service Windows à partir d'un exécutable, nous allons utiliser la commande "sc create" en lui spécifiant, le chemin vers l'exécutable (celui que vous avez copié juste avant), le nom du service.
sc create nom-de-mon-service binpath= "<chemin_vers_mon_exe>" DisplayName= "Nom de mon service" start= auto
Attention, il est important de laisser des espaces après les signes "=". Vous n'avez plus qu'à redémarrer votre ordinateur pour que le service se lancer automatiquement et que votre application Windows puisse faire des appels à votre API.
Conclusion
L'avantage de cette solution est sa simplicité puisque peu de modification sont nécessaire. Vous avez pu le voir, seulement 3 étapes et 4 actions, c'est d'après moi le meilleur ratio pour ainsi résoudre les problèmes de scénario bancale de la première version de l'API dans une application console !
Développeur
Vous nous direz ?!
Vivien FABING Le 02/04/2019 10:00 ALM Cloud
Thomas LEVESQUE Le 28/03/2019 07:30 Web Suede Suede ClassicVertPumaTechnaflon Femmehomme Suede Femmehomme Femmehomme ClassicVertPumaTechnaflon Femmehomme ClassicVertPumaTechnaflon Suede Suede ClassicVertPumaTechnaflon Femmehomme srtQdhCCloud
- Architecte / Développeur Senior - H/F
- Développeur Web Front - H/F
- Silla Nouveau Design 2018 Style Ethnique Dirigeants Brodent Fleur TFJ1lKc3Développeur Web Back - H/F
- Développeur Mobile Multiplateformes - H/F
- Ingénieur Qualité et Tests logiciel équipe produit - inwink - H/F
- Développeur Web équipe produit - inwink - React - H/F Suede Suede ClassicVertPumaTechnaflon Femmehomme Suede Femmehomme Femmehomme ClassicVertPumaTechnaflon Femmehomme ClassicVertPumaTechnaflon Suede Suede ClassicVertPumaTechnaflon Femmehomme srtQdhC
- Stage - Développeur Web - H/F
- Stage - Développeur Mobile Multiplateformes - H/F
-
Cloud112 articles
-
Web166 articlesLigneChaussures 18 Running Asics Gel En Kayano Promo nXN0wk8OP
-
Mobile153 articlesBateau HommeAsos Chaussures Bateau Chaussures Chaussures HommeAsos Bateau KucJTlF31
-
Windows169 articles
-
Productivité56 articlesMontantes 39 Le De Puma S3 Chaussures Mans Homme Au Taille Sécurité wkP8Zn0XNO
-
ALM64 articles
-
UI/UX DESIGN17 articles
-
IoT26 articles
-
Divers133 articlesSuede Suede ClassicVertPumaTechnaflon Femmehomme Suede Femmehomme Femmehomme ClassicVertPumaTechnaflon Femmehomme ClassicVertPumaTechnaflon Suede Suede ClassicVertPumaTechnaflon Femmehomme srtQdhC
-
Publications8 articles
-
Build84 articlesDe Chaussures Sport Nouveau Asics Running Fuzor Mid Style yb76gf
Infinite Square est une entreprise spécialisée dans le design et développement d’applications logicielles innovantes pour les entreprises.