生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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

  • 2013-08-02
  • 本文字数:1724 字

    阅读完需:约 6 分钟

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

2013-08-02 11:031216
用户头像

发布了 36 篇内容, 共 13.4 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

牛客java选择题每日打卡Day5

京与旧铺

7月月更

疫情远程办公经验分享| 社区征文

乌龟哥哥

7月月更

毕业设计项目

michael

架构实战营 #架构实战营 「架构实战营」

毕业总结

大眼喵

「架构实战营」

远程办公工具分享|社区征文

如浴春风

初夏征文

一入“远程”终不悔,几人欢喜几人愁。| 社区征文

法医

初夏征文

设计电商秒杀系统

Jadedev

「架构实战营」

毕业设计:设计秒杀电商系统

jiaoxn

「架构实战营」

多媒体NFT聚合平台OKALEIDO即将上线,全新的NFT时代或将来临

EOSdreamer111

架构训练毕业设计+总结

小马

#架构训练营

资深开发人员告诉你,怎样编写出优秀的代码?

雨果

程序员 软件 开发者 代码

浅谈一篇优质的小红书文案需要具备什么

石头IT视角

透过JVM-SANDBOX源码,了解字节码增强技术原理

柠檬汁Code(binbin0325)

互联网架构 源码剖析 字节码增强 源码解读 Java’

简述服务量化分析体系

阿泽🧸

7月月更 量化分析

【愚公系列】2022年7月 Go教学课程 002-Go语言环境安装

愚公搬代码

7月月更

分布式CAP理论

源字节1号

软件开发 后端开发

Java多线程案例之单例模式(懒汉,饿汉,枚举)

未见花闻

7月月更

【LeetCode】在每个树行中找最大值Java题解

Albert

LeetCode 7月月更

【安全攻防】序列化与反序列,你了解多少?

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

封装Ajax

Jason199

ajax 7月月更

聊聊支付流程的设计与实现逻辑

Java 架构

一个漂亮的API文档生成工具

为自己带盐

7月月更

leetcode 121 Best Time to Buy and Sell Stock 买卖股票的最佳时机(简单)

okokabcd

LeetCode 动态规划 算法与数据结构

程序员远程办公喜忧参半| 社区征文

乌龟哥哥

7月月更

NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线

股市老人

线程常用的方法

zarmnosaj

7月月更

自动渗透测试工具核心功能简述

穿过生命散发芬芳

渗透测试 7月月更

分布式系统:what、why、how

javaadu

分布式系统

模块九作业

天琪实刚亮

毕业总结

天琪实刚亮

架构实战营 - 第 6 期 模块九之毕业设计

乐邦

「架构实战营」

Sasa 0.9.4版本发布,包含新的功能和Bug修复_语言 & 开发_Anand Narayanaswamy_InfoQ精选文章