Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2 - Симон Робертс и др.docx
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
1.65 Mб
Скачать

Часть 2. Сравнение Windows с платформой .Net

Чтобы лучше понять, что такое .NET, следует сравнить платформу .NET с Windows и напомнить, что представляет собой Windows для разработчиков.

Здесь возможен двойственный ответ.

С одной стороны, Windows является библиотекой: это набор вызовов всех функций Windows API, которые предназначены для использования в программе.

Эти функции реализуют общие возможности, такие как отображение диалоговых окон, окон много оконных и однооконных программ, доступ к основным функциям, например к функциям безопасности, компонентным службам и т.д.

С другой стороны, Windows является средой, в которой выполняются приложения и сама операционная система.

Аналогично, .NET представляет собой одновременно две вещи.

Во-первых, .NET - это библиотека, такая же большая, как и Windows API. Её можно использовать для вызова тех же функций, которые традиционно выполнялись операционной системой Windows: отображение диалоговых и обычных окон, проверка удостоверений безопасности, вызов основных служб операционной системы, создание потоков и т.д.

Кроме того, предлагаются новые возможности, например доступ к базам данных, соединение с Интернетом, предоставление служб Web.

Но в отличие от предыдущего Windows API, который по сути дела представляет собой огромный набор функций языка С, библиотека .NET (известная также как библиотека базовых классов .NET) является полностью объектно- ориентированной. Она выглядит как набор объектов, каждый из которых реализует определенный набор методов. Например, объект Thread позволяет создавать потоки.

Во-вторых, платформа .NET - это среда, в которой выполняется программа. В этом контексте речь идет о среде исполнения .NET (также известной как общая среда исполнения CLR), которая представляет собой программное обеспечение, связанное с выполнением пользовательских программ.

Когда исполняется код, написанный для .NET (обычно применяется термин "управляемый (managed) код"), платформа .NET запускает код, управляет потоками, предоставляет различные вспомогательные службы и на самом деле является той средой, которую "видит" вокруг себя исполняемый код. Можно с таким же успехом рассматривать .NET как среду, обеспечивающую некоторый уровень абстракции от операционной системы.

Однако необходимо отметить, что сама по себе .NET не является операционной системой. Операционной системой по-прежнему остается Windows, по крайней мере до того, как .NET не будет импортирована на другие платформы, a Windows API по-прежнему стоит на заднем плане. Среда исполнения .NET представляет собой прослойку между ОС Windows и приложениями, предлагая более современный, простой и объектно-ориентированный каркас для разработки и выполнения кода.

Если в каких-то случаях приходится отказаться от преимуществ, предлагаемых .NET, и напрямую использовать Windows API, это тоже можно сделать с помощью C#. Процесс возможных обращений показан на рисунке.

Рис. 1. Управление приложением в период исполнения

Замечание. Понятия управляемый/неуправляемый код приводятся ниже.

Как видно из рисунка, .NET располагается между кодом и Windows, позволяя ОС предоставлять требуемые службы.

В процессе исполнения кода платформа .NET руководит его исполнением: запускает код, дает ему соответствующие права, выделяет память для хранения данных, помогает с освобождением памяти и ресурсов, которые больше не требуются, и т.д.

Помимо этого .NET предоставляет обширную библиотеку классов, так называемую библиотеку базовых классов .NET, для выполнения большого числа задач Windows. В этом плане .NET можно рассматривать с двух сторон: как управляющую выполнением кода и предоставляющую коду различные службы.