meds-processor ? Guide de C # et .NET CoreC'est l'endroit idéal pour commencer à apprendre C # et .NET Core en créant quelque chose de réel avec des looks et des sensations - un grattoir de données de liste de médicaments et une API Web REST documentée sécurisée. Ce projet est conçu pour les développeurs qui ont une expérience de programmation modérée et une certaine expérience dans la création d'applications Web mais qui n'ont pas encore obtenu C # et .NET sur le backend.
ValidFrom.Year < 2019 , supprimé la parallélisation de l'analyseur en raison des situations de verrouillage des fichiers, nettoyée un peu les réponses de l'API, supprimé le code inutile.ValidFrom.Year < 2019 . Je vais résoudre ce problème avec l'analyseur supplémentaire (ou tout autre correctif) et mettre à jour les articles de blog! Le SDK Ready PRODUCTION PRODUCTIONS est .NET Core et la version utilisée pour créer cette application est "version": "2.2.402" . Vous pouvez trouver les téléchargements SDK pour votre système d'exploitation ici.
Créez l'application (et assurez-vous que la connectivité Internet pour les packages NuGet à restaurer) avec:
> cd src/MedsProcessor.WebAPI
MedsProcessor.WebAPI > dotnet buildExécutez l'application (et assurez la connectivité Internet pour que le grattoir Web fonctionne) sur https: // localhost: 5001 avec:
> cd src/MedsProcessor.WebAPI
MedsProcessor.WebAPI > dotnet runVous pouvez maintenant parcourir l'API Web via une interface utilisateur de fanfaronnade sur l'adresse: https: // localhost: 5001 / swagger / index.html
L'image ci-dessous est une capture d'écran de l'interface utilisateur Swagger qui est produite pour documenter l'API Web avec les points de terminaison disponibles et leurs méthodes HTTP respectées.
J'ai été irrité par le fait que le fonds d'assurance maladie de mon pays réalise des données importantes telles que la médecine et les médicaments dans un format hostile non structuré et utilisateur. De plus, j'ai pensé que je suis un peu rouillé avec .NET Core et à écrire des blogs techniques.
Apprenez à construire un gratte-ciel, un analyseur de téléchargeur et un analyseur Excel en fouillant dans certaines données de feuille de calcul cachées du Fonds d'assurance maladie en Croatie et de sa liste principale et supplémentaire de médicaments et de tout cela en utilisant uniquement C # et .NET Core (sur n'importe quelle plate-forme OS informatique moderne)! Le SDK .NET Core peut être installé et utilisé le même sur Windows, OSX ou Linux.
Le référentiel est composé de quatre parties. Ces pièces sont des succursales Git où chacun d'eux a son propre article de blog. Vous pouvez parcourir les branches ici sur GitHub (la liste déroulante de la sélection des succursales). Je vous conseille de commencer par lire la partie du blog / 1 car elle vous guidera dans la création de la solution par vous-même. Vous pouvez utiliser n'importe quel système d'exploitation et de code moderne.
partie / 1 (Core .NET pratique - Écrivez un grattoir Web, un analyseur et un analyseur Excel. Partie 1: Scraper)
AngleSharp pour récupérer certaines pages HTML distantes et extraire certains liens.partie / 2 (Core .NET pratique - Écrivez un grattoir, Fetcher et XLS (x) Parser. Part 2: Downloader)
Task Parallel Library et à traiter les tâches asynchrones dans .NET Core.partie / 3 (Core .NET pratique - Écrivez un grattoir, Fetcher et .xls (x) Parser. Partie 3: Parser)
NPOI pour extraire des données pertinentes pour vos classes de modèle C #. À la fin, vous aurez un seul ensemble de données de données transformées et organisées.Partie / 4 (Core .NET pratique - Écrivez un grattoir, Fetcher et .xls (x) Parser. Part 4: API Web Secure Rest)
Swagger Docs en fonction de vos contrôleurs et actions bien documentés. La source a beaucoup changé à travers les pièces. Il peut y avoir des bogues car ce projet n'est pas couvert par les tests (quelque chose que je pourrais considérer à l'avenir). Partie / 4 en plus de l'implémentation de l'API Web va dans la refactorisation et l'amélioration de certaines parties qui sont à dessein qui ne sont pas dans leur meilleure forme par rapport aux parties précédentes. Ce que vous remarquerez d'abord, c'est que ce document Readme.md n'est pas dans cette forme finale sur les trois premières branches. Ne vous découragez pas, plutôt informer si vous voyez une place pour l'amélioration. Tout devrait fonctionner comme prévu si vous suivez la série de blogs. De plus, toutes les pratiques que vous voyez ici, comme une classe de base pour une réponse HTTP, pour transporter les données d'en-tête HTTP ne sont pas la meilleure production à utiliser. Alors oui, restez toujours curieux, demandez-vous "pourquoi?", Repensez votre approche, puis exécutez.
Je suis ouvert aux améliorations, commentaires, problèmes, fourchettes / PR et tout ce qui est de bonne préoccupation et d'idée. Nous pouvons également discuter de vos idées et sujets dans la section des commentaires sur les articles de blog si vous préférez cela.
Vedran Mandić.
Licence MIT