我应该在SqlClr中运行F#吗?

Rob*_*sen 13 c# sql-server f# sqlclr

我需要在Sql中运行.Net代码,我试图在F#和C#之间做出决定.我现在在F#中做的代码越来越多,所以如果它不是太不切实际,我希望它是F#.

是否有可能强制VS2010将我的F#程序集(及其引用)部署到Sql Server,这与C#项目的做法相同?

你会建议/不建议在Sql中运行F#吗?为什么?

编辑: 我同意语言更好,这不是问题.我主要想知道是否有人在SqlClr中使用F#的经验,特别是如果工具可以提供简单的开发工作流程,即在VS2010中部署.

编辑2: 我正在尝试这个,手动注册是非常痛苦的.此外,CREATE ASSEMBLY你必须注册每个函数,sp,聚合等.你还必须先按正确的顺序删除它们,如果它们存在,以免你得到一个DROP ASSEMBLY failed because 'Nibbler' is referenced by object 'Hello'.

然后,我有了使用C#项目作为前端的想法,让这个项目引用一个F#项目,只是为了让所有这些部署自动处理.事实证明,您只能引用其他C#/ VB Sql Clr项目或已在Sql中引用的程序集.这仍然可以简化部署,因为所有功能的创建/删除等都将自动处理.然后,为了从测试部署到生产,我只会从我的测试环境中注册的所有内容生成脚本.

PS.我还尝试摆弄.fsproj文件,与C#Clr项目的.csproj进行区分,以使部署无济于事.

Joe*_*ler 12

如果在SQL CLR上下文中遇到FSharp.Core和其他引用时遇到问题,可以尝试使用--standalone 编译器标志来将外部引用嵌入到部署到SQL Server的程序集中.


Dan*_*iel 8

我建议在F#中编写你的CLR UDF /程序的原因与我建议用F#编写几乎任何东西的原因相同(参见SO上的大量F#和C#问题).我想不出一个理由,更喜欢C#的东西.我没有尝试使用VS将程序集部署到SQL Server,但是CREATE ASSEMBLY工作正常...并且无论编程语言如何都一样.

  • @Ramon - 关于为特定任务设计的F#,我认为它与今天任何可用的瑞士军刀语言一样多.在某种程度上可以为*any*编程语言做出声明,它似乎对F#的应用更少. (2认同)