如何在.NET中开始创建应用程序API

在我工作的公司中,我们有一个用.NET开发的桌面应用程序,我们希望为其他软件开发人员开放一些部件。

我认为这就像其他软件可以访问的某种公共方法。 是否有任何标准方法,最佳实践或其他经验?

我想你可以用Win32调用,C / C ++编程等来做这件事。但我主要是一个.NET开发人员,并且有多年的编程经验,主要是VB.NET,还有一些C#。 我希望在.NET中找到一种方法。 但是对于用其他语言开发的软件,它应该是可访问的。

最好的问候/马格努斯

有两种方法可以解决这个问题。 第一个涉及使用插件/模块模式。 从这里开始吧 。

第二种方法是通过记录良好的程序集简单地公开API逻辑。

你选择的方式实际上归结为你希望它如何实现。 例如,Adobe Photoshop在很大程度上使用插件模式。 MS Office使用这两个插件,并提供用于处理应用程序的对象接口。

更新: .Net程序集中的对象可以通过将对象范围设置为Public来暴露给外部应用程序使用。 这包括窗体,业务对象,枚举等。

从外部开发人员的角度考虑一下。 他们需要提供哪些信息才能成功扩展/控制您的产品? 无论如何,请将其放在帮助文件中。

另外,请使用.Net的自动记录function。 这包括添加IDE已经知道如何通过intellisense读取和显示的XML文档。 例如:

///  /// Gets all active documents for the specified customer. ///  /// The Id of the customer. /// A list of documents for this customer. public static List GetDocuments(int customerId) { //... do something ... } 

创建一个API类,公开您希望人们有权访问的函数,并为COM互操作项目注册 – > properties – > build – > Register for COM interop

“通过公共API公开应用程序”不是详细的需求定义。 在设计任何东西之前,请获取详细要

对于API,我建议您从需求开始,然后继续使用案例。 由于这是一个API,您应该使用建议的API编写一些代码,以了解编程它的感觉。 您编写的代码应涵盖您开始使用的用例。 您甚至可以在unit testing中编写该代码,然后通过测试驱动的开发和重构来创建API。

但无论如何,由于用例关注用户如何使用该软件,它们将帮助您专注于用户直接使用的软件部分。 一个用例可能使用另一个用例; 但是如果用户没有直接使用特定用例,那么这是一个不需要公开公开的用例。

请注意,这也有助于我开发Web服务。 用户直接访问的用例成为通过服务公开的操作。 用户未直接调用的任何用例将作为实现保持隐藏。

开发公共API在很大程度上取决于程序的function。 如果要公开其他语言可访问的API,通常就是使用XML Web服务。 但是,这对于仅限桌面的应用程序可能不实用。