前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CoreFlex框架发布 0.1.1

CoreFlex框架发布 0.1.1

作者头像
用户10786849
发布2023-12-11 12:09:18
1330
发布2023-12-11 12:09:18
举报
文章被收录于专栏:token的技术分享token的技术分享

框架描述

CoreFlex是一个支持.NET 6,.NET 7,.NET 8的快速开发框架,也提供MasaFramework相关框架的集成提供更多功能模块, 集成了一些常用的功能模块,可以快速开发企业级应用,提供Blazor的一些JS操作工具库。

实现目标

  • [x] JS工具操作模块
  • [ ] Serilog日志模块
  • [ ] 限流中间件模块
  • [ ] 审计日志模块
  • [ ] 虚拟文件模块(LiteDb实现和本地文件实现)
  • [ ] 系统设置模块
  • [ ] 后台任务模块
  • [ ] 提供ChatGpt客户端案例模块

Core Flex模块

Core Flex的核心设计,Core Flex其他模块都是基于Core Flex的核心设计来实现的。 Core Flex模块提供了一些基础的功能,包括: - 模块化 - 自动依赖注入

简单使用

  1. 安装NuGet
代码语言:javascript
复制
dotnet add package CoreFlex.Module --version 0.1.1
  1. 添加对应模块方法,比如项目名CoreFlex.Razor.JsInterop,那么模块名称则是CoreFlexRazorJsInteropModule,这样的好处就是可以通过模块名称来查找对应的模块,而不是通过文件夹名称来查找模块,这样可以避免文件夹名称和模块名称不一致的问题。
代码语言:javascript
复制
public class CoreFlexRazorJsInteropModule : CoreFlexModule
{
    public override void ConfigureServices(CoreFlexServiceContext services)
    {
    }

    public override void OnApplicationShutdown(CoreFlexBuilder app)
    {
    }
}

创建的模块必须继承CoreFlexModule,然后实现ConfigureServicesOnApplicationShutdown方法,这两个方法是模块的生命周期方法,ConfigureServices方法在模块加载时调用,OnApplicationShutdown方法在模块构建完成调用。 模块中也提供了Async结束的异步回调,以便于在模块加载完成后,可以执行一些异步操作,比如加载一些配置文件等。 当然,如果你的模块需要使用其他的模块,你可以在模块类的上面添加特性[DependsOn(typeof(CoreFlexRazorModule))],CoreFlexRazorModule则是你要依赖的模块,当然它也支持多个模块的依赖; 这样在加载模块时,会先加载CoreFlexRazorModule模块, 但是如果没有设置特定模块执行顺序,依赖模块将在当前模块的后面执行。

代码语言:javascript
复制
[DependsOn(typeof(CoreFlexRazorModule))]
public class CoreFlexRazorJsInteropModule : CoreFlexModule

CoreFlex.Razor.JsInterop js工具库

代码语言:javascript
复制
dotnet add package CoreFlex.Razor.JsInterop --version 0.1.1

提供系统常用的JS互操作的封装,便于使用。

使用

添加CoreFlexRazorJsInteropModule模块依赖

封装Api

CookieJsInterop

提供:

  • GetAllCookiesAsync 获取所有Cookie
  • AddCookieAsync 添加Cookie`
LocalStorageJsInterop

提供:

  • SetLocalStorageAsync 设置LocalStorage的值
  • GetLocalStorageAsync 获取LocalStorage的值
  • RemoveLocalStorageAsync 移除LocalStorage的值
  • RemovesLocalStorageAsync 批量删除Key的LocalStorage
  • ClearLocalStorageAsync 清空LocalStorage的值
  • IsLocalStorageSupportedAsync 判断浏览器是否支持LocalStorage
  • GetLocalStorageKeysAsync 获取LocalStorage的所有Key
SessionStorageJsInterop

提供:

  • SetSessionStorageAsync 设置SessionStorage的值
  • GetSessionStorageAsync 获取SessionStorage的值
  • RemoveSessionStorageAsync 移除SessionStorage的值
  • RemovesSessionStorageAsync 批量删除Key的SessionStorage
  • ClearSessionStorageAsync 清空SessionStorage的值
  • GetSessionStorageLengthAsync 获取 sessionStorage 中值的数量
  • ContainKeyAsync 判断 sessionStorage 中是否含有某个键名
WindowJsInterop

提供以下功能:

  • CreateBlobURLAsync: 使用 blob 创建 Blob Url
  • CreateBlobURLFromUint8ArrayAsync: 使用 byte[] 创建一个 Blob 对象URL
  • CreateBlobURLFromStringAsync: 使用 Base64 创建一个 Blob 对象的URL
  • RevokeUrlAsync: 释放 Blob 对象的 URL
  • RevokeUrlsAsync: 批量释放 Blob 对象的 URL
  • GetScrollPositionAsync: 获取滚动条位置
  • SetScrollPositionAsync: 修改滚动条位置
  • GetScrollHeightAsync: 获取滚动条高度
  • ScrollToBottomAsync 滚动到底部
  • ScrollToTopAsync 滚动到顶部
  • CopyToClipboardAsync 复制到剪贴板
  • PlayTextAsync 播放文本
  • PauseSpeechAsync 暂停播放语音
  • ResumeSpeechAsync 继续语音播放
  • StopSpeechAsync 停止语音播放
  • EnterFullscreenAsync 进入全屏模式
  • ExitFullscreenAsync 退出全屏模式
  • IsFullscreenAsync 判断当前是否处于全屏模式
  • ToggleFullscreenAsync 切换全屏模式
  • PickContactAsync 使用 Contact Picker API 选择联系人

Core Flex 本地事件总线

本地事件总线通过Channel实现本地事件总线

添加CoreFlexEventModule模块依赖

基本使用

  1. 安装NuGet
代码语言:javascript
复制
<PackageReference Include="CoreFlex.Module" Version="模块版本" />
  1. 添加处理程序
代码语言:javascript
复制
public class TestEventHandler : ILoadEventHandler<TestEto>
{
    public Task HandleAsync(TestEto eto)
    {
        throw new NotImplementedException();
    }

    public Task ExceptionHandling(Exception exception, TestEto eto)
    {
        throw new NotImplementedException();
    }
}

public class TestEto
{
    public string Value { get; set; }
}
  1. 提交事件
代码语言:javascript
复制
// 通过构造得到`ILoadEventBus`

await loadEvent.PushAsync(new TestEto(){
    Value="test"
})
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 token的技术分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现目标
  • Core Flex模块
  • 简单使用
  • CoreFlex.Razor.JsInterop js工具库
    • 使用
      • 封装Api
        • CookieJsInterop
        • LocalStorageJsInterop
        • SessionStorageJsInterop
        • WindowJsInterop
    • Core Flex 本地事件总线
      • 基本使用
      相关产品与服务
      事件总线
      腾讯云事件总线(EventBridge)是一款安全,稳定,高效的云上事件连接器,作为流数据和事件的自动收集、处理、分发管道,通过可视化的配置,实现事件源(例如:Kafka,审计,数据库等)和目标对象(例如:CLS,SCF等)的快速连接,当前 EventBridge 已接入 100+ 云上服务,助力分布式事件驱动架构的快速构建。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档