Sasa 0.9.4 版本发布,包含新的功能和 Bug 修复

  • Anand Narayanaswamy
  • 康锦龙

2013 年 8 月 2 日

话题:语言 & 开发

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

语言 & 开发