JNPF Ultimate Source Code, JNPF3.4.7 Marco de desarrollo rápido Documento de implementación de código fuente Instrucciones de inicio y código fuente compartido

Funciones principales de la plataforma

  • Centro de autenticación de seguridad unificado:  un centro de servicio de autenticación unificado basado en Spring Security, y JWT, y el inicio de sesión se basa en el proceso de inicio de sesión estándar de Spring Security. Spring OAuth2La autorización del cliente admite cuatro modos de autorización de oauth2.0: modo de código de autorización, modo simplificado, modo de contraseña y modo de cliente. El proceso de autorización es coherente con el proceso estándar de oauth2. El terminal web utiliza el modo simplificado (implícito) para iniciar sesión en el sistema, y ​​el terminal móvil puede utilizar el modo de contraseña (contraseña) para iniciar sesión en el sistema. Al mismo tiempo, también admite Spring Socialmétodos de inicio de sesión basados ​​en cuentas de terceros, como WeChat/QQ, Alipay, Weibo, etc., y proporciona un modo de expansión para admitir más canales de terceros.

  • Sistema de autoridad basado en RBAC: las funciones de este módulo funcional se utilizan para mantener la información de la estructura organizativa y la información de los empleados de la empresa. Incluye principalmente funciones como información organizativa, definición de empleados, estructura organizativa, libreta de direcciones corporativa y sincronización de la libreta de direcciones. Los usuarios pueden mantener la información de la estructura organizativa de la empresa (organización/departamento/función/posición) y la información del usuario en este módulo funcional, y también pueden importar información de la estructura organizativa al sistema con un solo clic a través de aplicaciones de terceros (DingTalk/Enterprise WeChat). También puede utilizar la función de importación de la estructura organizativa y la información de los empleados para importar datos al sistema.

private byte[] _data;

[GlobalSetup]
public void Setup()
{
    _data = new byte[64];
    RandomNumberGenerator.Fill(_data);
}

[Benchmark]
public string ToHexString() => Convert.ToHexString(_data);

  • Generador de código bajo: basado en Mybatis-plus-generatorun generador de código personalizado, mediante la configuración de las anotaciones de los campos de la base de datos, los códigos del front-end WEB (vue), terminal móvil (vue), back-end (controlador, entidad, mapperxml, servicio ) y otros códigos se pueden generar en línea, lo que reduce en gran medida la dificultad del desarrollo y reduce las tareas de desarrollo en más del 70%;

  • Desarrollo de código cero: equipado con una gran cantidad de controles reutilizables, a través de los elementos de la interfaz de operación, controles de arrastrar y soltar para generar automáticamente aplicaciones visuales;

  • Flujo de trabajo: el servicio de flujo de trabajo es un conjunto de soluciones de flujo de trabajo desarrollado por JNPF, que incluye dos partes: formulario de proceso y motor de proceso. El formulario de proceso está diseñado visualmente y es altamente configurable. Adopta un diseño de plantilla de formulario estructurado y un diseño de modo de análisis centralizado. Adaptar a las necesidades de varios escenarios de las condiciones nacionales de China, configuración WYSIWYG, código bajo, alta configuración;

  • Diseño de portales: las empresas configuran e implementan rápidamente portales personalizados simplemente arrastrando y soltando componentes en el lienzo;

  • Diseño de pantalla grande: diseñe páginas libremente, arrastre y suelte controles en la página, configure el contenido y el enlace de datos para diferentes controles, y realice el desarrollo de páginas visuales en pantalla grande con lo que ve es lo que obtiene;

  • Diseño de informes: no es necesario desarrollar ningún código, los usuarios solo necesitan configurar una serie de parámetros en la interfaz para realizar la configuración de varios tipos de informes, representación en línea del contenido del informe, exportación de informes, impresión y otras funciones.

private string _str;

[GlobalSetup]
public async Task Setup()
{
    using var hc = new HttpClient();
    _str = await hc.GetStringAsync("https://www.gutenberg.org/cache/epub/3200/pg3200.txt"); // The Entire Project Gutenberg Works of Mark Twain
}

[Benchmark]
public string Yell() => _str.Replace(".", "!");

[Benchmark]
public string ConcatLines() => _str.Replace("\n", "");

[Benchmark]
public string NormalizeEndings() => _str.Replace("\r\n", "\n");

soporte del sistema operativo

  • Entorno de desarrollo del sistema operativo de escritorio

    • ventanas 7+
    • Mac OS
    • Ubuntu Desktop (versión de escritorio)
    • Deepin (Deepin)
    • Edición de escritorio (profesional) de Tongxin UOS
    • Ganar la edición de escritorio de Kylin
    • Versión de escritorio de Zhongke Fangde
private string _text;

[Params("HTML", "URL", "JSON")]
public string Encoder { get; set; }

private TextEncoder _encoder;

[GlobalSetup]
public async Task Setup()
{
    using (var hc = new HttpClient())
        _text = await hc.GetStringAsync("https://www.gutenberg.org/cache/epub/3200/pg3200.txt");

    _encoder = Encoder switch
    {
        "HTML" => HtmlEncoder.Default,
        "URL" => UrlEncoder.Default,
        _ => JavaScriptEncoder.Default,
    };
}

[Benchmark]
public string Encode() => _encoder.Encode(_text);
  • Prueba del sistema operativo del servidor, entorno de producción.

    • CentOS 7+
    • Sombrero rojo 7+
    • Servidor Ubuntu
    • Versión del servidor Unicom UOS
    • Ganar la licitación para Kylin Server Edition
    • Versión del servidor Zhongke Fangde
private int Major = 6, Minor = 0, Build = 100, Revision = 21380;

[Benchmark(Baseline = true)]
public string Old()
{
    object[] array = new object[4];
    array[0] = Major;
    array[1] = Minor;
    array[2] = Build;
    array[3] = Revision;
    return string.Format("{0}.{1}.{2}.{3}", array);
}

[Benchmark]
public string New()
{
    var h = new DefaultInterpolatedStringHandler(3, 4);
    h.AppendFormatted(Major);
    h.AppendLiteral(".");
    h.AppendFormatted(Minor);
    h.AppendLiteral(".");
    h.AppendFormatted(Build);
    h.AppendLiteral(".");
    h.AppendFormatted(Revision);
    return h.ToStringAndClear();
}

Supongo que te gusta

Origin blog.csdn.net/ohpppp/article/details/130852143
Recomendado
Clasificación