Библиотека EXT js мне очень нравится. В первую очередь своей объектно-ориентированной структурой. Основные нарекания вызывает производительность.
Ext 1.1 Beta 1 доступна для «изучения»
Бэта 1 стала доступна широким массам. Билд теперь включает, собсно, Ext Stand-alone,
лайтвейтный ВИЗВИГ, класс Ext.Ajax, DateField, много дополнительной инфы, ну и в довесок проведена куча баг-фиксов.
Ext Stand-alone
Название говорит само за себя; ext-base весит 34кб в упакованом виде. Это поменьше чем YUI с адаптером (58кб), Prototype/Scriptaculous + адаптер (71кб) или jQuery + плагины + адаптер (62кб — минизировано, не обжато).
лайтвейтный ВИЗВИГ, класс Ext.Ajax, DateField, много дополнительной инфы, ну и в довесок проведена куча баг-фиксов.
Ext Stand-alone
Название говорит само за себя; ext-base весит 34кб в упакованом виде. Это поменьше чем YUI с адаптером (58кб), Prototype/Scriptaculous + адаптер (71кб) или jQuery + плагины + адаптер (62кб — минизировано, не обжато).
ЦСС Селекторы
Theme достаточно актуальна и веб-два-нольна, как бы затаскано это звучало.
Наткнулся недавно на релиз Джека Слокума (Jack Slocum) — DomQuery.
И на соответствующую сводку.
Тем «кто в теме» сюда.
Наткнулся недавно на релиз Джека Слокума (Jack Slocum) — DomQuery.
И на соответствующую сводку.
Тем «кто в теме» сюда.
Финальный релиз Ext 2.0
В прошлом многочисленные беты и кандидаты. Теперь встречаем финальный релиз одного из самых мощных JS фрейворков для разработки web-приложений – Ext 2.0. Что имеем с обновлением:
Работаем с ExtJS на языке РНР — библиотека PHP-Ext

Я вряд ли ошибусь, если предположу, что язык РНР достаточно популярен, если не самый популярный в веб-разработке. Мы не будем анализировать причины этого (а тем более, следствия), а сконцентрируемся на одном небольшом аспекте, а именно — как на РНР разрабатывать сложные AJAX веб-приложения. И не просто так разрабатывать, а использовать в своей работе библиотеку ExtJS, которая позволяет создавать интерфейсы для этих веб-приложений. Конечно, все это можно разнести и серверная сторона, на РНР или на любом другом языке, совершенно ничего не будет знать о клиентской части и AJAX-библиотеке, просто оперируя JSON данными и обычным HTML. Но можно сделать и по-другому — этот подход, аналогичен популярной сегодня технологии Google Web Toolkit. Мы ничего не разделяем, а просто пишем приложение, используя одну среду, один язык и все возможности (и языка и среды), а уже сервер самостоятельно генерирует код для клиента, полностью автоматически. Таким образом можно совсем (ну или почти) не знать и не разбираться в верстке, JavaScript и ExtJS, но писать приложения, которые будут использовать этот фреймворк.
Для языка Java подобные решения существуют, а недавно такой проект, EXT GWT, даже перешел под крыло самой компании-разработчика ExtJS, превратившись в вполне серьезное профессиональное решение. Ну а как в других языках? Java, конечно, хорошо и даже отлично, но душа и тело хотят разнообразия, или просто не хотят переучиваться. Для таких случаев есть свои решения. И одно из них, для РНР, так и называется — PHP-Ext.
Развёрнутый обзор ExtJS 2.2

