Среда .NET Runtime

April 7, 2010 by admin Комментировать »

В прошлом написание модулей, которые могли вызываться из разных языков программирования, считалось сложной задачей. Программу, написанную на Visual Basic, нельзя было вызвать из Visual C++. Программы, написанные на Visual C++, в некоторых случаях могли вызываться из Visual Basic, но сделать это было непросто. В Visual C++ используются runtime-модули C и C++, отличающиеся весьма специфическим поведением, а механизм работы программ Visual Basic также отличался специфическим (и совершенно непохожим) поведением.

Так появилась технология COM, которая пользовалась достаточным успехом как средство создания многокомпонентных программ. К сожалению, в Visual C++ с ней было довольно трудно работать, а в Visual Basic некоторые возможности были недоступны. Из-за этого технология COM широко использовалась при написании компонентов COM и значительно реже — при написании стандартных приложений. Если один программист писал какой-нибудь полезный фрагмент на C++, а другой работал на Visual Basic, им было очень сложно объединить плоды своей работы.

Разработчикам библиотек также приходилось нелегко, поскольку не существовало единого решения, работающего во всех секторах рынка. Если библиотека предназначалась для Visual Basic, она хорошо работала на этой платформе, однако применение библиотеки в C++ либо было невозможно, либо сопровождалось неприемлемым снижением быстродействия. Библиотеку можно было написать для пользователей C++ — это обеспечивало хорошее быстродействие и поддержку низкоуровневых средств, но в этом случае приходилось игнорировать программистов Visual Basic.

Иногда библиотеку удавалось написать для пользователей обоих типов, однако это обычно сопровождалось некоторыми компромиссами. Например, для отправки электронной почты в системе Windows приходилось выбирать между функциями CDO (Collaboration Data Objects) — интерфейсом на базе COM, функции которого могли вызываться в обоих языках, но решали лишь часть задач[1] — и родными функциями MAPI (в C и C++), которые решали все задачи.

Технология .NET Runtime была разработана для того, чтобы исправить эту ситуацию. В ней существует один способ описания программного кода (метаданные), одна среда выполнения и библиотека (Common Language Runtime и Frameworks). Структура .NET Runtime изображена на рис. 2.1.

Выкидываем:

Оставляем:

Web Services

Web-службы

User Interface

Интерфейс пользователя

Data and XML

Данные и XML

Base Classes

Базовые классы

Common Language Runtime

Common Language Runtime

<02-01>

Рис. 2.1. Структура .NET Frameworks

Среда Common Language Runtime обеспечивает базовые средства выполнения программ. Над ней находятся базовые классы, содержащие основные типы данных, коллекции и другие стандартные классы. На следующем уровне расположены классы для работы с данными и XML. Наконец, на верхнем уровне архитектуры находятся классы, обеспечивающие работу Web-служб[2] и пользовательского интерфейса. Приложение может обратиться к любому уровню структуры и использовать классы любого уровня.

Чтобы понять, как работает C#, необходимо хоть немного разбираться в .NET Runtime и Frameworks. В следующем разделе приведен общий обзор; более подробные сведения изложены в главе 31.


[1] Вероятно, это связано с трудностями перехода от низкоуровневой внутренней архитектуры к интерфейсу автоматизации.

[2] Средство предоставления программного интерфейса через Web-сервер.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты