This project provides a "seed" for getting started using ASP.NET Core and Angular together in one project. 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.
-
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:
-
Install Node.js 12 or higher - https://nodejs.org
-
Install ASP.NET core 3.1 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. The build process will add the output to the project'swwwroot
folder. -
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.
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/app/core/services/data.service.ts
file and change theurl
property tohttp://localhost:5000/api/messages
-
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
. -
CORS is enabled in the
Startup.cs
file. You'll more than likely want to lock-down some of the settings for it though.