Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Java и C# технологии.doc
Скачиваний:
171
Добавлен:
01.03.2016
Размер:
3.04 Mб
Скачать
  1. Лабораторная работа № 1 Коллекции c#

    1. Цель работы

Изучить возможности коллекций языка С#, получить практические навыки по работе с коллекциями C#.

    1. Теоретические сведения

      1. Общие сведения о платформе .Net

Платформа- это среда выполнения программ и все то, что определяет особенности разработки и выполнения программного кода – парадигмы программирования, языки программирования, множества базовых классов и т.д.

Microsoft.NET (.NET Framework)– программная платформа, являющаяся интегрированным компонентомWindows, содержит виртуальную среду выполнения (среда CLR) и унифицированный набор библиотек классов. В платформе .NET можно выделить следующие основные компоненты:

  • Common Language Specification (CLS);

  • Microsoft Intermediate Language (MSIL);

  • Common Language Runtime (CLR);

  • .NET Framework Class Library (.NET FCL).

CLS (Common Language Specification)– общая спецификация языков программирования. Это набор конструкций и ограничений, которые являются руководством для создателей библиотек и компиляторов в среде .NET Framework. Библиотеки, построенные в соответствии с CLS, могут быть использованы из любого языка программирования, поддерживающего CLS. Языки, соответствующие CLS (к их числу относятся языки VisualBasic, VisualC++,VisualC#), могут интегрироваться друг с другом. CLS – это основа межъязыкового взаимодействия в рамках платформы Microsoft.NET.

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

Под виртуальной машиной (среда времени выполнения) понимают абстракцию инкапсулированной (обособленной) управляемой операционной системы высокого уровня, которая обеспечивает выполнение программного кода и предполагает решение следующих задач:

  • управление кодом (загрузка и выполнение);

  • управление памятью при размещении объектов;

  • изоляцию памяти приложений;

  • проверку безопасности кода;

  • преобразование промежуточного языка в машинный код;

  • доступ к метаданным (расширенная информация о типах);

  • обработка исключений, включая межъязыковые исключения;

  • взаимодействие между управляемым и неуправляемым кодом (в том числе и COM- объектами);

  • поддержка сервисов разработки (профилирование, отладка и т.д.).

Таким образом, CLR – это набор служб, необходимых для выполнения сборки.

Сама CLR состоит из двух главных компонентов:

  • ядра (mscoree.dll);

  • библиотеки базовых классов (mscorlib.dll).

Ядро среды выполнения реализовано в виде библиотеки mscoree.dll. При компоновке сборки в неё встраивается специальная информация, которая при запуске приложения (.exe) или при загрузке библиотеки (обращение к .dll из неуправляемого модуля – вызов функции LoadLibrary для загрузки управляемой сборки) приводит к загрузке и инициализации CLR. После загрузки CLR в адресное пространство процесса, ядро среды выполнения производит следующие действия:

  • находит местонахождение сборки;

  • загружает сборку в память;

  • производит анализ содержимого сборки (выявляет классы; структуры; интерфейсы);

  • производит анализ метаданных;

  • обеспечивает компиляцию кода на промежуточном языке (IL) в платформозависимые инструкции (ассемблерный код);

  • выполняет проверки, связанные с обеспечением безопасности;

  • используя основной поток приложения, передаёт управление преобразованному в команды процессора фрагменту кода сборки.

.NET FCL (.NET Framework Class Library)–объектно-ориентированная библиотека, соответствующая CLS спецификации и содержащая классы, интерфейсы и системы типов (типов-значений), которые включаются в состав платформы .NET.

Эта библиотека обеспечивает доступ к функциональным возможностям системы и выступает в качестве основы при разработке .NETприложений, компонент и элементов управления.

Библиотека .NET FCL является вторым основным компонентом платформы .NET.

Библиотеку .NET FCL могут использовать все .NET-приложения, независимо от назначения, архитектуры и используемого при разработке языка программирования. Библиотека включает более 4000 классов. В частности, она содержит:

  1. Встроенные (элементарные) типы, представленные в виде классов (на платформе .NET всё построено на структурах или классах);

  2. Классы для разработки графического пользовательского интерфейса (WindowsForm);

  3. Классы для разработки Web-приложений и Web-служб на основе технологии ASP.NET (WebForms);

  4. Классы для разработки приложений, работающих с XML и Internet-протоколами (FTP; HTTP; SMTP; SOAP);

  5. Классы для разработки приложений, работающих с базами данных (ADO.NET).

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

MSIL (Microsoft Intermediate Language или IL–IntermediaLanguage) – промежуточный язык платформы .NET. Исходные тексты программ для .NET приложений пишутся на языках программирования, соответствующих спецификации CLS. Для языков программирования, соответствующих спецификации CLS может быть построен преобразователь в MSIL. Таким образом, программы на этих языках могут транслироваться в промежуточный код на MSIL. Благодаря соответствию CLS, в результате трансляции программного кода, написанного на разных языках, получается совместимый IL код.

Фактически MSIL является ассемблером виртуальной машины.

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

Фактически блок метаданных - это наборы таблиц, содержащих информацию о типах данных, определяемых в модуле, и о типах данных, на которые ссылается данный модуль.

Ранее такая информация сохранялась отдельно. Например, приложение могло включать информацию об интерфейсах, которая описывалась на InterfaceDefinitionLanguage(IDL). Теперь метаданные являются частью управляемого модуля.

В частности, метаданные используются для:

  1. Сохранения информации о типах. При компиляции теперь не требуются заголовочные и библиотечные файлы. Всю необходимую информацию компилятор читает непосредственно из управляемых модулей;

  2. Верификации кода в процессе выполнения модуля;

  3. Управления динамической памятью (освобождение памяти) в процессе выполнения модуля;

  4. Динамической подсказки (IntelliSense) при разработке программы стандартными инструментальными средствами (MS Visual Studio.NET).

Языки, для которых реализован перевод на MSIL достаточно широк:

  • Visual Basic;

  • Visual C++;

  • Visual C#;

  • и более 20 других CTS-совместимых языков.