低代码开发云,高效全栈开发、跨端App开发,自由发布,灵活部署。提供开发、测试、部署、运维的一体化支持,真正低代码、高效率的DevOps开发运维一体化平台。低代码PaaS平台,企业云架构的关键层,真正提升企业应用的架构、开发、运维和治理。
低代码PaaS平台提供是SaaS-PaaS-IaaS云架构的重要一层,提供了高生产力开发、应用市场/生态、资源调度、多租户、数据中台、业务集成、公共服务等重要能力,为企业云应用的规范、共享、部署、运维、集成和治理提供全面支持。
与传统开发模式不同,在低代码PaaS平台上的新DevOps流水线,以应用市场和租户为关键节点,实现了云应用开发、管理、部署的彻底脱钩,大幅简化应用生命周期的复杂度和关联度,革命性提升软件流水线的效率、可维护性。
[Benchmark]
public void RentReturn_Single() => ArrayPool<char>.Shared.Return(ArrayPool<char>.Shared.Rent(4096));
private char[][] _arrays = new char[4][];
[Benchmark]
public void RentReturn_Multi()
{
char[][] arrays = _arrays;
for (int i = 0; i < arrays.Length; i++)
arrays[i] = ArrayPool<char>.Shared.Rent(4096);
for (int i = 0; i < arrays.Length; i++)
ArrayPool<char>.Shared.Return(arrays[i]);
}
JNPF快速开发平台将已有代码的可视化模块拖放到工作流中以创建应用程序,无需编写重复的编码,可以将精力集中于应用程序中重要的10%部分。
流程设计器集成了自由表单设计器,流程引擎,并支持线性流程、父子流程、同步分合流、异步分合流程,全部实现可视化设计,所见即所得。
private int[] _values = Enumerable.Range(0, 100_000).ToArray();
[Benchmark]
public int Find() => Find(_values, 99_999);
private static int Find<T>(T[] array, T item)
{
for (int i = 0; i < array.Length; i++)
if (EqualityComparer<T>.Default.Equals(array[i], item))
return i;
return -1;
}
JNPF的门户设计器提供了多样式的预定义门户风格,用户可以自由的将组件拖拽到画布上进行配置和布局,通过简单的拖动和设置,设计个性化的门户页面。
全程可视化编辑操作,自由布局页面,拖拽控件至页面中,针对不同的控件进行内容设值和数据绑定,无须任何代码即可快速搭建专业、美观、酷炫的大屏。
[Benchmark]
public int GetLength()
{
ITuple t = (5, 6, 7);
Ignore(t);
return t.Length;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static void Ignore(object o) { }
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"}
后端工程师准备好数据后,前端只需指定数据源,写好SQL语句,定义好报表样式和基本交互方式,报表引擎就可以完成接下来的数据呈现工作了。
private FileStream _fileStream;
private byte[] _buffer = new byte[1024];
[Params(false, true)]
public bool IsAsync { get; set; }
[Params(1, 4096)]
public int BufferSize { get; set; }
[GlobalSetup]
public void Setup()
{
byte[] data = new byte[10_000_000];
new Random(42).NextBytes(data);
string path = Path.GetTempFileName();
File.WriteAllBytes(path, data);
_fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize, IsAsync);
}
[GlobalCleanup]
public void Cleanup()
{
_fileStream.Dispose();
File.Delete(_fileStream.Name);
}
[Benchmark]
public void Read()
{
_fileStream.Position = 0;
while (_fileStream.Read(_buffer
#if !NETCOREAPP2_1_OR_GREATER
, 0, _buffer.Length
#endif
) != 0) ;
}
[Benchmark]
public async Task ReadAsync()
{
_fileStream.Position = 0;
while (await _fileStream.ReadAsync(_buffer
#if !NETCOREAPP2_1_OR_GREATER
, 0, _buffer.Length
#endif
) != 0) ;
}