October 2006 - Posts
Вышел очередной, великий октябрьский CTP Visual Studo Orcas. Скачать можно здесь. Как и прошлый CTP он представляет из себя виртуальную машину. При всех плюсах данного решения, я бы все-таки очень хотел, чтоб было можно поставить CTP безвиртуальной машины. Но что ж делать...
Вкратце, что нового:
- Внедрены элементы Linq и ADO.NET 3.0
- XLinq
- Новые IO типы для работы с pipes
- Улучшенна поддержка 64-битных платформ, поддержка multi-targeting в IDE
- Новая genercic-коллекция HashSet
- И т.д. и т.п.
Инструкции как ставить и полный список того, что там есть нового можно посмотреть на странице http://www.microsoft.com/downloads/details.aspx?FamilyId=C09B5A2D-EB6A-44B6-8BBD-3764A2FDA9CE&displaylang=en
Обратная связь с разработчиками: http://connect.microsoft.com/VisualStudio/Feedback
Вышла третья бета для адаптеров элементов управления ASP.NET, использующих CSS-рендеринг вместо табличного. Это касается элементов управления группы Data (GridView, DataList, DetailsView, FormView), Navigation (Menu, TreeView), Login (Login, CreateUserWizard, ChangePassword, PasswordRecovery, LoginStatus)
Посмотреть примеры использования можно здесь.
Сайт проекта: http://www.asp.net/cssadapters
Вышла первая бета версия 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. Есть и другие причины, по которым не следует забывать менять эту директиву.
Также планируется поддержка метаданных 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.
Новая версия Internet Explorer, о необходимости которой так долго говорили большевики, все-таки вышла! Ура!
Скачать нужную вам версию можно тут: http://www.microsoft.com/windows/ie/downloads/default.mspx
Внимание - перед установкой нужно удалить предыдущие версии седьмого эксплорера (если конечно они были установлены).