문제

프레임 워크와 SDK의 차이점은 무엇입니까? 예를 들어 MS 플랫폼 SDK 및 .NET 프레임 워크를 사용하십시오. 둘 다 API를 가지고 있으며, 둘 다 내부 작업을 숨기고, 그렇지 않으면 빠르게/쉽게 접근 할 수없는 기능을 제공합니다 (즉, 실제 목적을 위해 사용).

그래서 차이점은 무엇입니까? 주로 의미론 마케팅 게임입니까, 아니면 개발자가 소프트웨어와 상호 작용할 것으로 예상되는 방식에 실제 차이가 있습니까 (및 반대로 개발자가 소프트웨어가 행동 할 수있는 방법)? 하나는 다른 것보다 높거나 낮은 수준이 될 것으로 예상됩니까?

감사!

편집 :이 질문은 위에서 언급 한 두 가지뿐만 아니라 일반적으로 SDK 및 프레임 워크에 적용됩니다.

도움이 되었습니까?

해결책

SDK는 특정 시스템 리소스 또는 기능에 대해 프로그래밍 할 도구를 제공 할 것으로 예상됩니다. 프레임 워크는 반드시 필요하지 않습니다 (.NET은 컴파일러 등과 같은 전체 도구 세트를 제공하지만 어쨌든 작동해야합니다).

따라서 라이브러리로만 구성된 프레임 워크를 개발할 수 있지만 SDK라고 부르면 개발을 지원할 무언가를 제공 할 것으로 예상됩니다.

다른 팁

Wikipedia에서 복사하겠습니다.

도서관:

도서관은 소프트웨어를 개발하는 데 사용되는 서브 루틴 또는 클래스 모음입니다. 라이브러리에는 독립 프로그램에 서비스를 제공하는 코드 및 데이터가 포함되어 있습니다. 이를 통해 코드 및 데이터를 모듈 식 방식으로 공유하고 변경할 수 있습니다.

뼈대:

컴퓨터 프로그래밍의 소프트웨어 프레임 워크는 일반적인 기능을 제공하는 일반적인 코드를 특정 기능을 제공하는 사용자 코드에 의해 선택적으로 상체되거나 전문화 될 수있는 추상화입니다. 프레임 워크는 소프트웨어 라이브러리와 유사합니다. 잘 정의 된 API에 랩핑 된 코드의 재사용 가능한 추상화라는 점에서 소프트웨어 라이브러리가 유사합니다. 그러나 라이브러리와 달리 전체 프로그램의 제어 흐름은 발신자가 아니라 프레임 워크에 의해 지시됩니다. 이러한 제어 역전은 소프트웨어 프레임 워크의 구별되는 기능입니다.

SDK :

소프트웨어 개발 키트 (SDK 또는 "DevKit")는 일반적으로 소프트웨어 엔지니어가 특정 소프트웨어 패키지, 소프트웨어 프레임 워크, 하드웨어 플랫폼, 컴퓨터 시스템, 비디오 게임 콘솔, 운영 체제 또는 이와 유사한 응용 프로그램을 만들 수있는 일련의 개발 도구입니다. 플랫폼. 일부 파일 형태의 애플리케이션 프로그래밍 인터페이스만큼 특정 프로그래밍 언어와 인터페이스하거나 특정 임베디드 시스템과 통신하기 위해 정교한 하드웨어를 포함시킬 수 있습니다. 일반적인 도구에는 디버깅 AIDS 및 자주 IDE에 제시되는 다른 유틸리티가 포함됩니다. SDK에는 또한 샘플 코드 및 지원 기술 노트 또는 기타 지원 문서가 자주 포함되어있어 기본 참조 자료의 포인트를 명확히하는 데 도움이됩니다.

그래서:

  • 라이브러리는 응용 프로그램이 호출하는 코드입니다.
  • 프레임 워크는 거의 준비된 응용 프로그램 또는 라이브러리입니다. 프레임 워크가 호출하는 자신의 코드로 빈 지점을 채우십시오.
  • SDK는 라이브러리, 프레임 워크, 문서화, 도구 등을 포함 할 수 있으므로 더 큰 개념입니다.
  • .NET은 실제로 소프트웨어 프레임 워크가 아닌 플랫폼과 비슷합니다.

간단히 말해서 차이는 다음과 같습니다.

  • SDK 기능을 호출합니다.
  • 프레임 워크는 귀하의 기능을 호출합니다.

