当类型提供者改变F#时会发生什么?

时间:2011-11-23 23:24:36

标签: .net f# schema type-providers

在F#Type提供商上观看Channel 9's video后,我想知道数据架构的变化。唐在最后谈到了这一点,但我正在寻找更多细节。

  1. 该演示使它看起来好像你实际上是在按''。探索哪些类型的数据可供您使用。在您连接到2008年美国的犯罪率之后,当您分发应用程序和架构更改时会发生什么?你得到运行时类型错误吗?开发人员有责任处理这些错误吗?

  2. 此外,这是否将责任放入类型提供者的手中?

    目前,当您下载.NET程序集时,您知道它将永远不会更改,直到您(手动或通过服务)显式更新它。必须解决来自不断变化的类型的编译错误,但您始终可以暂停升级,直到您准备好进行更改。对于类型提供者,您是否需要对它们进行更谨慎的编程?

1 个答案:

答案 0 :(得分:8)

响应架构更改是类型提供程序的责任,但仅限于开发时。开发应用程序后,它将使用类型提供程序进行编译,并在编译时使用当前模式。

当您从Visual Studio使用类型提供程序时,它可以监视架构更改并通知Visual Studio IDE架构中发生了更改。我编写了一个执行此操作的XML类型提供程序示例,因此当您更改架构(用作示例的XML文件)时,您将立即在VS中收到错误。我做了video demonstration of this(大约19:40)。

编译程序后,类型提供程序会生成应在编译形式中使用的代码(并且在运行时不使用类型提供程序)。这意味着如果架构在运行时更改,则无法对其执行任何操作(开发人员需要做出反应)。如果架构更改是向后兼容的(即将新列添加到数据库表),那么您的程序仍然可以正常工作。