Frage

Was ist der Unterschied zwischen einem Rahmen und einem SDK? Nehmen wir zum Beispiel die MS-Plattform SDK und das .NET Framework. Beide haben APIs, beide verstecken ihr Innenleben, und beide Funktionen bieten, die nicht schnell sein kann / leicht zugänglich sonst (in anderen Worten, sie einen realen Zweck dienen).

Also, was ist der Unterschied? Ist es in erster Linie ein Marketing-Spiel von Semantik, oder gibt es tatsächlich Unterschiede, wie Entwickler erwartet werden mit der Software interagieren (und umgekehrt, wie die Entwickler die Software verhalten erwarten können)? Ist ein erwartete höher- oder niedrigere Ebene als die andere sein, etc?

Danke!

EDIT:. Diese Frage zu SDKs und Frameworks im Allgemeinen gilt, nicht nur die beiden oben genannten

War es hilfreich?

Lösung

Ein SDK wird erwartet, Werkzeuge bieten gegen eine bestimmte Systemressource oder Funktion zu programmieren. Ein Framework nicht notwendigerweise (obwohl .NET eine ganze Reihe von Werkzeugen bietet wie die Compiler, etc. - aber diese sind obligatorisch für sie sowieso zu arbeiten).

So könnten Sie einen Rahmen entwickeln ausschließlich aus Bibliotheken aus, aber wenn man es so nennen SDK werden Sie erwarten, etwas zu bieten Entwicklung zu unterstützen.

Andere Tipps

Ich werde einfach kopieren von Wikipedia:

In der Bibliothek:

  

Eine Bibliothek ist eine Sammlung von Unterprogrammen oder Klassen-Software zu entwickeln. Bibliotheken enthalten Code und Daten, die Dienstleistungen für unabhängige Programme bieten. Auf diese Weise kann Code und Daten gemeinsam genutzt und in einer modularen Art und Weise verändert werden.

Framework:

  

Ein Software-Framework, in Computer-Programmierung, ist eine Abstraktion, in der gemeinsamen Code generische Funktionalität bereitstellt kann durch Benutzercode, die spezifische Funktionalität selektiv außer Kraft gesetzt oder spezialisiert werden. Frameworks sind ähnlich wie Software-Bibliotheken, dass sie in einem gut definierten API gewickelten wiederverwendbar Abstraktionen von Code sind. Im Gegensatz zu Bibliotheken, jedoch die Strömung des Gesamtprogramms der Steuerung nicht vom Anrufer bestimmt, sondern durch den Rahmen. Diese Umkehrung der Steuerung ist das Unterscheidungsmerkmal von Software-Frameworks.

SDK:

  

Ein Software Development Kit (SDK oder „devkit“) ist in der Regel eine Reihe von Entwicklungstools, die ein Software-Ingenieur für ein bestimmtes Software-Paket, Software-Framework, Hardwareplattform, Computersystem, Videospielkonsole, das Betriebssystem zu erstellen Anwendungen ermöglicht oder ähnliche Plattform. Es kann etwas so einfach wie ein Application Programming Interface in Form einiger Dateien wird als Schnittstelle zu einer bestimmten Programmiersprache oder ist beispielsweise anspruchsvolle Hardware mit einem bestimmten eingebetteten System zu kommunizieren. Gemeinsame Werkzeuge umfassen Testhilfen und andere Dienstprogramme häufig in einer IDE vorgestellt. SDKs umfasst häufig auch Beispielcode und technische Hinweise oder andere Belege aus dem primären Referenzmaterial zu klären Punkte zu helfen, zu unterstützen.

So:

  • In der Bibliothek ist Code, der Ihre Anwendung Anrufe.
  • Framework ist eine Anwendung oder Bibliothek, die fast fertig gestellt ist. Sie füllen nur in einigen weißen Flecken mit Ihrem eigenen Code, der den Rahmen aufruft.
  • SDK ist ein größeres Konzept, wie es Bibliotheken umfassen kann, Frameworks, Dokumentation, Werkzeuge, etc.
  • .NET ist wirklich eher wie eine Plattform, nicht ein Software-Framework.

Auf den Punkt gebracht ist der Unterschied:

  • Sie rufen die SDK-Funktionen.
  • Das Framework ruft Ihre Funktionen.

