NPF快速开发框架是一个可复用的设计构件,使用JNPF的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发;
简单来讲,软件开发框架可以理解为我们盖楼房时,用梁+柱子+承重墙做起来的钢筋混凝土结构框架。而实现的软件功能,也就像在这个快速开发框架结构中所要实现的不同类型、功能的房子,比如停车场、商场、酒店等;
JNPF已经是一套成熟的快速开发框架,并在不断升级更新;
JNPF快速开发能提高企业的竞争能力,包括降低开发成本、提高产品质量、改善客户满意程度、控制开发进度等。
#if NETCOREAPP3_0_OR_GREATER
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
#endif
[DisassemblyDiagnoser(maxDepth: 1)] // change to 0 for just the [Benchmark] method
[MemoryDiagnoser(displayGenColumns: false)]
public class Program
{
public static void Main(string[] args) =>
BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, DefaultConfig.Instance
//.WithSummaryStyle(new SummaryStyle(CultureInfo.InvariantCulture, printUnitsInHeader: false, SizeUnit.B, TimeUnit.Microsecond))
);
// BENCHMARKS GO HERE
}
底层架构
-
以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。
-
数据库自动创建,第一次运行程序,应用会自动初始化建表、执行初始化数据。
-
权限授权模块灵活,支持 OAuth2.0 单点登录,简单 yml 配置即可,不用再写很多的 xml 配置文件。
-
支持多数据源,简单 xml 配置即可实现,为了安全性,不提供界面维护数据源。
-
支持分布式事务(TCC、消息最终一致性,混合使用、单独使用都支持),提供监控界面、人工补偿操作。
-
缓存监控,J2Cache 二级缓存,支持快速切换为 Redis 缓存。
-
服务器监控,查看 CPU,内存,JVM,磁盘信息等。方便运维人员分析系统负载情况。
-
支持 Spring Cloud 架构,分布式,微服务,最小化内核,统一配置中心,统一授权认证中心。
-
丰富的内置功能:用户权限、数据权限、系统管理、文件系统。
[Benchmark(Baseline = true)]
public int NewNext() => new Random().Next();
[Benchmark]
public int SharedNext() => Random.Shared.Next();
private byte[] _buffer = new byte[10_000_000];
private Random _random = new Random();
[Benchmark]
public Random Ctor() => new Random();
[Benchmark]
public int Next() => _random.Next();
[Benchmark]
public int NextMax() => _random.Next(64);
[Benchmark]
public int NextMinMax() => _random.Next(0, 64);
[Benchmark]
public double NextDouble() => _random.NextDouble();
[Benchmark]
public void NextBytes_Array() => _random.NextBytes(_buffer);
[Benchmark]
public void NextBytes_Span() => _random.NextBytes((Span<byte>)_buffer);
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics;
using System.Diagnostics.Tracing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Sockets;
using System.Net.WebSockets;
using System.Numerics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.IO.Compression;
#if NETCOREAPP3_0_OR_GREATER