首页 > 其他分享 >【Dotnet 工具箱】推荐一个使用Flutter编写的博客园客户端

【Dotnet 工具箱】推荐一个使用Flutter编写的博客园客户端

时间:2023-10-13 11:01:22浏览次数:39  
标签:builder DFrame C# 博客园 url Dotnet using Flutter

推荐一个使用 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

标签:builder,DFrame,C#,博客园,url,Dotnet,using,Flutter
From: https://www.cnblogs.com/dotnet-box/p/17761586.html

相关文章

  • flutter中手机系统自带返回事件触发判断
    WillPopScope组件用WillPopScope包裹根页面组件WillPopScope(onWillPop:_requestPop,child:pageContainer())其中onWillPop绑定的函数就是系统返回事件触发后的处理函数Future<bool>_requestPop()async{//调用原生返回,返回原生页面,根据自身场景自己定义处......
  • 【Dotnet 工具箱】基于 .NET 6 和 Angular 构建项目任务管理平台
    1.Reha时间管理大师Rhea是一个基于C#和.NET6开发的在线任务管理平台,类似于禅道、Jira、Redmine,滴答清单等。支持多视图多维度统一管理任务。多级结构,工作区,空间,文件夹,列表,可以更灵活的进行任务管理。应用支持多主题和主题色切换,灵活搭配,随心所欲。Rhea使用的技术栈......
  • dotnet 8 WPF 支持在 RDP 远程桌面状态下启用渲染硬件加速
    本文将和大家介绍在dotnet8里WPF引入的新功能之一,在RDP远程桌面状态下启用渲染硬件加速在dotnet8之前,在用户进行RDP远程桌面时WPF应用将默认关闭硬件渲染加速以获得更好的兼容性。随着系统层的渲染架构的优化,比如在WDDM驱动模型里面,进行远程桌面的硬件加速已经是......
  • Flutter module集成到Android原生项目报错
    使用AAR方案集成遇到两个诡异错误环境:Flutter(Channelstable,3.3.10,onmacOS13.5.222G91darwin-x64,localezh-Hans-CN)AndroidStudio(version2022.3)Androidtoolchain-developforAndroiddevices(AndroidSDKversion34.0.0)参考文档en参考文档zh......
  • Android Studio可以编译但Flutter提示无法定位java runtime
    AndroidStudio可以编译但Flutter提示无法定位javaruntime下面我们重点讲一下“UnabletofindbundledJavaversion”报错问题到AndroidStudio安装目录下注意:有些AndroidStudio可能是“jbr”文件,不用管jbr文件,直接复制一份jbr文件在同一路经,再把复制的文件改名为“jre”文......
  • 正式来到博客园的第一天
    博客圆的主页DIY功能真的好。我一开始还想自己基于github搭建一个个人博客网站,但后来发现即便是搭好了网站,写文章也比较麻烦。这主要体现在图片的管理上,我好像得要把图片全部上传图床、又或者是放在一个统一的文件夹中。但是我并不习惯于这种写文章的方式,我常用typora写markdown,并......
  • 视频直播源码,Flutter 富文本 部分文字可以触发点击
    视频直播源码,Flutter富文本部分文字可以触发点击 Widget_buildBottomTip(){  returnContainer(   child:Text.rich(    TextSpan(     children:[      TextSpan(        text:"这是要显示的文字",    ......
  • BenchmarkDotNet-Intro
    有些时候我们实现了某个功能,但是仅仅通过有限的几次调用无法知道这个功能的执行效率以及资源占用情况,此时就可以使用Benchmark对这个功能进行基准测试在dotnet中主要使用BenchmarkDotNetBenchmarkDotNet是一个.NET的基准测试框架,主要用于测量.NET程序的性能它可以......
  • flutter和原生混合开发换肤方案
    原生1.本地预定义兜底json配置文件,用户首次启动解析,更新本地存储,再请求服务端配置文件,刷新UI2.用户每次先拿本地存储,再拉取服务端配置文件,更新本地存储后,全局通知刷新UI3.设置页切换主题色,recreate()首页,发送map至flutterengine,本地存储用户设置主题色4.重新打开页面,显示用......
  • 由于蚂蚁老师课程视频中博客园网站更新,代码不适用于现有环境,故网上查找更新:网上爬取博
    importjsonimportreimportrequestsfrombs4importBeautifulSoupfOut=open("博客爬取文章列表标题及地址.txt","w",encoding="utf8")foridxinrange(20):print("#"*50,idx+1)url="https://www.cnblogs.com/AggSite/......