DLL и Библиотечные файлы - какой и почему?

UseSqlServer - это метод расширения в пространстве имен Microsoft.Data.Entity, поэтому вам нужно импортировать его в свой код, например:

using Microsoft.EntityFrameworkCore;
195
задан Jeff Atwood 2 July 2012 в 17:59
поделиться

2 ответа

Существуют статические библиотеки (LIB) и динамические библиотеки (DLL).

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

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

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

265
ответ дан 23 November 2019 в 05:22
поделиться

Одной из важных причин для создания DLL / LIB, а не просто компиляции кода в исполняемый файл, является повторное использование и перемещение. Среднее приложение Java или .NET (например), скорее всего, будет использовать несколько сторонних (или фреймворковых) библиотек. Гораздо проще и быстрее просто скомпилировать предварительно созданную библиотеку, вместо того, чтобы компилировать весь сторонний код в свое приложение. Компиляция вашего кода в библиотеки также поощряет хорошие методы проектирования, например, проектирование ваших классов для использования в различных типах приложений.

13
ответ дан 23 November 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: