- •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
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованная литература
Задание на лабораторную работу
Написать приложение, описанное в ходе выполнения лабораторной работы, которое может работать с двумя таблицами СУБД. В отличие от приложения, описанного в лабораторной работе, предметную область необходимо выбрать из таблицы 3.1. Номер варианта определяется по последней цифре зачетной книжки.
Таблица 3.1 – Варианты заданий
Номер варианта |
Предметная область |
1 |
Пиццерия (Официант, Посетитель) |
2 |
Магазин (Поставщик, Товар) |
3 |
Супермаркет (Продавец, Товар) |
4 |
Отделение милиции (Милиционер, Нарушитель) |
5 |
Больница (Врач, Пациент) |
6 |
Кинотеатр (Кинозал, Посетитель) |
7 |
Корабль (Каюта, Пассажир) |
8 |
Предприятие (Отдел, Сотрудник) |
9 |
Библиотека (Книга, Читатель) |
Содержание отчета
фамилия и имя исполнителя лабораторной работы;
номер и название лабораторной работы;
цель лабораторной работы;
краткие теоретические сведенья на одну страницу;
ход работы (листинги программ, скриншоты программ);
выводы о проделанной работе.
Контрольные вопросы
Какие особенности модели доступа к данным ADO.NET?
Какие отличия в применении моделей доступа к данным на связном и несвязном уровнях?
Какие основные объекты используются для доступа к данным на связном уровне?
Какие основные объекты используются для доступа к данным на несвязном уровне?
Лабораторная работа №4Fluent NHibernate
Цель работы
Изучить возможности ORMFluentNHibernate, получить практические навыки по работе сNHibernate.
Теоретические сведенья
Общие сведения об ORM
Для совмещения в одной системе преимуществ объектно-ориентированного программирования и реляционных баз данных необходимо использовать ORM(objectrelationmapping) – объектно-реляционное отображение. Объектно-реляционное отображение обеспечивает возможность работать с записями таблицы реляционной базы данных, как с объектом.
Суть объектно-реляционного отображения ORM (Object RelationMapping) в том, что бы отделить хранение данных от работы с ними или иначе - разделить бизнес-логику и логику хранения/получения данных. Естественно при разработке системы отображения к ней выдвигается требование следующего плана - необходимо разработать систему таким образом, что при описании бизнес-компонентов минимум времени уходило на реализацию необходимого для этой системы отображения.
Важным достоинством отображения является возможность рассматривать отдельные таблицы БД как коллекции объектов соответствующих классов.
В технологии .NETиспользуются два подхода для реализации отображения – на основе атрибутов или с помощью - XML-файлов для внешнего сопоставления.
Суть отображения на основе атрибутов базируется на механизме Reflectionи состоит в следующем:
Определяются атрибуты, которые описывают, какие таблицы хранят данные соответствующих классов, и атрибуты, которые сопоставляют поля этих классов полям соответствующих таблиц. При этом отмечаются ключевые поля.
При описании очередной отображаемой сущности над классом определяется атрибут, который показывает, в какой таблице хранятся сущности данного типа, а над полями определяются атрибуты, которые сопоставляют им поля этих таблиц.
Создаётся маппер (исполнитель отображения), работа которого основана на этих атрибутах. Информацию об отображаемых полях этот маппер получает исключительно при помощи Reflection. Значения полей так же выбираются и устанавливаются через механизмReflection.
С помощью XML-файлов метаданные для сопоставления можно хранить за пределами кода приложения. Такой файл используется для указания сопоставления между моделью данных БД и объектной моделью. Файл внешнего сопоставления имеет следующие преимущества:
Код сопоставления можно хранить вне кода приложения. Этот подход уменьшает перегруженность кода приложения.
Файл внешнего сопоставления можно считать подобным файлу конфигурации. Например, можно изменить поведение приложения после предоставления двоичных файлов, просто выгрузив файл внешнего сопоставления.
Популярными ORM для платформы .NET являются LINQ to Entities, NHibernate, Fluent NHibernate. Данная лабораторная работа посвячена ORMFluentNHibernate– одному из наиболее удобных на данный момент.
Использование ORMFluentNHibernateпозволяет не задумываться о структуре базы данных, а работать с базой как с коллекцией связанных друг с другом объектов. Такая возможность обеспечивается благодаря механизму отображения объекта на таблицу базы данных посредством правил, которые вNHibernateзадаються map-классами. В map-классе указываются правила, по которым поля объектов будут проецироваться на колонки реляционной базы данных, а также правила для связи объектов друг с другом. На этапе запуска приложенияmap-файлы преобразовываются в наборы запросов, которые позволяют добавлять, удалять и модифицировать данные в таблицах баз данных, а также производить выборку данных.
Кроме map-файлов в форматеXMLв болем поздних версияхNHibernateправила отображения можно задавать с помощью атрибутов, а вFluentNHibernate- с помощью классов.