Flexmonster Software License Agreement (“Agreement”) has been significantly revised and is effective as of September 30, 2024.
The following modifications were made:
The modified version of Flexmonster Software License Agreement is available here.
Downloading, installing, and/or continuing to use Flexmonster Software after September 30, 2024, constitutes Licensee’s acceptance of the terms and conditions of the modified version of Flexmonster Software License Agreement. If Licensee does not agree to any of these terms and conditions, they must cease using Flexmonster Software and must not download, install, use, access, or continue to access Flexmonster Software. By continuing to use Flexmonster Software or renewing the license under License Model or Maintenance after the effective date of any modifications to Agreement, Licensee accepts and agrees to be bound by the terms and conditions of the modified Agreement.
Flexmonster Data Server can be embedded into your project as a DLL — a separate flexible module. You can download the Data Server DLL from NuGet.
The advantages of using the Data Server as a DLL are the following:
For a quick start with Flexmonster Data Server as a DLL, have a look at the sample .NET Core application with the Data Server embedded.
To embed Flexmonster Data Server into an existing or new .NET Core application, follow this guide: Referencing the Data Server as a DLL.
Flexmonster.DataServer.Core.dll
is a flexible solution that can be used in many ways. To demonstrate how the Data Server can be used, we created an ASP.NET Core application with a custom server using Flexmonster.DataServer.Core.dll.
The application repository contains a solution file DemoDataServerCore.sln
, so the sample can be opened and launched with Visual Studio.
Step 1.1. To get our sample project, download it as ZIP or clone it with the following commands:
git clone https://github.com/flexmonster/flexmonster-data-server-dll
cd flexmonster-data-server-dll
Step 1.2. Then, start the sample application with the following commands:
cd DemoDataServerCore
dotnet restore
dotnet run
To see the result, open http://localhost:5000/
in the browser.
Our sample project is based on an ASP .NET Core Web template project, so most of the project’s files are the same as in the template.
Now take a look at the files in the DemoDataServerCore/ folder specific to our sample project:
Controllers/
— API controllers used for handling web API requests:
FlexmonsterAPIController.cs
)CustomParser.cs
— a custom parser that demonstrates how to connect to your own data source.Startup.cs
— configures services and the app's request pipeline.appsettings.json
— contains the project's settings, including configurations for the Data Server as a DLL.Views/
— HTML templates with embedded Razor markup:
Home/index.cshtml
)wwwroot/
— the app's Web Root folder containing the project's public static assets:
js/site.js
)With Flexmonster.DataServer.Core.dll
, you can restrict access to the data to certain roles using the server filter. On the http://localhost:5000/
page, there is a pivot table and a dropdown menu. Select a role from the menu to see how it affects the data shown in Flexmonster Pivot.
To see how the server-side filtering is implemented in the sample server, refer to the FlexmonsterAPIController.cs file.
To learn more about the server filter, read through the Implementing the server filter guide.
This custom server also demonstrates how to load data from a custom data source. To work with a custom data source, implement an appropriate parser for the data. An example of a custom parser is shown in this CustomParser.cs file.
In the sample project, the data shown on the grid is from the custom parser, but "csv"
, "json"
, and "database"
parser types can also be used. To make the server use multiple parsers, add a new object to the DataSources
property in the appsettings.json
file. For example:
"DataSources": [ { "Type": "custom", "Indexes": { "custom-index": null } }, { "Type": "json", "Indexes": { "json-index": { "Path": "data.json" } } ],
To learn more about the custom parser, see the Implementing the custom parser guide.
You may be interested in the following articles: