DevExpress使用教程:创建一个Angular Dashboard应用(Part 2)
DevExpress Universal拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。
重要提示:使用本教程需要熟悉React的基本概念和模式,要查看这些概念,请访问angular.io 。
Step 2. 创建服务器应用程序
创建一个自定义服务器应用程序来显示您的数据,请按以下步骤操作:
1. 在Visual Studio中,创建一个ASP.NET Core 3.1应用程序,选择 Empty template。
2. 创建将存储仪表板的App_Data / Dashboards文件夹。
3. 用以下代码替换Startup.cs文件的内容:
using DevExpress.AspNetCore; using DevExpress.DashboardAspNetCore; using DevExpress.DashboardCommon; using DevExpress.DashboardWeb; using DevExpress.DataAccess.Json; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using System; namespace AspNetCoreDashboardBackend { public class Startup { public Startup(IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { Configuration = configuration; FileProvider = hostingEnvironment.ContentRootFileProvider; } public IConfiguration Configuration { get; } public IFileProvider FileProvider { get; } public void ConfigureServices(IServiceCollection services) { services // Configures CORS policies. .AddCors(options => { options.AddPolicy("CorsPolicy", builder => { builder.AllowAnyOrigin(); builder.AllowAnyMethod(); builder.WithHeaders("Content-Type"); }); }) // Adds the DevExpress middleware. .AddDevExpressControls() // Adds controllers. .AddControllers() // Configures the dashboard backend. .AddDefaultDashboardController(configurator => { configurator.SetDashboardStorage(new DashboardFileStorage(FileProvider.GetFileInfo("App_Data/Dashboards").PhysicalPath)); configurator.SetDataSourceStorage(CreateDataSourceStorage()); configurator.ConfigureDataConnection += Configurator_ConfigureDataConnection; }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // Registers the DevExpress middleware. app.UseDevExpressControls(); // Registers routing. app.UseRouting(); // Registers CORS policies. app.UseCors("CorsPolicy"); app.UseEndpoints(endpoints => { // Maps the dashboard route. EndpointRouteBuilderExtension.MapDashboardRoute(endpoints, "api/dashboard"); // Requires CORS policies. endpoints.MapControllers().RequireCors("CorsPolicy"); }); } public DataSourceInMemoryStorage CreateDataSourceStorage() { DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage(); DashboardJsonDataSource jsonDataSource = new DashboardJsonDataSource("Customers"); jsonDataSource.RootElement = "Customers"; dataSourceStorage.RegisterDataSource("jsonDataSourceSupport", jsonDataSource.SaveToXml()); return dataSourceStorage; } private void Configurator_ConfigureDataConnection(object sender, ConfigureDataConnectionWebEventArgs e) { if (e.DataSourceName.Contains("Customers")) { Uri fileUri = new Uri("https://raw.githubusercontent.com/DevExpress-Examples/DataSources/master/JSON/customers.json"); JsonSourceConnectionParameters jsonParams = new JsonSourceConnectionParameters(); jsonParams.JsonSource = new UriJsonSource(fileUri); e.ConnectionParameters = jsonParams; } } } }
4. 运行以下命令来启动服务器:
cmd
dotnet run
5. 要在客户端应用程序中使用此服务器,请跳转到app.component.html文件。 将以下URL设置为端点:http:// localhost:5000 / api / dashboard
html
<dx-dashboard-control style="display: block;width:100%;height:800px;" endpoint='http://localhost:5000/api/dashboard'> </dx-dashboard-control>
Step 3. 切换到Viewer模式
创建并保存仪表板后,您可以将仪表板设计器切换到Viewer模式。
1. 打开app.component.html文件,并将 workingMode属性设置为ViewerOnly:
html
<dx-dashboard-control style="display: block;width:100%;height:800px;" endpoint='http://localhost:5000/api/dashboard' workingMode='ViewerOnly'> </dx-dashboard-control>
DevExpress技术交流群2:775869749 欢迎一起进群讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2019-12-30 2020即将到来,DevExpress WPF界面开发还有哪些功能值得期待?