GeneXus开发平台

GeneXus是一个敏捷的开发平台,使您的公司轻松应对技术的发展。GeneXus极大的简化了软件程序的开发过程,能自动生成从数据库到代码、前端到后端、服务器端到客户端服务的所有内容。是第一个真正实现100%自动生产的企业级低代码开发平台。

GeneXus会自动生成具有多种体验的应用程序:用于移动和智能设备的本地应用程序,Watch,Apple TV,响应式和渐进式Web应用程序,甚至包括聊天机器人和虚拟助手。GeneXus允许您将应用程序与现有和外部系统集成,开发新功能或创建全新系统。它还简化了来自众多平台的信息访问和处理,而无需修改当前系统。

GeneXus基于简单的应用场景快速配置非核心的流程应用,简单辅助应用的快速定制流程+表单驱动,大量的流程片段。针对企业复杂核心业务系统开发,支持软件全生命周期(Dev&Ops),基于“知识库”积累的增量开发,客户真正拥有的企业级应用。

private byte[] _data;

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

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

JNPF

JNPF快速开发平台是传统软件开发逐步优化和演变的产物,以其高效灵活稳定等特点逐步应用至企业各业务场景。传统的开发方法过于昂贵和僵化,无法为企业提供所需的高效和敏捷的开发流程,且交付周期长定制能力弱,难以应对不断变化的市场和客户期望。为提高软件开发效率,对代码进行模块化封装的低代码产品进入开发者视野。http://www.jnpfsoft.com/?from=CSDNm

private char[] _array = new char[128];
private char _c = 'c';

[Benchmark]
public void SpanFill() => _array.AsSpan().Fill(_c);

[Benchmark]
public void ArrayFill() => Array.Fill(_array, _c);
  • 采用前后端分离的模式:前端基于vue-element-admin框架定制开发;
  • 统一授权、认证:基于 Spring SecuritySpring OAuth2、JWT 实现的统一认证服务中心,登录基于 Spring Security 的标准登录流程。客户端授权支持 Oauth2.0的四种授权模式:授权码模式简化模式密码模式客户端模式,授权流程跟标准的Oauth2流程一致。web 端采用简化模式登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于Spring Social的三方账号登录方式,如微信/QQ微博等,并提供拓展模式,支持更多三方渠道。
  • 灵活的权限控制:基于RBAC权限管理,该功能模块下的功能用于维护企业的组织架构信息以及员工信息。主要包含了组织信息、组织架构、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中。
  • 支持多租户:简单配置即可转变多租户模式,实现数据隔离;
  • 支持多种数据库:支持MySQLSQL ServerOraclePostgreSQL达梦数据库人大金仓数据库等,您无需关心不同类型数据库间的语法区别;
  • 统一接口管理:基于Swagger拓展的API文档服务,主要提供在平台开发阶段的API文档管理和API调试等功能。
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");
using System.Text.Json;
namespace SerializeToFile
 {
     public class WeatherForecast
     {
         public DateTimeOffset Date { get; set; }
         public int TemperatureCelsius { get; set; }
         public string? Summary { get; set; }
     }    public class Program
     {
         public static void Main()
         {
             var weatherForecast = new WeatherForecast
             {
                 Date = DateTime.Parse("2019-08-01"),
                 TemperatureCelsius = 25,
                 Summary = "Hot"
             };            string fileName = "WeatherForecast.json"; 
             string jsonString = JsonSerializer.Serialize(weatherForecast);
             File.WriteAllText(fileName, jsonString);            Console.WriteLine(File.ReadAllText(fileName));
         }
     }
 }
 // output:
 //{"Date":"2019-08-01T00:00:00-07:00","TemperatureCelsius":25,"Summary":"Hot"}
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);