【Dotnet 工具箱】推薦一個使用Flutter編寫的部落格園使用者端

2023-10-13 12:00:25

推薦一個使用 Flutter 編寫的部落格園使用者端

簡單易用並且同時支援Android/Ios平臺。

功能包含部落格園首頁、新聞列表、博問列表 、快閃記憶體、我的部落格、知識庫等。

截圖預覽

部落格園首頁

新聞列表

博問列表

快閃記憶體列表

我的

我的資料

我的部落格

知識庫

部落格內容

粉絲關注

在啟動專案之前,需要在根目錄建立.env檔案。裡面包含部落格園的id和secret。

clientId={{cnblog_client_id}}
clientSecret={{cnblog_secret_id}}
notRobotCookie=CfDJ8EOBBtWq0dNFoDS-ZHPSe51ATHuFFilG3imii1Hj5WZ-TAK98xT4mJquvSMlYdkzfVCmpAWdt1VyGSpqZ5Q8GulXT3q-Essgs3ttLCLRTzIqo0Klt-nZCkblG6ST2zI2Og

可以在 Github Releases 頁面進行下載。

使用 C# 和 Blazor 開發的分散式壓力測試框架

DFrame 是一個適用於 .NET 和 Unity 的分散式壓力測試框架。

這個庫允許您用純 C# 程式碼編寫分散式負載測試場景,不需要奇怪的 gui、dsl、xml、json、yaml。除了 HTTP/1 之外,您還可以通過用 C# 編寫程式碼,來測試 HTTP/2、gRPC 等網路傳輸。

如何使用

DFrame 和 Locust 類似,由兩部分組成, DFrame.Controller (由 Blazor Server 構建)作為 Web UI, DFrame.Worker 作為 C# 測試場景指令碼。 DFrame 作為 Nuget 庫提供,如果您熟悉 C#,就可以輕鬆上手。

// Install-Package DFrame
using DFrame;

// WebUI:7312, WorkerListen:7313
DFrameApp.Run(7312, 7313); 

public class SampleWorkload : Workload
{
    public override async Task ExecuteAsync(WorkloadContext context)
    {
        Console.WriteLine($"Hello {context.WorkloadId}");
    }
}

現在您可以開啟瀏覽器,存取 localhost:7312, 簡單設定並進行測試。

您還可以設定引數,比如可以傳入動態的 URL,可以在建構函式中接收引數。

using DFrame;
using Microsoft.Extensions.DependencyInjection;

var builder = DFrameApp.CreateBuilder(7312, 7313);
builder.ConfigureServices(services =>
{
    services.AddSingleton<HttpClient>();
});
await builder.RunAsync();

public class HttpGetString : Workload
{
    readonly HttpClient httpClient;
    readonly string url;

    // HttpClient 從 DI 獲取
    // URL 從 Web UI 傳入
    public HttpGetString(HttpClient httpClient, string url)
    {
        this.httpClient = httpClient;
        this.url = url;
    }

    public override async Task ExecuteAsync(WorkloadContext context)
    {
        await httpClient.GetStringAsync(url, context.CancellationToken);
    }
}

如果您只想簡單的測試 HTTP GET/POST/PUT/DELETE,可以啟用 IncludeDefaultHttpWorkload ,這樣就可以傳入 url 和 body 引數。

using DFrame;

var builder = DFrameApp.CreateBuilder(7312, 7313);
builder.ConfigureWorker(x =>
{
    x.IncludesDefaultHttpWorkload = true;
});
builder.Run();

DFrame 還支援在分散式場景中使用,對於每個 Worker,可以使用下面的程式碼,連線到統一的 Controller.

using DFrame;
using Microsoft.Extensions.Hosting;

await Host.CreateDefaultBuilder(args)
    .RunDFrameWorkerAsync("http://localhost:7313");  

測試模式

DFrame 有四種測試模式,可以根據需要自由設定。

Request 模式,可以設定總的執行次數,每個負載的並行數。

Repeat 重複模式,和 Ramp-Up 類似,並行數和請求數是逐步上升的。

Duration 可以對測試設定固定的時間。

Infinite 無窮的,持續執行,直到點選 STOP。

Rhea 時間管理大師

Rhea 是一個基於 C# 和 .NET 6 開發的線上任務管理平臺,類似於 禪道、Jira、Redmine, 滴答清單等。

支援多檢視多維度統一管理任務。多級結構,工作區,空間,資料夾,列表,可以更靈活的進行任務管理。

應用支援多主題和主題色切換,靈活搭配,隨心所欲。

Rhea 使用的技術棧為 C# 和 .NET 6, 前端使用了 Angular 和 CDK, 儲存使用了 Redis 和 Sql Server,資料庫存取框架使用 EntityFramework Core, 應用實時通知使用了微軟的 SignalR 框架。

Rhea 適用於個人和團隊使用,對於個人永久免費使用,支援無限制建立任務。

專案地址: https://rhea.cc

功能概覽

列表檢視

經典看板

日曆檢視

時間線

專案地址: https://rhea.cc