Workflow_Workflow Platform JNPF3.4.7 Ultimate Enterprise Edition Development Framework

 JNPF is already a mature rapid development framework, and it is constantly being updated; JNPF rapid development can improve the competitiveness of enterprises, including reducing development costs, improving product quality, improving customer satisfaction, and controlling development progress.

private MethodInfo _noAttributes = typeof(C).GetMethod("NoAttributes");
private PropertyInfo _hasAttributes = typeof(C).GetProperty("HasAttributes");

[Benchmark]
public IList<CustomAttributeData> GetCustomAttributesData() => _noAttributes.GetCustomAttributesData();

[Benchmark]
public bool IsDefined() => Attribute.IsDefined(_hasAttributes, typeof(ObsoleteAttribute));

[Benchmark]
public Attribute[] GetCustomAttributes() => Attribute.GetCustomAttributes(_hasAttributes, inherit: true);

class A { }

class C : A
{
    public void NoAttributes() { }
    [Obsolete]
    public bool HasAttributes { get; set; }
}

Big screen design introduction:

The canvas adopts a grid system, which automatically absorbs the layout of each control, so that it is uniform;

A large number of visual control effects, zero-coding drag-and-drop operation, support for custom styles, and custom databases;

Drag-and-drop free layout, a variety of charts, controls, tables and other components can be placed by you, and you can place them however you want;

Dozens of visual chart examples meet various reading preferences and show you comprehensive data visualization reports;

Break the problem of isolated islands of information, and show you the changes of data in real time, allowing you to check the company's business situation at any time;

Built-in a large number of professional and cool visual dynamic components to meet your dynamic needs for various data scenarios.

<h1>Hashing</h1>

<p>Time: @_time</p>

<button class="btn btn-primary" @onclick="Hash">Click me</button>

@code {
    private const string Sonnet18 =
@"Shall I compare thee to a summer’s day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summer’s lease hath all too short a date;
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm'd;
And every fair from fair sometime declines,
By chance or nature’s changing course untrimm'd;
But thy eternal summer shall not fade,
Nor lose possession of that fair thou ow’st;
Nor shall death brag thou wander’st in his shade,
When in eternal lines to time thou grow’st:
So long as men can breathe or eyes can see,
So long lives this, and this gives life to thee.";

    private TimeSpan _time;

    private void Hash()
    {
        byte[] bytes = Encoding.UTF8.GetBytes(Sonnet18);
        var sw = Stopwatch.StartNew();
        for (int i = 0; i < 2000; i++)
        {
            _ = SHA256.HashData(bytes);
        }
        _time = sw.Elapsed;
    }
}

The platform design is flexible, scalable, portable, and can handle high concurrency requirements. At the same time, it takes into account localization, private cloud, and public cloud deployment, and supports SaaS model applications.

  • Adopt the mode of front-end and back-end separation: the front-end is vue-element-admincustomized and developed based on the framework, and the back-end adopts Spring Cloud Alibabathe family bucket;

  • Service registration & discovery and invocation: based on Nacosservice registration and discovery, use Open Feign/ Dubbo RPCto realize service intermodulation;

  • Unified authorization authentication: based on  the unified authentication service center implemented by Spring Security, , and JWT, the login is based on the standard login process of spring security. Spring OAuth2Client 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, etc.

  • Business fuse: use Sentinelmultiple dimensions to protect the stability of services, such as business flow control, fuse degradation, and system load;

  • Application monitoring: use Spring Boot Adminto monitor the running status of each service;

  • Link call monitoring: Based on SkyWalkingthe full link performance monitoring as a project, various indicators are displayed from the overall dimension to the local dimension, and the performance information of all call chains across applications is displayed in a centralized manner, which can easily measure the overall and local performance and find faults The source of production can greatly shorten the troubleshooting time in production;

  • Flexible authority control: Based on RBACauthority management, the functions under this functional module are used to maintain the enterprise's organizational structure information and employee information. It mainly includes functions such as organizational structure management, department management, hierarchical administrators, role management, position management, 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;

  • Support multi-tenancy: simple configuration can be converted to multi-tenant mode to achieve data isolation;

  • Support multiple databases: support MySQL, Oracle, SQL Server, 达梦数据库, 人大金仓数据库, PostgreSQL, you don’t need to care about the syntax differences between different types of databases;

  • Unified interface management: Based on Swaggerthe expanded API document service, it mainly provides functions such as API document management and API debugging in the platform development stage.

Guess you like

Origin blog.csdn.net/ohpppp/article/details/130872518