使用 Visual Studio 编写 F# 程序
Visual Studio 集成开发环境 (IDE) 包含对 F# 的支持,包括代码编辑、IntelliSense、调试以及有助于打包和部署应用程序的功能。 Visual F# 支持其他 .NET Framework 语言中所支持的多个功能。
比较脚本和项目
Visual F# 支持两种基本样式的开发:脚本和项目。 若您只希望运行少量代码,而不希望这些代码转变成一个永久应用程序,则可使用 F# 脚本。 在创建永久性更高的应用程序时,可以使用项目。
若要创建并运行 F# 脚本,您不需要创建项目。 若要创建 F# 脚本,请在**“文件”菜单上,指向“新建”,然后单击“文件”。 在“新建文件”对话框中,选择“已安装的模板”列表中的“脚本”,然后选择“F# 脚本文件”**。 脚本设计为利用 F# Interactive (fsi.exe) 来执行。 有关详细信息,请参阅 F# Interactive (fsi.exe) 参考。
项目和解决方案
项目包括生成单个程序集的文件的集合。 项目设计为利用 fsc.exe 进行编译,并可在 Visual Studio 调试器中运行。 生成的程序集可以是可执行文件或库 (DLL)。 项目包含的源文件都是用同一编程语言编写的。 “解决方案”是项目的集合。 可以用不同的语言来编写解决方案中的项目。 例如,您的应用程序可以具有 Visual Basic 或 C# 用户界面(它是一个项目),也可以具有 F# 库(作为另一个项目)。 这些项目中的某个项目将成为启动项目,即设置为在启动应用程序时运行的项目。
若要创建 F# 项目,请在 “文件”菜单上,指向“新建”,然后单击**“项目”。 在“新建项目”**对话框中,选择一个项目模板。 Visual Studio 提供了一些模板,这些模板可用于创建已具有所有支持应用程序和库的基本元素和设置的项目。
在开发计算机之外的计算机上部署要运行的应用程序时,您必须指定一个部署,并且确保该部署中包含 F# 运行时。 有关部署选项的完整描述,请参阅 部署应用程序、服务器和组件。
在 Visual Studio 中往返项目
您可打开并操作在 Visual Studio 2013 或 Visual Studio 2012 中创建的 F# 项目,而无需做任何修改。 唯一的例外是,首次 Visual Studio 2013 打开一个 Visual Studio 2012 项目时,Visual Studio 会做少量更改使该项目适用于两个版本。 此功能称为往返过程。
您可在项目属性的“应用程序”选项卡上指定您要面向的 F# 运行时(和核心库)的版本。 如果您在创建必须在许多上下文中运行的库,或者您想加入项目往返,请选择“F# 3.0”。 如果选择“F# 3.0”,则不能使用 F# 3.1 中新增的所有语言功能,例如指定的联合用例和增强的数组切片。 如果将目标运行时更改为“F# 3.1”,则无法重新打开 Visual Studio 2012 中的项目。
创建带用户界面的应用程序
其他语言支持可用于为应用程序创建用户界面的可视化设计器。 F# 程序可以直接面向 .NET Framework 库(如 WPF、Windows 窗体或 ASP.NET),这些库可用于为 F# 应用程序创建用户界面,但 Visual Studio 2012 未提供可帮助您创建界面的可视化设计器。 一个典型方案是创建一个多语言解决方案,此解决方案包含一个 Visual Basic 或 C# 应用程序项目(该项目包含用户界面),并且包含一个或多个 F# 库项目。
F# 项目
F# 项目中的文件顺序很重要。 F# 编译器将按顺序处理 F# 项目中的文件。 F# 编译器要求您在开始使用所有构造之前先定义它们;因此,在项目的文件列表中,包含任一 F# 构造的定义的文件必须出现在使用该构造的文件的前面。 此外,还必须避免跨多个文件的循环依赖项。 为了使在项目中移动文件变得更加轻松,F# 提供了一些命令,这些命令可用于在**“解决方案资源管理器”**的文件列表中上移或下移文件。 可以通过右击文件列表中的文件或使用菜单上显示的键盘快捷方式来访问这些命令。
F# 项目中的 F# 文件
下表汇总了可在 F# 项目中使用的部分文件类型。
文件类型和扩展名 |
描述 |
---|---|
实现文件 (.fs) |
用于 F# 代码。 |
签名文件 (.fsi) |
用于指定 F# 实现文件中模块和类型的公共签名。 有关详细信息,请参阅 签名 (F#)。 |
脚本 (.fsx) |
用于包含 F# 中的非正式测试代码,而无需向应用程序添加此测试代码,也无需为此测试代码创建单独的项目。 默认情况下,脚本文件不会包含在某个项目的生成中,即使它们是该项目的一部分。 |
F# 中的可移植库
当您创建 DLL 和 F# 应用程序项目以及创建可执行文件时,您使用 F# 库、F# 可移植库或 F# 可移植库(旧版)项目模板。 您应该使用 F# 可移植库项目,如果您的库将被使用 Windows 运行时的应用程序使用,例如 Windows 应用商店应用或使用 .NET Framework 4.5 的其他平台。如果您的库会被 Windows 应用商店或 Silverlight 5 应用程序等可在 .NET Framework 4 上运行的可移植应用程序使用,则使用 F# 可移植类库(旧版)项目模板。 也可使用 Silverlight 项目模板来面向 Silverlight。
警告
注意,如果 Visual C# 应用程序使用 F# 可移植库或传统可移植库,必须将 Visual C# 项目中的引用添加到适当版本的 F# 核心库 (FSharp.Core.dll)。若要在 C# 项目种添加引用,必须通过浏览找到您的 F# 库使用的同一 FSharp.Core.dll 版本。若要获取路径,请在“解决方案资源管理器”F# 项目中的“引用”部分选择 FSharp.Core 节点,然后查看“属性”窗口中的“完整路径”属性。
下表汇总了 F# 可移植库的选项。
Visual Studio 2013 中的 F# 可移植库
项目模板 |
.NET 可移植的子集版本 |
F# 核心库版本 |
针对的应用程序类型 |
---|---|---|---|
可移植 |
4.5.0.0 |
3.3.1.0 |
.NET Framework 4.5 和 Windows 应用商店 |
可移植库(旧式) Silverlight 库 |
4.0.0.0 |
2.3.5.1 |
.NET Framework 4、Windows 应用商店和 Silverlight |
磁盘上其他版本的 F# 核心库兼容使用早期版本 Visual Studio 创建的项目。 例如,如果在 Visual Studio 2012 创建了一个 F# 可移植库项目,并在 Visual Studio 2013 中将其打开,则引用的 FSharp.Core 版本将为 2.3.5.0。
相关主题
标题 |
描述 |
---|---|
列出 Visual Studio 功能并指明在 Visual F# 中支持哪些功能。 |
|
提供有关 Visual F# 中的项目设置的信息。 |
|
提供介绍与项目相关的 Visual Studio 对话框的主题链接。 F# 项目支持是 Visual Studio 支持的子集。 |
|
介绍 Visual F# 并提供指向相关主题的链接。 |
|
提供用来在 Visual F# 中开发应用程序的分步说明。 |
|
提供关于在 F# 中调试的信息。 |
|
提供介绍 F# 编程的某些方面的教程的链接。 |