Apprenez nservicebus à partir de .net core webapi – codeproject où pouvez-vous passer bitcoin

NServiceBus peut être utilisé dans de nombreuses configurations; c’est comme un couteau suisse quand il s’agit de possibilités de configuration. Un bon moyen d’apprendre de nouvelles choses est de baser l’apprentissage sur ce que vous déjà savoir. Je pensais qu’un bon moyen d’apprendre comment utiliser NServiceBus est de l’utiliser dans une application web .NET Core que je déjà savoir bien. Mon plan était de prendre une application Web api existante et de remplacer l’interface Web api avec le NServiceBus, et de garder le reste. L’utilisateur ne devrait pas voir de différence, l’interface graphique et la fonctionnalité devraient être les mêmes.

J’ai utilisé une application pour l’administration de véhicules d’entreprise que j’avais développée juste pour m’amuser il y a un moment. Il se compose de deux projets travaillant dans une configuration client / serveur.


Ce sont deux solutions standard de Visual Studio et basé sur C # MVC WebAPI Core 2.0. Le serveur, appelé CarAPI, a deux Bases de données SQLite, Car.db et AspNet.db. Le client, appelé CarClient, est une interface graphique Web communiquant avec le serveur via RESTFul http. Tests

Il n’y a pas de tests unitaires dans la solution finale. Cependant, afin d’activer les tests, l’injection de dépendance, DI, est utilisée lors de l’initialisation du client et du serveur. Le serveur utilise Autofac et le client .Net Core intégré aux fonctions DI. Code propre

Je m’efforce toujours d’éviter d’utiliser le code d’autres programmes que je ne comprends pas complètement. Je m’efforce également de tout faire aussi simple que possible et supprimer le code inutile. J’ai essayé d’enlever tout le code inutile dans les applications et espère que vous en tant que lecteur m’informe des améliorations possibles que vous trouvez. Bases de données SQLite

Il n’y a pas de serveur SQLite utilisé et par conséquent le serveur ne peut pas se connecter à la base de données SQLite via une connexion IP. le Bases de données SQLite peut être considéré comme étant des fichiers texte. Le programme CarAPI crée et initialise Car.db s’il est manquant au démarrage du programme. L’initialisation de Car.db crée et remplit deux tables: Cars et Companies. Avec l’outil “DB browser for SQLite”, vous pouvez ouvrir les bases de données. L’ouverture de Car.db montrera la base de données comme indiqué ci-dessous.

Pour lancer le système, téléchargez les solutions CarAPI et CarClient, ouvrez-les dans Visual Studio 2017, et démarrez d’abord CarAPI en appuyant sur F5. Puis démarrez le CarClient en appuyant sur F5. Lorsque vous utilisez CarClient, vous avez la possibilité de créer un compte utilisateur. Le code pour cela utilise les classes et méthodes des classes Microsoft.AspNetCore.Authentication, Authorization et Identity, que vous obtenez à partir du modèle de projet Visual Studio.

Un logiciel particulier conseille d’utiliser des rappels uniquement dans des situations exceptionnelles, par exemple pour introduire une messagerie derrière une API synchrone dans un composant existant qui ne peut pas être modifié. Ils permettent une transition progressive des applications vers la messagerie. Cependant, ils ne remplacent pas la messagerie asynchrone et n’offrent pas les mêmes avantages (en termes d’évolutivité, de couplage lâche, etc.). Pour plus d’informations, consultez la documentation https://docs.particular.net/nservicebus/messaging/callbacks."

Le motif est simple. Veuillez télécharger et exécuter la solution NServiceBusAPI pour bien la comprendre. Il se compose de trois projets: Client, Serveur et Partagé. Les classes utilisées par le client et le serveur sont situées dans Shared. Le projet Serveur a le même objectif que le projet CarAPI, c’est-à-dire que le projet Serveur accède aux bases de données Car.db et AspNet.db. C’est un programme de console et il commence comme montré ci-dessous dans Program.cs. J’ai utilisé autant que possible de CarAPI. La base de données est initiée dans une méthode d’extension appelée InitSqLiteDb. Programme de classe