AutoCSer 是一个以高效率为目标向导的整体开发框架,是开源框架 fastCSharp 的闭源版本,fastCSharp 将不再更新。

1. 开发效率
. 采用自动化编码方案,结合静态代码生成技术与运行时代码生成技术 Emit,为应用层降低“代码杂音”。
. AutoCSer 整个架构的核心设计目标是在高性能的基础上实现统一规划全局数据定义,几个主要基础组件无缝集成组合成一个高效率的整体开发框架

2. 运行效率
提供高性能的基础组件,主要包括以下组件:
. 支持 200W+/s 异步调用吞吐的 TCP 接口服务框架TCP 函数服务框架
. 支持 1024 并发短连接 3W+/s 吞吐,支持 ab -c100 -n1000000 -k 20W+/s 吞吐的 前后端一体 WEB 视图框架
. 为高吞吐读取数据需求设计的 ORM 内存索引缓存框架
. 支持 31 种常用数据类型组合的随机对象,单线程 200W+/s 二进制数据序列化、30W+/s JSON 序列化、30W+/s XML 序列化 与 15W+/s XML 反序列化
以上测试环境为 Hyper-V + Windows 2012 虚拟机 + 4GB + .NET 4.5 ,物理机环境为 Win10 + i5 6400 + 8GB ,不是在 VS 里调试运行

. 茶余饭后:在紧张激动愤怒的争吵之中、在冷静理性跳跃的思索之中、在轻快愉悦流畅的编码之中、在残忍无情绝望的调试之中。。。最终都将是多彩的记忆 - 逻辑无道。

Windows 下最低支持 .NET Framework 2.0 SP2

Unbuntu / CentOS 下支持 MONO + .NET4.5

支持基于 Xamarin.Forms 的 Android / IOS APP 开发

下载 Download

NuGet | GitHub

AutoCSer.zip\Packet\ 中包含各种目标框架下的 dll / pdb / xml 文件:

. AutoCSer.dll 是核心程序集,主要包括 TCP 接口服务框架TCP 函数服务框架TCP 接口应答服务框架TCP 函数应答服务框架二进制 / JSON / XML 数据序列化组件。

. AutoCSer.CodeGenerator.exe 用于静态代码生成TCP 函数服务框架前后端一体 WEB 视图框架ORM 内存索引缓存框架 这些组件都依赖于它。

. AutoCSer.WebView.dll 主要包括 前后端一体 WEB 视图框架 与 可嵌入的 HTTP 服务器\AutoCSer\Js\ 目录中包含 WEB 框架依赖的配套基础脚本类库和一些我个人常用的其它脚本类库。

. AutoCSer.Sql.dll 主要包括 ORM 内存索引缓存框架

. AutoCSer.Sort.dll 主要包括一些排序相关的算法实现,相关性能测试项目包括 AutoCSer.TestCase.RadixSortPerformance / AutoCSer.TestCase.SearchTree 。

. Serialize 目录下的 AutoCSer.Serialize.dll / AutoCSer.Json.dll / AutoCSer.Xml.dll / AutoCSer.BinarySerialize.dll 是为序列化单独提供的类库,它们不依赖于 AutoCSer.dll 。

AutoCSer.Deploy 项目是一个发布工具,参考 Web\DeployServer\AutoCSer.Web.DeployServer.DotNet2.csprojWeb\DeployClient\AutoCSer.Web.DeployServer.DotNet2.csproj

AutoCSer.DiskBlock 项目是一个日志型磁盘数据块服务,在 AutoCSer.TestCase 项目中有简单的示例。

AutoCSer.Drawing.Gif 项目是一个 GIF 文件处理类库,测试项目是 AutoCSer.TestCase.GifScreen 。

AutoCSer.RandomObject / AutoCSer.FieldEquals 项目用于在测试中生成对象的随机数据与判断两个对象数据是否一致。

\Example\ 目录中包含各种简单的 DEMO 示例。

\TestCase\ 目录中包含各种简单的测试用例。

\Web\ 目录是当前网站的源代码,AutoCSer.Example.DotNet2.sln 可以作为 TCP 函数服务框架前后端一体 WEB 视图框架 简单的综合性参考。

\Packet\NoJIT\ 是 IOS 版本使用 .NET 4.5 编译后的 dll,仅用于测试。没有使用 Emit,也没有对反射进行优化,所以序列化的性能相对于其它版本可能不止 10 倍以上的差距。

因为我个人习惯使用 Release 模式编译项目,如果您在 Debug 编译模式遇到编译错误问题,请切换到 Release 编译模式重试,并将这个问题反馈给我。

有问题或建议可以在 QQ 群 275679001(旧群 4777880 暂时无法加人)或者 QQ 上联系我。

51Nod 算法讨论平台

欢迎对算法与数据结构感兴趣的同学到 51Nod 去刷成就
基础薄弱的蒟蒻可以学习算法入门教程,也可以围观大佬直播讲题
您也可以与 OI 世界冠军和其他顶尖选手同台竞技,赢得奖金与众人 Orz
如果您有什么问题可以加入 51Nod 官方群 Orz 各位大佬。

湘ICP备17011343号-1