Создание сложных приложений в ExtJS.
Translation
Автор: Jozef Sakalos, aka Saki
Статья в оригинале: Создание сложного приложение в Ext на blog.extjs.eu
Я решил написать эту статью для тех пользователей Ext 2.x, которые уже переросли одну единственную HTML-страницу со встроенными скриптом, создающим простое окно или форму, для тех, которые уже решили, что Ext — это их путь и для тех, которые превозмогая трудности связанные с большими объемами кода, понимают, что нуждаются в его структурировании.
Сколько людей, столько и мнений. И поэтому способ, который я опишу ниже, не является одним единственным возможным. Также хотелось бы отметить, что не каждое приложение, написанное с применением этого подхода, является гарантированно хорошим. Ничего подобного.
Замечу, что описываемый подход является работоспособным, четко структурированным, без труда поддерживаемым и, одним словом: рабочим!
Статья в оригинале: Создание сложного приложение в Ext на blog.extjs.eu
Предисловие
Я решил написать эту статью для тех пользователей Ext 2.x, которые уже переросли одну единственную HTML-страницу со встроенными скриптом, создающим простое окно или форму, для тех, которые уже решили, что Ext — это их путь и для тех, которые превозмогая трудности связанные с большими объемами кода, понимают, что нуждаются в его структурировании.
Сколько людей, столько и мнений. И поэтому способ, который я опишу ниже, не является одним единственным возможным. Также хотелось бы отметить, что не каждое приложение, написанное с применением этого подхода, является гарантированно хорошим. Ничего подобного.
Замечу, что описываемый подход является работоспособным, четко структурированным, без труда поддерживаемым и, одним словом: рабочим!
Обновление ExtJS и другие… приятности

JavaScript, AJAX, Socket и Flash/ActionScript — исследуем вопрос передачи данных в AJAX-приложениях

ExtJS, Adobe AIR и технология PixelBender — красиво, ничего не скажешь!

В Flash 10, а значит и в Adobe AIR 1.5 в его именно флешевую часть была внедрена интересная технология, по сути, полного управления всем отображаемым на экране — PixelBender. При помощи специального языка программирования GLSL (OpenGL Shading Language) разработчик может описывать операции над пикселями, при этом программа может быть применена не только к картинке, а к любому флеш-объекту, в том числе и целому окну или веб-странице. Кстати да, вы не ослышались, речь идет именно об OpenGL, а это нас приближает вплотную к возможности создать серьезные графические приложения, оперируя только обычными для веб-разработки инструментами. Если кто разбирается в 3D, то эта технология очень близка к пиксельным шейдерам, которые также программируются на своих языках.
Автоматическая загрузка библиотеки ExtJS по требованию.

Но что, если задача достаточно узкая, например, я столкнулся с ней, когда некоторый веб-сайт использует ExtJS для предоставления формы добавления и редактирования материалов. При этом процесс редактирования он достаточно редкий, в смысле что не каждый пользователь постоянно будет им пользоваться, кроме этого, работа с сайтом в режиме без регистрации отличается только отсутствием возможности редактирования. Загружать же сразу все файлы, а это почти 600 Кб, пусть даже тщательно собранной версии специально под проект, с учетом его потребностей, это достаточно накладно, и не хотелось бы грузить их всем пользователям.
Начало нового времени или ExtJS 3.0. Первая бета Ext-Core

Праздник, господа, праздник! ExtJS 3.0 RC1 доступен!

Очень кратко список нововведений.
Счастье близко — ExtJS 3 Designer уже скоро
Очень ждал функционала визуального дизайнера форм в платформе ExtJS и наконец свершилось. На официальном форуме появились ролики бушующего дизайнера.
Судя по имеющемуся функционалу на видео, появиться дизайнер должен очень скоро. Хотя на форуме есть мнения, что он войдет только в сборку ExtJS 3.1 и в третий релиз не войдет.
Также хочу обратить внимании на австралийскую разработку FireDB — ребята проделали огромный труд, но непонятно как это чудо будет продаваться. Насколько я понял платформа разработана на последнем релизе ExtJS 2.2.
Судя по имеющемуся функционалу на видео, появиться дизайнер должен очень скоро. Хотя на форуме есть мнения, что он войдет только в сборку ExtJS 3.1 и в третий релиз не войдет.
Также хочу обратить внимании на австралийскую разработку FireDB — ребята проделали огромный труд, но непонятно как это чудо будет продаваться. Насколько я понял платформа разработана на последнем релизе ExtJS 2.2.
ExtJS 3.0 RC2 — а мы идем в сторону RESTful

