我打算将类型提供程序构建为开源项目.
我正在考虑通过类型提供程序模式构建一个更流畅的.NET配置api,包装ConfigurationManager等.
我还考虑包装Billboard图表(如果我能找到一个,可以利用一些WS)来使它们可探索/可浏览.
还有其他建议吗?我想尝试一些有价值的东西; 在严肃的编程方案中需要.
我没有任何具体的建议,但我认为有一些可能有趣的一般领域:
访问网络 - 这就是F#类型提供商的设计目标,因此它可能是最好的探索领域.已经存在标准化格式(Web服务,OData)的提供者,但是还有许多其他服务提供REST访问,而没有可以自动处理的任何元数据描述.这意味着我们需要编写一个特定于该REST API的类型提供程序.因此,寻找一些您感兴趣的REST API可能是一个很好的起点.
访问数据(基础) - 这也是类型提供者的关键主题.有使用LINQ to SQL和LINQ to Entities的SQL的标准类型提供程序,但这就是它.更轻量级的SQL提供程序可能非常有趣(例如,只生成允许从SQL数据库调用存储过程的类,而不需要LINQ的开销).此外,还有相当多的无SQL数据库肯定也需要类型提供程序!
除了数据库之外,还有很多其他基于文件的格式可以访问.来自Microsoft的样本包括CSV文件的类型提供程序,我只是在使用XML文件的提供程序,而JSON可能非常相似.还有什么?也许Microsoft Access或其他更具特定应用程序的格式?
小提供商 - 我不确定这是否是一般类别,但有例如Regex类型提供商.它依赖于解析您编写的字符串作为该类型的静态参数.该printf函数可以通过这种方式实现(但这不会非常有用).我现在想不出其他的例子,但我确信有一些例子!
.NET API提供程序 - 使用类型提供程序还可以完成一些更繁琐的事情 - 您可以使用它们来增强现有.NET API的某些功能.例如,提供程序可以反映指定的.NET程序集并生成映射到原始库的类型,但是公开可以null作为返回F#option类型的函数返回的函数.(或者,在F#异步工作流中自动换行Begin/ End方法对!)