AJAX для ASP.NET и шаблоны на стороне клиента - Шаблоны на стороне клиента в AJAX для ASP.NET
ОГЛАВЛЕНИЕ
Шаблоны на стороне клиента в AJAX для ASP.NET
Помните «Atlas»? В ранних сборках того, что позже стало «расширениями AJAX для ASP.NET», была сделана попытка реализовать шаблоны и привязку данных на стороне клиента. Причем очень неплохая попытка. Однако по некоторым причинам в окончательный выпуск этот вариант не вошел и был передвинут в библиотеку Futures в ASP.NET.
В сущности, старая модель привязки данных Atlas основывалась на шаблонах и декларативном синтаксисе, выражающем привязку между элементами разметки и полями данных. Затем шаблоны и привязка объединялись в управляющем элементе на стороне клиента — элементе List view («представление в виде списка»). Настраиваемый через XML, элемент ListView библиотеки Atlas выполнял большое количество работы по синтаксическому разбору всей получаемой информации и был способен присоединять поведение, элементы управления и данные к разным частям разметки.
Рассмотрим начиная с этого последнего пункта способы, с помощью которых можно построить свою небольшую, но эффективную платформу привязок и шаблонов. Обратите внимание, что в конце концов должна получиться строка с разметкой HTML. Начальными данными является коллекция объектов с несколькими общедоступными свойствами. Задача программиста — построить такой фрагмент кода HTML, который соответствовал бы ожиданиям пользователя. Начинать, в общем, надо с обхода коллекции объектов с привязанными данными и соединением текста шаблона с величинами свойств объектов.
Что не так в этом подходе? Вообще-то ничего. В сущности, я не могу придумать какого-то радикально отличающегося от этого подхода, который не делал бы в какой-то момент точно такой же перебор данных. А значит, наверняка можно создать платформу, в которой эта цикл будет основной абстрактной процедурой. В каталоге шаблонов проектирования AJAX (см. www.ajaxpatterns.org) ключевые этапы создания модели обработки шаблонов на стороне клиента находятся под названием «Применение шаблонов на стороне обозревателя» (BST).