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

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

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

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

支持 .NET Standard / Core 2.0 ,支持 AOT(NoJIT) 模式

Windows 下最低支持 .NET Framework 2.0 SP2

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

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

下载 Download

GitHub | .NET 4.5 NuGet | .Net Standard 2.0 NuGet

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

. AutoCSer.dll 是核心程序集,主要包括 TCP 接口服务框架TCP 函数服务框架远程表达式链组件TCP 内部服务注册组件二进制 / JSON / XML 数据序列化组件。

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

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

. AutoCSer.Sql.dll / AutoCSer.Sql 项目主要包括 ORM 内存索引缓存框架,暂时不支持 .NET Framework 2.0 AutoCSer.MySql 是对 MySQL 的支持项目。

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

. AutoCSer.TcpStreamServer.dll / AutoCSer.TcpStreamServer 项目包括 TCP 接口应答流服务框架TCP 函数应答流服务框架,服务端只支持单线程队列模式,在简单吞吐测试中 TCP 函数应答流服务框架 比通用型的 TCP 函数服务框架 表现要稍微好一点。

. AutoCSer.TcpSimpleServer.dll / AutoCSer.TcpSimpleServer 项目包括 TCP 接口同步应答服务框架TCP 函数同步应答服务框架,只支持同步应答模式。

. 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.DeployClient.DotNet2.csproj

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

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

AutoCSer.Search 项目是一个模糊匹配搜索组件,示例项目是 AutoCSer.Example.Search ,实例项目参考 AutoCSer.Web.SearchServer [AutoCSer]。

AutoCSer.HtmlNode 项目是一个 HTML 解析组件,示例项目是 AutoCSer.Example.HtmlNode 。

AutoCSer.HtmlTitle 项目是一个简单的 HTML 标题获取 HTTP 客户端组件,示例项目是 AutoCSer.Example.HtmlTitle 。

AutoCSer.DataSetSerialize 项目是一个简单的 DataSet 二进制序列化包装组件。

AutoCSer.RawSocketListener 项目是一个基于原始套接字混杂监听模式的网络数据监听组件,示例项目是 AutoCSer.Example.RawSocketListener 。

AutoCSer.Expand 项目是一个杂乱小工具整合项目。

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

\AutoCSer\OpenAPI\ 目录中是一些简单的第三方 API 调用类库项目。

\Example\ 目录中包含各种简单的 DEMO 示例,由于 VS 2017 并发编译存在 BUG 可能造成 .NET Core 项目编译错误可以尝试单独编译这些出错的项目。

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

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

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

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

51Nod 算法讨论平台

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

湘ICP备17011343号-1