.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:


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

  mdb-vue-express-app/ ├── mdb5-free-vue └── MDBASPNETMongoDB  

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.