Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета Технологии разработки Internetприложений ASP.NET приложения – директивы проф. В.К.Толстых, www.tolstykh.com Директива @Page файлов .aspx Директивы страницы служат для конфигурирования среды выполнения. Имя директивы чувствительно к регистру. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> Основные атрибуты директивы @Page: AutoEventWireup Автоматическая обработка событий страницы, установить true CompilerOptions Опции компилятора ClassName Назначает имя класса, сгенерированного данной страницей CodeFile Название файла, описывающего класс данной страницы, с отделенным кодом для страницы Debug Если true, то на страницу выводится отладочная информация ErrorPage Задаёт URL, куда в случае необработанного исключения будет перенаправлен браузер. Trace Вывод трассировочной информации EnableViewState Сохранение состояния представления страницы (в кодировке BASE64). По умолчанию – true. EnableViewState Mac Если true (по умолчанию), то к состоянию представления страницы добавляется зашифрованная аутентификационная подпись на основе кода машины (из файла machine.config), чтобы убедиться, что состояние представления не было изменено на стороне клиента. ViewStateEncryp tionMode Указывает должно ли быть зашифровано состояние представления страницы (Auto – по умолчанию, Always, Never). При Auto состояние ViewState шифруется, если хотя бы один элемент управления на странице запросит это. Может устанавливаться и в web.config – <pages ViewStateEncryptionMode="Always" /> Inherits Указывает класс Page (System.Web.UI.Page) , от которого наследуется класс данной страницы в технологии отделенного кода. По умолчанию _Default Async Устанавливает страницу как синхронный или асинхронный (false по умолчанию) обработчик. Language Язык, используемый во внедренном коде. OutputCache Кэширование вывода страницы. Директива @Assembly Директива @Assembly подключает сторонние (дополнительные пользовательские) сборки к текущей странице в виде .dll или .cs файлов. Для того чтобы связать сборку со страницей в приложении, включите в файл страницы одну из двух следующих директив: <%@ Assembly Name = имя_файла_сборки_из_bin.dll %> <%@ Assembly Src = путь_к_исходнику_файла_сборки.cs %> По умолчанию в файле web.cofig строка <add assembly=”*” /> связывает с приложением (со всеми компилируемыми классами страниц) все сборки из папки bin. Если вы не хотите, чтобы с приложением автоматически связывались все сборки, найденные в bin, то данную строку следует удалить. Для того, чтобы связать конкретную сборку с приложением , во-первых, поместите её в корневую папку bin , вовторых, добавьте в файл web.cofig строки: <system.web> <compilation> <assemblies> <add assembly = ”список полных имён классов в сборке” … Директива @Import Директива @Import связывает со страницей пространство имён. Это аналог оператора using Например, если Вы не хотите создавать в файле страницы новый экземпляр класса ADO.NET DataSet, то можно при помощи директивы @Import импортировать пространство имён System.Data, что даст возможность выполнить оператор типа DataSet ds = new DataSet(); иначе, каждый раз придётся задавать уточнённое имя класса System.Data DataSet ds = new System.Data DataSet(); В данном примере импорт пространства имён реализуется очень просто: <%@ Import namespace = System.Data %> Пространство имён Такой импорт позволяет использовать короткие имена классов и предполагает наличие сборки, содержащей код соответствующего класса, которая присоединена к текущей странице. Обычно, имена сборок и пространства имён (классов) совпадают. .dll Директива @Reference Директива @Reference устанавливает динамическую связь (взаимодействие) в пределах одного проекта между текущей страницей и заданной страницей или пользовательским элементом управления, где описаны нужные дополнительные данные (классы). Например, <%@ Reference page = виртуальный_путь_к_странице_.aspx %> <%@ Reference control = виртуальный_путь_к_элементу_.ascx %> Файл пользовательского элемента Во время компиляции в сборку текущего файла классы и пользовательские элементы управления, указанные в @Reference, становятся доступными. Директива @Control Идентифицирует струнцу пользовательского элемента управления – .ascx Директива @Master Идентифицирует эталонную струнцу MasterPage.master