From January to October 2021, my country's software business revenue was 7,681.4 billion yuan, a year-on-year increase of 19.2%; from January to September 2021, the software industry accounted for 8..71% of GDP, and the software industry is increasingly driving the national economy Obviously, in the future, my country's software industry will continue to maintain an important position in the national economy and continue to make progress.
On the whole, the overall development of my country's software industry is good, and the impact of the new crown epidemic is relatively small. In 2021, under the background of the improvement of the global epidemic situation, my country's software industry will continue to develop at a high growth rate.
[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 adopts the J2EE technology system and is a rapid development platform based on the Spring Boot framework package. It includes a variety of out-of-the-box functions, including RBAC functions, Xss anti-cross-site attacks, automatic generation of front-end and back-end codes, and multiple storage systems. Multiple functions and modules such as multi-tenancy, support parallel development of multi-service systems, support parallel development of multiple services, flexible, scalable and portable platform design, can apply high concurrency requirements, and take into account localization, private cloud, public cloud deployment, Support SaaS mode application. The core technology adopts Spring Boot, Mybatis-Plus, MinIO and other main frameworks and middleware, and the front end is customized and developed based on the vue-element-admin framework. Provide strong support for enterprise service-oriented middle-end integration and digital middle-end transformation. http://www.jnpfsoft.com/?from=CSDNm
front-end application
jnpf-web: front-end main project, customized development based on vue-element-admin framework
jnpf-web-datascreen: front-end large screen project
jnpf-web-datareport: front-end report project
jnpf-web-tenant: front-end multi-tenant project
backend application
jnpf-java-boot: boot backend main project;
jnpf-datareport: report design service, through the configuration of the data set, the service of obtaining data by executing SQL to render flat reports and graphical reports;
jnpf-file-preview: Local file preview service, supporting doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar, picture, video, audio and other formats;
jnpf-tenant: Multi-tenant service, simple configuration can realize multi-tenant application in data isolation mode;
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; }

Platform Core Functions
Unified security authentication center: a unified authentication service center based on Spring Security, Spring OAuth2, and JWT, and log in to the standard login process based on spring security. Client authorization supports four authorization modes of oauth2.0: authorization code mode, simplified mode, password mode, and client mode. The authorization process is consistent with the standard oauth2 process. The web terminal uses the simplified mode (implicit) to log in to the system, and the mobile terminal can use the password mode (password) to log in to the system. At the same time, it also supports three-party account login methods based on Spring Social, such as WeChat/QQ, Alipay, Weibo, etc., and provides an expansion mode to support more three-party channels.
RBAC-based authority system: The functions under this functional module are used to maintain the organizational structure information and employee information of the enterprise. It mainly includes functions such as organizational information, employee definition, organizational structure, corporate address book, and address book synchronization. Users can maintain the company's organizational structure information (organization/department/role/position) and user information under this functional module, and can also import organizational structure information into the system with one click through third-party applications (DingTalk/Enterprise WeChat). You can also use the import function of organizational structure and employee information to import data into the system.
Low code generator: Based on Mybatis-plus-generator, a set of code generators are customized. By configuring the annotations of database fields, WEB front-end (vue), mobile terminal (vue), back-end (controller, entity, mapperxml) can be generated online , service) and other codes, which greatly reduce the difficulty of development and reduce development tasks by more than 70%;
Zero-code development: equipped with a large number of reusable controls, through the operation interface elements, drag and drop controls to automatically generate visual applications;
Workflow: Workflow service is a set of workflow solutions self-developed by JNPF, including two parts: process form and process engine. The process form is visually designed and highly configurable. It adopts structured form template design and centralized analysis mode design. . Adapt to the needs of various scenarios of China's national conditions, configuration WYSIWYG, low code, high configuration;
Portal design: Enterprises quickly configure and deploy personalized portals by simply dragging and dropping components onto the canvas;
Large-screen design: freely layout pages, drag and drop controls to the page, set content and data binding for different controls, and realize large-screen visual page development with what you see is what you get;
Report design: No need to develop any code, users only need to configure a series of parameters on the interface to realize the configuration of various types of reports, online rendering of report content, report export, printing and other functions.
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(); }
