> 技术文档 > .NET/JAVA集成GoView低代码可视化大屏完整案例详解【.NET篇】

.NET/JAVA集成GoView低代码可视化大屏完整案例详解【.NET篇】


文章目录

  • 一、GoView简介
  • 二、.NET集成GoView方案
  • 三、集成步骤详解
    • 1. 环境准备
    • 2. 获取并构建GoView
    • 3. 创建.NET项目
    • 5. 修改.NET路由配置
    • 6. 配置API接口
    • 7. 修改GoView配置
  • 四、进阶集成方案
    • 1. 身份验证集成
    • 2. 动态主题切换
    • 3. 数据缓存优化
  • 五、常见问题解决
    • 1.跨域问题:
    • 2. 静态文件404错误:
    • 3. API请求路径问题:
    • 4. 性能优化:
  • 六、总结

.NET/JAVA集成GoView低代码可视化大屏完整案例详解【.NET篇】

一、GoView简介

GoView 是一款基于 Vue3.x 构建的低代码数据可视化开发平台,它允许开发者通过简单的配置快速构建各种数据可视化大屏。

  • 官网文档:https://mtruning.club/

  • 纯前端 Demo 地址:https://vue.mtruning.club/

  • 带后端 Demo 地址:https://demo.mtruning.club/

  • GoView 源码地址:https://gitee.com/MTrun/go-view

  • JAVA https://gitee.com/MTrun/go-view-serve (当前使用)

  • .NET https://gitee.com/sun_xiang_yu/go-view-dotnet

GoView 具有以下特点:

  • 低代码开发:通过拖拽组件和配置属性即可完成大屏开发
  • 丰富的组件库:内置多种图表、地图、表格等常用组件
  • 响应式设计:适配不同屏幕尺寸
  • 数据驱动:支持动态数据绑定和实时更新
  • 主题定制:可自定义主题颜色和样式

GoView 特别适合企业级数据可视化需求,如运营监控大屏、数据分析看板、指挥中心大屏等场景。

二、.NET集成GoView方案

.NET 项目中集成 GoView 通常有两种方式:

  1. 前后端分离:.NET作为后端API服务,GoView作为独立前端项目
  2. 嵌入式集成:将GoView打包后嵌入到.NET MVC或Razor Pages中

本文将重点介绍第二种方式,实现GoView与.NET的无缝集成。

三、集成步骤详解

1. 环境准备

  • .NET 6+ 开发环境
  • Node.js 环境(用于构建GoView前端)
  • GoView源码(可从GitHub获取)

2. 获取并构建GoView

# 克隆GoView仓库git clone https://gitee.com/dromara/go-view.git# 进入项目目录cd go-view# 安装依赖npm install# 构建生产版本npm run build

构建完成后,会在项目目录下生成dist文件夹,包含所有静态资源。

3. 创建.NET项目

dotnet new webapp -n GoViewDemocd GoViewDemo
  1. 集成GoView静态资源
    将GoView的 dist 文件夹内容复制到.NET项目的 wwwroot 目录下:
wwwroot/ ├─ css/ ├─ js/ ├─ img/ ├─ favicon.ico └─ index.html

5. 修改.NET路由配置

Program.cs 中添加静态文件服务和重定向:

var builder = WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddRazorPages();var app = builder.Build();// Configure the HTTP request pipeline.if (!app.Environment.IsDevelopment()){ app.UseExceptionHandler(\"/Error\"); app.UseHsts();}app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();app.UseAuthorization();// 添加GoView路由app.MapGet(\"/\", () => Results.Redirect(\"/index.html\"));app.MapRazorPages();app.Run();

6. 配置API接口

在.NET中创建API控制器用于提供GoView所需数据:

