J'ai développé une application Angular 5 avec de nombreuses pièces mobiles (Services, Bootstrap, Angular Matériel, scripts JS internes + externes, etc.). Maintenant, je veux également ajouter la connectivité à la base de données à cette application (MS SQL Server uniquement). L'application a été développée dans Visual Studio Code.
Je suis ce tutoriel de MSDN afin d'apprendre à connecter cette application à une base de données SQL Server. Je pense que j'aurai besoin de la prise en charge de l'API Web et de .NET Core pour la connectivité, et je ne peux pas trouver un moyen de le faire sans recommencer à zéro dans le code VS (par exemple ici ) ou Visual Studio (comme dans l'article référencé) car presque tous les articles/tutoriels que j'ai pu trouver sur le sujet commencent à zéro. La façon dont je le vois, créer un nouveau projet Angular + Core dans Visual Studio et y migrer la logique d'application fichier par fichier n'est pas une solution réalisable pour moi.
Mes questions sont:
Je vous propose de créer un projet séparé qui contient le REST-Endpoint avec ASP.NET Core.
Vous trouverez ici un didacticiel simple:
https://docs.Microsoft.com/en-us/aspnet/core/tutorials/first-web-api
Avec cette solution, votre serveur est découplé du client. Peut-être qu'à l'avenir, vous aimerez utiliser autre chose que angular ou vous voulez créer un autre client (par exemple une application mobile native). Dans ce cas, vous n'avez pas à modifier votre projet de serveur.
(Dans le cas où vous travaillez avec Visual Studio, jetez un œil au modèle de projet. Il y a tout ce dont vous avez besoin.
Le rendu Angular et ASP.NET Core de la même application serait bénéfique si vous devez rendre Angular app côté serveur (en utilisant Angular Universal). Sinon, vous pouvez créer un projet ASP.NET Core ou conventionnel ASP.NET Web API distinct en tant que back-end pour récupérer les données de SQL Server. et servir au client Angular.
Je travaille bien pour mes projets. Essaie.
Créez deux projets distincts. Angular5 & Asp.net Core WebApi
Héberger l'application angular5 statique sur le serveur Web Kestrel
1. Publier Angular5 ( https://angular.io/guide/deployment ) Le package contient index.html
fichier
2. Ajouter à la méthode Configure
dans startup.cs
fichier dans le projet WebAPI ( https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/static-files?tabs=aspnetcore2x )
app.UseDefaultFiles();
app.UseStaticFiles();
3. Copiez tous les fichiers Angular5 publiés dans le dossier wwwroot
dans WebAPI
4. L'exécution du projet WebAPI démarrera l'application Angular5 par défaut.
p/s Config BaseURL côté client pour appeler correctement le serveur
C'est un problème auquel tous les utilisateurs de Visual-Studio sont confrontés à un moment donné de notre carrière professionnelle, et ce que vous demandez est quelque chose que j'entends beaucoup de gens qui sont nouveaux dans le domaine angulaire.
Parce que les modèles de visual studio sont si faciles à utiliser, beaucoup semblent avoir l'idée que le backend et le frontend sont un bloc. asp.net MVC par exemple, fait un excellent travail pour cacher toute la logique de couplage loin de vous, et tout semble fonctionner comme par magie.
Je vous encourage à passer à code Visual Studio, démarrer un nouveau projet en utilisant angular CLI, lorsque vous arrivez aux parties HttpClient
, tout à coup les choses vont soyez beaucoup plus clair pour vous.
Configurez votre environnement de développement
Je ferais deux projets distincts.
Q1. Oui, vous pouvez créer un modèle de base de API WEB en utilisant ces commandes dans vscode
mkdir TodoApi
cd TodoApi
dotnet new webapi
Q2. Angular n'a besoin que d'Api Endpoint pour communiquer avec n'importe quelle application dorsale.
Vous pouvez installer cli angulaire
npm install -g @angular/cli
Créez un modèle angular en utilisant angular cli.
ng new PROJECT-NAME
cd PROJECT-NAME
ng serve
Maintenant, vous pouvez simplement pointer votre point de terminaison de service vers le service exposé par votre API. Il commencera à servir les données.
commencez avec le code vs en utilisant le noyau C # .Net
je n'ai pas essayé
Vous pouvez également essayer ces deux projets en les combinant à un seul espace de travail et créer une tâche de génération pour que WEBAPI et angular puissent fonctionner à partir d'une seule fenêtre de code vs.