Sasa 0.9.4 版本发布,新版本中增加了一些新的功能并修复了一些 Bug。Sasa 其实是一组逻辑上独立于.NET Framework 扩展的集合。新版中除了在通用值的基础上提供多种扩展的 Sasa.Values 外,还有一个函数能够将整数转换并表述为英文语句,并添加了用于字符串的自定义等式及比较的扩展。
在 Sasa 0.9.4 中,新增加了一个错误条件,能够在输入无法完全使用的情况下标识为无效解析。除了用于解析分隔值和解析值列表的声明之外,新版还在 PrattGrammar 中增加了一个 Regex 方法(以便使用正则表达式扫描),还有支持安全设置的(Capability-Secure)的文件系统 API、简化了约束使用的新 TypeConstraint 断言,只需单一参数的数组 Append 重载方法,线程本地实例对象 ThreadScoped,Sasa.TM 下的一个简单的软件事务内存(Software Transactional Memory),以及实现了阻塞型拉取(Blocking Pull)队列的 WaitQueue。
新版 Sasa 中包含了一个简单的 IoC 抽象,位于 Sasa.IoC 命名空间下,它的功能是将封闭式委托转换为开放式委托,同时提取 Getter/Setter 的委托。该命名空间下还包含了一个使用标记处理器(Tokenizer)的 HTML 分析器(Parser),以及一个通用的 Enums.HasFlag 扩展方法,用户可以通过该方法检查枚举标志是否存在。
Sasa 库中包含了多种用途的子库。主库 Sasa.dll——包括元组(Tuples)、概要、通用操作符、LINQ 扩展、字符串扩展、线程安全(Thread-Safe)以及空安全(Null-Safe)事件等等。而 Sasa 的.Arrow.dll 用于.NET 中的向量计算,Sasa.Binary.dll 包含了位数据(Bit Data)、快速字节排序转换(Fast Endian Conversions)、未标记联合类型(Untagged Unions)等等的底层(Low-level)函数。
Sasa.Collections.dll 包括完整的功能列表、树和堆栈。在 Sasa.Concurrency 库的帮助下,开发人员可以使用单纯的 C#开发应用程序,使用更快的线程本地数据(Thread-Local Data)和简便的软件事务内存(Software Transactional Memory,缩写为 STM)技术。而 Sasa.Contracts.dll 简单的重新实现了微软代码协定(Code Contracts),并提供了完整的 API。Sasa.FP.dll 中包含了二项式集合(Binomial Collections)、ILens 接口函数以及函数柯里化(Function Currying)。
Sasa 包含了 LINQ 库,其中提供了更快的表达式编译器、表达式替换以及查询提供程序(Query Provider)和表达式访问程序(Expression Visitor)的基类。该库中还包含了 Mime.dll,它用于映射文件扩展以及媒体类型。
而 Sasa 的网络库包含了扩展、POP3 客户端、MIME 消息解析、HTTP 会话状态机、由分析扩展组成的数值包、统计函数、最小斯坦纳树近似(Minimal Steiner Tree Approximations)以及密度矩阵数学(Dense Matrix Math)。
Parsing.dll 由类型化且可扩展的词法分析组件构成,而 Reactive.dll 则由命名和匿名的无功值(Reactive Value)以及属性构成。Sasa 0.9.4 还包含了可在类型约束上执行类型擦除的 IL 重写程序。
为了解适合 Sasa 开发的应用程序类型,InfoQ 专门采访了 Sandro Magi。
自从我 2006 年第一次使用 Sasa 以来,我已经将 Sasa 用在了为 Higher Logics 的客户开发的大量应用中。好像最初开发的程序是一个电子邮件消息代理,用于对大量的电子邮件进行解析和处理。多亏一些论坛在 Sasa 最后的发布周期反馈了 MIME 的问题,才使得 Sasa 对 MIME 的支持更加有力。
最近,在差不多一个周末的时间里,我用 Sasa 编写了一个通用的 Web 服务器和 Web UI 框架(它基本上自下而上的重写了 Clavis 原型 [8]),预计将在 9 月发布。
我用 Sasa 简化复杂的 ASP.NET 应用程序以及桌面应用程序,离开它,我的工作生活将寸步难行。值得庆幸的是,目前 Sasa 已经发布在 NuGet 上了,用户一路点击就可以轻松地完成安装了。
由于 Sasa 使用的是 LGPL(Lesser General Public License,宽通用公共许可证)许可证,所以用户可以将其用于商业项目中。如果有人修改了 Sasa 的某些部分,那么他们必须把这些修改作为源发布出来,我也鼓励大家无论是在文档、测试还是源代码方面对 Sasa 的发展做出贡献。此外,开发人员还可以直接通过 Sasa 在 ohloh 的页面作出贡献。
查看英文原文: Sasa 0.9.4 Released with New Additions, Features and Bug Fixes
评论