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

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

文章目录


在这里插入图片描述

一、GoView简介

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

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 # 安装依赖npminstall# 构建生产版本npm run build 

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

3. 创建.NET项目

dotnet new webapp -n GoViewDemo cd 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.csusingMicrosoft.AspNetCore.Mvc;namespaceGoViewDemo.Controllers;[ApiController][Route("api/[controller]")]publicclassGoViewController:ControllerBase{[HttpGet("chartData")]publicIActionResultGetChartData(){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}}}};returnOk(data);}}

7. 修改GoView配置

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

axios.defaults.baseURL ='/api';8. 运行项目 bash dotnet run 

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

四、进阶集成方案

1. 身份验证集成

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

// Program.cs builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>{ options.TokenValidationParameters =newTokenValidationParameters{ ValidateIssuer =true, ValidateAudience =true, ValidateLifetime =true, ValidateIssuerSigningKey =true, ValidIssuer = builder.Configuration["Jwt:Issuer"], ValidAudience = builder.Configuration["Jwt:Audience"], IssuerSigningKey =newSymmetricSecurityKey( 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")]publicIActionResultGetThemes(){var themes =new[]{new{ id ="default", name ="默认主题"},new{ id ="dark", name ="暗黑主题"},new{ id ="light", name ="明亮主题"}};returnOk(themes);}[HttpPost("setTheme/{themeId}")]publicIActionResultSetTheme(string themeId){// 这里可以实现主题切换逻辑returnOk(new{ message =$"主题已切换为{themeId}"});}

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

3. 数据缓存优化

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

[HttpGet("cachedData")]publicasyncTask<IActionResult>GetCachedData([FromServices]IMemoryCache cache){conststring cacheKey ="chart_data";if(!cache.TryGetValue(cacheKey,outvar data)){// 模拟从数据库获取数据 data =awaitFetchDataFromDatabase();// 设置缓存选项var cacheOptions =newMemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromMinutes(5)); cache.Set(cacheKey, data, cacheOptions);}returnOk(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应用中的场景,如企业内部管理系统、数据监控平台等。开发者可以根据实际需求进一步扩展和定制,构建更加强大和个性化的数据可视化解决方案。

Read more

NDVI时序数据:从原理到WebGIS应用的完整指南

NDVI时序数据:从原理到WebGIS应用的完整指南

主页: yougis.com.cn 博文: blog.yougis.com.cn 工具:** yougis.com.cn/tool/home 关注WX号 YouGIS顽石 获取更多精彩内容 点击使用 NDVI植被指数数据查看器 关注公众号 YouGIS顽石(yougis),回复任意内容,可获取2000年-2024年NDVI数据 摘要 NDVI(Normalized Difference Vegetation Index,归一化植被指数)是遥感领域最重要的植被监测指标之一。本文将从NDVI的基本原理出发,深入探讨时序NDVI数据在植被监测、生态研究、农业生产等领域的重要应用,并介绍如何通过GeoServer发布NDVI时序服务,以及WMS和WCS两种服务方式在WebGIS应用中的区别与优势。 关键词 NDVI、时序数据、遥感、GeoServer、WMS、WCS、WebGIS、植被监测 一、什么是NDVI?

AIGlasses_for_navigation开源模型生态:支持ONNX导出与WebAssembly前端部署

AIGlasses_for_navigation开源模型生态:支持ONNX导出与WebAssembly前端部署 桦漫AIGC集成开发 | 微信: henryhan1117 1. 项目概述 AIGlasses_for_navigation是一个专为智能导航辅助设计的开源计算机视觉项目,最初作为AI智能盲人眼镜导航系统的核心组件开发。该项目基于先进的YOLO分割模型,实现了高效的视频目标分割功能,能够实时处理图片和视频中的特定目标检测与分割任务。 这个项目的独特之处在于其完整的开源生态支持:不仅提供了即用型的Web应用,还支持模型导出为ONNX格式,并且可以通过WebAssembly技术在前端浏览器中直接运行,真正实现了"一次训练,多处部署"的现代化AI应用理念。 2. 核心功能特性 2.1 实时目标检测与分割 系统采用优化的YOLO分割架构,能够在毫秒级别完成图像分析,准确识别并分割出关键导航要素。无论是静态图片还是动态视频流,都能保持稳定的处理性能。 2.2 多模型支持 项目内置了三个经过专门训练的模型,每个模型都针对特定场景进行了优化: 盲道分割模型 - 专门

Telegram bot & Mini-App开发实践---Telegram简单介绍与初始化小程序获取window.Telegram.WebApp对象并解析

Telegram bot & Mini-App开发实践---Telegram简单介绍与初始化小程序获取window.Telegram.WebApp对象并解析

➡️【好看的灵魂千篇一律,有趣的鲲志一百六七!】- 欢迎认识我~~作者:鲲志说(公众号、B站同名,视频号:鲲志说996)科技博主:极星会 星辉大使后端研发:java、go、python、TS,前电商、现web3主理人:COC杭州开发者社区主理人 、周周黑客松杭州主理人、AI爱好者: AI电影共创社杭州核心成员、阿里蚂蚁校友会技术AI分会副秘书长博客专家:阿里云专家博主;ZEEKLOG博客专家、后端领域新星创作者、内容合伙人 今天是2024年10月24日,又是一年1024程序员节。和往常一样,平淡的度过了一天,又和往常不一样,收到了人生第一束花花🌹值得纪念。就像两年前毅然决然的从电商行业进入一个零基础零认知的web3世界一样,都有第一次的刻骨铭心,选择了就勇敢的做下去,开花结果是期待,但过程也十分重要。也像2016年下半年第一次注册ZEEKLOG去检索问题的解决方案,经过多番查阅实践,终于解决;更像2017年9月27日我的第一篇ZEEKLOG博客文章潦草问世,当初不追求得到什么,只把ZEEKLOG文章当作是学习笔记,知识总结,一路写写停停,不知不觉间也悄然过去了7个年头,断然想不到博

30天CTF入门:Web+Misc速成计划

30 天网络安全入门学习计划(Web+Misc 方向,适配 CTF 刷题) 适配零基础入门,全程围绕 Burp Suite 实操 + CTF 基础刷题,聚焦 Web 安全(核心)+ 杂项(Misc)入门,使用平台为CTFHub(主打)+Bugku CTF(辅)+ 攻防世界(进阶),每天任务控制在1.5-2 小时,分基础打牢(1-10 天)、漏洞进阶 + Misc 入门(11-20 天)、综合刷题 + 能力提升(21-30 天) 三个阶段,核心任务必做、拓展任务可选,贴合学生党时间安排。 通用要求 1.