- •Java и c# технологии прикладного програмирования
- •Java и c# технологии прикладного програмирования
- •Содержание
- •Введение
- •Лабораторная работа № 1 Коллекции c#
- •Цель работы
- •Теоретические сведения
- •Общие сведения о платформе .Net
- •Общие сведения о коллекциях c#
- •Обобщенные коллекции с#
- •Порядок выполнения лабораторной работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Получение информации о типе
- •Экземпляр типа Type
- •Получение экземпляра типа Type
- •Динамическая загрузка сборок
- •Динамическая загрузка типов
- •Исследование типа
- •Характеристики типа как целого
- •Члены класса
- •Динамическое создание объекта и вызов методов
- •Создание объекта по его типу
- •Динамический вызов методов
- •Использование интерфейсов
- •Позднее связывание
- •Динамическое приведение типов
- •Новые механизмы абстракции
- •Динамическое создание типов
- •Динамическое создание программного кода
- •Динамическое создание класса
- •Динамическое создание перечислений
- •Динамический "Hello World!"
- •Динамическое разворачивание циклов
- •Атрибуты
- •Атрибут это класс
- •Декларативное программирование
- •Код, выполняемый во время разработки
- •Использование атрибутов
- •Использование встроенных атрибутов
- •Определение и использование пользовательских атрибутов
- •Пример декларативного программирования
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Связный уровень взаимодействия ado.Net
- •Несвязный уровень взаимодействия ado.Net
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Связи между объектами в FluentNHibernate
- •Связь один к одному
- •Связь один ко многим
- •Связь многие ко многим
- •Способы выборки объектов в FluentNHibernate
- •Запросы NativeSql
- •Запросы по критерию
- •Запросы по образцу
- •Запросы hql
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Компиляция страниц по требованию
- •Страница asp.Net 2.0
- •Директива @Page
- •Жизненный цикл страницы
- •Новые свойства и методы объекта Page
- •Управление страницей
- •Установка выделения на элемент управления
- •Обновление данных без перезагрузки страницы
- •Отправка данных формы другой странице asp.Net
- •Шаблоны дизайна страниц
- •Создание шаблона дизайна
- •Создание страницы
- •Обработка шаблонов средой asp.Net
- •Использование разных шаблонов для разных браузеров
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Библиотеки модульного тестирования в .Net
- •Unit Testing Framework от Microsoft
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованная литература
Лабораторная работа № 1 Коллекции c#
Цель работы
Изучить возможности коллекций языка С#, получить практические навыки по работе с коллекциями C#.
Теоретические сведения
Общие сведения о платформе .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 классов. В частности, она содержит:
Встроенные (элементарные) типы, представленные в виде классов (на платформе .NET всё построено на структурах или классах);
Классы для разработки графического пользовательского интерфейса (WindowsForm);
Классы для разработки Web-приложений и Web-служб на основе технологии ASP.NET (WebForms);
Классы для разработки приложений, работающих с XML и Internet-протоколами (FTP; HTTP; SMTP; SOAP);
Классы для разработки приложений, работающих с базами данных (ADO.NET).
.NET-приложение – приложение, разработанное для выполнения на платформе .NET и реализованное на языках программирования, соответствующих CLS.
MSIL (Microsoft Intermediate Language или IL–IntermediaLanguage) – промежуточный язык платформы .NET. Исходные тексты программ для .NET приложений пишутся на языках программирования, соответствующих спецификации CLS. Для языков программирования, соответствующих спецификации CLS может быть построен преобразователь в MSIL. Таким образом, программы на этих языках могут транслироваться в промежуточный код на MSIL. Благодаря соответствию CLS, в результате трансляции программного кода, написанного на разных языках, получается совместимый IL код.
Фактически MSIL является ассемблером виртуальной машины.
При преобразовании программного кода в MSIL формируется блок метаданных. Этот блок содержит информацию о данных, используемых в программе.
Фактически блок метаданных - это наборы таблиц, содержащих информацию о типах данных, определяемых в модуле, и о типах данных, на которые ссылается данный модуль.
Ранее такая информация сохранялась отдельно. Например, приложение могло включать информацию об интерфейсах, которая описывалась на InterfaceDefinitionLanguage(IDL). Теперь метаданные являются частью управляемого модуля.
В частности, метаданные используются для:
Сохранения информации о типах. При компиляции теперь не требуются заголовочные и библиотечные файлы. Всю необходимую информацию компилятор читает непосредственно из управляемых модулей;
Верификации кода в процессе выполнения модуля;
Управления динамической памятью (освобождение памяти) в процессе выполнения модуля;
Динамической подсказки (IntelliSense) при разработке программы стандартными инструментальными средствами (MS Visual Studio.NET).
Языки, для которых реализован перевод на MSIL достаточно широк:
Visual Basic;
Visual C++;
Visual C#;
и более 20 других CTS-совместимых языков.