BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Anand Narayanaswamy 关注 0 他的粉丝 ,译者 康锦龙 关注 0 他的粉丝 发布于 2013年8月3日. 估计阅读时间: 6 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT