/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/Common/Net.html
124 строки
10 KB
samuraiGH
adding working-tree-encoding attribute (#3325)
07 ноя 2025, 16:12
Не верифицирован
07 ноя 2025, 16:12
cf1fd29
Код
Авторство
О чём код?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../default.css"> </head> <body> <h1>Что такое .NET</h1> <p>Платформа <b>Microsoft .NET</b> - это комплекс программ, устанавливаемый поверх операционной системы и обеспечивающий выполнение программ, написанных специально для .NET. .NET-программы компактны, пользуются единым набором типов данных и библиотек. Компания Microsoft активно развивает платформу .NET, выпуская новые версии с расширенными возможностями. На момент начала 2019 г. последней версией является .NET 4.7.1.</p> <p>В результате компиляции .NET-программы генерируется не машинный код, а так называемый байт-код, содержащий команды <i>виртуальной машины </i>(в .NET он называется <b>IL-кодом</b> от англ. Intermediate Language - промежуточный язык). Команды байт-кода не зависят от процессора и используемой операционной системы. При запуске программа, содержащая IL-код, подается на вход виртуальной машины, которая и производит выполнение программы. Часть виртуальной машины, называемая <b>JIT-</b><b>компилятором</b> (Just In Time - непосредственно в данный момент), сразу после запуска .NET-программы переводит ее промежуточный код в машинный (проводя при этом его оптимизацию), после чего запускает программу на исполнение. Если быть точными, то промежуточный код переводится в машинный частями по мере выполнения программы.</p> <p>Такой способ двойной компиляции сложнее обычного, но имеет ряд преимуществ. Во-первых, JIT-компилятор может определить тип процессора, установленного на данном компьютере, поэтому генерирует максимально эффективный машинный код. Тесты показывают, что за счет этого некоторые программы выполняются даже быстрее обычных. Во-вторых, IL-код - гораздо более высокоуровневый, чем машинный, и содержит ряд объектно-ориентированных команд. В их числе - команда newobj вызова конструктора объекта, команда callvirt вызова виртуального метода объекта и команда throw генерации исключения.</p> <p>Программа или библиотека для .NET называется <i>сборкой</i> и имеет традиционное расширение - exe или dll. Поскольку в сборках содержится IL-код, они значительно компактнее обычных программ и библиотек. Так, приложение с главным окном, меню и элементами управления занимает на диске всего несколько десятков килобайт.</p> <p>Наиболее "чистым" .NET-языком является <b>C#</b>: он создавался специально для платформы .NET и включает практически все ее возможности. .NET-языки легко взаимодействуют друг с другом не только за счет высокоуровневого промежуточного кода, но и за счет общей системы типов (<b>CTS</b> - Common Type System - общая система типов). Все стандартные типы (строковые, символьные, числовые и логический) имеют одинаковое представление в памяти во всех .NET-языках. Это позволяет, например, создать библиотеку dll на C#, <span lang="ru">поместить в нее описание класса, </span>а затем воспользоваться этой библиотекой из программы на PascalABC.NET, <span lang="ru">сконструировав</span> объект <span lang="ru">данного</span> класса. Можно также разработать библиотеку на PascalABC.NET, а потом подключить ее к проекту на Visual Basic.NET. Отметим, что традиционные библиотеки dll не позволяют хранить классы, доступные извне, и обладают рядом других ограничений.</p> <p>Важнейшими средствами, предоставляемыми платформой .NET, являются единый способ обработки ошибок - генерация и перехват исключений, - а также автоматическое управление освобождением динамической памяти, называемое <i>сборкой мусора</i>. Последнее, в частности, означает, что отсутствует необходимость в деструкторах классов.</p> <p>Имеются программы, которые могут восстанавливать текст программы по IL-коду (например, программа <span lang="en-us">ILSpy</span>).</p> <p>Помимо JIT-компилятора, важной частью платформы .NET является набор стандартных библиотек (FCL - Foundation Class Library - общая библиотека классов). Среди них - библиотеки работы с графикой, сетью, базами данных, XML, контейнерами, потоками, содержащие тысячи классов. Каждый .NET-язык может пользоваться всеми возможностями этих библиотек.</p> <p>Имеется открытая кроссплатформенная реализация среды <span lang="en-us"> Microsoft.NET - </span><a href="http://www.mono-project.com/">среда <span lang="en-us">Mono</span></a>, позволяющая в частности разрабатывать и запускать <span lang="en-us">.NET-</span>программы под <span lang="en-us">Linux</span>.</p> <p>Кратко отметим достоинства и недостатки платформы .NET.</p> <h2>Достоинства платформы .NET</h2> <ol> <li>Платформа .NET поддерживает множество .NET-языков. В их числе C#, Visual Basic.NET, <span lang="en-us">F</span>#, управляемый C++, <span lang="en-us">Delphi Prism</span>, Oberon, Zonnon, <span lang="en-us">Iron Python, Iron Ruby, </span>PascalABC.NET.</li> <li>Любой .NET-язык содержит самые современные языковые возможности: классы, свойства, полиморфизм, исключения, перегрузка операций, легкое создание библиотек.</li> <li>.NET-языки легко сочетаются друг с другом, похожи друг на друга по синтаксическим конструкциям и системе типов.</li> <li>Имеется обширная библиотека стандартных классов FCL.</li> <li>.NET-приложения компактны.</li> <li>Платформа .NET активно развивается фирмой Microsoft, добавляются как новые языковые возможности, так и новые библиотеки.</li> <li>Компилятор .NET-языка создать значительно проще, чем компилятор обычного языка.</li> </ol> <h2>Недостатки платформы .NET</h2> <ol> <li>Запуск .NET-приложения выполняется в несколько раз медленнее запуска обычного приложения, поскольку требует загрузки в оперативную память компонентов виртуальной машины и внешних библиотек.</li> <li>.NET-код в некоторых ситуациях работает медленнее обычного (однако, в большинстве задач это отставание незначительно, а в некоторых - приложения .NET могут опережать обычные программы).</li> <li>Сборщик мусора начинает работу в момент исчерпания динамической памяти, его работа занимает несколько миллисекунд. Для приложений реального времени это непозволительно.</li> <li>Запуск .NET-приложения обязательно требует установки на компьютере платформы .NET. Без нее приложение работать не будет (Отметим, что в Windows Vista и в <span lang="en-us">Windows 7 </span>платформа .NET встроена).</li> </ol> <p>Отметим, что достоинства платформы .NET многократно перекрывают ее недостатки.</p> </body> </html>