Diferencia entre framework vs Library vs IDE vs API vs SDK vs Toolkits? [cerrado]


Quiero algunos ejemplos. Siempre me confundo, así que con algunos ejemplos podría ser capaz de entenderlo mejor.

También: ¿Eclipse es una API o IDE?

Author: Xavier Casto, 2012-01-08

5 answers

Un IDE es un entorno de desarrollo integrado - un editor de texto con soporte adicional para desarrollar (como diseñadores de formularios, editores de recursos, etc.), compilar y depurar aplicaciones. por ejemplo Eclipse, Visual Studio.

Una Biblioteca es un fragmento de código que puedes llamar desde tu propio código, para ayudarte a hacer las cosas más rápido/fácilmente. Por ejemplo, una biblioteca de procesamiento de mapas de bits proporcionará facilidades para cargar y manipular imágenes de mapas de bits, ahorrándole tener que escribir todo ese código para ti mismo. Por lo general, una biblioteca solo ofrecerá un área de funcionalidad (procesamiento de imágenes u operación en archivos zip)

Una API (interfaz de programación de aplicaciones) es un término que significa las funciones/métodos en una biblioteca que puede llamar para pedirle que haga cosas por usted: la interfaz de la biblioteca.

Un SDK (kit de desarrollo de software) es una biblioteca o grupo de bibliotecas (a menudo con aplicaciones de herramientas adicionales, archivos de datos y muestras código) que le ayudan a desarrollar código que utiliza un sistema en particular (por ejemplo, código de extensión para usar características de un sistema operativo (SDK de Windows), dibujar gráficos 3D a través de un sistema en particular (SDK de DirectX), escribir complementos para extender otras aplicaciones (SDK de Office) o escribir código para hacer que un dispositivo como un Arduino o un teléfono móvil haga lo que desea). Un SDK generalmente tendrá un solo enfoque.

Un toolkit es como un SDK - es un grupo de herramientas (y a menudo bibliotecas de código) que puede usarlo para facilitar el acceso a un dispositivo o sistema... Aunque quizás con más enfoque en proporcionar herramientas y aplicaciones que solo en bibliotecas de código.

Un framework es una gran biblioteca o grupo de bibliotecas que proporciona muchos servicios (en lugar de tal vez solo una capacidad enfocada como lo hacen la mayoría de las bibliotecas/SDK). Por ejemplo,. NET proporciona un marco de aplicación: facilita el uso de la mayoría (si no todos) de los servicios dispares que necesita (por ejemplo, Windows, gráficos, impresión, comunicaciones, etc.) para escribir una amplia gama de aplicaciones, por lo que una "biblioteca" proporciona soporte para prácticamente todo lo que necesita hacer. A menudo, un marco proporciona una base completa sobre la que se construye su propio código, en lugar de crear una aplicación que consume código de biblioteca para hacer partes de su trabajo.

Por supuesto, hay muchos ejemplos en la naturaleza que no coincidirán exactamente con estas descripciones.

 257
Author: Jason Williams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-21 18:35:20

La Analogía del Coche

introduzca la descripción de la imagen aquí

IDE: Del MS Oficina de Programación. Es donde escribes tu código, además de algunas características añadidas para hacerte un programador más feliz. (por ejemplo, Eclipse, Netbeans ). Carrocería: Es lo que realmente tocas, ves y trabajas.

Biblioteca: Una biblioteca es una colección de funciones, a menudo agrupadas en varios archivos de programa, pero empaquetadas en un solo archivo de archivo. Esto contiene programas creados por otras personas, de modo que no tienes que reinventar la rueda. (e.g. junit.jar, log4j.jar). Una biblioteca generalmente tiene un papel clave, pero hace todo su trabajo detrás de escena, no tiene una interfaz gráfica de usuario. Motor del coche.

API: La documentación del editor de la biblioteca. Así es como debes usar mi biblioteca. (e. g. API log4j, API de junit). Manual del usuario del coche-sí, los coches vienen con uno también!


Kits

¿Qué es un kit? Es un colección de muchos artículos relacionados que trabajan juntos para proporcionar un servicio específico. Cuando alguien dice botiquín, obtienes todo lo que necesitas para una emergencia: yeso, aspirina, gasa y antiséptico, etc.

