ローコード プラットフォーム フレームワーク - PaaS プラットフォーム、ゼロ コード、JNPF 3.4.7 新バージョン aPaaS ソース コードをドラッグ アンド ドロップします。

 PaaS プラットフォームは、企業がパーソナライズされたビジネス アプリケーションを迅速に構築するのに役立ちます。ユーザーは、コード開発を行わずに、販売、運用、人事、調達などのコア ビジネス アプリケーションを優れたユーザー エクスペリエンスで構築し、社内の企業データをオープンし、API や Webhook を介して他のシステムに接続できます。プラットフォーム上の自動ワークフローにより、承認や記入などの管理プロセスや業務自動化も実現でき、ユーザー企業がDingTalkやWeChatを利用している場合には、プラットフォームに組み込まれたアプリケーションをワークベンチに直接接続することも可能です。

System.Text.Json を使用します。

namespace SerializeBasic
{     public class WeatherForecast     {         public DateTimeOffset Date { get; 設定; public         int 温度摂氏 {取得; 設定; 公開         文字列? 概要 { 取得; 設定; }     }





    public class Program
    {         public static void Main()         {             var WeatherForecast = new WeatherForecast             {                 Date = DateTime.Parse("2019-08-01"),                 摂氏温度 = 25,                 概要 = "暑い"             };







            文字列 jsonString = JsonSerializer.Serialize(weatherForecast);

            Console.WriteLine(jsonString);
        }
    }
}
// 出力:
//{"日付":"2019-08-01T00:00:00-07:00","摂氏温度":25,"概要":"暑い"}


エンタープライズアプリケーションの構築に加え、8年間運用してきたダイナミクス、タスク、スケジュール、ファイルの4つの標準アプリケーション機能をコラボレーションスイートに統合し、共有やコミュニケーション、タスクコラボレーションといった企業の日常ニーズに応えます。 、スケジュール設定、ファイル管理。

有料のエンタープライズユーザー向けに、従業員管理、退職引き継ぎ、ロゴのアップロード、セカンダリドメイン名の設定など、企業管理と個人のニーズの設定をサポートする組織バックグラウンド管理を提供します。

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);

System.Text.Json を使用します。

namespace SerializeToFileAsync
{     public class WeatherForecast     {         public DateTimeOffset Date { get; 設定; public         int 温度摂氏 {取得; 設定; 公開         文字列? 概要 { 取得; 設定; }     }





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







            文字列ファイル名 = "WeatherForecast.json";
            FileStream を使用して createStream = File.Create(fileName);
            await JsonSerializer.SerializeAsync(createStream, WeatherForecast);
            createStream.DisposeAsync(); を待ちます。

            Console.WriteLine(File.ReadAllText(ファイル名));
        }
    }
}
// 出力:
//{"日付":"2019-08-01T00:00:00-07:00","摂氏温度":25,"概要":"暑い"}

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