将功能包装到Windows桌面应用程序的dll中的最佳做法是什么?

时间:2010-04-13 03:48:35

标签: c# .net windows dll desktop-application

是否有任何资源可以创建如何创建Windows应用程序,特别是如何设计dll来包装api调用或类似的?

似乎人们没有将整个项目编译成单个exe版本以及基于MVC模式构建Windows应用程序组件的最佳实践是什么?

用于共享不同应用程序(.exe文件)之间的公共API的dll是什么?

是否有关于此主题的资源或任何好书?

如果有人能说清楚,我感激不尽。

1 个答案:

答案 0 :(得分:2)

您可以在MSDNWikipedia或网络上的众多其他网站上阅读有关动态链接库(DLL)的一般概述。动态库的一些重要用途/好处包括:

  • 在不重复代码的情况下共享不同应用程序/模块之间的通用功能
  • 通过编程接口向其他应用程序或程序员公开API
  • 将应用程序的代码分解为更小的块,以获得可能的加载时间/运行时性能增益(例如,延迟加载不常用的模块)
  • 增加应用程序补丁/服务包等的粒度
  • 提供一种后期绑定机制,用于将应用程序与其使用的API相结合,提高跨版本兼容性的可能性以及API集的单独实现

根据具体情况,分解应用程序二进制模块的最佳方法差别很大。有时您可以将应用程序的所有代码放在同一个二进制文件中,并随着时间的推移识别通常有用的位并将它们移出到DLL中。在其他情况下,如何将应用程序切片并切成少量库,可能会更清楚地显示出来。