- •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
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованная литература
Обработка шаблонов средой asp.Net
Во время первого обращения к какой-либо странице, ASP.NET осуществляет поиск и компиляцию сборок для всех шаблонов в директории. Эта операция занимает некоторое время, зависящее от количества страниц шаблонов в директории, но выполняется только один раз. Поэтому, если в директории присутствуют не использующиеся шаблоны, это не приводит к потерям производительности в процессе работы приложения, единственное неудобство – дополнительное время, а компиляцию ненужных сборок для неиспользуемых страниц.
При обращении к .aspxфайлу страницы с заданным шаблоном оформления процесс компиляции почти ничем не отличается от обычного процесса компиляции страницы, за исключением того, что создается класс шаблонаMasterPage,ссылка на который доступна в свойствеPage.Master.
Затем страница проходит все те шаги, которые описаны выше в этой статье, в результате чего генерируется HTML код, который отправляется клиенту. В полученном браузером HTML коде уже нельзя определить, какая часть кода задана в шаблоне оформления, а какая часть кода определена на самой странице, поскольку элементы управления ContentPlaceHolderиContentне имеют каких-либо HTML соответствий и не порождают дополнительных тегов, кроме своего содержимого.
<html>
<head id="ctl00_Head1">
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>Домашняя страница</title>
</head>
<body>
<table width="100%">
<tr><span id="ctl00_PageTitle"></span></tr>
<tr>
<table width="100%">
<tr>
<td>
<ul>
<li><a href="Page1.aspx">Страница 1</a></li>
<li><a href="Page2.aspx">Страница 2</a></li>
<li><a href="Page3.aspx">Страница 3</a></li>
</ul>
</td>
<td>
<form method="post" action="default.aspx"
id="__aspnetForm">
<div><input type="hidden" name="__VIEWSTATE" value=""
/></div>
<input name="ctl00$PageContent$txtName" type="text"
id="ctl00_PageContent_txtName" />
<input type="submit" name="ctl00$PageContent$btnShow"
value="Показать" id="ctl00_PageContent_btnShow" />
</form>
</td>
</tr>
</table>
</tr>
<tr><p align="right">Время: <span
id="ctl00_PageTime">20.03.2005</span></p></tr>
</table>
</body>
</html>
Поскольку шаблон является подмножеством страницы, то допустимо создавать вложенныешаблоны, указывая для шаблона в директивеMasterпуть к другому шаблону с помощью атрибутаMasterPageFile. Для этого необходимо в основном шаблоне определить элементы управленияContentPlaceHolder, а в "дочерних" шаблонах на ряду сContentPlaceHolderэлементами определить элементы управленияContentдля замещения содержимого элементовContentPlaceHolderбазового шаблона.
Использование разных шаблонов для разных браузеров
Любому Web-разработчику хорошо известно, что разные браузеры (например, MicrosoftInternetExplorer,NetscapeNavigator,MozillaFirefoxи др.) по разному обрабатывают HTML код и, что особенно важно, обладают несколько разными программируемыми моделями, что усложняет создание клиентских сценариев.
Для разрешения этой проблемы существует два основных метода, которые используются в классическом ASP и в ASP.NET 1.x. Первый заключается в том, что браузеру клиента отправляется клиентский код, который, основываясь на типе и версии браузера, выполняет некоторые действия. Второй состоит в перенаправлении браузера пользователя на те страницы, которые специально оптимизированы под конкретный браузер.
ASP.NET 2.0 упрощает создание подобных страниц, поскольку среда выполнения генерирует HTML код для стандартных серверных элементов управления, основываясь на информации о браузере клиента. При использовании шаблонов оформления, можно создать несколько шаблонов, для каждого браузера и в директиве Pageстраницы указать, какой шаблон использовать.
<%@ Page ie:MasterPageFile="ieMainTemplate.master" opera:MasterPageFile="operaMainTemplate.master " mozilla:MasterPageFile="mozillaMainTemplate.master " %>
Список браузеров и используемые средой ASP.NETсвойства браузеров можно найти в директории:
%WINDIT%\Microsoft.NET\Framework\версия\CONFIG\Browsers