Getting Started
This document assumes that you prefer to use Blazor WebAssembly as the UI framework and MongoDB as the database provider. For other options, please change the preference on top of this document.
Create the Database
Connection String
Check the connection string in the appsettings.json
file under the .HttpApi.Host
project.
"ConnectionStrings": {
"Default": "mongodb://localhost:27017/BookStore"
}
The solution is configured to use MongoDB in your local computer, so you need to have a MongoDB server instance up and running or change the connection string to another MongoDB server.
Seed Initial Data
The solution comes with a .DbMigrator
console application which seeds the initial data. It is useful on development as well as on production environment.
.DbMigrator
project has its ownappsettings.json
. So, if you have changed the connection string above, you should also change this one.
Right click to the .DbMigrator
project and select Set as StartUp Project
Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below:
Initial seed data creates the
admin
user in the database (with the password is1q2w3E*
) which is then used to login to the application. So, you need to use.DbMigrator
at least once for a new database.
Before Running the Application
Installing the Client-Side Packages
ABP CLI runs the abp install-libs
command behind the scenes to install the required NPM packages for your solution while creating the application.
However, sometimes this command might need to be manually run. For example, you need to run this command, if you have cloned the application, or the resources from node_modules folder didn't copy to wwwroot/libs folder, or if you have added a new client-side package dependency to your solution.
For such cases, run the abp install-libs
command on the root directory of your solution to install all required NPM packages:
abp install-libs
We suggest you install Yarn to prevent possible package inconsistencies, if you haven't installed it yet.
Bundling and Minification
abp bundle
command offers bundling and minification support for client-side resources (JavaScript and CSS files) for Blazor projects. This command automatically run when you create a new solution with the ABP CLI.
However, sometimes you might need to run this command manually. To update script & style references without worrying about dependencies, ordering, etc. in a project, you can run this command in the directory of your blazor application:
abp bundle
For more details about managing style and script references in Blazor or MAUI Blazor apps, see Managing Global Scripts & Styles.
Run the Application
Running the HTTP API Host (Server Side)
Ensure that the .HttpApi.Host
project is the startup project and run the application which will open a Swagger UI:
Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster.
You can see the application APIs and test them here. Get more info about the Swagger UI.
Running the Blazor Application (Client Side)
Important: The
.HttpApi.Host
application serves as the Authentication Server for the.Blazor
application. It is essential to have the.HttpApi.Host
application running in the background to ensure the proper functioning of the.Blazor
application.
To do this, you can open terminal in .HttpApi.Host
project folder and run the following command.
dotnet run
Once the .HttpApi.Host
application has started, you can proceed to run the .Blazor
application.
Ensure that the .Blazor
project is the startup project and run the application.
Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster.
Once the application starts, click to the Login link on to header, which redirects you to the authentication server to enter a username and password:
Enter admin as the username and 1q2w3E* as the password to login to the application. The application is up and running. You can start developing your application based on this startup template.