我有一个我设计的应用程序,这个应用程序有一个相当不错的核心DLL,包含我的主视图的exe使用的API。我想允许其他开发人员访问此核心dll,但我不希望他们拥有与我一样多的访问权限,因为这会带来安全风险。暴露我的核心DLL的标准方法是什么?我应该看一下特定的设计模式吗?
我正在使用C#
编辑:我的问题有点含糊,所以这里有一些澄清
我的程序部署为引用core.dll的Windows exe。我希望其他人创建扩展,通过在/ extensions目录中加载dll,在启动时动态加载到我的程序中。第三方dll将继承/实现我的core.dll中的某些类/接口。我只想让第三方有限访问我的核心,但我想给我的exe额外访问核心。
我应该提一下,这是我第一次编写导入DLL的程序。也许这种允许用户添加扩展的方法是错误的。
答案 0 :(得分:3)
如何修改/公开我的API 其他开发者?
故意让其他开发人员使用你已构建的API接触很多东西,可以分为两个方面:
示例包括:
我想允许其他开发者 访问这个核心DLL也是我 不希望他们拥有尽可能多的访问权限 作为我,因为它将是一个安全 风险。
好的,这样我们就可以进入第二个领域 - 实际的解决方案。
你遇到的问题不是一个微不足道的问题 - 但它也很可行;我建议:
您面临的最大问题是您正处于严肃的架构领域 - 您现在做出的决策将对解决方案的各个方面产生深远的影响。因此,您可能无法快速做出明智的决定。仍然 - 你必须从某个地方开始:)
答案 1 :(得分:2)
由于您使用的是C#,我会查看Microsoft的Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries并使用FxCop强制执行其中许多版本(最新版本here)。这不是你可能需要的全部,但它会帮助你朝着正确的方向前进。
另外,请查看同一作者免费提供的distillation框架设计指南。
答案 2 :(得分:2)
就API而言,“设计模式”与REST之类的内容更为相关。
我不希望他们拥有那么多 作为我访问,因为它将是一个 安全风险
然后我会(为了维护),在核心DLL的顶层加上额外的逻辑来防止这种情况。
问题是,“客户端”调用API,而不是核心DLL。
API如何访问Core DLL完全由您完全控制。只展示您希望的操作合同。