Итак, сегодня вышел следующий кандидат-релиз 3-й версии ExtJS, а также вторая бета-версия Ext Core, они обновляются синхронно, так как сам ExtJS теперь базируется на открытом ядре. Рассмотрим основные изменения, кроме заявленных улучшений в производительности и стабильности.
ExtDesigner — щупаем ручками
Тестируем свеженький ExtDesigner за более 200 не русских президентов на предмет вменяемости и вообще что это такое и для чего
Сразу скажу что ExtJS ом пользоваться не умею, но прочитанные доки оставили довольно приятное впечатление
тестировать буду на Gentoo Linux 64х битную сборку
Сразу скажу что ExtJS ом пользоваться не умею, но прочитанные доки оставили довольно приятное впечатление
тестировать буду на Gentoo Linux 64х битную сборку
Урок 1. Знакомимся с Ext.NET
Sandbox
Краткое введение в Ext.NET 2.0 beta
Дорогой читатель, давайте поговорим о таком приятном и полезном ASP.NET Фреймворке как Ext.NET. Он основывается на известном JS Фреймворке – Sencha Ext JS. Он сильно облегчает многим ASP.NET разработчикам жизнь, избавляя от необходимости изучения Ext JS, а потом еще прикручивания его к своему ASP.NET приложению. Ext.NET предоставляет удобные и простые контролы, но не только. В нем есть очень много других полезных вещей, но об этом позже.
Текущая версия Ext.NET 2.0 beta предоставляет почти все возможности Ext JS 4.1.0 и включает в себя некоторые очень приятные плагины. Если вы думаете использовать Ext.NET в своем реальном проекте, я бы рекомендовал вам обратиться к версии Ext.NET 1.3, она более стабильная и почти не вызывает нареканий, функционально конечно слабее, но не принципиально. Многое, что тут написано применимо и к ней, хотя между ними нет совместимости. А если все же решили использовать Ext.NET 2.0 beta, то помните, что пометка beta, как раз и подразумевает, что все еще может поменяться по нескольку раз и работает местами нестабильно. Но все же именно версия Ext.NET 2.0 beta, это будущее и необходимо изучать именно ее. В ней разработчики добавили много нового, полный список изменений вы можете посмотреть тут.
Урок 2. Создаем своё приложение на Ext.NET, часть 1
Контейнеры (Container, Panel, TabPanel, ViewPort) и разметки (BorderLayout, AccordionLayout, CardLayout)
Введение
Ну что же начнем. Нашей конечной целью будет создать интерфейс примерно похожий на Microsoft Outlook 2010. Почему именно этот интерфейс? Причина проста — потому что Ext.NET часто используется в корпоративном секторе или близком к нему и пользователь этой аудитории зачастую хочет видеть нечто похожее на Outlook. Плюс ко всему эта разметка довольно сложная и потому интересная. Не переживайте можно сделать и многие другие интерфейсы, но это все как-нибудь потом. Сразу оговорюсь, что мы не будем делать полную копию интерфейса Outlook, ограничимся только самым нужным.

Listeners в Ext.NET
Translation
Tutorial
В Ext.NET понимание разницы между различными типами событий и их обработчиками является очень важным. Выбор зависит от конкретного сценария, который вы хотите реализовать вашем приложении.
В данной серии из четырех статей мы рассмотрим различные события на клиенте и на сервере, как они вызываются, обрабатываются и какие имеют преимущества. В данной статье будут рассмотрены Listeners – позволяющие «слушать» события на клиенте и обрабатывать его там же, на клиенте, избегая запроса к серверу.
Все компоненты в Ext.NET, такие как Panel, Window, Button, имеют следующие четыре типа обработчиков событий:
Listeners являются обработчиками событий на клиенте. Они выполняют ваш код после появления некоторого события, например, нажатия на кнопку (Button).
Использование Intellisense в Visual Studio дает возможность узнать какие конкретные события есть у каждого компонента. Каждый компонент наследует события от своего предка и обычно добавляет свои.
Все классы в Ext.NET наследуют события от базового класса Observable. Все события находятся в Listeners.

