Главные компоненты платформы .NET

Теперь, когда вы знаете о некоторых преимуществах, обеспечиваемых .NET, следует познакомиться с основными компонентами, которые и обеспечивают эти преимущества: CLR, CTS, CLS и библиотека базовых классов.

С точки зрения программиста, .NET Framework можно определить как среду выполнения программ и всеобъемлющую библиотеку базовых классов.

Слой среды выполнения в .NET называется CLR (Common Language Runtime) – общеязыковая среда выполнения. Задачей CLR является размещение, загрузка и управление .NET –типами, а также решение таких низкоуровневых задач, как управление памятью и проверка безопасности.

CTS (Common Type System) – общая система типов полностью описывает все типы данных и программные конструкции, поддерживаемые средой выполнения. Конкретный язык, совместимый с .NET, может и не поддерживать абсолютно все возможности, определенные в CTS.

В связи с этим используются связанные спецификации CLS (Common Language Specification) – общеязыковые спецификации, которые определяют подмножество общих типов и программных конструкций, понятных всем языкам программирования, совместимым с .NET.

Платформа .NET имеет обширную библиотеку базовых классов, доступную всем языкам программирования .NET.

Роль языка C#

С учетом радикального отличия принципов .NET от предшествующих технологий Microsoft разработала новый язык программирования C# специально для использования с новой платформой. C# является гибридом множества языков и предлагает следующие возможности:

· программы на C# обычно не требуют прямого обращения к указателям, хотя возможность получения доступа к ним имеется;

· автоматическое управление памятью выполняется с помощью компонента «сборщик мусора»;

· имеет формальные синтаксические конструкции для перечней, структур и свойств классов;

· поддерживает (аналогично C++) перегрузку операций для пользовательских типов, но без лишних сложностей;

· позволяет строить общие типы и общие члены с использованием синтаксиса, очень похожего на шаблоны C++;

· полностью поддерживает технику программирования, основанную на использовании интерфейсов;

· имеет полную поддержку технологии аспектно-ориентированного программирования (АОП) через атрибуты. Эта ветвь разработки позволяет назначать характеристики типам и их членам для уточнения их поведения.

Другой стороной языка C# является то, что получаемый с помощью C# программный код может выполняться только в среде выполнения .NET, т.е. его нельзя использовать для построения «классического» COM-сервера или автономного приложения Win32API.