introduzca la descripción de la imagen aquí

SDK: McDonald's Happy Meal . Tienes todo lo que necesitas (y no necesitas) en caja cuidadosamente: plato principal, bebida, postre y un juguete extra. Un SDK es un montón de diferentes componentes de software ensamblados en un paquete, de tal manera que son "listo para la acción" de inmediato. A menudo incluye varias bibliotecas y puede , pero puede no incluir necesariamente complementos, documentación de API, incluso un IDE en sí. (por ejemplo, iOS Development Kit ).

Toolkit : GUI. GUI. GUI. Cuando escuche 'toolkit' en un contexto de programación, a menudo se referirá a un conjunto de bibliotecas destinadas al desarrollo de GUI. Dado que los kits de herramientas se centran en la interfaz de usuario, a menudo vienen con complementos (o IDE independientes) que proporcionan pintura de pantalla utilidad. (por ejemplo, GWT )

Framework : Aunque no es la noción predominante, un framework puede ser visto como un kit. También tiene una biblioteca (o una colección de bibliotecas que trabajan juntas) que proporciona una estructura y un patrón de codificación específicos (de ahí la palabra, framework). (por ejemplo, Spring Framework)

 89
Author: Jops,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-04 00:20:59

Considere el desarrollo de Android:

IDE: Eclipse etc..

Biblioteca: android.app.Biblioteca de actividades (Clase con todo el código)

API: Interfaz básicamente todas las funciones con las que llamamos

SDK: El SDK de Android le proporciona las bibliotecas de API y las herramientas de desarrollador necesarias para crear, probar y depurar aplicaciones para Android (- - - - herramientas-DDMS, Emulador - - - - plataformas-versiones del sistema operativo Android, - - - - herramientas de la plataforma-ADB, - - - - API docs)

Kit de herramientas: Podría ser ADT Paquete

Framework: Biblioteca grande pero más orientada a la arquitectura

 5
Author: ashishpinninti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-12 19:57:53

SDK representa al kit de desarrollo de software, y IDE representa al entorno de desarrollo integrado. El IDE es el software o el programa se utiliza para escribir, compilar, ejecutar y depurar, como Xcode. El SDK es el motor subyacente del IDE, incluye todas las bibliotecas de la plataforma a las que una aplicación necesita acceder. Es más básico que un IDE porque no suele tener herramientas gráficas.

 2
Author: Haitham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-09 16:33:14

En otras palabras...

IDE Incluso tu bloc de notas es un IDE. Cada software con el que escribes/compilas código es un IDE.

Biblioteca Un montón de código que simplifica las funciones / métodos para un uso rápido.

API Una interfaz de programación para funciones / configuración con la que trabaja, su uso a menudo se documenta.

SDK Extras y / o para fines de desarrollo / prueba.

Instrumental Aplicaciones pequeñas para un uso rápido, a menudo GUIs.

GUI Las aplicaciones con una interfaz gráfica, no requieren conocimientos de programación a diferencia de las API.

Framework Montón de APIs / Biblioteca enorme / Fragmentos envueltos en un espacio de nombres / o encapsulados desde el ámbito externo para un manejo compacto sin conflictos con otro código.

MVC Un patrón de diseño separado en Modelos, Vistas y Controladores para aplicaciones enormes. No son dependientes entre sí y se pueden cambiar / mejorar / reemplazar sin tener cuidado de otro código.

Ejemplo:

Coche (Modelo)
El objeto que está siendo presentar.
Ejemplo en ÉL: Un formulario HTML.


Cámara (Vista)
Algo que es capaz de ver el objeto (coche).
Ejemplo en ÉL: Navegador que renderiza un sitio web con el formulario.


Driver (Controlador de)
Alguien que conduce el coche.
Ejemplo en ÉL: Funciones que manejan datos de formulario que se está presentando.

Snippets Los códigos pequeños de solo unas pocas líneas, pueden no estar completos, pero vale la pena compartirlos rápidamente.

Complementos Funciones exclusivas solo para frameworks/APIs/libraries especificados.

Complementos Módulos o servicios adicionales para GUI específicos.

 2
Author: Thielicious,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-22 14:44:44