Если компонент вызывает некоторое событие на клиенте, то для того чтобы ваш код на клиенте обработал данное событие вы должны подписаться на это событие добавив JavaScript функцию.
В данной серии из четырех статей мы рассмотрим различные события на клиенте и на сервере, как они вызываются, обрабатываются и какие имеют преимущества. В данной статье будут рассмотрены Listeners – позволяющие «слушать» события на клиенте и обрабатывать его там же, на клиенте, избегая запроса к серверу.
Все компоненты в Ext.NET, такие как Panel, Window, Button, имеют следующие четыре типа обработчиков событий:
Listeners |
Слушают события на клиенте и обрабатывают их так же на стороне клиента. |
DirectEvents |
Слушают события на клиенте, но выполняют их обработку на стороне сервера, вызов происходит посредством AJAX запроса. |
DirectMethods |
Позволяют вызывать функции на сервере, например написанные на C# или VB, вызов происходит посредством AJAX запроса. |
MessageBus |
MessageBus позволяет передавать различные события между компонентами, которые могут друг о друге не знать. Обработка сообщений происходит через подписку на определенные сообщения и отправку сообщений о событиях через MessageBus. Каждый компонент на клиенте имеет специальный обработчик MessageBusListeners, а также MessageBusDirectDirectEvents для передачи обработки на сторону сервера. |
Listeners
Listeners являются обработчиками событий на клиенте. Они выполняют ваш код после появления некоторого события, например, нажатия на кнопку (Button).
Использование Intellisense в Visual Studio дает возможность узнать какие конкретные события есть у каждого компонента. Каждый компонент наследует события от своего предка и обычно добавляет свои.
Все классы в Ext.NET наследуют события от базового класса Observable. Все события находятся в Listeners.

Все доступные события могут быть просмотрены с помощью Intellisense
Если компонент вызывает некоторое событие на клиенте, то для того чтобы ваш код на клиенте обработал данное событие вы должны подписаться на это событие добавив JavaScript функцию.
JSonCmp — сравниваем в JavaScript правильно
Вот JavaScript-овый объект, сериализованный в JSon:
А вот ещё один JavaScript-овый объект, тоже сериализованный в JSon:
У них одинаковая структура, одинаковые параметры, одинаковые значения в этих параметрах. По всем признакам, и в
Но интерпретатор JavaScript с нами, разумеется, не согласен. И он вполне резонно считает, что source1 и source2 — разные строки. А если мы десериализуем их обратно, то получим два object-а, которые расположены по различным адресам памяти и… тоже не равны друг другу.
А если вы, впридачу, работает с Ext.js, щедро генерируете свои классы и не забываете про jSon, то может дойти до полного затмения. Как сравнить эти огромные простыни сведений о контролах, которые собираются в JSon-ы? Или разобраться древовидными объектами, где в каждое поле уже успели насоздаваться ещё какие-то подполя?
var source1 = '[{"vConfig":{"vType":"objectview","serverItemType":"TrackerObject"}}]';
А вот ещё один JavaScript-овый объект, тоже сериализованный в JSon:
var source2 = '[{"vConfig":{"serverItemType":"TrackerObject","vType":"objectview"}}]';
У них одинаковая структура, одинаковые параметры, одинаковые значения в этих параметрах. По всем признакам, и в
source1
, и в source2
у нас одно и то же.Но интерпретатор JavaScript с нами, разумеется, не согласен. И он вполне резонно считает, что source1 и source2 — разные строки. А если мы десериализуем их обратно, то получим два object-а, которые расположены по различным адресам памяти и… тоже не равны друг другу.
А если вы, впридачу, работает с Ext.js, щедро генерируете свои классы и не забываете про jSon, то может дойти до полного затмения. Как сравнить эти огромные простыни сведений о контролах, которые собираются в JSon-ы? Или разобраться древовидными объектами, где в каждое поле уже успели насоздаваться ещё какие-то подполя?