В чем разница между библиотекой классов и в рамках

Я весь день слышу термины Class library, base class library, Framework,...
Что выделяет фреймворк и что такое библиотека базовых классов?

13 ответов


отличительной особенностью библиотеки классов и программного обеспечения является то, что в рамках поток управления определяется не кодом пользователей, а платформой.

Это также известно как принцип Голливуда (не звоните нам, мы позвоним вам).

кстати, есть также хороший статья в Википедии на эту тему.


вы используете библиотеку классов при написании кода, но вы кодируете внутри основы.

термин " рамки "предназначен для вызова чувства"нахождения в среде". Если бы я поставил (ограниченную) аналогию с этим, я бы сказал, что библиотека классов похожа на возможность есть сыр и пить вино, тогда как структура похожа на посещение Франции; опыт культуры. Каркас-это структура, вокруг которой вы строите свою программу. Библиотека классов-это инструменты вы используете (возможно, в рамках).

конечно, фреймворк обычно будет содержать библиотеки классов. .NET, например, имеет кучи библиотек классов, которые включены во всю структуру.


библиотека:

Это просто коллекция of подпрограммы (функциональное программирование) или определения классов(объектно-ориентированное программирование). Причина просто повторное использование кода, т. е. получить код, который уже был написан другими разработчиками. Классы или подпрограммы обычно определяют конкретные операции в конкретной области домена. Например, есть некоторые библиотеки математики, которые могут позволить разработчик просто вызывает функцию без повтора реализации того, как работает алгоритм.

основа:

в рамках, все поток управления уже есть, и есть куча предопределенных белых пятен что надо заполните наш код. Рамки обычно более сложны. Это определяет скелет, где приложение определяет свои собственные функции для заполнения скелета. Таким образом, ваш код будет вызываться платформой, когда это уместно. Преимущество заключается в том, что разработчикам не нужно беспокоиться о том, хорош дизайн или нет, а просто о реализации доменных функций.

библиотека, рамки и представление изображения кода:

Library,Framework and your Code image relation

KeyDifference:

ключевое различие между библиотекой и фреймворком -"инверсия управления". При вызове метода из библиотеки, вы контролируете ситуацию. Но с помощью фреймворка элемент управления инвертируется:фреймворк вызывает вас. источник.

отношения:

оба они определили API, который используется для использования программистами. Чтобы собрать их вместе, мы можем представить библиотеку как определенную функцию приложения, фреймворк как скелет приложения, а API-соединитель для их объединения. Типичный процесс разработки обычно начинается с основы, и заполнять функции, определенные в библиотеках через API.

оригинальный ответ


A библиотека классов обычно это DLL или пакет классов, которые вы можете "включить"/"справка" в свое решение и повторно использовать.

A framework обычно является повторяющимся шаблоном / решением, ориентированным на определенный контекст, например, GUI Framework. Фреймворк чаще всего подразумевает, что вы пишете определенные фрагменты, как диктуют дизайнеры фреймворка, слот их в ожидаемых/правильных местах, и это должно работать.

  • например, Весна рамки для DI. Вы пишете xml-файлы в формате, продиктованном дизайнерами, а затем фреймворк позволяет получить собранные классы, не беспокоясь о том, что фреймворк это делает.
  • Rails-это фреймворк в Ruby для RAD web-приложений. Вы пишете только модели, контроллеры и представления, и у вас есть рабочее веб-приложение менее чем за час.
  • BCL-это набор библиотек классов, поэтому вам не нужно реализовывать структуры данных и часто используемые типы в .NET и просто получите проверенные проверенные реализации бесплатно, просто включив их.

основа обычно содержит несколько библиотек классов. Как всегда, в наши дни термины используются неоднозначно.. но вышеизложенное представляет собой более распространенное толкование терминов... мой по крайней мере :)


часто вы используете библиотеки, чтобы получить определенную функциональность в свой собственный программного обеспечения/infrastructre. Например, печать штрих-кода, Вы бы использовать библиотеку, чтобы сделать это. Фреймворк абстрагирует целый класс проблем, возможно, проблему написания веб-приложений. Для этого фреймворк предоставляет "фрейм" со всеми функциями и заглушками, которые вы можете запрограммировать.


