2021年1-10月,我国软件业务收入76814亿元,同比增长19.2%;2021年1-9月,软件行业占GDP的比重增加至8..71%,软件行业对国民经济的驱动作用日益显著,未来我国软件行业将继续保持国民经济中的重要地位并持续进步。
综合来看,我国软件行业整体发展良好,受新冠疫情影响相对较小。2021年在全球疫情好转的背景下,我国软件行业更是以高增速继续发展。
[Benchmark]
public Task Pooling()
{
return Task.WhenAll(from i in Enumerable.Range(0, Concurrency)
select Task.Run(async delegate
{
for (int i = 0; i < Iters; i++)
await A().ConfigureAwait(false);
}));
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask A() => await B().ConfigureAwait(false);
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask B() => await C().ConfigureAwait(false);
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask C() => await D().ConfigureAwait(false);
[AsyncMethodBuilder(typeof(PoolingAsyncValueTaskMethodBuilder))]
static async ValueTask D() => await Task.Yield();
}

jnpf-java-boot采用J2EE技术体系,基于Spring Boot框架封装的快速开发平台,包含多种开箱即用功能,具备RBAC功能、Xss防跨站攻击、自动生成前后端代码、多种存储系统、多租户等等多个功能和模块,支持多业务系统并行开发, 支持多服务并行开发,平台设计灵活可扩展、可移植,可应用高并发需求,同时兼顾本地化、私有云、公有云部署,支持SaaS模式应用。核心技术采用Spring Boot,Mybatis-Plus、MinIO等主要框架和中间件,前端基于vue-element-admin框架定制开发。为企业服务化中台整合、数字化中台转型提供强力支撑。http://www.jnpfsoft.com/?from=优快云m
前端应用
jnpf-web:前端主项目,基于vue-element-admin框架定制开发
jnpf-web-datascreen:前端大屏项目
jnpf-web-datareport:前端报表项目
jnpf-web-tenant:前端多租户项目
后端应用
jnpf-java-boot:boot后端主项目;
jnpf-datareport:报表设计服务,通过配置数据集,通过执行SQL获取数据以渲染平面报表、图形报表的服务;
jnpf-file-preview:本地文件预览服务,支持doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等格式文件;
jnpf-tenant:多租户服务,简单配置可实现数据隔离模式多租户应用;
private SemaphoreSlim _sem = new SemaphoreSlim(0, 1);
private CancellationTokenSource _cts = new CancellationTokenSource();
[Benchmark]
public Task WithCancellationToken()
{
Task t = _sem.WaitAsync(_cts.Token);
_sem.Release();
return t;
}
[Benchmark]
public Task WithTimeout()
{
Task t = _sem.WaitAsync(TimeSpan.FromMinutes(1));
_sem.Release();
return t;
}
[Benchmark]
public Task WithCancellationTokenAndTimeout()
{
Task t = _sem.WaitAsync(TimeSpan.FromMinutes(1), _cts.Token);
_sem.Release();
return t;
}

平台核心功能
统一安全认证中心:基于 Spring Security、Spring OAuth2、JWT 实现的统一认证服务中心,登录基于 spring security 的标准登录流程。客户端授权支持 oauth2.0 的四种授权模式:授权码模式、简化模式、密码模式、客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于Spring Social的三方账号登录方式,如微信/QQ、支付宝、微博等,并提供拓展模式,支持更多三方渠道。
基于RBAC的权限体系:该功能模块下的功能用于维护企业的组织架构信息以及员工信息。主要包含了组织信息、员工定义、组织架构、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中。
低代码生成器:基于Mybatis-plus-generator自定义了一套代码生成器, 通过配置数据库字段的注释,可在线生成WEB前端(vue)、移动端(vue)、后端(controller、entity、mapperxml、service)等代码,极大减少开发难度,减少70%以上的开发任务;
零代码开发:配备大量可复用控件,通过操作界面元素,拖拽控件自动生成可视化应用;
工作流:工作流服务为JNPF自研的一套工作流方案,包含流程表单和流程引擎两大部分,流程表单可视化设计,可配置程度高,采用结构化的表单模版设计,集中解析模式的设计. 适应于中国国情的多种场景的需要、配置所见即所得、低代码、高配置;
门户设计:企业快速通过简单拖拽组件到画布上进行配置和部署设计个性化的门户;
大屏设计:自由布局页面,拖拽控件至页面中,针对不同的控件进行内容设值和数据绑定,所见即所得的实现大屏可视化页面开发;
报表设计:无需开发任何代码,用户只需在界面上配置一系列参数即可实现多种类型报表的配置、在线渲染报表内容、报表导出、打印等功能。
private const int Concurrency = 256;
private const int Iters = 100_000;
[Benchmark(Baseline = true)]
public Task NonPooling()
{
return Task.WhenAll(from i in Enumerable.Range(0, Concurrency)
select Task.Run(async delegate
{
for (int i = 0; i < Iters; i++)
await A().ConfigureAwait(false);
}));
static async ValueTask A() => await B().ConfigureAwait(false);
static async ValueTask B() => await C().ConfigureAwait(false);
static async ValueTask C() => await D().ConfigureAwait(false);
static async ValueTask D() => await Task.Yield();
}
