.NET core + ASP.NET core integration
How to use Vue with .NET core + ASP.NET - free starter
This guide will provide you with a free template for a .NET core + ASP.NET application, with MongoDB database and Vue + Bootstrap 5 front-end.
Prerequisites
Before starting the project make sure to install the following utilities:
- Node LTS (14.x.x or higher recommended)
- .NET 6.0 SDK
- Code editor. We recommend VSCode
Creating a new ASP.NET application
In this tutorial we will create a fresh ASP.NET application with MongoDB database. Navigate to your project directory, i.e. mdb-vue-aspnet-app
and follow the steps below.
Note: The latest versions of ASP.NET don't have a Startup.cs
class. In this tutorial we are using version 6 where dependencies and middleware are registered inside the Program.cs
class.
Step 1
Creating MongoDB database.
In order to create a new database you need to run the following command:
- Create a new user
- Provide username, password, database name and description.
Note: the password must contain at least one uppercase letter, one lowercase letter, one number, one special symbol and have minimum length of 8.
Important Do not close your terminal window until you save your credentials somewhere. This is the only time we will show you your database password. If you won't save it you'll loose it.
Step 2
Create a new project with a webapi
template and call it MDBASPNETMongoDB (or whatever you like) ...
... and add MongoDB.Driver
package. Also let's remove files that are not necessary for our project: WeatherForecast.cs
and Controllers/WeatherForecastController.cs
.
Step 3
First thing we are going to do is to create a Models
directory. Inside that folder create a file named MongoDBSettings.cs
where we will define ConnectionURI, DatabaseName and CollectionName
.
Step 4
Go to appsettings.json
and create a new MongoDB
object with 3 fields: ConnectionURI, DatabaseName and CollectionName
. In first two you have to provide the info from the database you created earlier. In the last one let's put tasks
as a value.
Step 5
Create a new model called TaskItem.cs
inside a Models
directory. It's time to define a TaskItem
.
Step 6
Create a new directory called Services
and put a new file inside named MongoDBService.cs
. It's going to store a service that will be responsible for connecting the app with MongoDB.
Import necessary dependency. Now we can define a MongoDBService
class and create a methods that will be responsible for handling request sent to our API.
Step 7
Let's go to Program.cs
file and import a few MongoDB dependencies on top of that file. We also have to to bind our settings and MongoDBService after init of a builder
variable. Lastly, we are going to add some code to remove CORS problems that would appear later.
Step 8
Create a new controller inside a Controllers
directory. Our default API route will be /tasks
. If you look at the code below, we are defining get, post, put and delete
endpoints that will be necessary for a basic front-end app.
Step 9
Run your backend app and go to https://localhost:YOUR_BACKEND_PORT/swagger/index.html
and test your endpoints with Try it out
button. If everything works fine we can start creating a new vue project.
Creating MDB Vue application
If our backend is working correctly we should start creating a new Vite application. If you have encountered any problems, you should go back and try each step again.
Note: Don't forget to go back to your root folder before next step. Folders MDBASPNETMongoDB
and mdb5-free-vue
should be in the same directory.
Step 1
Create a new vite project with our MDB starter. Run the command below and select MDB5 Free Vue
starter.
Your folder structure should look like this
Step 2
Let's make some changes to the created vue app. First we need to install axios
inside our mdb5-free-vue
directory.
Remove style.css
file (don't forget to delete it from main.ts
file) and remove HelloWorld
file from components directory.
Step 3
Let's create a .env
file inside a mdb5-free-vue directory. We have to add VITE_
before the name of your variable, because it's the only way to expose them to Vite-processed code. Don't forget to change YOUR_BACKEND_PORT
to the port your backend is running right now.
Step 4
Add new content to Home.vue
file inside the views
directory.
Since our starter database contains some sample models and routes, let's use them. We will create an application that will show a list of tasks. We also intend to create a functonality for adding new tasks, changing their content and removing them.
We have already prepared the code for you, so go ahead and copy and paste it into App.vue
.
Ok, so what's actually going on there. We use MDB components, MDBBtn, MDBModal, MDBListGroup, MDBInputs
and few other. The modal will be responsible to show inputs that will allow you to add, edit and send tasks to the database. The Manage tasks
button, gives possibilty to modify or remove tasks. At the end, the list group will display our data.
Step 5
The app should be fully functional and should work correctly with backend
Optimization
If you want to further optimize your application please visit:
Backend features
ASP.NET core:
This example was created with use of ASP.NET core 6. By creating new endpoints, we can pass or receive data from MDB Vue front-end application.
Frontend features
MDB UI KIT:
To create the project we used our ui kit, with which we can build basic views very quickly.
Views and Layouts:
In this project we used the Home.vue
file, created by the Vite tool in which we placed our vue
code. We have successfully integrated the backend with the MDB Vue package and can send basic requests to ASP.NET core application.