вы называете код библиотеки классов где as framework называет ваш код


библиотека классов-это просто набор классов, инкапсулированных в определяемую единицу, такую как сборка. Этот термин не ограничивается каким-либо конкретным языком или рамками.

на Библиотека Базовых Классов (BCL)-это определенные атрибуты термина для набора библиотек классов, которые предварительно установлены с .NET Framework, которые предоставляют классы, аккуратно организованные в пространства имен, чтобы у вас был API, с помощью которого можно создавать собственные решения.

основы это более широкий термин, который включает библиотеки классов, виртуальную машину, которая управляет управляемым выполнением процессов, предоставляет среду выполнения наряду с другими службами, такими как управление памятью и обработка исключений. См. .NET Framework для получения дополнительной информации.


Я бы сказал, что эти два довольно взаимозаменяемы... - это просто набор общего повторно используемого кода (в любой платформе, на которую вы ориентируетесь), обычно поставляемый платформой.

возможно, вы могли бы утверждать, что BCL обычно представляет собой "чистые" (независимые от поставщика) модули, где-как "фреймворк" мая (в зависимости от того, как вы используете термин) включают в себя заказные модули поставщика. Но что он, возможно, открыт для местной интерпретации.


фреймворк-это предположительно связная коллекция одной или нескольких библиотек классов. Например, фреймворки Java и .NET состоят из сотен библиотек классов. В .NET существует, по обычаю, но не обязательно, соответствие между сборками и библиотеками классов. В Java существует грубое соответствие между пространствами имен и библиотеками классов.

хотя я никогда не замечал фразы"базовый библиотека классов", я ожидал бы, что такая вещь будет содержать абстрактные классы, предназначенные для подклассов перед использованием.

Framework в смысле моего первого абзаца подразумевает полноту в пределах компетенции библиотеки. Например, можно ожидать, что структура обработки изображений будет содержать все необходимое для обработки изображений, начиная от синтаксических анализаторов формата файлов и заканчивая графическими операциями в памяти.


Я думаю о фреймворке как о шаблоне, которому может соответствовать приложение, определенное в наборе библиотек.

"базовая" библиотека классов может означать несколько вещей в зависимости от контекста; она может ссылаться на классы, которые предназначены для получения, что является общим подходом в рамках, или она может просто ссылаться на основную библиотеку классов, которые считаются полезными в любом приложении и поэтому считаются "базовой" потребностью, почти частью языка (например,, контейнерный класс.)


инверсия управления является ключевой частью того, что делает структуру отличной от библиотеки. Библиотека-это набор функций, которые вы можете вызывать, в наши дни они организованы в классы. Каждый вызов выполняет некоторую работу и возвращает управление клиенту.

фреймворк воплощает в себе некоторый абстрактный дизайн со встроенным поведением. Для того, чтобы использовать его, вы должны добавить свой код в различных местах фреймворка, либо через наследование, либо подключив свой собственный класс. Затем код фреймворка вызывает ваш код в этих точках.


приложение имеет много частей, сосуществующих в синхронизации, обеспечивающих различные функциональные возможности...теперь код должен быть написан для каждой из этих частей, чтобы работать, и поэтому платформа приложений делает этот код для вас, чтобы вам не пришлось проходить через каждый код, связанный с каждой функциональностью.Рамки приложений облегчают написание приложений.

в самых простых терминах, если вы делаете дом, то его структура,форма,функции может поддерживать, электрический и гидравлический дизайн, рамы и т. д.-Это все его рамки, и теперь вы должны работать в этих рамках, чтобы сделать ваше здание таким образом, чтобы все беспокойство о создании сейсмостойкой структуры или создании линейно возведенного здания было обработано вашими рамками

Это очень просто. Платформа берет на себя все сложности взаимодействия с операционной системой и упрощает их для вас. Он обрабатывает все мелкие детали для вас. Очевидно, уверен фреймворки справляются с этим лучше других.

разница между платформой приложений и библиотеками : вы используете библиотеку классов при написании кода, но вы кодируете в рамках.


здесь есть хорошее объяснение несколькими членами: в чем разница между фреймворком и библиотекой?

Мне нравится, как приводятся примеры реального мира .. так легче обернуть голову вокруг!