使用F#进行Active Directory用户管理

时间:2013-08-08 08:57:53

标签: f# active-directory crud

我现在在工作项目之间花了很长时间研究 F#,但从来没有真正有勇气开始在其中任何一个项目中使用它。使用.net时,通常只需回退到C#

我目前正在计划一个自动化用户管理应用程序,基本上是数据库和Active Directory之间的CRUD。我正处于我愿意使用F#的地步,因为我相信数据处理会更好用,我不会有太多的GUI,只有后台的日志记录界面。

我的问题是,如果任何对F#有先验知识的人会建议我用这种语言全力以赴这样的项目。我没有问是否更好或者不使用语言本身,但是如果它是可行的,或者更好地只是在这里和那里插入一些脚本。或者,如果F#是一个不适合这样的项目,特别是对于有一个Scala术语且只在F#中以不同方式编写一些数学函数的人。这个项目也有一条死路线。

如果我没有尽快开始在真正的项目中使用该语言,那就太害怕了。

2 个答案:

答案 0 :(得分:3)

实际上,我的第一个生产(专业容量)F#代码位涉及查询Active Directory并将结果填充到SQL Server数据库中。它非常好,所以我说去吧!

我记得一些令人愉快的观点:

  • 我创建了一些F#记录类型来将原始ldap结果投影到...记录类型上的模式匹配是一个福音。
  • 我实现了动态操作符?的实现,以便以较少的方式访问ldap结果的属性。
  • 我使用SQL Server的批量复制ADO.NET功能,将ldap高效大量插入到数据库中。 F#允许我创建干净,简单的抽象,隐藏原始ADO.NET API的一些丑陋。
  • 我在一个独立项目中实现了这些后端F#位,这个项目由基于C#的APS.NET MVC项目消耗(主要用于按下按钮执行某些操作)。与C#互操作非常好(如果我记得的话,我必须公开更多C#友好的API,但它简单易行)。
  • F#使用.NET API(如冠军)进行互操作,因此ldap API没有问题
  • F#很有趣,可以降低缺陷密度!

答案 1 :(得分:1)

我自己,肯定会尝试一下,因为即使是那些对F#没有深入了解的人,代码似乎也非常易于维护。

我的观点可能略有偏见,因为我非常喜欢F#。但我确实有机会将F#在工作中引入我的C#开发团队,他们根本没有F#知识。

我们开始使用一些编码dojos,在快速语言介绍之后,团队设法编写了更多的单元测试并完成了更多的编码kata,比以前在C#中,尽管他们是F#的新手。而现在,这始终超过了最后四个编码道。

我们还在F#中重写了我们的构建脚本 - 我们之前使用过PowerShell脚本。这鼓励我们超越旧构建脚本的复杂性。事实上,即使他们的知识有限,团队现在感觉代码非常易于维护。

实际上,它是如此成功的努力,我们现在正在考虑在F#中编写一些重要的核心组件。