różnica między API a frameworkiem

Jaka jest różnica między tymi dwoma pojęciami, z góry dziękuję za wszelkie dobre uproszczenia i dobre przykłady.

Author: Will, 2010-12-13

10 answers

Framework to grupa klas, interfejsów i innych wstępnie skompilowanych kodów, na których lub przy użyciu których można budować aplikacje.

API jest publiczną twarzą frameworka. Dobrze zaprojektowany framework eksponuje tylko te klasy, interfejsy itp., które są potrzebne do korzystania z frameworku. Kod, który obsługuje działanie frameworka, ale który nie jest konieczny dla użytkowników frameworka, jest przechowywany wewnątrz frameworka ' s assemblies/DLL. To utrzymuje publiczne oblicze framework mały i zachęca do "dołu sukcesu" lub jakości frameworku, który ułatwia robienie właściwych rzeczy.

(podaję przykład ze świata. NET) Klasa SqlConnection jest używana do łączenia się z instancją serwera Sql. Jego publiczne API jest dość proste:

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

Jednak ta klasa zależy od około 200 metod w systemie .Data framework (w tym przypadku assembly ), z których 3/4 są wewnętrzne i nie są częścią publicznego API System.Data . Ponieważ API frameworka jest proste, korzystanie z SqlConnection staje się łatwe. Jeśli użytkownik był zobowiązany do obsługi SqlConnectionFactory, SqlDebugContext, DbConnectionPoolGroup lub jakąkolwiek inną wewnętrzną klasą wymaganą przez klasę SqlConnection, byłoby wykładniczo trudniej poprawnie używać SqlConnection. Ponieważ API eksponuje tylko niewielki procent frameworka, łatwiej jest tworzyć i używać połączenie.

 49
Author: Will,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 15:39:53

[[0]} API jest interfejsem do (zestawu) komponentów hermetyzujących funkcjonalność. Na przykład, GoogleMaps API, DirectX lub OpenGL API.

Framework to raczej zestaw narzędzi, komponentów mających na celu pomoc deweloperowi w rozwijaniu jego projektu w danej ramce. Framework zazwyczaj wyznacza pewne standardy kodowania, dostarcza użytecznych komponentów, ... Na przykład Symfony / Cake są frameworkami aplikacji internetowych PHP. JUnit to framework do testów jednostkowych w Javie, ...

Frameworki mogą często łączyć / dostarczać zunifikowany interfejs do niektórych API.

Niektóre API mogą być budowane wewnętrznie przy użyciu frameworka.

 6
Author: Vincent Mimoun-Prat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 15:29:05
  1. API-application programming interface - > kontrakt, którego musisz przestrzegać podczas korzystania z API biblioteki
  2. biblioteka-zbiór klas/modułów, które rozwiązują określony problem - > posiada API
  3. framework - "większy" zestaw bibliotek z zestawem reguł, jak z nich korzystać

Ponieważ każda biblioteka ma API, nie ma sensu podawać przykładów.

Popularną biblioteką Javy dla czasu jest Joda time .

Popularnym frameworkiem Javy jest Wiosna framework .

Musisz przestrzegać wielu zasad, aby dobrze korzystać z wiosny. Nie musisz przestrzegać tylu zasad, żeby wykorzystać czas Jody.

 3
Author: darioo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 15:31:39

API jest czymś, co posiada kod , nie jest czymś, czym jest[1]}. framework mA API, ale sam nie jest API.

 1
Author: kindall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 15:31:37

API są wstępnie wbudowane z SDK (lub z którego można dołączyć do). Frameworki są ładowanymi wiązkami, w których można wykorzystać odsłonięte funkcje takich wiązek. Funkcje expose tych frameworków można nabyć za pomocą wskaźnika do funkcji.

Przykład:

API:

-stringWithString:

Funkcja z frameworka:

-myExposedMethod:
 0
Author: Neilvert Noval,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 15:29:23

Framework służy do projektowania aplikacji, czyli MVC, MEF. Podobnie jak model, na którym budujesz, prawie podstawa dla określonego zestawu funkcji, które możesz chcieć w swojej aplikacji.

Facebook Facebook API służy do interakcji między aplikacjami, Twoja aplikacja będzie korzystać z Facebook API do interakcji z Facebookiem.

Mam nadzieję, że to jest trochę bardziej jasne.

 0
Author: Pieter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 15:31:09
  1. Java API po prostu oznacza ...Interfejs programowania aplikacji, w którym wszystkie funkcje opisują produkt lub oprogramowanie.

  2. Java framework oznacza częściowo ukończony projekt lub kod. Zapewnia architekturę do wykonania projektu . Framework posiada własne klasy i metody itp..

 0
Author: Ashish Gojiya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-10 12:09:55

API jest po prostu biblioteką zbudowaną z określonego języka, którego programiści mogą używać do tworzenia aplikacji. Frameworki są zestawem bibliotek, podobnie jak API, jednak składnia może oddzielić się od oryginalnego języka. Tak więc programista może pisać inną składnię PHP, na przykład podczas korzystania z Symphony.

 0
Author: Ghassen BHS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 10:00:45

Główną lub podstawową różnicą beteen framework i API jest to, że framework pozwala programistom na podłączenie się do cyklu życia obiektów za pomocą mechanizmu metod zwrotnych cyklu życia, podczas gdy API tego nie robi, API jest przeznaczone tylko do wykonywania funkcji.

 0
Author: Satyam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-24 07:19:31

Innym sposobem wizualizacji jest to: (prawda dla dowolnego języka programowania)

Any(!) "oprogramowanie, które ma być używane przez inne oprogramowanie" z definicji musi mieć jakiś "interfejs programu aplikacji (API)", który reprezentuje "pokrętła, przełączniki i pokrętła", których inne oprogramowanie jest oczekiwane (i dozwolone) używać. Wszystkie wewnętrzne szczegóły implementacji nie są widoczne i nie można do nich dotrzeć.

" ramy" są narzędziami, które mają na celu ułatwienie ludziom napisania określonego, wspólnego, typu aplikacji – takich jak strona internetowa. Framework implementuje "rzeczy, które Każda taka aplikacja musi być w stanie zrobić," i robi to w jeden, dobrze przetestowany sposób, "dokładnie po to, aby ty (autor aplikacji) nie musiał."Zamiast redundantnie pisać" to samo stare, jeszcze raz i zastanawiać się, czy zrobiłeś to poprawnie", po prostu wykorzystujesz to, co framework już zrobił dla Ciebie.

Mimo wszystko...

Actum Ne Agas: Nie Rób Nic, Co Już Zrobiłeś.

 0
Author: Mike Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-31 18:19:58