Структура платформы. NET

Один из основных элементов архитектуры.NET является FrameWork. FrameWork — дополнительный операционный слой, который разделяет приложения пользователя и базовые сервисы Windows. FrameWork состоит из двух основных компонент:

1) Библиотека базовых классов — BaseClassLibrary.

2) Общий для языков среды исполнения приложений CLR.

Visual Studio.NET

Языки программирования C++, C#, VB

Общая Спецификация Command Language Specification

Типы приложений: Консольное, Windows From, ASP.NET

Промежуточны слой — NET FrameWork. Состоит из BaseClassLibrary и общей среды выполения — CommandLanguageRuntime

Независимо от VisualStudio могут функционировать остальные Windows приложения.

Все выше будет взаимодействовать с функциями WinApi32.

1) Общая среда исполнения.

Библиотека классов — статическая составляющая каркаса. Динамическая составляющая — задает общую среду выполнения. В функции этой среды входит управление памятью, потоками, безопасностью, компиляция из промежуточного байт-кода в машинный код. CLR модули реализиуются не в виде машинного кода, а с помощью байт-кода промежуточного языка программирования — MSIL (Microsoft Intermedia Language), то есть код на языке высокого уровня преобразуется в двоичный MSIL код, который уже и будет исполняться в среде.

Source Code (compiler)→ MSIL&Metadata →

ClassLoader → JITCompiler → (*)

BaseClassLibrary →

(*) → ManageNative Code → Execution (опять вызывается JITCompiler для компиляции тех модулей, которые еще не откомпилированы)

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

Промежуточный язык MSIL можно рассматривать как Assemebly некоторой виртуальной машины, но он обладает практическими всеми свойствами языков высокого уровня. В нем есть инструкции для описания пространств имен, классов, методов, свойств, событий и исключительных ситуаций, кроме того язык включает статическую проверку типов. MSIL представляет собой дополнительный уровень абстракции, который повышает мобильность программы. В частности с переносом кода с одной платформы на другую (32 бита, мобильные платформы, 64 битные).

Base Class Library. Классы строятся на основе стандартной системы типов — определяет как типы данных могут взаимодействовать друг с другом и как они будут представлены в формате метаданных. Стандартная система типов является объединением систем типов основных языков VisualStudio наличие общей системы типов позволяет осуществлять статическую проверку программы не только на уровне компилятора, но и на уровне выполнения программы. Это обеспечивает возможность автоматического управления памятью или сборкой мусора. При создании типов данных, которые можно использовать во всех языках программирования — необходимо следовать конструкциям CommandLanguageSpecification. Это набор правил, определяющих подмножество общих типов данных. При создании компонента, который не транслируется в общий для всех языков тип — выдается соответствующее уведомление. Все классы, реализованные в BaseClassLibrary — организованны в виде пространства имен. Пространство имен — это просто логическая структура, которая служит для предупреждения конфликта имен в различных сборках. Наиболее важное пространство имен

System

System.Object

System.Type

System.String

System.Array

System.Exception

System.Convert

System.IO

System.WindowsForm

System.Web

Пространство имен System является корневым, это пространство содержит класс Object, который служит предком для всех классов библиотеки. От него производится все типы, даже встроенные (такие как Int, Double и т. д.) Класс Object определяет общее полиморфическое поведение для всех типов данных.

Основные методы класса Object:

1) Equals — определяет, являются ли два объекта экземплярами одного и того-же объекта. В производных классах этот метод может переопределятся, таким образом, чтобы он проверял идентичность данных, хранимых в экземплярах объекта.

2) ReferenceEquals — всегда проверяет идентичность объектов.

3) MemberWiseClone — создает точную копию объекта. Если объект содержит указатели и ссылки, то копируются указатели и ссылки, а не объекты на которые они ссылаются.

4) ToString — возвращает полное имя класса (типа). Может быть перегружен.

5) GetType — метод для приведения типа. Возвращает объект класса Type для данного экземпляра класса.

Лекция №10 (10.11.10)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: