All Projects → dotnetcore → Natasha

dotnetcore / Natasha

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

Programming Languages

csharp
926 projects
script
160 projects

Projects that are alternatives of or similar to Natasha

Wopihost
ASP.NET Core MVC implementation of the WOPI protocol. Enables integration with WOPI clients such as Office Online Server.
Stars: ✭ 132 (-81.28%)
Mutual labels:  hacktoberfest, dotnetcore
Pixieditor
PixiEditor is a lightweight pixel art editor made with .NET 5
Stars: ✭ 210 (-70.21%)
Mutual labels:  hacktoberfest, dotnetcore
Coravel
Near-zero config .NET Core micro-framework that makes advanced application features like Task Scheduling, Caching, Queuing, Event Broadcasting, and more a breeze!
Stars: ✭ 1,989 (+182.13%)
Mutual labels:  hacktoberfest, dotnetcore
Peachpie
PeachPie - the PHP compiler and runtime for .NET and .NET Core
Stars: ✭ 1,945 (+175.89%)
Mutual labels:  roslyn, dotnetcore
Github Readme Stats
⚡ Dynamically generated stats for your github readmes
Stars: ✭ 34,955 (+4858.16%)
Mutual labels:  hacktoberfest, dynamic
Bridge
♠️ C# to JavaScript compiler. Write modern mobile and web apps in C#. Run anywhere with Bridge.NET.
Stars: ✭ 2,216 (+214.33%)
Mutual labels:  roslyn, dotnetcore
Ultimate Java Resources
Java programming. All in one Java Resource for learning. Updated every day and up to date. All Algorithms and DS along with Development in Java. Beginner to Advanced. Join the Discord link.
Stars: ✭ 143 (-79.72%)
Mutual labels:  hacktoberfest, dynamic
Webpack Require From
Webpack plugin that allows to configure path or URL for fetching dynamic imports
Stars: ✭ 142 (-79.86%)
Mutual labels:  hacktoberfest, dynamic
Awesome Roslyn
Curated list of awesome Roslyn books, tutorials, open-source projects, analyzers, code fixes, refactorings, and source generators
Stars: ✭ 395 (-43.97%)
Mutual labels:  hacktoberfest, roslyn
Buildalyzer
A utility to perform design-time builds of .NET projects without having to think too hard about it.
Stars: ✭ 354 (-49.79%)
Mutual labels:  hacktoberfest, roslyn
Forge
A Generic Low-Code Framework Built on a Config-Driven Tree Walker
Stars: ✭ 70 (-90.07%)
Mutual labels:  roslyn, dynamic
Uno
Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
Stars: ✭ 6,029 (+755.18%)
Mutual labels:  hacktoberfest, roslyn
Dalsoft.restclient
The C# REST Client - the only REST/ HTTP Client you will ever need
Stars: ✭ 185 (-73.76%)
Mutual labels:  dotnetcore, dynamic
Exram.gremlinq
A .NET object-graph-mapper for Apache TinkerPop™ Gremlin enabled databases.
Stars: ✭ 84 (-88.09%)
Mutual labels:  hacktoberfest, dotnetcore
Roslyn
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
Stars: ✭ 15,296 (+2069.65%)
Mutual labels:  hacktoberfest, roslyn
Quartznet
Quartz Enterprise Scheduler .NET
Stars: ✭ 4,825 (+584.4%)
Mutual labels:  hacktoberfest, dotnetcore
Granular
WPF for JavaScript
Stars: ✭ 569 (-19.29%)
Mutual labels:  roslyn, dotnetcore
React Native Web Monorepo
Code sharing between iOS, Android & Web using monorepo
Stars: ✭ 697 (-1.13%)
Mutual labels:  hacktoberfest
Prologue
Prologue is an elegant web framework written in Nim.
Stars: ✭ 700 (-0.71%)
Mutual labels:  hacktoberfest
Tidb
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
Stars: ✭ 29,871 (+4137.02%)
Mutual labels:  hacktoberfest

中文 | English

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

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

Natasha

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

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

展示



类库信息(Library Info)

GitHub tag (latest SemVer) GitHub repo size GitHub commit activity Codecov

Script .NET Env Document
Compile standard standard standard standard wiki
CI Platform Build Server Master Build
Github os Build status
Azure Windows Build Status
Azure linux Build Status
Azure mac Build Status


使用方法(User Api):

顺序 操作行为 操作内容 说明
1 引类库 DotNetCore.Natasha.CSharp.All 该页面提供最新版操作,旧版详见
2 初始化 NatashaInitializer.InitializeAndPreheating(); / Initialize(); 预热会慢一点,后面编译就快了,也可以只初始化不预热
3 写代码 使用说明 https://natasha.dotnetcore.xyz/ 可联系作者: [email protected]查看FAQ提出问题


发布日志



生态周边

项目名称 项目地址 项目简介
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 操作。


开发计划

2.0+ 计划

  • [ ] 编写英文文档,以后将以英文文档为主
  • [x] 调研 .NET6 中性能优化的新特性
  • [ ] 完善 UT 测试
  • [ ] 挣钱, 生存下来

周边项目计划

  • [ ] BTF 算法

    • [ ] 每周定时跑算法随机测试程序
    • [x] 持续评估 span 序列比较方法 及 指针转换比较 的性能
    • [ ] 评估 Trie 及变种 与 BTF 算法的性能差距
  • [ ] 元数据

    • [ ] 优化性能
    • [x] 精确解析
    • [x] 持续评估封装架构的设计方案
  • [ ] 改造 Leo

    • [x] 持续优化性能
    • [x] 私有支持
    • [ ] 评估是否支持 AOP
    • [x] 评估 Leo 代理方式 和 DynmaicDictionary 代理方式 在 R2D 模板下的异同及抽象
    • [x] 优化静态自动机代码
    • [x] 使用委托指针优化性能
  • [ ] 依赖还原库

    • [ ] NET 模块
    • [ ] NUGET 模块
    • [ ] FOLDER SCAN 模块
    • [ ] 跨平台 模块
  • [ ] 定制语法/语法糖 to Natasha

  • [ ] 持续评估 Natasha 在灵活授权模型上的应用

  • [ ] 持续搜集反编译的需求

  • [ ] 调研 JAVA to C#

  • [ ] 调研 GO to C#

  • [ ] 考虑要不要调研 PHP to C#

  • [ ] 谁能来帮我一起搞,帮我点上左边的小对号?

欢迎大家提交PR



性能测试

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


赞助:

捐助明细

  • ****天下 10元
  • 文航 5元
  • TonyQu 10元


License

FOSSA Status

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].