在我工作的公司,我们有一个用.NET开发的桌面应用程序,我们希望为其他软件开发人员开放一些部分。
我认为它类似于其他软件可以访问的某种公共方法。是否有任何标准方法,最佳实践或其他经验?
我想你可以用Win32调用,C / C ++编程等来做这件事。但我主要是.NET开发人员,并且有多年的主要编程方法,主要是VB.NET,还有一些C#。我希望在.NET中找到一种方法。但是对于用其他语言开发的软件,它应该是可访问的。
最好的问候/ 马格努斯
答案 0 :(得分:6)
有两种方法可以解决这个问题。第一个涉及使用插件/模块模式。 Start here为此。
第二种方法是通过记录良好的程序集简单地公开API逻辑。
您选择的方式实际上归结为您希望如何实施。例如,Adobe Photoshop在很大程度上使用插件模式。 MS Office使用这两个插件,并提供用于处理应用程序的对象接口。
<强>更新强> 只需将对象范围设置为Public,就可以将.Net程序集中的对象公开给外部应用程序使用。这包括窗体,业务对象,枚举等。
从外部开发人员的角度考虑一下。他们需要提供哪些信息才能成功扩展/控制您的产品?无论如何,请将其放在帮助文件中。
另外,请使用.Net的自动记录功能。这包括添加IDE已经知道如何通过intellisense读取和显示的XML文档。例如:
/// <summary>
/// Gets all active documents for the specified customer.
/// </summary>
/// <param name="customerId">The Id of the customer.</param>
/// <returns>A list of documents for this customer.</returns>
public static List<Document> GetDocuments(int customerId)
{
//... do something ...
}
答案 1 :(得分:3)
创建一个API类,公开您希望人们有权访问的功能,并为COM互操作项目注册 - &gt; properties - &gt;构建 - &gt;注册COM互操作
答案 2 :(得分:2)
“通过公共API公开应用程序”不是详细的需求定义。在设计任何之前,请获取详细要求。
对于API,我建议您从需求开始,然后继续使用案例。由于这是一个API,您应该使用建议的API编写一些代码,以了解编程它的感觉。您编写的代码应涵盖您开始使用的用例。您甚至可以在单元测试中编写该代码,然后通过测试驱动的开发和重构来创建API。
但无论如何,由于用例关注用户如何使用该软件,它们将帮助您专注于用户直接使用的软件部分。一个用例可能使用另一个用例;但如果用户没有直接使用特定用例,那么就不需要公开使用。
请注意,这也有助于我开发Web服务。用户直接访问的用例成为通过服务公开的操作。用户不直接调用的任何用例都将作为实现保持隐藏。
答案 3 :(得分:0)
开发公共API在很大程度上取决于程序的功能。如果要公开其他语言可访问的API,通常就是使用XML Web服务。但是,对于仅限桌面的应用程序,这可能不实用。