This project provides an example of getting started using
ASP.NET Core and Angular together in one project and is an updated version of the code shown in the Integrating Angular with ASP.NET Core RESTful Services on Pluralsight. If you're coming from the Pluralsight course you'll find the Angular code for the project in the Client
folder now.
The project has the following goals:
-
Keep the Angular project code completely separate from the ASP.NET Core code to make updates of either technology easier in the future. This was a key consideration when organizing the folders/files in the project.
-
Provide a way to serve an Angular application using an MVC view (you can easily change this to serve from a Razor Page as well).
-
Allow standard MVC controllers/views to be used in situations where part of the application runs outside of Angular.
-
Support running the Angular project completely separate from the ASP.NET Core Web API if desired (CORS is enabled in the Startup.cs project). See the notes below if you want to use this option.
To run the project perform the following steps:
NOTE: If you're on Windows, download the project from Github as a .zip file, and want to open the project in Visual Studio, make sure you unblock the .zip file first. Right-click on it, select Properties, and check the Unblock checkbox.
-
Install Node.js 14 or higher - https://nodejs.org
-
Install ASP.NET core 5 or higher - https://dot.net
-
Install the Angular CLI:
npm install -g @angular/cli
-
Open a command prompt and
cd
into the project'sClient
folder -
Run
npm install
-
Run
ng build --watch
to start the Angular build process and watch for changes. -
Open a new command window in the root of the project and run the following commands:
dotnet restore
dotnet build
dotnet watch run
-
Visit http://localhost:5000 in the browser
-
An MVC view is serving the Angular application.
NOTE: If you get a certificate error due to the HTTPS redirect, run the following command to install a local dev certificate:
dotnet dev-certs https --trust
If you'd like to run the Angular project completely separate from ASP.NET Core perform the following steps:
- Open a new command window in the root of the project and run the following commands to restore, build and run the ASP.NET core project:
dotnet restore
dotnet build
dotnet watch run
-
Open the
Client/src/environments/environment.ts
file and change theapiUrl
property tohttp://localhost:5000/api/
-
Launch the Angular project by running
ng serve -o
-
Note that to do an
ng build
you'll need to open theClient/angular.json
file and change theoutputDirectory
property to a value ofdist
.
A few additional notes:
- CORS is enabled in the
Startup.cs
file. You'll more than likely want to lock-down some of the settings for it though. - Cross-Site Request Forgery (XSRF) is turned on by default for the Web API POST/PUT/DELETE methods. You may want to remove the associated attribute from these methods since in a real-world scenario you'd likely implement token authentication in the API when ASP.NET Core is running as a separate/reuseable service.