通过JNPF开发信息化系统过往的案例可以得出这样的结论:企业要做好信息化管理,首先要具备信息化的能力,然后通过市面上信息化系统的二次开发框架减少前期的投入,而且有些框架具有低代码或无代码开发的特性,可以了解一下。
JNPF快速开发平台是一套成熟的快速开发框架, JNPF作为承重墙,强大支撑保障,提供所有操作系统的生长土壤,JNPF快速开发平台采用前后端分离技术、采用B/S架构开发,形成一站式开发多端(APP+PC)使用,繁荣的软件生态,为所有需要数字化转型的企业提供满足他们多样性需求的精确服务。
后端技术栈
- 主框架:Spring Cloud Alibaba + Spring Boot + Spring Framework
- 安全框架:Spring Cloud Security OAuth2+JWT
- 持久层框架:Mybatis-plus、Hibernate Validation、
- 数据库连接池:Alibaba Druid
- JSON序列化:Jackson&FastJSON
- 数据缓存:Redis
- 消息队列: RocketMQ
- API网关:Spring Cloud Gateway
- 服务注册&发现和配置中心: Nacos
- 服务监控:Spring Boot Admin
- 服务消费:OpenFeign/Dubbo RPC
- 日志收集:E(Elasticsearch)+L(Logstash)+K(Kibana)
- 负载均衡:Ribbon
- 服务熔断:Sentinel
- 项目构建:Maven
- 分布式事务:Seata
- 代码生成器:Mybatis-plus-generator
- 链路追踪:Skywalking
- 模板引擎:Velocity
- 即时通讯:spring-boot-starter-websocket
- AOP:spring-boot-starter-aop
- 文件服务:阿里云OSS、本地存储、七牛云kodo、腾讯cos、MinIO
using System.Text.Json;
namespace SerializeToFile
{
public class WeatherForecast
{
public DateTimeOffset Date { get; set; }
public int TemperatureCelsius { get; set; }
public string? Summary { get; set; }
}
public class Program
{
public static void Main()
{
var weatherForecast = new WeatherForecast
{
Date = DateTime.Parse("2019-08-01"),
TemperatureCelsius = 25,
Summary = "Hot"
};
string fileName = "WeatherForecast.json";
string jsonString = JsonSerializer.Serialize(weatherForecast);
File.WriteAllText(fileName, jsonString);
Console.WriteLine(File.ReadAllText(fileName));
}
}
}
// output:
//{"Date":"2019-08-01T00:00:00-07:00","TemperatureCelsius":25,"Summary":"Hot"}
前端技术栈
- Vue2 全家桶
- Element-ui
- axios
- sass
- echarts
- dayjs
[Benchmark]
public int GetLength()
{
ITuple t = (5, 6, 7);
Ignore(t);
return t.Length;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static void Ignore(object o) { }
; Program.GetLength()
push rsi
sub rsp,30
vzeroupper
vxorps xmm0,xmm0,xmm0
vmovdqu xmmword ptr [rsp+20],xmm0
mov dword ptr [rsp+20],5
mov dword ptr [rsp+24],6
mov dword ptr [rsp+28],7
mov rcx,offset MT_System.ValueTuple~3[[System.Int32, System.Private.CoreLib],[System.Int32, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]]
call CORINFO_HELP_NEWSFAST
mov rsi,rax
vmovdqu xmm0,xmmword ptr [rsp+20]
vmovdqu xmmword ptr [rsi+8],xmm0
mov rcx,rsi
call Program.Ignore(System.Object)
mov rcx,rsi
add rsp,30
pop rsi
jmp near ptr System.ValueTuple~3[[System.Int32, System.Private.CoreLib],[System.Int32, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]].System.Runtime.CompilerServices.ITuple.get_Length()
; Total bytes of code 92