中文 | English
你们的反馈是我的动力,文档还有很多不足之处;
当你看完文档之后仍然不知道如何实现你的需求,您可以查看 FAQ 或者在issue中提出你的需求。
基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 netcoreapp2.0+ / netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.
更多的动图展示
Script | .NET Env | Document |
---|---|---|
CI Platform | Build Server | Master Build |
---|---|---|
Github | ||
Azure | ||
Azure | ||
Azure |
顺序 | 操作行为 | 操作内容 | 说明 |
---|---|---|---|
1 | 引类库 | DotNetCore.Natasha.CSharp.All | 该页面提供最新版操作,旧版详见 |
2 | 初始化 | NatashaInitializer.InitializeAndPreheating(); / Initialize(); | 预热会慢一点,后面编译就快了,也可以只初始化不预热 |
3 | 写代码 | 使用说明 https://natasha.dotnetcore.xyz/ | 可联系作者: 1648107003@qq.com 或 查看FAQ 或 提出问题 |
-
-
优化引擎, 精简编译流程, 移除不常用事件.
-
域增加 AddReferenceFrom[Type/Type/Assembly] 3种添加引用的 API.
-
反解器增加扩展方法:
- GetDevelopNameWithoutFlag 获取无标志类型名 :
System.Collections.Generic.List<>
- GetDevelopName 获取全类型名 :
System.Collections.Generic.List<T>
- GetRuntimeName 获取运行时类名 :
List<int>
- GetDevelopNameWithoutFlag 获取无标志类型名 :
-
增加强名编译.
-
规范文件结构以及辅助类命名.
-
维护状态 | 项目名称 | 项目地址 | 项目简介 |
---|---|---|---|
DynamicProxy | Github | 基于 Natasha 的高性能接口动态代理,支持多参数初始化和单例模式 | |
Libra | Github | 基于 Natasha 和 DynamicDictionary 的高性能,弱约束的 Http 协议 RPC 库 | |
NatashaPad | Github | 由 Roslyn 和 Natasha 支持的另一种dotnet调试工具,如 LinqPad 和 dotnet fiddle | |
Leo | Github | 基于 Natasha 和 查找树算法的高速反射类,可以操作对象的属性以及字段 | |
DeepClone | Github | 由 Natasha 的高性能深度克隆库 | |
BTFindTreee | Github | 快速查找算法的构建,包括哈希二分查找,字串模糊查找,字串归并精确查找 | |
Papper | Github | 对语法树解析库,主要目标时服务于 SG(Source Generator)技术 | |
RuntimeToDynamic | Github | 将运行时数据压入到动态代理类中,以方便其他动态构建时对其进行复用 | |
DynamicDictionary | Github | 高速动态缓存,在只读并发场景中提供超高性能的数据查找功能 | |
Aries | Github | 对 FreeSql 的高度封装,提供高性能、直观的 外联 / 乐观锁 / CURD 操作 |
- 编写英文文档,以后将以英文文档为主
- 以微服务组件开发为主, "自研组件"作为 Natasha 的甲方.
- 调研 .NET6 中性能优化的新特性
- 发现并补充 UT 测试
- 挣钱, 生存下来
-
BTF 算法
- 每周定时跑算法随机测试程序
- 持续评估
span
序列比较方法 及 指针转换比较 的性能 - 评估 Trie 及变种 与 BTF 算法的性能差距
-
元数据
- 优化性能
- 精确解析
- 持续评估封装架构的设计方案
-
改造 Leo
- 持续优化性能
- 私有支持
- 评估是否支持 AOP
- 评估 Leo 代理方式 和 DynmaicDictionary 代理方式 在 R2D 模板下的异同及抽象
- 优化静态自动机代码
- 使用委托指针优化性能
-
依赖还原库
- NET 模块
- NUGET 模块
- FOLDER SCAN 模块
- 跨平台 模块
-
定制语法/语法糖 to Natasha
-
持续评估 Natasha 在灵活授权模型上的应用
-
持续搜集反编译的需求
-
调研 JAVA to C#
-
调研 GO to C#
-
考虑要不要调研 PHP to C#
-
谁能来帮我一起搞,帮我点上左边的小对号?
欢迎大家提交PR
- ****天下 10元
- 文航 5元
- TonyQu 10元