在C#中为我的应用程序编写API

时间:2009-07-22 20:50:31

标签: c# api

我会编写一个应用程序,但我从来没有经历过允许人们使用我的应用程序编程接口。我的意思是我应该如何设计让人们使用来自外部世界的方法,如API。

请有人告诉我一个方法。我对此有点新鲜。

6 个答案:

答案 0 :(得分:18)

  1. 尽可能少地暴露。您发布的每一位都将在下一版本中返回给您x100。保持兼容性非常困难。
  2. 为您发布的所有内容创建抽象。您肯定会更改内部,但现有用户应保持兼容。
  3. 将所有内容标记为内部。甚至是您的应用程序的主要方法。将使用每种可以使用的方法。
  4. 以与接口相同的方式测试您的公共API。集成测试等。请注意,您的API将以不可预测的方式使用。
  5. 最大化约定优于配置。这是必需的。即使您的API是单一方法,您仍然需要支持此方法。只是让你的生活更轻松。
  6. 签名,强烈命名你的集会,这是一个很好的做法。
  7. 尽可能多地解决FxCop和StyleCop错误。
  8. 检查您的API是否与您平台的命名指南兼容。
  9. 提供尽可能多的示例,并记住您的API的大多数用法都是来自这些示例的Ctrl + C和Ctrl + V.
  10. 尝试提供文档。检查您是否没有GhostDoc样式的自动生成文档。每个人都讨厌这个。
  11. 包括如何找到您的信息。
  12. 不要混淆混淆。这将有助于您和您的用户。
  13. ADDED

    1. API应尽可能减少依赖关系。例如,应禁止对IoC容器的依赖。如果您的代码在内部使用它。只需将它们插入装配体中即可。

答案 1 :(得分:5)

这可能不是最有趣的阅读,当然不是唯一的阅读主题,但在设计你的类库(你的API)时,请不时地使用Design Guidelines for Developing Class Libraries进行检查,这是最好有一个与.NET Framework自身对应的设计。

答案 2 :(得分:3)

制作您希望向外界展示的方法public

答案 3 :(得分:3)

我发现这个演示文稿特别有见地:

如何设计良好的API及其重要性
http://lcsd05.cs.tamu.edu/slides/keynote.pdf

答案 4 :(得分:2)

实现此目的的一种方法是为其他人将使用的主要功能创建DLL,并使用调用DLL中的方法的EXE。如果您希望应用程序支持插件,请查看System.AddIn命名空间。

答案 5 :(得分:1)

如果您想查看此区域的新功能,请查看Managed Extensibility Framework。这是一个新的/“统一的(参见注释...)”方法,用于公开加载项的功能和其他可扩展性/模块化。