Общие сведения о платформе .netoverview of .net framework
Содержание:
- Случаи использования .NET FrameworkWhen to choose .NET Framework
- Предназначение .NET Framework
- Next steps
- .NET Framework для пользователей.NET Framework for users
- Минимальные требования к Фреймворку
- Remarks for older versions
- Установка языковых пакетовTo install language packs
- Своеобразные кодеки для программ
- Supported server operating systems
- Architecture of .NET Framework
- Фреймворк — что это такое простыми словами?
- Features of the common language runtime
Случаи использования .NET FrameworkWhen to choose .NET Framework
Среда .NET 5 предоставляет значительные преимущества для новых приложений и шаблонов приложений..NET 5 offers significant benefits for new applications and application patterns. Но платформа .NET Framework остается оптимальным выбором во многих ситуациях, поэтому .NET 5 не заменит .NET Framework для всех серверных приложений.However, .NET Framework continues to be the natural choice for many existing scenarios, and as such, .NET Framework isn’t replaced by .NET 5 for all server applications.
Готовые приложения .NET FrameworkCurrent .NET Framework applications
В большинстве случаев вам не потребуется переносить готовые приложения в среду .NET 5.In most cases, you don’t need to migrate your existing applications to .NET 5. Взамен мы советуем использовать .NET 5 для расширения готовых приложений, например для написания новой веб-службы в ASP.NET Core.Instead, a recommended approach is to use .NET 5 as you extend an existing application, such as writing a new web service in ASP.NET Core.
.NET Standard позволяет совместно использовать код во всех реализациях .NET, включая .NET 5..NET Standard enables sharing code across all .NET implementations, including .NET 5. В .NET Standard 2.0 этот режим совместимости позволяет проектам .NET Standard и .NET 5 ссылаться на библиотеки .NET Framework.With .NET Standard 2.0, a compatibility mode allows .NET Standard and .NET 5 projects to reference .NET Framework libraries. Дополнительные сведения см. в статье .For more information, see .
Платформу .NET Framework следует применять только в случаях, где библиотеки или пакеты NuGet используют технологии, которые недоступны в .NET Standard и .NET 5.You need to use .NET Framework only in cases where the libraries or NuGet packages use technologies that aren’t available in .NET Standard or .NET 5.
Технологии .NET, недоступные для .NET 5.NET technologies not available for .NET 5
Некоторые технологии .NET Framework недоступны в среде .NET 5.Some .NET Framework technologies aren’t available in .NET 5. Ниже приведен список самых распространенных технологий, которые недоступны в .NET 5:The following list shows the most common technologies not found in .NET 5:
-
Приложения веб-форм ASP.NET. Веб-формы ASP.NET доступны только в среде .NET Framework.ASP.NET Web Forms applications: ASP.NET Web Forms are only available in .NET Framework. ASP.NET Core не может использоваться для веб-форм ASP.NET.ASP.NET Core cannot be used for ASP.NET Web Forms.
-
Приложения веб-страниц ASP.NET. Веб-страницы ASP.NET не добавлены в среду ASP.NET Core.ASP.NET Web Pages applications: ASP.NET Web Pages aren’t included in ASP.NET Core.
-
Реализация служб WCF.WCF services implementation. Хотя в среду .NET 5 и добавлена библиотека клиента WCF, позволяющая использовать службы WCF, сервер WCF можно реализовать только в среде .NET Framework.Even when there’s a WCF client library to consume WCF services from .NET 5, WCF server implementation is currently only available in .NET Framework.
-
Службы, связанные с рабочими процессами. Службы Windows Workflow Foundation (WF), Workflow Services (WCF и WF в одной службе) и WCF Data Services (известные как «Службы данных ADO.NET») доступны только в среде .NET Framework.Workflow-related services: Windows Workflow Foundation (WF), Workflow Services (WCF + WF in a single service), and WCF Data Services (formerly known as «ADO.NET Data Services») are only available in .NET Framework.
-
Поддержка языков. Сейчас в среде .NET 5 поддерживаются Visual Basic и F#, но не для всех типов проектов.Language support: Visual Basic and F# are currently supported in .NET 5, but not for all project types. Список поддерживаемых шаблонов проектов см. в статье о .For a list of supported project templates, see .
Дополнительные сведения см. в разделе Технологии .NET Framework, недоступные в .NET 5.For more information, see .NET Framework technologies unavailable in .NET 5.
Платформа не поддерживает .NET 5Platform doesn’t support .NET 5
Некоторые платформы Майкрософт и платформы сторонних поставщиков не поддерживают среду .NET 5.Some Microsoft or third-party platforms don’t support .NET 5. Некоторые службы Azure предоставляют пакеты SDK, недоступные в среде .NET 5.Some Azure services provide an SDK not yet available for consumption on .NET 5. В таких случаях в качестве альтернативы клиентскому пакету SDK можно использовать REST API.In such cases, you can use the equivalent REST API instead of the client SDK.
Предназначение .NET Framework
Применяется для разработки приложений, работающих на локальной машине и веб-приложений. На нем могут быть также основаны веб-сервисы. Поддерживает языки программирования, в числе которых: Visual Basic и C#. Предоставляет разработчику выбор языка программирования, который будет использован при создании программы.
Удобство пользователей и разработчиков
С .NET Framework необходимость писать каждую программу «с нуля» отсутствует. Есть готовые фрагменты программного кода. Элементы окон стандартные. Разработчик лишь вставляет текст, формирует меню приложения и определяет, что будет происходит, когда вы нажмете на определенную кнопку.
Не приходится задумываться над особенностями кода, который нужен для поддержки программы операционной системой и для работы с сервисами Майкрософт, к которым относится и магазин приложений Windows Store. Платформа заботится об экономном использовании аппаратных ресурсов компьютера. Поэтому распространенные в начале века ситуации, когда пустяковый на первый взгляд софт загружал оперативную память, стали большой редкостью.
Комфортно и разработчику и вам. Пользователям не приходится каждый раз изучать нестандартный интерфейс софта, рожденного фантазией программиста. Создатели ПО могут сосредоточиться на функционале приложений. Пользователю нужно лишь позаботиться, чтобы на компьютере была установлена среда выполнения .NET Framework.
Универсальная платформа
Microsoft обеспечивает работу основанного на .NET Framework софта во всех поддерживаемых компанией операционных системах.
Степень обратной совместимости ПО высока. Рассмотрю на примере старых версий. Вам нужна программа, основанная на версии 2.0. Запускаете ее на ноутбуке или настольном ПК с поздней версией. И старый софт будет работать.
Основанное на платформе ПО работает на любой Windows с установленным .NET Framework. Встроен механизм безопасности. Осуществляется управлением памятью. Платформа .NET видит те ресурсы, которые не используются работающей программой. Очистит память от ставших ненужными в процессе работы фрагментов.
Для разработчиков предусмотрены инструменты упаковки приложений. Они легко устанавливаются на ПК.
Архитектура .NET Framework
CLI («Common Language Infrastructure») — платформа, на которой выполняются программы. Основные функции CLI:
- Обработка исключений. К ним относятся ошибки, возникающие при работе программы. Приведу примеры:
- Приложение пытается открыть на локальном компьютере файл, который отсутствует
- Приложение обращается к базе данных, а соединение с ней отсутствует
- Чистка мусора, то есть удаление ресурсов, которые больше не нужны. Проверяется, какие ресурсы не используются и производится их освобождение для выполнения других задач. Примеры фрагментов, которые удаляются в процессе работы без вмешательства пользователя:
- Дескриптор файла, который больше не требуется
- В соединении с базой данных больше нет необходимости. Программа завершила все операции с базой данных
- Работа с различными языками программирования
Уровни .NET Framework
Выделяются три уровня:
- Языки программирования. Часто используемые: VB.NET и C#
- Компиляторы. Для каждого языка программирования предусмотрен отдельный компилятор. Для VB.NET — один, для C# — другой
- Интерпретатор «Common Language Interpreter» используется для запуска приложения, написанного на любом языке программирования. Поэтому компилятор отравит программу в него для последующего запуска приложения
Библиотеки
.NET Framework включает в себя набор стандартных библиотек классов: методов и функций. Например, есть библиотека классов для обработки всех операций на уровне файлов. Есть метод чтения текста из файла и есть метод записи текста в файл.
Типы основанных на платформе приложений
ПО, которое может работать на основе .NET Framework:
- WinForms: программы, которые будут работать на компьютере пользователя. Пример клиентского приложения: текстовый редактор «Блокнот»
- ASP.NET применяется для разработки веб-приложений, которые станут работать в любом браузере, в том числе: Chrome, Edge, Firefox. При этом:
- Веб-приложение будет обрабатываться на сервере, на котором установлены информационные службы интернета (IIS)
- IIS — это компонент Microsoft, который применяется для запуска приложения ASP.NET
- Результат выполнения отправляется на компьютер пользователя и отображается в браузере
- Технология ADO.NET применяется для создания приложений, предназначенных для работы с базами данных, такими как Microsoft SQL Server и Oracle
Next steps
-
If you’re new to the .NET Framework, see the overview for an introduction to key concepts and components.
-
For new features and improvements in the .NET Framework 4.5 and all later versions, see What’s New.
-
For detailed information about deploying the .NET Framework with your app, see Deployment Guide for Developers.
-
For changes that affect the deployment of the .NET Framework with your app, see Reducing System Restarts During .NET Framework 4.5 Installations.
-
For information about migrating your app from the .NET Framework 4 to .NET Framework 4.5 or later versions, see the migration guide.
-
See .NET Framework Reference Source to browse through .NET Framework source code online. The reference source is also available on GitHub. You can download the reference source for offline viewing and step through the sources (including patches and updates) during debugging. For more information, see the blog entry A new look for .NET Reference Source.
.NET Framework для пользователей.NET Framework for users
Если вы не разрабатываете приложения .NET Framework, но используете их, вам не требуется обладать специальными знаниями о платформе .NET Framework или ее работе.If you don’t develop .NET Framework apps, but you use them, you aren’t required to have specific knowledge about .NET Framework or its operation. В большинстве случаев платформа .NET Framework совершенно прозрачна для пользователей.For the most part, the framework is completely transparent to users.
Если используется операционная система Windows, платформа .NET Framework, возможно, уже установлена на компьютере.If you’re using the Windows operating system, .NET Framework may already be installed on your computer. Кроме того, если устанавливается приложение, для работы которого требуется .NET Framework, программа установки приложения может установить нужную версию .NET Framework на компьютер.In addition, if you install an app that requires .NET Framework, the app’s setup program might install a specific version of the framework on your computer. В некоторых случаях отображается диалоговое окно с приглашением установить платформу .NET Framework.In some cases, you may see a dialog box that asks you to install .NET Framework. Если вы попытались запустить приложение и появилось это окно, при наличии подключения к Интернету можно перейти на веб-страницу, откуда можно установить отсутствующую версию .NET Framework.If you’ve just tried to run an app when this dialog box appears and if your computer has internet access, you can go to a webpage that lets you install the missing version of .NET Framework. Дополнительные сведения см. в руководстве по установке.For more information, see the Installation guide.
В общем случае не рекомендуется удалять версии платформы .NET Framework, установленные на компьютере.In general, you shouldn’t uninstall versions of .NET Framework that are installed on your computer. Для этого имеются две причины:There are two reasons for this:
-
Если приложение зависит от конкретной версии платформы .NET Framework, то при удалении этой версии его работа может быть нарушена.If an app that you use depends on a specific version of .NET Framework, that app may break if that version is removed.
-
В некоторых версиях платформы .NET Framework существуют обновления на месте на более ранние версии.Some versions of .NET Framework are in-place updates to earlier versions. Например, .NET Framework 3.5 представляет собой обновление на месте для версии 2.0, а .NET Framework 4.8 — обновление на месте для версий с 4 по 4.7.2.For example, .NET Framework 3.5 is an in-place update to version 2.0, and .NET Framework 4.8 is an in-place update to versions 4 through 4.7.2. Дополнительные сведения см. в разделе Платформа.NET Framework: версии и зависимости.For more information, see .NET Framework Versions and Dependencies.
Если вы решите удалить платформу .NET Framework в версии Windows, предшествующей Windows 8, всегда используйте для удаления средство Программы и компоненты.On Windows versions before Windows 8, if you do choose to remove .NET Framework, always use Programs and Features from Control Panel to uninstall it. Никогда не удаляйте версию платформы .NET Framework вручную.Never remove a version of .NET Framework manually. В ОС Windows 8 и более поздних версий .NET Framework представляет собой компонент операционной системы, который нельзя удалить отдельно.On Windows 8 and above, .NET Framework is an operating system component and cannot be independently uninstalled.
На одном компьютере могут одновременно существовать несколько версий платформы .NET Framework.Multiple versions of .NET Framework can coexist on a single computer at the same time. То есть при установке более поздних версий удалять предыдущие версии не требуется.This means that you don’t have to uninstall previous versions in order to install a later version.
Минимальные требования к Фреймворку
Стоит помнить, что каждую редакцию Фреймворк разрабатывали под определенную версию Windows. Чтобы поддерживать пакет этого приложения, компьютеру необходимо соответствовать в конкретных пунктах. Закономерно, что более новая версия NET Framework для нормального функционирования потребует больше ресурсов, чем предыдущая. Поэтому старому ПК вряд ли удастся справиться с версией Фреймворк 4.7.
Установка NET Framework требует выполнение минимальных условий, без которых приложение не сможет воспроизводиться на ПК:
- Операционная система должна быть минимум Windows Server 2003 SP2 или Windows XP SP3;
- Частота процессора должна составлять не менее 1 ГГц;
- Необходимо наличие 512 Мб свободной памяти;
- ПК должен обладать процессором с архитектурой, которая начинается не менее х86-ой версии.
Эти требования для Фреймворка старой версии выполнимы любой, даже старенькой, машиной. Для сомневающихся есть простой способ удостовериться в производительности компьютера в Свойствах ПК.
Remarks for older versions
.NET Framework versions 2.0, 3.0, and 3.5 are built with the same version of the CLR (CLR 2.0). These versions represent successive layers of a single installation. Each version is built incrementally on top of the earlier versions. It’s not possible to run versions 2.0, 3.0, and 3.5 side by side on a computer. When you install version 3.5, you get the 2.0 and 3.0 layers automatically, and apps that were built for versions 2.0, 3.0, and 3.5 can all run on version 3.5. However, .NET Framework 4 ends this layering approach, and it and later releases (.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, and 4.8) also represent successive layers of a single installation. Starting with .NET Framework 4, you can use in-process, side by side hosting to run multiple versions of the CLR in a single process. For more information, see Assemblies and Side-by-Side Execution.
In addition, if your app targets version 2.0, 3.0, or 3.5, your users may be required to enable .NET Framework 3.5 on a Windows 8, Windows 8.1, or Windows 10 computer before they can run your app. For more information, see Install the .NET Framework 3.5 on Windows 10, Windows 8.1, and Windows 8.
Установка языковых пакетовTo install language packs
Языковые пакеты — это исполняемые файлы, содержащие локализованные ресурсы (например, переведенные тексты сообщений об ошибках и пользовательского интерфейса) для поддерживаемых языков.Language packs are executable files that contain the localized resources (such as translated error messages and UI text) for supported languages. Если языковой пакет не установлен, сообщения об ошибках платформы .NET Framework и другой текст отображаются на английском.If you don’t install a language pack, .NET Framework error messages and other text are displayed in English
Обратите внимание, что веб-установщик автоматически устанавливает языковой пакет, который соответствует операционной системе, но можно загрузить на компьютер дополнительные языковые пакеты.Note that the web installer automatically installs the language pack that matches your operating system, but you can download additional language packs to your computer. Автономные установщики не содержат языковых пакетов.The offline installers don’t include any language packs
Важно!
Языковые пакеты не содержат компоненты платформы .NET Framework, необходимые для запуска приложения, поэтому перед установкой языкового пакета необходимо запустить веб-установщик или автономный установщик.The language packs don’t contain the .NET Framework components that are required to run an app, so you must run the web or offline installer before you install a language pack. Если вы уже установили языковой пакет, удалите его, установите .NET Framework и переустановите языковой пакет.If you have already installed a language pack, uninstall it, install the .NET Framework, and then reinstall the language pack.
-
Откройте страницу загрузки языковых пакетов для установленной версии платформы .NET Framework:Open the language pack download page for the .NET Framework version you’ve installed:
- .NET Framework 4.8.NET Framework 4.8
- .NET Framework 4.7.2.NET Framework 4.7.2
- .NET Framework 4.7.1.NET Framework 4.7.1
- .NET Framework 4.7.NET Framework 4.7
- .NET Framework 4.6.2.NET Framework 4.6.2
- .NET Framework 4.6.1.NET Framework 4.6.1
- .NET Framework 4.6.NET Framework 4.6
- .NET Framework 4.5.2.NET Framework 4.5.2
- .NET Framework 4.5.1.NET Framework 4.5.1
- .NET Framework 4.5.NET Framework 4.5
-
Выберите требуемый язык в списке и подождите несколько секунд, чтобы страница перезагрузилась на этом языке.In the language list, choose the language you want to download, and wait a few seconds for the page to reload in that language.
-
Выберите Загрузить.Choose Download.
В приведенной ниже таблице перечислены поддерживаемые языки.The following table lists the supported languages.
ЯзыкLanguage | cultureCulture |
---|---|
АрабскийArabic | arar |
ЧешскийCzech | cscs |
ДатскийDanish | dada |
ГолландскийDutch | nlnl |
ФинскийFinnish | fifi |
Английский (США)English (USA) | en-USen-US |
ФранцузскийFrench | frfr |
НемецкийGerman | dede |
ГреческийGreek | elel |
ИвритHebrew | hehe |
ВенгерскийHungarian | huhu |
ИтальянскийItalian | itit |
ЯпонскийJapanese | jaja |
КорейскийKorean | koko |
НорвежскийNorwegian | Нетno |
ПольскийPolish | plpl |
Португальский (Бразилия)Portuguese (Brazil) | pt-BRpt-BR |
Португальский (Португалия)Portuguese (Portugal) | pt-PTpt-PT |
РусскийRussian | ruru |
Китайский, упрощенное письмоSimplified Chinese | zh-CHSzh-CHS |
ИспанскийSpanish | eses |
ШведскийSwedish | svsv |
Китайский (традиционный)Traditional Chinese | zh-CHTzh-CHT |
ТурецкийTurkish | trtr |
Своеобразные кодеки для программ
NET Framework является комплексом сервисов, позволяющих запускать приложения, которые были созданы в программной среде Microsoft. NET. Соответственно, Microsoft активно продвигает свою программу, и запатентовала технологию Фреймворк. Существует огромное количество различных приложений, сайтов и программ, которые требуют наличия NET Framework, при этом определенной версии.
По сути, технология Фреймворк представляется в виде своеобразных кодеков для сети Интернет и определенных программ. С технической стороны, инструмент NET Framework предназначен для совместимости служб, которые были написаны разными языками программирования.
Supported server operating systems
Operating system | Supported editions | Preinstalled with the OS | Installable separately |
---|---|---|---|
Windows Server 2019 | 64-bit | .NET Framework 4.7.2 | .NET Framework 4.8 |
Windows Server, version 1809 | 64-bit | .NET Framework 4.7.2 | .NET Framework 4.8 |
Windows Server, version 1803 | 64-bit | .NET Framework 4.7.2 | .NET Framework 4.8 |
Windows Server, version 1709 | 64-bit | .NET Framework 4.7.1 | .NET Framework 4.7.2 |
Windows Server 2016 | 64-bit | .NET Framework 4.6.2 | .NET Framework 4.7 .NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8 |
Windows Server 2012 R2 | 64-bit | .NET Framework 4.5.1 | .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7 .NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8 |
Windows Server 2012 (64-bit edition) | 64-bit | .NET Framework 4.5 | .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8 |
Windows Server 2008 R2 SP1 | 64-bit | — | .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8 |
Windows Server 2008 SP2 | 32-bit and 64-bit | — | .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 |
Notes:
-
Windows Server 2012 includes .NET Framework 4.5, so you don’t have to install it separately. Similarly, Windows Server 2012 R2 includes .NET Framework 4.5.1.
-
.NET Framework has limited support for the Server Core Role with Windows Server 2008 R2 SP1 or later. See Server Core .NET Functionality for a list of unsupported APIs.
-
.NET Framework isn’t supported on Windows Server 2008 R2 for Itanium-Based Systems.
-
On Windows Server 2008 SP2, .NET Framework is not supported in the Server Core Role.
-
For all platforms, we recommend that you upgrade to the latest Windows Service Pack and critical updates available from Windows Update to ensure the best compatibility and security. Installation of the latest Windows Service Pack may be required on some operating systems.
-
On 64-bit operating systems, .NET Framework supports both WOW64 (32-bit processing on a 64-bit machine) and native 64-bit processing.
Architecture of .NET Framework
The two major components of .NET Framework are the Common Language Runtime and the .NET Framework Class Library.
- The Common Language Runtime (CLR) is the execution engine that handles running applications. It provides services like thread management, garbage collection, type-safety, exception handling, and more.
- The Class Library provides a set of APIs and types for common functionality. It provides types for strings, dates, numbers, etc. The Class Library includes APIs for reading and writing files, connecting to databases, drawing, and more.
.NET applications are written in the C#, F#, or Visual Basic programming language. Code is compiled into a language-agnostic Common Intermediate Language (CIL). Compiled code is stored in assemblies—files with a .dll or .exe file extension.
When an app runs, the CLR takes the assembly and uses a just-in-time compiler (JIT) to turn it into machine code that can execute on the specific architecture of the computer it is running on.
Фреймворк — что это такое простыми словами?
Фреймворком ещё называют ряд программных библиотек, которые позволяют значительно упростить язык программирования, а так же в следствии этого упрощается и сам сайт (сама структура). И уже после этого соответственно ускоряется работа проекта.
Определение слова Фреймворк
В любом проекте встречаются разные типовые задачи, которые требуют нашего вмешательства. В переводе с английского framework означает каркас (это если переводить буквально). Так и получается, что фреймворк это каркас из определённых программ, и вам уже останется только соорудить «стены» для своего проекта, чтобы всё успешно работало.
Примеры фреймворка
- Первый пример. Самый распространённый пример фреймворка это jQuery. Он является целой библиотекой, целым кладезем для одной из самых популярных программ Javascript.
- Второй пример. Самым новым фреймворком (или модным) для программирования PHP пока что является Yii.
- Третий пример. Так же отличительным примером фреймворка является CMF, и расшифровывается эта аббревиатура как Content Management Framework.
Фреймворк это простыми словами, любая программа из библиотек, которая призвана помочь веб-мастеру или программисту. И как мы поняли, фреймворки бывают разными, и их достаточно много.
Вообще, понятие Framework не много расплывчатое значение. Но как мы поняли, в основном его используют программисты. Но его ещё используют и ряд других специалистов. Термин одинаково достаточно подходит и для объяснения того или иного контекста, и для уточнения.
Можно так же привести пример с Conceptual Framework (что в переводе означает — «концептуальная основа«). Это довольно расплывчатая структура, которая больше напоминает абстрактное значение. Его в основном используют в разработках исследования, чтобы определить существующие способы решения задач.
Другой пример, тоже связанный с данным значением. Но определяется он как Software Framework (что в переводе означает как — «программная платформа»). Его используют для того, чтобы обозначить «каркас» либо всей системы, с которой программист будет работать, либо с частью системы, или подсистемой. К нему будут относиться различные части кода библиотек, разные вспомогательные программы и другие языки сценария. Всё это призвано для того, чтобы облегчить работу той или иной разработки действительно крупного веб-проекта.
Мы уже достаточно узнали, и ответили на самый главный вопрос, фреймворк что это такое простыми словами. Теперь пойдём «вглубь», и попробуем понять что дало бы это нам на практике.
Features of the common language runtime
The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. These features are intrinsic to the managed code that runs on the common language runtime.
Regarding security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it’s used in the same active app.
The runtime also enforces code robustness by implementing a strict type-and-code-verification infrastructure called the common type system (CTS). The CTS ensures that all managed code is self-describing. The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety.
In addition, the managed environment of the runtime eliminates many common software issues. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. This automatic memory management resolves the two most common app errors, memory leaks and invalid memory references.
The runtime also accelerates developer productivity. For example, programmers write apps in their development language of choice yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing apps.
While the runtime is designed for the software of the future, it also supports software of today and yesterday. Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs.
The runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it’s executing. Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.
Finally, the runtime can be hosted by high-performance, server-side apps, such as Microsoft SQL Server and Internet Information Services (IIS). This infrastructure enables you to use managed code to write your business logic, while still enjoying the superior performance of the industry’s best enterprise servers that support runtime hosting.