Architecture 框架与SDK
框架和SDK之间有什么区别?以MS平台SDK和.NET框架为例。两者都有API,都隐藏了它们的内部工作,并且都提供了其他方式可能无法快速/轻松访问的功能(换句话说,它们是用于实际用途的) 那么有什么区别呢?它主要是一个语义学的营销游戏,还是在开发人员与软件交互的方式上存在实际的差异(反之,开发人员如何期望软件的行为)?一个预期的水平比另一个高还是低,等等 谢谢Architecture 框架与SDK,architecture,frameworks,sdk,semantics,Architecture,Frameworks,Sdk,Semantics,框架和SDK之间有什么区别?以MS平台SDK和.NET框架为例。两者都有API,都隐藏了它们的内部工作,并且都提供了其他方式可能无法快速/轻松访问的功能(换句话说,它们是用于实际用途的) 那么有什么区别呢?它主要是一个语义学的营销游戏,还是在开发人员与软件交互的方式上存在实际的差异(反之,开发人员如何期望软件的行为)?一个预期的水平比另一个高还是低,等等 谢谢 编辑:这个问题通常适用于SDK和框架,而不仅仅是上面提到的两个。SDK应该提供针对特定系统资源或功能进行编程的工具。框架不一定是必需的(
编辑:这个问题通常适用于SDK和框架,而不仅仅是上面提到的两个。SDK应该提供针对特定系统资源或功能进行编程的工具。框架不一定是必需的(尽管.NET提供了一整套工具,如编译器等,但无论如何,这些工具都是必需的)
因此,您可以开发一个仅由库组成的框架,但如果您将其称为SDK,您将需要提供一些支持开发的东西。开发人员可以使用Microsoft SDK创建他们的程序。最终用户通常不需要它
如果您希望在计算机上运行.NET应用程序,则Microsoft Framework是必需的。这是一个灰色区域,但框架往往是您编写代码所依据的库,SDK通常有额外的工具来帮助您从框架中获得更多。一个很好的例子是您单独安装的.NET Framework SDK,该SDK有额外的工具,如ildasm、cordb,它们实际上不是框架的一部分。简而言之,区别在于:
- 您可以调用SDK函数
- 框架调用您的函数
传统SDK是不可扩展的。您只需在提供的类中调用API方法,它们执行它们所执行的操作,然后处理结果。任何定制都取决于您对API的使用以及如何利用结果。类库提供的类通常共享相同的粗略应用领域(数学、渲染),但它们的使用基本上是相互独立的 框架提供了类,这些类共同构成了应用程序的基础,您只能对其进行扩展和充实
SDK包含使用SDK提供的技术所需的一切。它通常包含dokumentation、示例和工具以及实际的核心内容,这些内容可能是框架或类库,甚至是完全不同的内容。我将从维基百科复制: 图书馆: 库是用于开发软件的子程序或类的集合。库包含为独立程序提供服务的代码和数据。这允许以模块化的方式共享和更改代码和数据 框架: 在计算机编程中,软件框架是一种抽象,在这种抽象中,提供通用功能的通用代码可以被提供特定功能的用户代码选择性地覆盖或专门化。框架类似于软件库,因为它们是封装在定义良好的API中的代码的可重用抽象。然而,与库不同的是,整个程序的控制流不是由调用方决定的,而是由框架决定的。这种控制反转是软件框架的显著特征 SDK: 软件开发工具包(SDK或“devkit”)通常是一组开发工具,允许软件工程师为特定软件包、软件框架、硬件平台、计算机系统、视频游戏控制台、操作系统或类似平台创建应用程序。它可能是一个简单的应用程序编程接口,以一些文件的形式与特定的编程语言接口,或者包括与特定嵌入式系统通信的复杂硬件。常用工具包括调试辅助工具和IDE中经常出现的其他实用程序。SDK还经常包括示例代码和支持性技术说明或其他支持性文档,以帮助澄清主要参考资料中的要点 因此: