Прежде всего, поймите это, прежде чем .NET framework
, Microsoft
предоставляли автономные продукты, такие как MFC (Visual C++), VB, FoxPro
и т. Д.
В 2002 году Microsoft объединила свои продукты и создала .NET Framework. Теперь есть разница между тем, как код выполнялся раньше, и тем, как код управляется и выполняется в .NET Framework. Microsoft представила концепцию CLR
с платформой .NET, которая компилирует код, поступающий из любого поддерживаемого языка .NET Framework, и предоставляет дополнительные функции, такие как memory mangement, garbage collection
и т. Д. Но такие функции CLR ранее не были доступны напрямую.
Так что, если вы создаете библиотеку / код в .NET Framework (скомпилировано с
CLR), то это называется Managed code
. Вы можете использовать эту библиотеку
далее в другом .NET приложении / проекте, и там тоже, CLR будет
понять, как он был скомпилирован раньше, и поэтому он остается вашим
управляйте кодом.
OTOH, если вы хотите использовать библиотеки, которые были написаны до .NET Framework, вы можете сделать это с некоторыми ограничениями, но помните, поскольку CLR там не было в то время, поэтому сейчас CLR не будет понимать и компилировать этот код снова И это будет называться unmanaged code
. Обратите внимание, что библиотеки / сборки, созданные какой-либо третьей стороной для предоставления определенных функций / инструментов, также могут рассматриваться как неуправляемый код, если он не совместим с CLR.
С точки зрения непрофессионалов, Управление кодом - это то, что ваш CLR понимает и может скомпилировать самостоятельно для дальнейшего выполнения. В .NET Framework (с любого языка, который работает на .NET Framework) Когда код переходит в CLR, код предоставляет некоторую информацию метаданных, так что CLR может предоставить вам функции, указанные здесь . Немногие из них Garbage collection, Performance improvements, cross-language integration, memory management
и т. Д.
OTOH, неуправляемый код является чем-то специфичным для машины и готов к использованию, нет необходимости обрабатывать его дальше.