// Controllers/GoViewController.csusing Microsoft.AspNetCore.Mvc;namespace GoViewDemo.Controllers;[ApiController][Route(\"api/[controller]\")]public class GoViewController : ControllerBase{ [HttpGet(\"chartData\")] public IActionResult GetChartData() { var data = new { categories = new[] { \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\" }, series = new[] { new { name = \"邮件营销\", data = new[] { 120, 132, 101, 134, 90, 230, 210 } }, new { name = \"联盟广告\", data = new[] { 220, 182, 191, 234, 290, 330, 310 } } } }; return Ok(data); }}

7. 修改GoView配置

编辑 wwwroot/js/app.*.js 文件,修改API请求地址:

axios.defaults.baseURL = \'/api\';8. 运行项目bashdotnet run

访问 https://localhost:5001 即可看到集成的GoView大屏。

四、进阶集成方案

1. 身份验证集成

在.NET中添加JWT认证,并在GoView中配置请求拦截器:

// Program.csbuilder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = builder.Configuration[\"Jwt:Issuer\"], ValidAudience = builder.Configuration[\"Jwt:Audience\"], IssuerSigningKey = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(builder.Configuration[\"Jwt:Key\"])) }; });

在GoView中添加请求拦截器:

// 在main.js或axios配置文件中axios.interceptors.request.use(config => { const token = localStorage.getItem(\'token\'); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config;}, error => { return Promise.reject(error);});

2. 动态主题切换

在.NET中创建主题API:

[HttpGet(\"themes\")]public IActionResult GetThemes(){ var themes = new[] { new { id = \"default\", name = \"默认主题\" }, new { id = \"dark\", name = \"暗黑主题\" }, new { id = \"light\", name = \"明亮主题\" } }; return Ok(themes);}[HttpPost(\"setTheme/{themeId}\")]public IActionResult SetTheme(string themeId){ // 这里可以实现主题切换逻辑 return Ok(new { message = $\"主题已切换为{themeId}\" });}

在GoView中添加主题切换组件并调用API。

3. 数据缓存优化

使用.NET的 MemoryCache 优化数据查询:

[HttpGet(\"cachedData\")]public async Task<IActionResult> GetCachedData([FromServices] IMemoryCache cache){ const string cacheKey = \"chart_data\"; if (!cache.TryGetValue(cacheKey, out var data)) { // 模拟从数据库获取数据 data = await FetchDataFromDatabase(); // 设置缓存选项 var cacheOptions = new MemoryCacheEntryOptions() .SetSlidingExpiration(TimeSpan.FromMinutes(5)); cache.Set(cacheKey, data, cacheOptions); } return Ok(data);}

五、常见问题解决

1.跨域问题:

在开发环境中配置CORS:

builder.Services.AddCors(options =>{ options.AddPolicy(\"AllowAll\", builder => { builder.AllowAnyOrigin()  .AllowAnyMethod()  .AllowAnyHeader(); });});app.UseCors(\"AllowAll\");

2. 静态文件404错误:

  • 确保 UseStaticFiles 在中间件管道中的正确位置
  • 检查文件路径和大小写是否正确

3. API请求路径问题:

  • 确保 GoView 中配置的 API 路径与 .NET 路由匹配
  • 使用相对路径而不是绝对路径

4. 性能优化:

启用响应压缩

builder.Services.AddResponseCompression(options =>{ options.EnableForHttps = true;});app.UseResponseCompression();

六、总结

通过本文的介绍,我们了解了如何在.NET项目中完整集成GoView数据可视化平台。这种集成方式既保留了GoView强大的可视化能力,又可以利用.NET的稳定性和安全性构建企业级应用。关键点包括:

  1. 正确构建和部署GoView静态资源
  2. 合理设计API接口满足数据需求
  3. 处理身份验证和安全问题
  4. 优化性能和用户体验

这种集成方案特别适合需要将数据可视化功能嵌入到现有.NET应用中的场景,如企业内部管理系统、数据监控平台等。开发者可以根据实际需求进一步扩展和定制,构建更加强大和个性化的数据可视化解决方案。