当前位置: 首页 > 工具软件 > Informa > 使用案例 >

织信Informa 低代码+6大“引擎” JNPF3.3旗舰版 单体版 java+netcore

曹旭东
2023-12-01

Informat

织信是一个灵活的多功能SaaS型系统服务平台,为企业提供涉及金融、互联网、软件研发、电商、房地产、教育等十余个行业,包含销售、运营、人事、研发等多个应用场景的相关管理及协作系统。织信的低代码框架,不需要任何代码基础,就可以通过自定义模板,快速打造个性化应用系统。极大地降低企业部署和学习成本,为企业数字化转型,提供了更加有效优质的解决方案。

产品优势

  • 海量丰富的真实场景应用模板,降低企业部署及学习成本

  • 支持多系统、多应用、多项目的场景需求,实现企业一站式闭环管理。

  • 高度灵活的自定义模板,支持多维度拓展延伸,打造个性化应用。

  • 智能化流程管理+脚本控制,定制专属工作流,实现高效协同。

  • 强大的插件引擎,支持wiki、在线文档、云盘、甚至是静态页面开发。

  • 超低的价格门槛。一套系统的费用即可解决企业各种系统需求。

public bool ContainsSpace(string s) => Contains(s, ' ');

private static bool Contains(string s, char c)
{
    if (s.Length == 1)
    {
        return s[0] == c;
    }

    for (int i = 0; i < s.Length; i++)
    {
        if (s[i] == c)
            return true;
    }

    return false;
}

JNPF 

JNPF快速开发平台是一套成熟的快速开发框架, JNPF作为承重墙,强大支撑保障,提供所有操作系统的生长土壤,JNPF快速开发平台采用前后端分离技术、采用B/S架构开发,形成一站式开发多端(APP+PC)使用,繁荣的软件生态,为所有需要数字化转型的企业提供满足他们多样性需求的精确服务。http://www.jnpfsoft.com/?from=CSDNm

JNPF快速开发平台不仅大幅度的提高了企业的工作效率,打通了企业部门与部门、企业与用户之间的数据联接。这种联接会在改变企业效率、降低运行成本方面发挥重大价值,并且在数据互通的环境下,会产生去中间化的效果,重构成一种新的商业模式。

[Benchmark(Baseline = true)]
public async Task Enumerate()
{
    var request = new HttpRequestMessage(HttpMethod.Get, s_uri);
    using var resp = await s_client.SendAsync(request, default);
    foreach (var header in resp.Headers) { }
    foreach (var contentHeader in resp.Content.Headers) { }
    await resp.Content.CopyToAsync(Stream.Null);
}

private static readonly Socket s_listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
private static readonly HttpMessageInvoker s_client = new HttpMessageInvoker(new HttpClientHandler { UseProxy = false, UseCookies = false, AllowAutoRedirect = false });
private static Uri s_uri;

[GlobalSetup]
public void CreateSocketServer()
{
    s_listener.Bind(new IPEndPoint(IPAddress.Loopback, 0));
    s_listener.Listen(int.MaxValue);
    var ep = (IPEndPoint)s_listener.LocalEndPoint;
    s_uri = new Uri($"http://{ep.Address}:{ep.Port}/");
    byte[] response = Encoding.UTF8.GetBytes("HTTP/1.1 200 OK\r\nDate: Tue, 01 Jul 2021 12:00:00 GMT \r\nServer: Example\r\nAccess-Control-Allow-Credentials: true\r\nAccess-Control-Allow-Origin: *\r\nConnection: keep-alive\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 5\r\n\r\nHello");
    byte[] endSequence = new byte[] { (byte)'\r', (byte)'\n', (byte)'\r', (byte)'\n' };

    Task.Run(async () =>
    {
        while (true)
        {
            Socket s = await s_listener.AcceptAsync();
            _ = Task.Run(() =>
            {
                using (var ns = new NetworkStream(s, true))
                {
                    byte[] buffer = new byte[1024];
                    int totalRead = 0;
                    while (true)
                    {
                        int read = ns.Read(buffer, totalRead, buffer.Length - totalRead);
                        if (read == 0) return;
                        totalRead += read;
                        if (buffer.AsSpan(0, totalRead).IndexOf(endSequence) == -1)
                        {
                            if (totalRead == buffer.Length) Array.Resize(ref buffer, buffer.Length * 2);
                            continue;
                        }

                        ns.Write(response, 0, response.Length);

                        totalRead = 0;
                    }
                }
            });
        }
    });
}
 类似资料: