[ANN] ASP.NET AJAX beta 1
От: Gollum Россия  
Дата: 22.10.06 14:29
Оценка: 61 (5) +1
Вышла первая бета версия ASP.NET AJAX. Она доступна для скачивания с сайта http://ajax.asp.net. Вот что предлагается для скачивания:


Некоторые важные отличия Beta 1.0:

Оптимизация производительности и размера клиентских компонент

Предыдущие версии ASP.NET AJAX CTP использовали один большой JavaScript файл, в котором содержались все клиентские компоненты. В бета-версии разработчики разделили клиентский код на несколько отдельных файлов и поработали над оптимизацией трафика библиотеки. ASP.NET Ajax "Core" содержит два JavaScript файла:

  1. MicrosoftAjax.js.gz файл содержит базовые клиентские типы, модель компонентов, сетевой стэк и сериализацию JSON, и клиентские сервисы (Profile/Authentication). Размер составляет 14.8К.
  2. MicrosoftAjaxWebForms.js.gz добавляет поддержку UpdatePanel и частичного рендеринга страницы. Размер составляет 6.4К.

Эти файлы скачиваются один раз, после чего кэшируются браузером. Также, оптимизирован трафик вызываемый клиентскими запросами на сервер. Элементы управления типа UpdatePanel, UpdateProgress и так же содержимое Сontrol Toolkit по умолчанию генерируют теперь вместо xml-script 1-2 строки JavaScript. Также оптимизированы базовые типы JavaScript, большинство объявлений типов перемещено в прототипы с целью уменьшения занимаемого объема памяти.

Поддержка браузера Safari

В beta 1 заявлена полная поддержка Safari. Такде ведутся работы над обеспечению совместимости с браузером Opera, но в данной бете Opera не поддерживается.

Улучшенная поддержка отладки

Улучшена поддержка отладки клиентского JavaScript.

  1. Вынос большинства клиентского кода из объявления по месту использования в прототипы позволяет более удобно использовать для отладки Visual Studio 2005 Script Debugger.
  2. Также, теперь для 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 были добавлены следующие возможности:

  1. Клиентские обработчики событий, позволяющие с минимумом усилий писать клиентский код для кастомизации поведения UpdatePanel.
  2. Элементы управления внутри UpdatePanel могут вызывать как partial так и нормальные постбэки. Можно вообще запретить дочерним элементам управления вызывать postback.
  3. Вылидационные элементы управления и Wizard теперь могут работать внутри UpdatePanel.
  4. Теперь можно динамически создавать элемент управления UpdatePanel.
  5. Теперь можно использовать несколько элементов управления Animation и UpdateProgress, которые будут работать в зависимости от того, какой именно UpdatePanel обращается к серверу.
  6. Возможность декларативно указывать длительность ожидания перед тем, как показывать UpdateProgress. Это позволяет не показывать индикатор прогресса операции во время быстрых обращений к серверу.
  7. Поддержка стандартных возможностей OS для людей с ограниченными возможностями для сценариев использования UpdatePanel

Элемент управления UpdateProgress на текущий момент находится в пакете "ValueAdd", т.е. его нужно будет ставить отдельно от ASP.NET AJAX "Core". В следующий версиях планируетмя переместить этот элемент управления в основной пакет ASP.NET AJAX "Core".

Множество изменений в клиентской библиотеке

Было сделано множество изменений в клиентской библиотеке, основываясь на отзывах пользователей. Внесены изменения с целью упростить и улучшить клиентские API. Кроме вынесения кода в прототипы изменения включают в себя:

  1. Упрощенная клиентская модель событий, теперь стало проще определять и использовать события на клиенте. Также события теперь определяются "по требованию" в целях увеличения производительности.
  2. Упрощенные типы компонент, поведения и элементов управления. Для использования API теперь необязательно инстанцировать связанные объекты, также как и в предыдущем случае использована семантика "по требованию"
  3. Стало проще работать и с клиентскими сетевыми функциями, в том числи и с асинхронными callback'ами.
  4. Также, упростилась работа с 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>>
Eugene Agafonov on the .NET

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.