C# 对于windows桌面应用程序,将函数封装到dll中的最佳做法是什么?

C# 对于windows桌面应用程序,将函数封装到dll中的最佳做法是什么?,c#,.net,windows,dll,desktop-application,C#,.net,Windows,Dll,Desktop Application,有没有关于如何创建windows应用程序的资源,特别是关于如何设计dll来封装api调用或类似的内容 人们似乎不会将整个项目编译成一个exe来发布,基于MVC模式构建windows应用程序组件的最佳实践是什么 dll是否用于在不同应用程序(.exe文件)之间共享公共api 关于这个话题有什么参考资料或好书吗 如果有人能提供一些帮助,我将不胜感激。您可以阅读web上或其他许多站点的动态链接库(DLL)概述。动态库的一些重要用途/好处包括: 在不同的应用程序/模块之间共享通用功能,而无需重复代码

有没有关于如何创建windows应用程序的资源,特别是关于如何设计dll来封装api调用或类似的内容

人们似乎不会将整个项目编译成一个exe来发布,基于MVC模式构建windows应用程序组件的最佳实践是什么

dll是否用于在不同应用程序(.exe文件)之间共享公共api

关于这个话题有什么参考资料或好书吗


如果有人能提供一些帮助,我将不胜感激。

您可以阅读web上或其他许多站点的动态链接库(DLL)概述。动态库的一些重要用途/好处包括:

  • 在不同的应用程序/模块之间共享通用功能,而无需重复代码
  • 通过编程接口向其他应用程序或程序员公开API
  • 将应用程序代码分成更小的块,以获得可能的加载时/运行时性能增益(例如,延迟加载不经常使用的模块)
  • 增加应用程序修补程序/服务包等的粒度
  • 提供一种后期绑定机制,用于将应用程序与其使用的API连接起来,从而提高跨版本兼容性和API集的单独实现的可能性
分解应用程序二进制模块的最佳方法因具体情况而异。有时,您可以首先将应用程序的所有代码放在同一个二进制文件中,随着时间的推移,识别常用的位并将它们移出DLL。在其他情况下,如何将应用程序分割成几个库可能更为明显。

因为这是一个“多点”问题,所以将其作为一个常见的wiki。