Ein SDK ist wie ein Werkzeugkasten mit vielen Werkzeugen und Sie wählen, welche Sie verwenden und wie. Sie haben die Kontrolle, sondern auch eine Menge Entscheidungen zu treffen. Das ist ein ziemlich niedriges Niveau.

macht ein Rahmen viele Entscheidungen für Sie, damit Sie das Rad nicht neu erfinden müssen; Es ist mehr ein „Lückenfüller“ -Ansatz. Weniger Freiheit, aber Sie viel Zeit sparen und wahrscheinlich einige Fehler vermeiden.

Im speziellen Fall des .NET-Framework es bezieht sich auch auf die Runtime-Dateien benötigten zum Ausführen von Anwendungen verwenden es, aber es ist nicht die Art, wie das Wort in einem Programmier Kontext verwendet wird ...

Es ist eine Grauzone, aber Frameworks sind in der Regel die Bibliotheken von Code gegen, SDK haben oft zusätzliche Tools werden Sie mehr aus dem Rahmen zu helfen. Ein gutes Beispiel des .NET Framework SDK ist, die Sie separat installieren, das SDK hat zusätzliche Tools wie ildasm, cordb, die nicht wirklich Teile des Rahmens sind.

Ich war der Vorsprung auf Zend Framework durch die Version 1.0. Wir haben oft Kommentare, dass es keine „Rahmen“ in dem Sinne, dass Entwickler erwartet - sie sagten, es ist eher eine Klassenbibliothek ist.

Sie erwarteten, dass ein Rahmen mehr ist wie eine Reihe von Klassen, die muss zusammen verwendet werden, für sie zu arbeiten. Ein Rahmen kann auch eine Reihe Konventionen der Codierung, Führen Sie Ihren Code in einer bestimmten Art und Weise zu organisieren. Auch kann ein Framework Namenskonvention für Ihre Klassen und Datenbankentität verhängen. Und schließlich Code-Generierungs-Tools.

wurde Zend Framework entwickelt lose gekoppelt werden, so dass Sie eine der Klassen Standalone verwenden könnte, wenn man wollte. Sie verhängte wenige Konventionen auf dem Code oder Ihre Datenbank. Und wir beabsichtigt hatten Code-Generatoren zu entwickeln, sondern hatte sie noch nicht implementiert.

Aber ich fühlte mich immer noch, dass Zend Framework als Rahmen qualifiziert, anstelle eines SDK, in einer anderen Art und Weise: Ein Rahmen ist erweiterbar . Es wurde entwickelt, als eine Reihe von objektorientierten Basisklassen und die beabsichtigte Verwendung ist, dass die Entwickler entweder diese Klassen extend, oder schreiben Sie einfach Plug-in-Klassen, Funktionen hinzuzufügen.

Ein traditionelles SDK ist nicht erweiterbar . Sie rufen einfach API-Methoden in den dafür vorgesehenen Klassen, sie tun, was sie tun, und Sie beschäftigen sich mit dem Ergebnis. Jede Anpassung ist in Ihrer Nutzung der API und wie Sie Nutzung der Ergebnisse machen.

Microsoft SDK kann von einem Entwickler verwendet werden, um ihre Programme zu erstellen. Endverbraucher normalerweise brauchen es nicht.

Microsoft Framework statt obligatorisch ist, wenn Sie auf einer Maschine .NET-Anwendungen ausgeführt werden sollen.

Eine Klassenbibliothek bietet Klassen, die in der Regel die gleiche raue Einsatzbereich teilen (Mathematik, Rendering), sondern sollen meist unabhängig voneinander verwendet werden.

Ein Framework stellt Klassen, die zusammen eine Grundlage für eine Anwendung bilden, die Sie nur verlängern und Fleisch aus.

Ein SDK enthält alles, was Sie die Technologie das SDK verwenden müssen für bereitgestellt. Es wird oft enthalten dokumentation, Muster und Werkzeuge neben den eigentlichen Kern-Inhalte, die ein Rahmen oder eine Klassenbibliothek sein könnten oder auch etwas ganz anderes.

In einem Vergleich, könnte man sagen:
Bibliothek -> Rahmen -> SDK
Framework besteht aus mehreren Bibliotheken, sowie einige Tools (Compiler usw.), und keine bestimmte Plattform Ziel. Für eine Plattform, könnte es mehrere Frameworks entwickelt werden, die jeweils einen anderen Zweck dienen. SDK bietet Ihnen Frameworks und alles, was Sie für die Entwicklung von Software für eine bestimmte Plattform benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top