随便在我的头脑中随意提出这个问题!什么是API,框架和中间件之间的区别?基本上所有这些都为应用程序提供了抽象的低级服务。在那种情况下,为什么dot net称为框架和windows API称为.. API?
答案 0 :(得分:37)
API是应用程序编程接口。它只是一个术语,指的是程序员用来与软件接口的方法。例如,DAO可能有save()方法。 Save是DAO API的一部分。在较高级别,您可能具有“添加用户到系统”功能。这是系统API的一部分。
框架是一种工具或一组工具。例如,Spring是一个框架,可以管理您的控制,依赖注入的反转,并提供漂亮的模板,让您的生活更轻松。您可以通过其API使用Spring。
中间件是允许一堆独立系统或功能进行交互的软件。因此,如果你有一个网站和一个支付系统,你可以使用中间件来解决问题。
答案 1 :(得分:14)
API 是编程库(或库)的接口。它并没有强加给你一种做任何事情的方式。例如。 OpenGL不限制你可以用它做什么。
框架为您提供部分完成的问题解决方案。你填写空白来制作你想要的东西。这可能会加速您正在做的事情,但您也受到框架限制的限制,例如:设计,性能,功能。 - 例如MFC提供了一种创建UI的方法。它很好地支持了对话,但没有形式,对接等内容有限并且包含错误。 Windows Forms是一个功能更强大的框架(来自Borland Delphi的架构师!),它在各方面都更好:设计,灵活,工具等。框架很棒,直到他们不做你想要他们做的事情然后你你可能会失去大多数时间试图解决它们的问题。
中间件是垂直切片。如果您将软件视为分层(例如操作系统,硬件抽象,实用程序库等),则中间件会将许多这些层垂直纳入其中。它为您的应用程序中的某个区域提供完整或部分解决方案。例如。代理消息传递系统或渲染库/引擎。中间件不仅提供基本库,还提供相关工具,如日志记录,调试和性能测量。使用中间件时必须注意的一件事是DRY原则。由于中间件是垂直系统,它可能会竞争或复制应用程序的其他部分。
答案 2 :(得分:6)
框架实现API。 API将框架客户端与底层框架的实现细节隔离开来。因此(广义上说)您可以使用Mono或.Net Framework来运行基于公共源代码的程序,因为任一框架的API都是相同的。
中间件通常是专门用于进程间通信的框架。
答案 3 :(得分:3)
API是系统的程序接口。您可以使用它与系统进行交互,但不会强制程序中的任何结构(理想情况下)。
框架决定了编写某些类型应用程序的方式,以减少所需的样板量。它解决了它的类型应用的一些常见问题。
中间件主要是营销说话。有许多定义,但通常涉及一个大框架,其中包含一些工具。一些商业游戏引擎可以被认为是中间件,SOA平台也被称为中间件等。
答案 4 :(得分:0)
主要区别在于功能的目的。
API旨在解决特定域中的某些特定问题。它包含必要的数据结构,类,方法,接口等。 例如ADO.net API提供连接Microsoft SQL Server的功能。
一个旨在帮助开发人员获得可重用,可扩展的软件应用程序的框架。一个框架没有像API那样的特定功能,但是API公开了它的各种功能。 例如,ADO.net是.net框架的API,用于访问数据服务。 一个框架有编译器,程序,类库,run-time.it可以添加插件。