2010-12-13 11 views
21

cuál es la diferencia entre estos dos términos, gracias de antemano por cualquier buena simplificación y buen ejemplo.diferencia entre API y marco

+1

no hacemos eso, pero ¿por qué preguntar en primer lugar? –

+0

@SrinivasReddyThatiparthy, Significado? – Pacerier

Respuesta

46

Un marco es un grupo de clases, interfaces y otros códigos pre-compilados sobre la cual o por la uso de qué aplicaciones se pueden construir.

La API es la cara pública de un marco. Un marco bien diseñado solo expone aquellas clases, interfaces, etc. que se necesitan para usar el marco. El código que admite el funcionamiento del marco, pero que no es necesario para los usuarios del marco, se mantiene dentro de los ensambles/dlls del marco. Esto mantiene la cara pública del marco pequeño y fomenta un "pozo de éxito", o la calidad de un marco que hace que sea sencillo hacer lo correcto.

(proporciono un ejemplo del mundo .NET) La clase SqlConnection se utiliza para conectarse a una instancia de servidor Sql. Su API pública es bastante simple:

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
    // Do work here; connection closed on following line. 
} 

Sin embargo, esta clase depende de alrededor de 200 métodos dentro del marco System.Data(en este caso, un montaje), 3/4 de los cuales son internos y no es parte de la API pública de System.Data. Debido a que la API del marco se mantiene simple, resulta fácil usar SqlConnection correctamente. Si se requiere que el usuario que tratar con SqlConnectionFactory, SqlDebugContext, DbConnectionPoolGroup o cualquiera de las otras clases internas exigidas por la clase SqlConnection, se convertiría en exponencialmente más difícil de usar SqlConnection correctamente. Como la API solo expone un pequeño porcentaje del marco, es más fácil crear y usar una conexión.

+1

+1 para una excelente explicación! –

+0

Tengo una consulta. En Java, ¿por qué las Colecciones se denominan tanto API como framework? Algunas veces está escrito "API de colecciones", y algunas veces "Marco de colecciones". Además, teniendo en cuenta su respuesta, ¿qué pasa con "Reflection API" de Java? ¿Cuál es la cara de qué marco de Java? – shanti

+0

No lo sé. Yo tampoco lo sé – Will

6

Una API es una interfaz para un (conjunto de) componente (s) que encapsula una funcionalidad. Por ejemplo, la API de GoogleMaps, las API de DirectX o OpenGL.

Un marco es más un conjunto de herramientas, componentes destinados a ayudar al desarrollador a desarrollar su proyecto en un Marco determinado. El marco generalmente establece algunos estándares de codificación, proporciona componentes útiles, ... Por ejemplo, Symfony/Cake son frameworks de aplicaciones web PHP. JUnit es un marco para pruebas unitarias en Java, ...

Los marcos a menudo pueden agrupar/proporcionar una interfaz unificada para algunas API.

Algunas API se pueden construir internamente utilizando un marco.

0

Las API están precompiladas desde SDK (o desde las cuales puede incluir en). Los marcos son paquetes cargables en los que se pueden usar las funciones expuestas de dichos paquetes. Puede adquirir funciones de exposición de esos marcos utilizando un puntero a funciones.

Ejemplo:

API:

-stringWithString: 

función de marco:

-myExposedMethod: 
0

Framework se utiliza para diseñar una aplicación, es decir, MVC, MEF. Como un modelo en el que se basa, casi una base para un determinado conjunto de funcionalidades que puede desear en su aplicación.

API es para la interacción entre aplicaciones, su aplicación usaría la API de Facebook para interactuar con Facebook.

Espero que esto sea un poco más claro.

1

Una API es algo código tiene, no es algo que es. Un framework tiene API, pero no es una API. interfaz de programación de aplicaciones - -

3
  1. API> contrato debe obedecer al utilizar la API de una biblioteca
  2. biblioteca - un conjunto de clases/módulos que resolver un problema específico -> tiene una API marco
  3. - una "más grande" conjunto de bibliotecas con un conjunto de reglas sobre cómo usarlas

Dado que cada biblioteca tiene una API, no tiene sentido dar ejemplos.

Una popular biblioteca de Java por tiempo es Joda time.

Un marco de Java popular es el Spring framework.

Debe obedecer un montón de reglas para usar Spring well. No tiene que obedecer tantas reglas para usar el tiempo Joda.

0
  1. Java API simplemente significa ... Interfaz de programación de aplicaciones en las que describe todas las características del producto o software.

  2. Java Framework significa proyecto o código semi-completado. Proporciona una arquitectura para hacer un proyecto. Framework tiene sus propias clases y métodos, etc.

+0

¿Qué pasa con "Marco de colecciones"? ¿Por qué se llama así? – shanti

0

Una API es simplemente una biblioteca creada con un lenguaje particular que los desarrolladores pueden usar para crear aplicaciones. Los marcos son un conjunto de bibliotecas, al igual que las API, sin embargo, las sintaxis pueden diferir del idioma original. Entonces, el desarrollador puede escribir una sintaxis diferente de PHP, por ejemplo, cuando usa Symphony.

0

La diferencia principal o principal y API es que el marco permite al desarrollador unirse al ciclo de vida de los objetos mediante el mecanismo de métodos de devolución de llamada de ciclo de vida, mientras que la API no hace eso, API solo tiene la intención de realizar una funcionalidad.

0

Otra forma de visualizarlo es la siguiente: (!) (verdadero de cualquier lenguaje de programación)

Cualquier "pieza de software que está destinado a ser utilizado por otra pieza de software" por definicióndebe tener alguna "interfaz de programa de aplicación (API)", que representa las "perillas, conmutadores y diales" que se espera (y se permite) que utilice el otro software. Todos los detalles de la implementación interna no son visibles y no pueden ser alcanzados.

"Frameworks" son herramientas que están diseñadas para facilitar que los humanos escriban un tipo particular de aplicación común, como una página web.El marco implementa "las cosas que cada tal aplicación va a necesitar poder hacer", y lo hace de una manera bien probada, "precisamente para que usted (el autor de la aplicación) no tenga a." En lugar de escribir de manera redundante "lo mismo de siempre, una vez más, y preocuparse por si lo hizo correctamente", simplemente aprovecha lo que el marco ya ha hecho por usted.

Después de todo ...

Actum Ne Agas:no hago una cosa ya se ha realizado.

Cuestiones relacionadas