NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:031223
用户头像

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

关注

评论

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

测试工程师必知的10大测试法则

禅道项目管理

测试 自动化测试

使用数字人系统源码进行实时互动直播!

青否数字人

数字人

面试官:如何保证本地缓存的一致性?

王磊

Java 面试

解决苹果无线鼠标、键盘或触控板无法被 Mac 识别的方法

Rose

苹果电脑应用程序无法打开提示不明开发者或文件损坏的处理方法

Rose

奇遇未来新动态!AIGC产品经理教学终于来了!

Geek_2d6073

AI遇上传统文化,文心一言上央视带来跨时空访古体验

飞桨PaddlePaddle

人工智能 深度学习

Acrobat Pro DC 2023如何插入附件?Acrobat Pro DC添加附件方法

Rose

软件测试/测试开发/全日制/测试管理丨Appium Inspector

测试人

软件测试

“无法打开应用,因为Apple无法检查其是否包含恶意软件“解决方法

Rose

【年后跳槽必看篇-非广告】老生常态之Spring AOP/IOC 实现原理

派大星

Java 面试 跳槽

ElasticSearch降本增效常见的方法 | 京东云技术团队

京东科技开发者

我想做一款软件产品,应该怎么做?

天津汇柏科技有限公司

创新创业 产品原型设计软件

京东ES支持ZSTD压缩算法上线了:高性能,低成本 | 京东云技术团队

京东科技开发者

从前端角度浅谈性能 | 京东物流技术团队

京东科技开发者

让 K8s 更简单!8款你不得不知的 AI 工具-Part 1

SEAL安全

开源 AI Kubernetes

什么是互动式数字人?

青否数字人

数字人

ByConity 社区回顾|ByConity 和开发者们一起展望未来,携手共进!

字节跳动数据平台

开源数据库 ByConity

第三方 Cookie 被禁用?企业该如何实现用户精准运营和管理

Authing

Cookie Authing 用户运营

替代关系型数据库 MAX 聚合函数的思路

alexgaoyh

MySQL 替代 聚合函数 最新数据 自关联

软件开发

Geek_8da502

良心推荐!几款收藏的神级IDEA插件分享

Java随想录

Java IDEA

JavaScript面向对象之实践项目

伤感汤姆布利柏

数字人的未来发展?

青否数字人

数字人

Parallels Desktop 17 安装Windows 11 教程 附激活工具

Rose

用二维码介绍产品详情,扫码查看图文并茂的宣传册

草料二维码

Prometheus配置Basic Auth进行安全防护,实现登录控制

华为云开发者联盟

开发 华为云 华为云开发者联盟

使用Local Persistent Volume 部署有状态工作负载

华为云开发者联盟

Kubernetes 开发 华为云 华为云开发者联盟

苹果电脑Mac教程:如何开启任何来源选项

Rose

APP加固原理与作用

KaiwuDB × 风电企业 | 高性能、低成本、释放数据价值

KaiwuDB

数据库 解决方案

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