在F#Type提供商上观看Channel 9's video后,我想知道数据架构的变化。唐在最后谈到了这一点,但我正在寻找更多细节。
该演示使它看起来好像你实际上是在按''。探索哪些类型的数据可供您使用。在您连接到2008年美国的犯罪率之后,当您分发应用程序和架构更改时会发生什么?你得到运行时类型错误吗?开发人员有责任处理这些错误吗?
此外,这是否将责任放入类型提供者的手中?
目前,当您下载.NET程序集时,您知道它将永远不会更改,直到您(手动或通过服务)显式更新它。必须解决来自不断变化的类型的编译错误,但您始终可以暂停升级,直到您准备好进行更改。对于类型提供者,您是否需要对它们进行更谨慎的编程?
答案 0 :(得分:8)
响应架构更改是类型提供程序的责任,但仅限于开发时。开发应用程序后,它将使用类型提供程序进行编译,并在编译时使用当前模式。
当您从Visual Studio使用类型提供程序时,它可以监视架构更改并通知Visual Studio IDE架构中发生了更改。我编写了一个执行此操作的XML类型提供程序示例,因此当您更改架构(用作示例的XML文件)时,您将立即在VS中收到错误。我做了video demonstration of this(大约19:40)。
编译程序后,类型提供程序会生成应在编译形式中使用的代码(并且在运行时不使用类型提供程序)。这意味着如果架构在运行时更改,则无法对其执行任何操作(开发人员需要做出反应)。如果架构更改是向后兼容的(即将新列添加到数据库表),那么您的程序仍然可以正常工作。