Что такое .NET
Что такое .NET
Платформа Microsoft .NET - это комплекс программ, устанавливаемый поверх операционной системы и обеспечивающий выполнение программ, написанных специально для .NET. .NET-программы компактны, пользуются единым набором типов данных и библиотек. Компания Microsoft активно развивает платформу .NET, выпуская новые версии с расширенными возможностями. На момент начала 2015 г. последней версией является .NET 4.5.
В результате компиляции .NET-программы генерируется не машинный код, а так называемый байт-код, содержащий команды виртуальной машины (в .NET он называется IL-кодом от англ. Intermediate Language - промежуточный язык). Команды байт-кода не зависят от процессора и используемой операционной системы. При запуске программа, содержащая IL-код, подается на вход виртуальной машины, которая и производит выполнение программы. Часть виртуальной машины, называемая JIT-компилятором (Just In Time - непосредственно в данный момент), сразу после запуска .NET-программы переводит ее промежуточный код в машинный (проводя при этом его оптимизацию), после чего запускает программу на исполнение. Если быть точными, то промежуточный код переводится в машинный частями по мере выполнения программы.
Такой способ двойной компиляции сложнее обычного, но имеет ряд преимуществ. Во-первых, JIT-компилятор может определить тип процессора, установленного на данном компьютере, поэтому генерирует максимально эффективный машинный код. Тесты показывают, что за счет этого некоторые программы выполняются даже быстрее обычных. Во-вторых, IL-код - гораздо более высокоуровневый, чем машинный, и содержит ряд объектно-ориентированных команд. В их числе - команда newobj вызова конструктора объекта, команда callvirt вызова виртуального метода объекта и команда throw генерации исключения.
Программа или библиотека для .NET называется сборкой и имеет традиционное расширение - exe или dll. Поскольку в сборках содержится IL-код, они значительно компактнее обычных программ и библиотек. Так, приложение с главным окном, меню и элементами управления занимает на диске всего несколько десятков килобайт.
Наиболее чистым .NET-языком является C#: он создавался специально для платформы .NET и включает практически все ее возможности. .NET-языки легко взаимодействуют друг с другом не только за счет высокоуровневого промежуточного кода, но и за счет общей системы типов (CTS - Common Type System - общая система типов). Все стандартные типы (строковые, символьные, числовые и логический) имеют одинаковое представление в памяти во всех .NET-языках. Это позволяет, например, создать библиотеку dll на C#, поместить в нее описание класса, а затем воспользоваться этой библиотекой из программы на PascalABC.NET, сконструировав объект данного класса. Можно также разработать библиотеку на PascalABC.NET, а потом подключить ее к проекту на Visual Basic.NET. Отметим, что традиционные библиотеки dll не позволяют хранить классы, доступные извне, и обладают рядом других ограничений.
Важнейшими средствами, предоставляемыми платформой .NET, являются единый способ обработки ошибок - генерация и перехват исключений, - а также автоматическое управление освобождением динамической памяти, называемое сборкой мусора. Последнее, в частности, означает, что отсутствует необходимость в деструкторах классов.
Имеются программы, которые могут восстанавливать текст программы по IL-коду (например, программа ILSpy).
Помимо JIT-компилятора, важной частью платформы .NET является набор стандартных библиотек (FCL - Foundation Class Library - общая библиотека классов). Среди них - библиотеки работы с графикой, сетью, базами данных, XML, контейнерами, потоками, содержащие тысячи классов. Каждый .NET-язык может пользоваться всеми возможностями этих библиотек.
Имеется открытая кроссплатформенная реализация среды Microsoft.NET - среда Mono, позволяющая в частности разрабатывать и запускать .NET-программы под Linux.
Кратко отметим достоинства и недостатки платформы .NET.
Достоинства платформы .NET
* Платформа .NET поддерживает множество .NET-языков. В их числе C#, Visual Basic.NET, F#, управляемый C++, Delphi Prism, Oberon, Zonnon, Iron Python, Iron Ruby, PascalABC.NET.
* Любой .NET-язык содержит самые современные языковые возможности: классы, свойства, полиморфизм, исключения, перегрузка операций, легкое создание библиотек.
* .NET-языки легко сочетаются друг с другом, похожи друг на друга по синтаксическим конструкциям и системе типов.
* Имеется обширная библиотека стандартных классов FCL.
* .NET-приложения компактны.
* Платформа .NET активно развивается фирмой Microsoft, добавляются как новые языковые возможности, так и новые библиотеки.
* Компилятор .NET-языка создать значительно проще, чем компилятор обычного языка.
Недостатки платформы .NET
* Запуск .NET-приложения выполняется в несколько раз медленнее запуска обычного приложения, поскольку требует загрузки в оперативную память компонентов виртуальной машины и внешних библиотек.
* .NET-код в некоторых ситуациях работает медленнее обычного (однако, в большинстве задач это отставание незначительно, а в некоторых - приложения .NET могут опережать обычные программы).
* Сборщик мусора начинает работу в момент исчерпания динамической памяти, его работа занимает несколько миллисекунд. Для приложений реального времени это непозволительно.
* Запуск .NET-приложения обязательно требует установки на компьютере платформы .NET. Без нее приложение работать не будет (Отметим, что в Windows Vista и в Windows 7 платформа .NET встроена).
Отметим, что достоинства платформы .NET многократно перекрывают ее недостатки.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Что это такое
Что это такое Название метода говорит само за себя: его целью являются не позиции в топе, а сам трафик, или поток целевых посетителей. Иначе говоря, не качественный показатель продвижения, а количественный. При запуске SEO — кампании SeoPul прогнозирует посещаемость для
2. Что такое Tor?
2. Что такое Tor? Tor (The Onion Router) — свободное программное обеспечение для реализации второго поколения так называемой "луковой маршрутизации". Это система, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается как анонимная
1.2. Что такое htb?
1.2. Что такое htb? Hierarchichal Token Bucket — это классовая дисциплина обработки очереди, написанная Мартином Девером (Martin Devera) с упрощенным набором конфигурационных параметров по сравнению с CBQ. Есть много хорошей документации по HTB и ее применению на сайте автора и сайте Стефа Коэна
(1.9) Что такое DFS?
(1.9) Что такое DFS? Distributed File System – один из инструментов Active Directory. Он позволяет создавать сетевые ресурсы, в которые могут входить множество файловых систем на различных машинах. Для пользователя Active Directory это абсолютно прозрачно и не имеет никакого значения, где и на каких
Что такое NAT
Что такое NAT Средства NAT позволяют изменять в процессе маршрутизации содержимое TCP- и IP-пакетов. В частности, при NAT-преобразовании изменяется IP-адрес источника и назначения в составе пакета. Ниже описаны ситуации, в которых оправданы подобные изменения
27.3.1. Что такое сокет?
27.3.1. Что такое сокет? Сокет — это двунаправленный канал между двумя компьютерами в сети, который обеспечивает конечную точку соединения. «Двунаправленный» означает, что данный могут передаваться в двух направлениях — от клиента к серверу и наоборот. Понятие сокета —
3.1. Что такое I2P?
3.1. Что такое I2P? В главе 2 мы познакомились с распределенной сетью Tor, позволяющей зашифровать и анонимизировать трафик. Здесь будет рассмотрен другой проект анонимизации – I2P (Invisible Internet Project, проект "Невидимый Интернет"). I2P – это так называемая оверлейная сеть, то есть
Что такое CVS?
Что такое CVS? CVS - это система управления версиями. На самом деле, для CVS не важно, версиями чего вы управляете, однако здесь этот инструмент будет рассматриваться в том контексте, в котором он обычно используется - управление исходными текстами при разработке ПО. CVS помогает
Что такое XML?
Что такое XML? За последние несколько десятков лет, прошедших с создания первых электронных устройств, в игру с природой человеком была введена третья сторона — вычислительные машины. Человек постепенно доверил им свою память, переложил на них сложные алгоритмические
Что такое .NET
Что такое .NET Платформа Microsoft .NET - это комплекс программ, устанавливаемый поверх операционной системы и обеспечивающий выполнение программ, написанных специально для .NET. .NET-программы компактны, пользуются единым набором типов данных и библиотек. Компания Microsoft активно
Что такое PDF?
Что такое PDF? PDF — очень распространенный тип документов, предложенный компанией Adobe. В таком виде публикуют инструкции к технике, различные справочные и рекламные материалы, каталоги товаров, электронные версии журналов и книг. Поскольку документы, сохраненные в виде PDF,
19.1. Что такое ICQ
19.1. Что такое ICQ ICQ — один из самых популярных сервисов мгновенного обмена сообщениями. Это своего рода Интернет-пейджер. Аббревиатура ICQ означает «I seek you» («Я ищу тебя»), в России эту программу принято называть «аськой».В общих чертах общение в ICQ выглядит так. Вы
1. Что это такое?
1. Что это такое? Точки восстановления системы — это «моментальные снимки» (snapshots) текущего состояния Windows, позволяющие вернуть систему к более раннему состоянию. Конечно, при таком откате будет потеряна часть настроек, включая список последних документов, списки истории,
Что такое WAP
Что такое WAP Аббревиатура WAP расшифровывается как Wireless Application Protocol – протокол беспроводного доступа. Данный протокол позволяет пользоваться ресурсами Интернета только посредством мобильного телефона, не прибегая к помощи компьютера. По сути, это технический стандарт,