简介

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

1. 开发效率:采用自动化编码方案,结合静态代码生成技术与运行时代码生成技术 Emit,为应用层降低“代码杂音”。

2. 运行效率:提供高性能的基础组件,主要包括 TCP 接口服务框架TCP 函数服务框架前后端一体 WEB 视图框架ORM 内存索引缓存框架二进制 / JSON / XML 数据序列化 等一系列无缝集成的高性能组件。

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

Windows 下最低支持 .NET Framework 2.0 SP2

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

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

下载 Download

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

. AutoCSer.dll 是核心程序集,主要包括 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 。

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

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

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

. AutoCSer.Deploy.dll 是一个发布工具,暂无示例 。

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

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

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

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

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

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

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

配置

AutoCSer 只支持代码配置(需要文件配置的自行处理),可以在程序集名称为 AutoCSer.Config 或者以 AutoCSer.Config. 开头的项目中添加公用配置,也可以在当前执行项目中添加个性化配置。
代码配置可以利用 C# 的语言特性,相对于文件配置,有更强的健壮性与灵活性。当然代码配置并不能完全替换文件配置,比如同一个执行程序需要不同配置的时候可能就需要文件配置作为辅助配置存在。
具体配置方法是给配置类型添加 [AutoCSer.Config.Type],给配置成员添加 [AutoCSer.Config.Member],简单的示例代码参考:
AutoCSer\TestCase\TestCase\Config.cs
AutoCSer\TestCase\WebPerformance\HttpFileConfig.cs
AutoCSer\TestCase\WebPerformance\WebConfig.cs
AutoCSer\TestCase\ChatServer\Config.cs
AutoCSer\TestCase\SqlTableCacheServer\Config.cs
获取配置的时候可以调用函数 AutoCSer.Config.Loader.Get<valueType> 或者 AutoCSer.Config.Loader.GetObject

湘ICP备17011343号-1