Вышла первая бета версия ASP.NET AJAX. Она доступна для
скачивания с сайта
http://ajax.asp.net. Вот что предлагается для скачивания:
Microsoft ASP.NET AJAX v1.0 Beta "Core" Download. Здесь содержатся основные компоненты ASP.NET AJAX, которые будут официально поддерживаться Microsoft по стандартной лицензии (10 лет, 24/7/365). Сюда входят базовые типы, сетевой стэк, компонентная модель, базовые классы для Control Extender'ов, и серверная интеграция с ASP.NET (ScriptManager, UpdatePanel, Trigger, и т.п.)
Microsoft ASP.NET AJAX CTP Beta "ValueAdd" Download. Сюда войдут дополнительные возможности, для которых не заявлена поддержка в версии ASP.NET AJAX 1.0. Тем не менее, они будут поддерживаться на основании отзывов от сообщества разработчиков и постепенно будут переходить в основной дистрибутив ASP.NET AJAX.
ASP.NET AJAX Control Toolkit. Содержит набор из 28 элементов управления, разработанных на базе ASP.NET AJAX "Core". Можно присоединиться к разработке ASP.NET AJAX Control Toolkit на сайте CodePlex
Sample Applications. Примеры использования ASP.NET Ajax.
Microsoft AJAX Library Beta. Представляет из себя набор клиентских JavaScript компонентов, вынесенных в отдельный архив для разработчиков на платформах, отличных от Windows.
Некоторые важные отличия Beta 1.0:
Оптимизация производительности и размера клиентских компонент
Предыдущие версии ASP.NET AJAX CTP использовали один большой JavaScript файл, в котором содержались все клиентские компоненты. В бета-версии разработчики разделили клиентский код на несколько отдельных файлов и поработали над оптимизацией трафика библиотеки. ASP.NET Ajax "Core" содержит два JavaScript файла:
MicrosoftAjax.js.gz файл содержит базовые клиентские типы, модель компонентов, сетевой стэк и сериализацию JSON, и клиентские сервисы (Profile/Authentication). Размер составляет 14.8К.
MicrosoftAjaxWebForms.js.gz добавляет поддержку UpdatePanel и частичного рендеринга страницы. Размер составляет 6.4К.
Эти файлы скачиваются один раз, после чего кэшируются браузером. Также, оптимизирован трафик вызываемый клиентскими запросами на сервер. Элементы управления типа UpdatePanel, UpdateProgress и так же содержимое Сontrol Toolkit по умолчанию генерируют теперь вместо xml-script 1-2 строки JavaScript. Также оптимизированы базовые типы JavaScript, большинство объявлений типов перемещено в прототипы с целью уменьшения занимаемого объема памяти.
Поддержка браузера Safari
В beta 1 заявлена полная поддержка Safari. Такде ведутся работы над обеспечению совместимости с браузером Opera, но в данной бете Opera не поддерживается.
Улучшенная поддержка отладки
Улучшена поддержка отладки клиентского JavaScript.
Вынос большинства клиентского кода из объявления по месту использования в прототипы позволяет более удобно использовать для отладки Visual Studio 2005 Script Debugger.
Также, теперь для production и debug версий приложения используются разные версии JavaScript файлов. Production версия оптимизирована для достижения наивысшей производительности и минимального размера скачиваемых файлов, в то время как debug версия предоставляет максимум отладочной информации. В дебаг версии в функции введены дополнительные параметры для проверки корректности передаваемых аргументов и хранения стэка вызовов. Это позволяет упростить отладку клиентского кода.
Обратите внимание, по умолчанию решение о версии клиентских скриптов принимается на основе директивы <compilation debug=”true|false” /> в файле web.config. Так что не забывайте устанавливать debug="false" при развертывании приложения в production. Есть и
другие причиныАвтор: Gollum
Дата: 11.07.06
, по которым не следует забывать менять эту директиву.
Также планируется поддержка метаданных ASP.NET AJAX для следующей версии Visual Studio, чтобы поддерживать IntelliSense и проверку синтаксиса в IDE. Также будет можно добавлять собственные метаданные, которые будут использованы для IntelliSense.
Изменения в UpdatePanel
Кроме поддержки Safari были добавлены следующие возможности:
Клиентские обработчики событий, позволяющие с минимумом усилий писать клиентский код для кастомизации поведения UpdatePanel.
Элементы управления внутри UpdatePanel могут вызывать как partial так и нормальные постбэки. Можно вообще запретить дочерним элементам управления вызывать postback.
Вылидационные элементы управления и Wizard теперь могут работать внутри UpdatePanel.
Теперь можно динамически создавать элемент управления UpdatePanel.
Теперь можно использовать несколько элементов управления Animation и UpdateProgress, которые будут работать в зависимости от того, какой именно UpdatePanel обращается к серверу.
Возможность декларативно указывать длительность ожидания перед тем, как показывать UpdateProgress. Это позволяет не показывать индикатор прогресса операции во время быстрых обращений к серверу.
Поддержка стандартных возможностей OS для людей с ограниченными возможностями для сценариев использования UpdatePanel
Элемент управления UpdateProgress на текущий момент находится в пакете "ValueAdd", т.е. его нужно будет ставить отдельно от ASP.NET AJAX "Core". В следующий версиях планируетмя переместить этот элемент управления в основной пакет ASP.NET AJAX "Core".
Множество изменений в клиентской библиотеке
Было сделано множество изменений в клиентской библиотеке, основываясь на отзывах пользователей. Внесены изменения с целью упростить и улучшить клиентские API. Кроме вынесения кода в прототипы изменения включают в себя:
Упрощенная клиентская модель событий, теперь стало проще определять и использовать события на клиенте. Также события теперь определяются "по требованию" в целях увеличения производительности.
Упрощенные типы компонент, поведения и элементов управления. Для использования API теперь необязательно инстанцировать связанные объекты, также как и в предыдущем случае использована семантика "по требованию"
Стало проще работать и с клиентскими сетевыми функциями, в том числи и с асинхронными callback'ами.
Также, упростилась работа с Memberhip и Profile API из клиентского JavaScript'а
Улучшена совместимость с другими библиотеками AJAX
Предыдущие версии ASP.NET AJAX использовали глобальную фнукцию $(), которая конфликтовала с некоторыми другими библиотеками AJAX (такими как Prototype и Scriptaculus). Она переименована в $get(), сделано несколько других переименований, и теперь все хорошо
Лицензия на модификацию исходного кода
Часто у разработчиков возникает необходимость вносить изменения в MS AJAX JavaScript Library. В связи с этим будет предоставленя лицензия, которая явно позволяет пользовательские изменения клиентских библиотек. API ScriptManager'а в Beta 1 позволяет пользовательские реализации/изменения во встроенных JavaScript библиотеках. Вдобавок к разрешению изменять библиотеки для пользовательских приложений лицензия предоставляет права на перераспротранение измененных библиотек (для этого требуется в частности изменять пространства имен для изменений во избежание конфликтов). Фактически мы имеем комбинацию 10-летней официальной поддержки и в то же время прав на распространение измененных версий библиотек, что несомненно является удобством для разработчиков, независимо от масштаба разрабатываемых проектов.
Дальнейшие планы
В связи с описанными изменениями текущий ASP.NET AJAX код конечно придется менять для работы с Beta 1.
Если вы используете серверные возможности ASP.NET AJAX, изменения потребуются минимальные. В основном они связаны с изменением префикса <atlas:> на <asp:>, изменением синтаксиса триггеров для UpdatePanel и также небольшими изменениями с объявлением Extener'ов из ASP.NET Control Toolkit. Для миграции существует соответствующее
руководство.
Если же вы создавали клиентские классы и взаимодействовали непосредствено с компонентной моделью, потребуются более значительные изменения. Вообще, сами по себе изменения не сложные, но в связи с отсутствием ошибок компиляции приходится исправлять ошибки постепенно, итерациями, что конечно раздражает. Чтобы помочь мигрировать с CTP на Beta1, разработчики ASP.NET AJAX
опубликовали подробный документ, перечисляющий внесенные изменения, и включающий примеры кода с примерами что было до и после миграции.
Команда разработчиков ASP.NET AJAX будет отслеживать форумы в ближайшие несколько недель, чтобы помочь с миграцией и найденными багами. Если вы столкнетесь с багами, или у вас будут вопросы, публикуйте их на
форумах ajax.asp.net. Также приветствуются отзывы, предложения по ASP.NET AJAX.
Скорее всего API для ASP.NET Ajax 1.0 "Core" уже практически завершены и останутся без изменений. Разработчики планируют в течение этого года внести оставшиеся изменения и исправления и "заморозить" релиз. Также в планах следующая бета версия через несколько недель, учитывающая отзывы пользователей, затем Release Candidat, и затем уже окончательный релиз версии 1.0.
По материалам
блога Scott Guthrie.
... << RSDN@Home 1.2.0 alpha rev. 0>>