微软生物学基金会发布Mono兼容性报告

  编译/张龙

  微软生物学基金会称自己是个“语言中立的生物信息学工具集,是微软.NET Framework的扩展,最初面向基因组学领域的研究”。目前,它针对常见的生物信息学文件格式实现了一系列解析器;操纵DNA、RNA以及蛋白质序列的一系列算法;一套生物学Web Services连接器,比如NCBI BLAST。

  虽然微软研究院保证说这些工具会兼容于第三方厂商,但人事问题阻碍了他们为支持Silverlight与Mono而制订的重构计划。Michael Zyskowski写到

在MBF的开发过程中,我们决定使用.NET 4.0,尤其是通过Parallel Extensions在序列比对与装配时充分发挥多核计算机的能量。SL4的功能并不是那么容易搞懂,最后我们选择充分发挥.NET 4特性的优势而不是像Mono或SL4这种只关注某一部分特性的框架。我们打算将框架重构为一个面向MBF v1各个版本的子程序集,进而实现SL4的兼容性(还有.NET 4.0 Client Profile子集)。

但遗憾的是,过去几个月,有几个核心开发者离开了我们,因此我们不得不做出妥协。其中一个决定就是将库重构为Client Profile、Silverlight4与完整的.NET 4.0程序集的计划推后。这是继6月份MBF v1最终版发布后我们所面临的第一要务。但我们希望社区能够继续探究、实现原型、甚至提交代码来完成这个目标。该项目的美好之处在于我们希望社区能够促进平台的不断发展,不必再依赖微软就能实现这一切,这非常重要。

  虽然还需要进行很多测试,但由Mono Migration Analyzer所检测出的兼容性问题已经非常少了。具体问题有:

  • 有两个地方调用了CredentialCache.DefaultCredentials。它只用于NTLM、协商以及基于Kerberos的认证。这样,如果没有调用的话就可以忽略掉了。但如果需要他们,目前还没有什么好的解决方法。
  • Assembly.GetName(Boolean)调用了4次,在对程序集进行shadow copy时修改Assembly.CodeBase的工作是很无聊的事情。
  • 与安全相关的另一个特性是来自于Windows Communication Foundation的HttpTransportSecurity.ClientCredentialType。由于它只用于通过WCF调用Web Services,因此在Mono赶上来时需要使用其他的Web Services层。
  • 在一个扩展包中对Win32函数GetTickCount调用了多次。它仅仅会返回自系统上一次启动以来所经历的秒数,因此很奇怪Mono没有为Linux与OS X实现一个转换层。

  总而言之,实现Mono版本的工作量并不太大。但遗憾的是,实现Silverlight版本就不那么轻松了,因为它与.NET 4.0相差太多,最终也不会实现完全的兼容性。

  查看英文原文:Mono Compatibility Report for Microsoft Biology Foundation

 

  

作者: cnblogs   发布时间: 2010-08-15