/Natasha

基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 stanadard2.0 / netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.

Primary LanguageC#MIT LicenseMIT

中文 | English

你们的反馈是我的动力,文档还有很多不足之处;

当你看完文档之后仍然不知道如何实现你的需求,您可以查看 FAQ 或者在issue中提出你的需求。


Natasha

Member project of .NET Core Community NuGet Badge Gitter Badge GitHub license

    基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.
更多的动图展示

展示



类库信息(Library Info)

GitHub commit activity Codecov

Script .NET Env Document
Compile 20 31 50 60 wiki
CI Platform Build Server Main Build
Github os Build status
Azure Windows Build Status
Azure linux Build Status
Azure mac Build Status


使用方法(User Api):

顺序 操作行为 操作内容 说明
1 初始化 NatashaInitializer.Preheating(); 预热会慢一点,后面编译就快了
2 写代码 使用说明 https://natasha.dotnetcore.xyz/ 可联系作者: 1648107003@qq.com查看FAQ提出问题


生态周边

维护状态 项目名称 项目地址 项目简介
flag DynamicProxy Github 基于 Natasha 的高性能接口动态代理,支持多参数初始化和单例模式
flag Libra Github 基于 Natasha 和 DynamicDictionary 的高性能,弱约束的 Http 协议 RPC 库
flag NatashaPad Github 由 Roslyn 和 Natasha 支持的另一种dotnet调试工具,如 LinqPad 和 dotnet fiddle
flag Leo Github 基于 Natasha 和 查找树算法的高速反射类,可以操作对象的属性以及字段
flag DeepClone Github 由 Natasha 的高性能深度克隆库
flag BTFindTreee Github 快速查找算法的构建,包括哈希二分查找,字串模糊查找,字串归并精确查找
flag Papper Github 对语法树解析库,主要目标时服务于 SG(Source Generator)技术
flag RuntimeToDynamic Github 将运行时数据压入到动态代理类中,以方便其他动态构建时对其进行复用
flag DynamicDictionary Github 高速动态缓存,在只读并发场景中提供超高性能的数据查找功能
flag Aries Github 对 FreeSql 的高度封装,提供高性能、直观的 外联 / 乐观锁 / CURD 操作

Note:
flag : 维护且更新活跃,需求充足.
flag : 维护但需求较少, 按需更新发布.
flag : 需求极少, 暂不维护.



开发计划

  • 更多的卸载方法调研.
  • 调研常用框架的元数据引用.
  • 搜集需求,增加语义扩展库.

性能测试

  • 动态初始化性能测试(对照组: emit, origin)
    初始化性能测试
  • 内存及CPU监测截图
    内存及CPU


赞助:

捐助明细

  • 崔星星 21 元
  • Newbe俞佬 200 元
  • iNeuOS工业互联网平台 100 元
  • 老萌 30 元
  • ****天下 10 元
  • 文航 5 元
  • TonyQu 10 元
  • Rwing 20 元


License

FOSSA Status