SDK는 많은 도구가있는 도구 상자와 같으며 사용하는 도구와 방법을 선택합니다. 당신은 통제력이 있지만 많은 결정을 내릴 수 있습니다. 그것은 매우 낮은 수준입니다.

프레임 워크는 당신을 위해 많은 결정을 내리므로 바퀴를 재창조 할 필요가 없습니다. 더 "공백 채우기"접근 방식입니다. 자유가 적지 만 많은 시간을 절약하고 아마도 실수를 피할 수 있습니다.

.NET 프레임 워크의 특정 경우이를 사용하여 응용 프로그램을 실행하는 데 필요한 런타임 파일을 말하지만 워드가 프로그래밍 컨텍스트에서 사용되는 방식은 아닙니다.

회색 영역이지만 프레임 워크는 코딩하는 라이브러리 인 경향이 있습니다. SDK는 종종 프레임 워크에서 더 많은 것을 얻을 수있는 추가 도구를 가지고 있습니다. 좋은 예는 별도로 설치하는 .NET Framework SDK이며, SDK에는 실제로 프레임 워크의 일부가 아닌 ildasm, cordb와 같은 추가 도구가 있습니다.

나는 주도적이었다 Zend 프레임 워크 1.0 릴리스를 통해. 우리는 종종 개발자들이 기대한다는 의미에서 그것이 "프레임 워크"가 아니라고 의견을 얻었습니다. 그들은 그것이 수업 도서관에 더 가깝다고 말했습니다.

그들은 프레임 워크가 일련의 클래스와 비슷하다고 기대했습니다. ~ 해야 하다 그들이 일하기 위해 함께 사용하십시오. 프레임 워크에는 코딩 규칙 세트가 포함되어있어 특정 방식으로 코드를 구성하도록 안내합니다. 또한 프레임 워크는 클래스 및 데이터베이스 엔티티에 대한 명명 규칙을 부과 할 수 있습니다. 마지막으로 코드 생성 도구.

Zend Framework는 느슨하게 결합되도록 설계되었으므로 원하는 경우 독립형 클래스를 사용할 수 있습니다. 코드 나 데이터베이스에 규칙이 거의 없었습니다. 그리고 우리는 코드 생성기를 개발하려고했지만 아직 구현하지 않았습니다.

그러나 나는 여전히 Zend 프레임 워크가 SDK 대신 프레임 워크 역할을하는 다른 방식으로 프레임 워크로 자격이 있다고 느꼈습니다. 프레임 워크는 확장 가능. 객체 지향적 인 기본 클래스 세트로 설계되었으며 의도 된 사용법은 개발자가 extend 기능을 추가하기 위해 이러한 클래스 또는 간단한 플러그인 클래스를 작성하십시오.

전통적인 SDK입니다 확장 할 수 없습니다. 제공된 클래스에서 API 메소드를 호출하고 그들이하는 일을 수행하며 결과를 처리합니다. 모든 사용자 정의는 API 사용 및 결과를 사용하는 방법에 있습니다.

Microsoft SDK는 개발자가 프로그램을 만드는 데 사용될 수 있습니다. 최종 사용자는 일반적으로 필요하지 않습니다.

머신에서 .NET 애플리케이션을 실행하려면 대신 Microsoft 프레임 워크가 필수입니다.

클래스 라이브러리는 일반적으로 동일한 거친 응용 프로그램 영역 (수학, 렌더링)을 공유하는 클래스를 제공하지만 주로 서로 독립적으로 사용하도록 의도됩니다.

프레임 워크는 함께 확장하고 살을 펼치는 응용 프로그램의 기초를 형성하는 클래스를 제공합니다.

SDK에는 SDK가 제공하는 기술을 사용하는 데 필요한 모든 것이 포함되어 있습니다. 그것은 종종 프레임 워크 또는 클래스 라이브러리 일 수있는 실제 핵심 컨텐츠와 함께 점검, 샘플 및 도구를 포함합니다.

한 가지 비교하면 다음과 같이 말할 수 있습니다.
라이브러리 -> 프레임 워크 -> SDK
프레임 워크는 여러 라이브러리와 일부 도구 (컴파일러 등)로 구성되며 특정 플랫폼을 대상으로하지 않습니다. 플랫폼의 경우 각기 다른 목적을 제공하는 여러 프레임 워크가 개발 될 수 있습니다. SDK는 특정 플랫폼 용 소프트웨어를 개발하는 데 필요한 프레임 워크 및 기타 모든 것을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top