Visual F# 3.0 Beta 介绍
就像Jason Zander在他的博客里公布的那样,Visual Studio 11 Beta现在已经可以下载了!这个版本包含F# 3.0的Beta版,此F# 3.0介绍了F#信息富态编程
Beta版本发布了一些新的F#特性,包括:可移植库支持,加强的Type Providers,改善的智能感应,以及支持任意CPU的FSI版本。我们也已经更新了F# 3.0 Beta的例子包
可移植库
F#现在支持可移植库了,它允许你创建可工作在多个.NET平台的程序集,并且不需要重新编译。你可以把你的逻辑运算代码放进一个F#可移植库里,然后从WPF,Silverlight 5或Win8 Metro应用程序里引用。
例如:你可以用Silverlight 5和Metro前端创建一个数据表程序(如下图)。所有的数据表逻辑,如给公式传参或执行公式,都可以被包含进F#可移植库,并且这个前期工程仅包含用户界面代码。
Silverlight
Metro
喜欢这个例子吗?不久我们将会发布源代码到Codeplex——敬请期待。
Type Providers
前面提到的Type Provider,我们已经改善了它的新条目模板。我们有以下几种模板:SQL数据库连接模板(用LINQ连接到SQL或用LINQ连接到实体),OData连接模板,或者WSDL连接模板。如果你是type providers的新手,使用这些模板是个很好的入门方式。
WSDL类型供给现在支持配置文件和命名端点,以处理当一个服务提供了多个端点的情况。大部分类型供给也有ConnectionString和ConnectionStringName参数,这些参数能让你更容易的使用配置文件。当然,也可以用其它的参数来使它更容易的用相关目录来正常工作。
我们还增强了type providers的易用性。系统自带的type providers不再需要“[<Generate>]”属性,并且现在你可以通过清除工程或关掉脚本文件以清除type provider的缓存。
对于想要编写type provider的程序员来说,我们已经为支持诸如lambda表达式的类型成员扩展了语言结构集。这是通过将System.Linq.Expressions改为Microsoft.FSharp.Quotations.Exprs作为type provider的基础框架来实现的。
IDE
在这个版本里,我们进一步加强了智能感应——除了你已经见到的诸如参数帮助之类的。智能感应现在可以更好的实现上下文相关的过滤(例如,inherit关键字后面的部分),并且现在支持驼峰式大小写过滤。如:Console.WL会自动的被匹配成Console.WriteLine。
type providers不会总是立即提供智能感应——如当查询一个web service的时候——在这种情况下,IDE会显示进度图标,如下图所示:
支持任意CPU的FSI
F# Interactive(FSI.exe)是一个32位程序,因此只有32位的程序集才能在它里面执行。由于64位的程序集会越来越普遍(如新的云数字库),我们创建一个支持任意CPU的FSI版本,它默认路径位于:“C:\Program Files (x86)\MicrosoftSDKs\F#\3.0\Framework\v4.0\FsiAnyCPU.exe”。要使用这个版本的FSI,在F#工具选项里设置一个不同的路径:
说到F# Interactive,很不幸,Beta版本有一个bug——你无法从“查看”菜单中启动Interactive窗口。但是,有一个简单的方法绕开它:打开一个后缀名为.fs或.fsx的文件,或者直接按Alt+Enter,或者从鼠标右键的上下文菜单中选择在交互中执行。我们已经在我们本地的版本中修复了这个问题,这个bug会在下一个版本里修复。
资源
你可以在Windows7上面装VisualStudio 11 Beta以迅速启动,或者安装在刚刚发布的Windows 8消费者预览版上。更多相关F# 3.0特性见我们所发的博客开发预览版。注意查收我们的一些视频,F#3.0例子包,F#研发中心,或者MSDN页面。像以往一样,我们期待着大家的反馈——请发到F#论坛或用户之声上。
原文链接:http://blogs.msdn.com/b/fsharpteam/archive/2012/02/29/introducing-visual-f-3-0-beta.aspx