Tinyfox 发生重大改版

传统的 Tinyfox 是一款跨平台的高性能 OWIN 服务引擎,于2015年6月首次公开发布。为配合Tinyfox的实际应用,在Tinyfox发布后相继推出了 Tinyfox.FastWebApi 和Tinyfox.WebSocket 两个关键的应用框架,构成了相对完整而独立的基于OWIN协议的面向Web应用的服务系统。

正因为原始的 Tinyfox 本质上是一款以 Microsoft OWIN 协议为基石的 OWIN基础引擎,虽然具备了基础层面的坚固与强大,但是,Web应用层与其OWIN内核层之间需要进行较为低阶的数据转换和封装,这个过程,不但对性能有一定的影响,也对Tinyfox使用者提出了更高的要求,它需要开发者对OWIN协议及其管道模型具有较为深入的理解才能开发出更强大的应用程序,这与现实情况出现了不小的反差,既不利于用户使用,也不利于Tinyfox的发展。

为了克服传统Tinyfox的不足,Tinyfox的原作者宇内流云先生(也是Jexus的作者)结合目前主流的Web系统的特点、.NET最新发展成果以及总结 Tinyfox 近10年来各类用户的需求规律,于2024年12月初开始对其进行了全新设计,并于2025年1月18日在nuget.org上发布了第一个全新的Tinyfox版本:Tinyfox v6.0.118。

新版Tinyfox有如下特点:

1,去除了OWIN协议。

新版Tinyfox的网络传输层与应用层紧密接合,不再使用OWIN协议进行转换、包装,不但进一步提升了性能,也大大简化了操作过程,降低了学习和使用门槛;

2,集成WebApi和WebSocket,新增"动态HTML"功能。

新版Tinyfox不再将应用层功能分散到 Tinyfox.FastWebApi 和 Tinyfox.WebSocket 等子框架中,而是与 Tinyfox 的 HTTP内核集成为一个整体。值得一提的是,新版Tinyfox在原生支持WebApi和WebSocket等"纯数据服务"的同时,还新增了对html文件的扩展支持,即"动态HTML"。"动态HTML"是通过在html文件中添加"标签"的方式使普通的html文件具备"动态性"(在html中对变量赋值、取值以及直接与宿主程序的函数互动)。动态HTML特性的加入,使Tinyfox具备了直接开发出具有UI界面的WEB网站程序的能力,而无需Asp.Net Core、Java Spring或PHP等等其它WEB框架或引擎的支持。

3,超轻量、极强的独立性、普适性和对.NET AOT天然支持。

新版Tinyfox所有功能集中在一个大小仅为200K字节左右的 .net dll中,通过nuget引用,不依赖任何第三方组件。

Tinyfox自带HTTP服务引擎,其通讯组件不使用.NET Socket的任何东西,完全基于操作系统底层函数并针对HTTP服务的特点进行原生开发。正因为这样,Tinyfox 无需 IIS、Jexus、Nginx 等外部WEB服务器的支持就能独立对外提供基于HTTP协议的高性能网络服务。

新版Tinyfox既支持.NET Frameowrk 4.5.1以上版本的传统.NET框架,也支持 .NET 6以上版本的.NET"新世界",既支持Windows,也也支持Linux(包括"国产操作系统"),既支持x86/x86_64,也支持arm/aarch64,甚至还支持国产的龙芯CPU。它可以嵌入到任何.NET程序中,对目标环境具有广泛的适应性。为了支持.NET NativeAOT,新版Tinyfox的本身已去除了外部.NET程序集动态加载、动态反射等影响 NativeAOT 操作的相关代码,为用户基于Tinyfox打造独立性极强且源码安全的商业程序提供了框架层面的关键支持。

4,易用性、开放性与完整的开发文档。

简单易用是新版Tinyfox的最明显特点之一,它完全去除了旧版Tinyfox所使用的不易理解OWIN协议,用户无需再与任何原始协议打交道,仅需一句诸如"Fox.Router["/"] = _ => new TextResult("Hello")" 这样简单的代码就能实现数据输出,熟悉 c# 的朋友仅需认真看一看Tinyfox用户手册,快的只需要几分钟就能轻松上手。

为了不重蹈其它框架越做越大、越做越庞杂、越做越低效的覆辙,Tinyfox自身的开发设计严守"边界"二字,即,把全部精力用于网络层、WebApi、WebSocket和动态HTML等几个关键功能模块的优化完善和对外接口标准化建设方面,力求内核的高效、坚固,绝不轻易添加功能而突破设计"边界"。与此同时,为了适应不同用户的特定需求,新版Tinyfox不管是WebApi还是WebSokcet,它与用户应用层有关的基类都进行了开放,任何用户都可以根据其具体项目的需求对Tinyfox的功能进行自由派生、任意拓展。

旧版Tinyfox最缺的是开发文档,不少老用户在使用旧Tinyfox时,要么是依靠网上零散的技术博文自我摸索着使用,要么是与作者联系,在作者的指导下进行开发。为了克服这个不足,新版Tinyfox有了自己的"家":官网 www.tinyfox.pro。现在,Tinyfox用户已经可以在Tinyfox官网上获取完整的Tinyfox用户手册,无需作者单独指导也无需自己作太多的摸索,就能掌握相对完整的Tinyfox使用方法和开发技能。

旧版Tinyfox是否继续维护,如何区分新旧Tinyfox?

新版Tinyfox与旧版Tinyfox是两个完全不同的框架,但是,为了保证基于旧版Tinyfox所开发的应用程序的可持续性,我们会继续维护旧版Tinyfox(修复新发现的BUG、对内核关键代码持续优化)。新旧两版Tinyfox的分界线是它们的版本号,新版Tinyfox的版本号命名是从6.0开始的,只要是高于6.0的Tinyfox就是新版Tinyfox,传统Tinyfox的版本号将保持在4.x-5.x以内(目前最新的旧版TinyFox是 Tinyfox v4.2.9),因此,基于旧版Tinyfox开发的程序无需担心因新版Tinyfox的诞生而影响旧版的可持续性。

相关推荐
MinggeQingchun1 天前
Java - WebSocket
网络·websocket·网络协议
问道飞鱼1 天前
【知识科普】HTTP相关内容说明
websocket·http·请求转发·请求重定向
阿芯爱编程1 天前
websocket webworker教程及应用
网络·websocket·网络协议
码农0002 天前
websocket实现
websocket
weisian1514 天前
消息队列篇--通信协议篇--WebSocket(WebSocket特点,HTTP升级到WebSocket,STOMP协议使用,通信类型分类,全双工通信等)
websocket·网络协议·http
BYh_blog4 天前
基于nodejs+json+websocket+html的聊天应用
websocket·html·json
Future_yzx4 天前
WebSocket 详解:全双工通信的实现与应用
网络·websocket·网络协议
Java潘老师4 天前
分享一款WebSocket在线测试工具,使用简单方便
websocket·测试工具·在线工具
Future_yzx5 天前
基于SpringBoot+WebSocket的前后端连接,并接入文心一言大模型API
spring boot·websocket·文心一言