FSharp 3.0 开发者预览版

 

Visual Studio F# 团队很高兴地宣布作为Visual Studio 11 开发者预览版 的一部分:F# 3.0 预览版于2011年9月12号正式发布。

正常预览版发布将在9月15号。F# 编译器将继续作为一个独立的安装, 但是配置不作为预览版的一部分。

F#是一个强大、简洁、高效和易于表达的语言,能用简洁的代码帮您解决复杂的问题。F#是生产率加速器—越来越多的社区用它在不同领域来解决分析编程问题,例如贸易、金融、生物信息学、博客分析、广告以及能源市场。要了解更多关于F#,参考F# 开发者中心

在F# 3.0中,将继续保持和扩大F#数据化编程,包括F# LINQ查询F# Type Provider 机制,以及一系列专为企业和网络数据标准的内置Type Providers

为什么F# 是数据化的编程呢?

F#数据化编程是大势所趋——在几乎每一个编程领域——为实现更强的数据、服务和信息的可用性。在科学技术、社交网络和经济领域数据量爆炸性增长着的现在,现代企业有着海量的数据,同时网络连接设备给消费者带来了丰富的数据体验和服务。F#数据化编程创建了一个信息处理框架,它不仅可以提取数据,还可以提取相关的元数据。这为我们在信息化世界里简化编程奠定了基础。

数据和服务集成化的语言

F# Type Provider 机制以强类型的方式从外部数据源中无缝地整合数据和服务。Type Provider是一个通常基于外部信息源架构来为您的程序提供新的类型和方法的组件。例如,SQL Type Provider将提供让程序员直接与任意的SQL数据库中的表进行交互工作的类型和方法。这些类型和方法可能取决于在代码或者配置文件中指定的参数。这使您可以直接集成外部信息空间到您的程序中。

易于表达的数据查询:

F# LINQ 查询能让F#在SQLOData和其他结构或相关数据源上建立强大的基于查询的编程。请参考MSDN文档示例来获取更多的信息。

企业级的数据尽在指间

现在比以往任何时候都更容易获得许多重要的数据源,包括企业、Web和云,只需使用SQL数据库和网络数据协议的一些内置的type  providers即可实现。这些type  providers使得访问SQL数据库和像OData,WSDL这样的协议变得更容易、简单、统一、直观。仅仅使用两三行代码,您就可以访问和查询任何的SQL数据库――这样并不会对企业开发者失去意义。而且,这些代码都是强类型的且有IntelliSense的支持。

那么,这是怎么实现的呢?并不是直接为这门语言(F#)提供SQL的支持,而是创建一个可扩展的、简单的、可以被应用到许多其它的数据源(如OData,WSDL――译者加)的统一机制。

示例:连接SQL数据库

Type provider自动连接到数据库,并且使用数据库里的信息来提供IntelliSense以及类型信息(如数据库中的一些类,数据类型)。

LINQ 查询的简洁整合:

 

示例:链接到Nexflix OData Source

#r "System.Data.Services.Client"
#r "FSharp.Data.TypeProviders.dll"
open Microsoft.FSharp.Data.TypeProviders
// Use the OData type provider to access the Netflix catalog.
[<Generate>]
type Catalog = ODataService<"http://odata.netflix.com/Catalog/"> 
let netflix = Catalog.GetDataContext()
// Query Netflix for all titles containing the word "Avatar"
let allAvatarTitles = 
    query { 
        for t in netflix.Titles do 
        where  (t.Name.Contains "Avatar")
    } 
// Query Netflix for all people whose name contains "Sheen"
let allPeopleNamedSheen = 
    query { 
        for t in netflix.People do 
        where  (t.Name.Contains "Sheen")
        sortBy t.Name
        take 10 
    }

  

可扩展的,开放式的数据集成

Type Provider机制使得F#成为一种可扩展性和适应性很强的数据化的语言。对F#语言和工具来说,TypeProvider是一个强大的的扩展点:当前任何F#程序员(当然包括Visual Studio F#团队)可以整合一个广泛的信息空间和新兴的行业数据标准。随着时间的推移,我们期望看到一系列新的typeprovider 工程,例如:项目的样本,社区的项目,企业内部的使用工具,或产品,可以单独配置F#到特定的领域内使用。这样,不仅您将可以拥有使用SQL、OData和WSDL源(仅举几例)进行近无缝的编程体验,而且任何人都可以创建type provider应用于非SQL的数据,语义Web数据存储,社交网络图,科学数据存储库,SharePoint,WMI,数据流,以及高性能的云数据存储。

在这个过程中,我们没有忘记对细节的关注。例如,F# Type Provider也可以与F#的度量单位协同工作。这给你一个独特而强大的协同作用:丰富和精确的单元类型可以把SQL语言传播到网络数据库。我们对语言也做了一些小的补充,如自动属性。我们对F# Core 库增加了查询支持SI单位。另外,我们一直关注实用性和规模:F# TypeProvider可以通过可选的删除符号,来为该类型极大地扩展类型和方法的空间。这在代表实体和一个非常大的数据库或在链接图的分类中尤为重要。

在Visual Studio中改善F#

我们也一直在提高Visual Studio中的语言工具。这包括更好的IntelliSense,提高quick info,未被使用的变量警告,和解决方案资源管理器 支持。另外,我们从通用的Visual Studio IDE增强功能中受益很多,例如一个改进的“查找”对话框,被简化过的工具栏,预览标签,更好的文档管理,以及运行时改善

我们的.NET合作伙伴团队一直在.NET4.5上做基础的改进,在以前的版本就地更新。一些令人振奋的功能包括后台服务器的垃圾收集器,大型对象堆分配的改善,和跨多个处理器的堆分配的平衡支持。此外,异步任务的支持提供了一个统一的异步编程的模式并且提高了并行计算性能。

F#和Windows8

虽然F#被经常使用在客户端系统中的组件,F#的最天然的优势是作为前台办公和服务器端的语言。对于这个预览版,让F#支持如今这样一个信息化世界的编程已经成为F#团队的工作重点。在未来的几个月(尤其是在Beta阶段),我们将更多地讨论Windows8和F#的相关话题,虽然这不是这个预览版的重点。

资源

如果您现在正在使用预览版,我们期待着您的信息回馈。对于那些正在等待更正式的版本的读者,F# 团队鼓励您观看我们的视频,一些新的F#例子和我们新的MSDN文档。请继续参与F#的社会团体和论坛,以帮助理解,解释和传播我们所提供的。

在F#3.0中,我们的基本原则仍然是:用简单的代码来解决复杂的问题。如今这包括信息化编程,以支持我们信息化的世界。在F#2.0中,我们给您带来了解决复杂计算问题的最好的语言。现在我们荣幸为您带来最好的语言解决复杂的数据问题。

原文地址:http://blogs.msdn.com/b/fsharpteam/archive/2011/09/14/f-3-0-developer-preview-now-available.aspx

posted @ 2011-12-30 10:13  tryfsharp  阅读(473)  评论(2编辑  收藏  举报