拖拽低代码平台框架-PaaS平台、零代码、JNPF 3.4.7新版本 aPaaS 源码

 PaaS平台,帮助企业快速搭建个性化业务应用。用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用,打通企业内部数据,也能够通过API和Webhook和其他系统对接。平台内的自动化工作流还可以实现审批、填写等控制流程和业务自动化,如果用户企业使用钉钉或企业微信,也可以将平台内搭建的应用直接对接到工作台上。

using System.Text.Json;

namespace SerializeBasic
{
    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 jsonString = JsonSerializer.Serialize(weatherForecast);

            Console.WriteLine(jsonString);
        }
    }
}
// output:
//{"Date":"2019-08-01T00:00:00-07:00","TemperatureCelsius":25,"Summary":"Hot"}


除了搭建企业应用以外,我们把运营了8年的动态、任务、日程、文件四个标准应用功能集成在了协作套件下,满足企业日常的分享沟通、任务协作、日程安排、文件管理的需求。

付费的企业用户我们提供了组织后台管理,支持设置企业管理和个性需求,例如,员工管理、离职交接、LOGO上传、二级域名设置等。

private static string s_contents = string.Concat(Enumerable.Range(0, 100_000).Select(i => (char)('a' + (i % 26))));
private static string s_path = Path.GetRandomFileName();

[Benchmark]
public Task WriteAllTextAsync() => File.WriteAllTextAsync(s_path, s_contents);

using System.Text.Json;

namespace SerializeToFileAsync
{
    public class WeatherForecast
    {
        public DateTimeOffset Date { get; set; }
        public int TemperatureCelsius { get; set; }
        public string? Summary { get; set; }
    }

    public class Program
    {
        public static async Task Main()
        {
            var weatherForecast = new WeatherForecast
            {
                Date = DateTime.Parse("2019-08-01"),
                TemperatureCelsius = 25,
                Summary = "Hot"
            };

            string fileName = "WeatherForecast.json";
            using FileStream createStream = File.Create(fileName);
            await JsonSerializer.SerializeAsync(createStream, weatherForecast);
            await createStream.DisposeAsync();

            Console.WriteLine(File.ReadAllText(fileName));
        }
    }
}
// output:
//{"Date":"2019-08-01T00:00:00-07:00","TemperatureCelsius":25,"Summary":"Hot"}

private byte[] _toCompress;
private MemoryStream _destination = new MemoryStream();

[GlobalSetup]
public async Task Setup()
{
    using var hc = new HttpClient();
    _toCompress = await hc.GetByteArrayAsync(@"https://raw.githubusercontent.com/dotnet/performance/5584a8b201b8c9c1a805fae4868b30a678107c32/src/benchmarks/micro/corefx/System.IO.Compression/TestData/alice29.txt");
}

[Benchmark]
public void Compress()
{
    _destination.Position = 0;
    using var ds = new BrotliStream(_destination, CompressionLevel.Fastest, leaveOpen: true);
    ds.Write(_toCompress);
}

JNPF

JNPF快速开发平台支持数据库自动创建,第一次运行程序,应用会自动初始化建表、执行初始化数据。权限授权模块灵活,支持 OAuth2.0 单点登录,简单 yml 配置即可,不用再写很多的 xml 配置文件。支持多数据源,简单 xml 配置即可实现,为了安全性,不提供界面维护数据源。支持分布式事务(TCC、消息最终一致性,混合使用、单独使用都支持),提供监控界面、人工补偿操作。缓存监控,J2Cache 二级缓存,支持快速切换为 Redis 缓存。服务器监控,查看 CPU,内存,JVM,磁盘信息等。方便运维人员分析系统负载情况。支持 Spring Cloud 架构,分布式,微服务,最小化内核,统一配置中心,统一授权认证中心。丰富的内置功能:用户权限、数据权限、系统管理、文件系统。

基于 Element-UI 平面化界面设计,精细,更加美观、高端、大气、上档次。无刷新设计,除了进入功能页面和新页面,其它情况下全部采用 Ajax 交互,优化体验和性能。支持一键换肤,系统右上角设置即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。国际化的支持,页面标签国际化,字典菜单国际化,数据国际化。

[Params(false, true)]
public bool NewOverload { get; set; }

[Benchmark(OperationsPerInvoke = 1000)]
public async Task ConnectAcceptAsync()
{
    using var listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    listener.Bind(new IPEndPoint(IPAddress.Loopback, 0));
    listener.Listen(1);

    for (int i = 0; i < 1000; i++)
    {
        using var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        if (NewOverload)
        {
            await client.ConnectAsync(listener.LocalEndPoint, CancellationToken.None);
        }
        else
        {
            await client.ConnectAsync(listener.LocalEndPoint);
        }
        using var server = await listener.AcceptAsync();
    }
}

猜你喜欢

转载自blog.csdn.net/ohpppp/article/details/130891715