Что такое расширенное интернет-приложение (RIA)?

Многофункциональное интернет-приложение (RIA) — это веб-приложение, предназначенное для предоставления тех же возможностей и функций, которые обычно связаны с настольными приложениями. RIA обычно распределяют обработку между Интернетом и сетью, размещая пользовательский интерфейс и связанные с ним действия и возможности на стороне клиента, а манипулирование данными и операции — на стороне сервера приложений.

RIA обычно запускается внутри веб-браузера и обычно не требует установки программного обеспечения на стороне клиента для работы. Однако некоторые RIA могут корректно работать только с одним или несколькими конкретными браузерами. В целях безопасности большинство RIA запускают свои клиентские части в специальной изолированной области клиентского рабочего стола, называемой песочницей. Песочница ограничивает видимость и доступ к файлу и операционной системе на клиенте для сервера приложений на другой стороне соединения.

Этот подход позволяет клиентской системе выполнять локальные действия, вычисления, переформатирование и т. д., тем самым снижая объем и частоту трафика клиент-сервер, особенно по сравнению с реализациями клиент-сервер, построенными на основе так называемых тонких клиентов.

- Уникальная особенность RIA:

Одной из отличительных черт RIA (в отличие от других веб-приложений) является механизм клиента, который выступает посредником между пользователем и сервером приложений. Клиентский движок загружается при запуске RIA. Механизм может быть расширен во время последующей работы с дополнительными загрузками, в которых механизм действует как расширение браузера для обработки пользовательского интерфейса и связи с сервером.

Существует множество мощных сред разработки, которые эффективно облегчают разработку RIA. Давайте посмотрим на некоторые из них.

Содержание:

- Введение

1. Angular JS
2. React JS
3. Vue JS
4. EXT JS
5. JavaFX
6. Ember JS< br /> 7. AJAX
8. Adobe Flex
9. Meteor JS
10. Нокаут

1. УгловойJS

AngularJS, теперь известный как Angular, представляет собой зрелую клиентскую среду JavaScript, поддерживаемую Google, и часто является первым выбором организаций для создания гибких, поддерживаемых и модульных RIA.

Эксперты Angular понимают, что, хотя HTML5 и JavaScript могут хорошо сочетаться друг с другом для создания высококачественных веб-приложений, результирующий код может стать очень сложным и дорогим в обслуживании.

Благодаря простоте и красоте Angular, который позволяет разработчикам значительно сократить объем кода JS, необходимого для написания, что делает веб-приложения по существу абстрактными.

2. Реагировать JS

React — это декларативная, эффективная и гибкая библиотека JavaScript для создания пользовательских интерфейсов. Это V в MVC. ReactJS — это интерфейсная библиотека с открытым исходным кодом, основанная на компонентах, отвечающая только за уровень представления приложения. Его поддерживает Facebook.

React использует декларативную парадигму, которая упрощает анализ вашего приложения и стремится быть одновременно эффективной и гибкой. Он создает простые представления для каждого состояния в вашем приложении, а React будет эффективно обновлять и отображать только нужный компонент при изменении ваших данных. Декларативное представление делает код более предсказуемым и упрощает отладку.

Реагирующее приложение состоит из нескольких компонентов, каждый из которых отвечает за рендеринг небольшого многократно используемого фрагмента HTML. Компоненты могут быть вложены в другие компоненты, что позволяет создавать сложные приложения из простых строительных блоков. Компонент также может поддерживать внутреннее состояние — например, компонент TabList может хранить переменную, соответствующую открытой в данный момент вкладке.

3. Вью JS

Vue.js — это новая восходящая звезда, он начинался как отдельный проект и быстро превратился в один из самых трендовых JS-фреймворков. В Vue есть много интересных вещей.

Во-первых, это прогрессивный фреймворк, а это значит, что если у вас есть существующий проект, вы можете использовать Vue для одной части проекта, и все будет работать нормально.

Во-вторых, он также включает в себя компонентную архитектуру, а экосистема Vue может помочь вам создать полноценное внешнее приложение. Некоторые люди опасаются использовать Vue, поскольку он не поддерживается крупными компаниями, такими как Facebook или Google, но ситуация быстро меняется, поскольку известные люди начинают инвестировать в Vue.

Это динамическая структура, которая подразумевает, что если у вас есть текущая задача, вы можете получить Vue за часть задачи, и все будет работать нормально и ладно. Во-вторых, он также передает дизайн части игры, а система Vue позволяет вам создавать все приложения для внешнего интерфейса.

4. ЭКСТ.JS

Ext JS — это среда приложений на чистом JavaScript для создания интерактивных кроссплатформенных веб-приложений с использованием таких методов, как сценарии Ajax, DHTML и DOM. Его можно использовать как простую структуру компонентов (например, для создания динамических сеток на статических страницах), а также как полную структуру для создания одностраничных приложений.

Первоначально созданный как расширение надстройки библиотеки Yahoo! Библиотека пользовательского интерфейса (YUI) Джека Слокама от 15 апреля 2007 г., начиная с версии 1.1, Ext JS не сохраняет никаких зависимостей от внешних библиотек, вместо того, чтобы делать их использование необязательным. В настоящее время Ext JS можно использовать как в виде отдельного скрипта (со всеми классами и компонентами в одном файле), так и путем создания приложения с помощью Sencha Cmd.

5. JavaFX

JavaFX с его богатым набором API-интерфейсов и надежной поддержкой Oracle является естественным выбором для высокопроизводительных многофункциональных интернет-приложений, ориентированных на данные. Активное сообщество JavaFX продолжает разрабатывать и поддерживать перенос JavaFX на мобильные платформы.

«Напиши один раз, работай где угодно» (WORA) была изюминкой Java на протяжении десятилетий и помогла компаниям сэкономить миллионы долларов, которые в противном случае были бы потрачены на портирование одного и того же приложения на другие платформы. Эта возможность была одной из причин беспрецедентного успеха Java. Наборы инструментов Java для разработки пользовательского интерфейса (UI) также следуют тому же шаблону. Библиотека AWT, представленная в 1995 году для разработки пользовательского интерфейса, была основана на той же философии. Эта библиотека зависела от собственных вызовов объектов рисования. Собственная зависимость в многопоточной среде вызывала конфликты блокировок, что приводило к взаимоблокировкам и интенсивному использованию системных ресурсов. Внешний вид таких приложений зависел от собственной платформы и не был одинаковым для разных платформ.

С течением времени использование веб-приложений на основе браузера значительно увеличилось, а другие вычислительные устройства, такие как планшеты, смартфоны, телевизионные приставки и т. д., стали более мощными с точки зрения вычислительной мощности и памяти. Измененный сценарий требовал общей платформы разработки, которая могла бы интегрировать богатые интернет-функции в среду рабочего стола и поддерживать кросс-платформенную среду программирования для разных устройств. JavaFX был ответом на это требование.

JavaFX 1.0 была запущена компанией Sun Microsystems (приобретенной Oracle в 2010 г.) в 2008 г. как инструментарий пользовательского интерфейса следующего поколения и призвана стать преемником Swing. Он был разработан для использования графических процессоров нового поколения с возможностями аппаратного ускорения и добавленной поддержкой 3D, анимации, мультимедиа, WebView и стилей CSS. JavaFX1.0 был языком сценариев для платформы Java, который мог с ней взаимодействовать. JavaFX 2.0 был полностью основан на Java API, что позволяло любому разработчику Java использовать его с IDE. JavaFX от Oracle доступен для разработки настольных приложений и для мобильных устройств при поддержке сообщества.

6. Эмбер JS

Ember был назван лучшим фреймворком Javascript еще в 2015 году. Сегодня сообщество Ember огромно и постоянно расширяется, регулярно добавляются новые функции и выпуски. Ember обладает двусторонней привязкой данных, которой может похвастаться Angular, и поставляется с множеством функций и компонентов, которые вы можете использовать «из коробки». Его используют Google, Microsoft, Heroku и Netflix. Ember вращается вокруг производительности разработчика и пытается максимизировать ее, либо устраняя необходимость в трате времени, либо применяя некоторые передовые методы JS в своей основной конструкции.

Ember.js возник из проекта SproutCore. Для тех, кто не знает, что такое SproutCore, это фреймворк JavaScript Model-View-Controller, который позволяет вам писать многофункциональные интернет-приложения с ощущением рабочего стола, как в отношении разрабатываемого приложения, так и его источника. код.

Ember.js — это платформа для правильной разработки многофункциональных интернет-приложений (RIA). Он основан на языках, которые формируют наш веб-интерфейс (очевидно, HTML, CSS и JavaScript), он помогает разработчику поддерживать исходный код в чистом шаблоне MVC, в то же время он использует сильные стороны SproutCore: богатая объектная модель и автоматический обновление шаблонов, мощные и согласованные привязки, поддерживающие расширенные представления, способные принимать события, а также множество дополнительных дополнений.

7. АЯКС

Производительность RIA зависит от Ajax (асинхронный JavaScript и XML), который использует сценарии на стороне клиента, чтобы сделать веб-приложения более отзывчивыми. Приложения Ajax разделяют взаимодействие пользователя на стороне клиента и взаимодействие с сервером и запускают их параллельно, уменьшая задержки обработки на стороне сервера, с которыми обычно сталкивается пользователь. Существует множество способов реализации функциональности Ajax. «Необработанный» Ajax использует JavaScript для отправки асинхронных запросов на сервер, а затем обновляет страницу с помощью модели DOM. «Необработанный» Ajax лучше всего подходит для создания небольших компонентов Ajax, которые асинхронно обновляют раздел страницы. Однако при написании «сырого» Ajax вам нужно иметь дело непосредственно с проблемами переносимости между браузерами, что делает его непрактичным для разработки крупномасштабных приложений. Эти проблемы с переносимостью скрыты наборами инструментов Ajax, такими как Dojo, Prototype, Script.aculo.us и ASP.NET Ajax, которые предоставляют мощные готовые к использованию элементы управления и функции, которые обогащают веб-приложения и упрощают кодирование JavaScript, делая его перекрестным. -совместимость с браузером. Традиционные веб-приложения используют формы XHTML для создания простых и тонких графических интерфейсов по сравнению с богатыми графическими интерфейсами Windows, Macintosh и настольных систем в целом. Мы достигаем богатого графического интерфейса в RIA с помощью наборов инструментов Ajax и таких сред RIA, как Adobe Flex и JavaServer Faces. Такие наборы инструментов и среды предоставляют мощные готовые к использованию элементы управления и функции, обогащающие веб-приложения.

Клиентская часть приложений Ajax написана на XHTML и CSS и использует JavaScript для добавления функциональности пользовательскому интерфейсу. XML используется для структурирования данных, передаваемых между сервером и клиентом. Для этой цели мы также будем использовать JSON (обозначение объектов JavaScript). Компонент Ajax, управляющий взаимодействием с сервером, обычно реализуется с помощью объекта JavaScript XMLHttpRequest, обычно обозначаемого аббревиатурой XHR. Серверная обработка может быть реализована с использованием любой серверной технологии, такой как PHP, ASP. NET, JavaServer Faces и Ruby on Rails.

8. Adobe Flex

Adobe Flex, еще одно средство для достижения той же цели. Flex использует широко распространенную платформу Adobe Flash для предоставления богатого графического пользовательского интерфейса, поддерживаемого ActionScript 3, реализацией Adobe ECMAScript 4 (более известного как JavaScript 2). Отношения между Flex и ActionScript аналогичны отношениям между библиотеками Ajax и JavaScript. Мощные графические возможности и кросс-платформенный характер Flash позволяют веб-разработчикам предоставлять расширенные интернет-приложения (RIA) большому количеству пользователей. Термин RIA был придуман в 2001 году компанией Macromedia, создателем Flash и Flex; Adobe приобрела Macromedia в 2005 году. Flex предоставляет элементы библиотеки пользовательского интерфейса, к которым можно легко получить доступ и настроить. Вы можете увидеть эти элементы пользовательского интерфейса в действии с помощью обозревателя компонентов Adobe Flex 2 на странице examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html.

Библиотека пользовательского интерфейса помогает обеспечить согласованное взаимодействие с пользователем во всех приложениях — качество, которого не хватает различным приложениям Ajax и Flash. Кроме того, преимуществом Flash является большая установленная база: проникновение Flash 6 и более поздних версий — 98,6 %, а проникновение Flash 9 — 84,0 % в США по состоянию на март 2007 г.1. и Linux-компьютеры. Поскольку движок Flash практически одинаков для разных браузеров и платформ, разработчики Flex могут избежать межплатформенных конфликтов Ajax и даже Java. Это значительно сокращает время разработки. Фреймворк Flex поддерживает широкий спектр веб-приложений, от простых программ просмотра изображений до программ чтения RSS-каналов и сложных инструментов анализа данных. Эта гибкость частично обусловлена ​​тем, что Flex отделяет пользовательский интерфейс от данных. Визуально привлекательные и согласованные пользовательские интерфейсы легко описываются с помощью языка разметки MXML, который преобразуется в исполняемый формат Flash SWF (Shockwave Flash) при компиляции приложения.

Flex подходит для интернет-магазинов, где универсальная библиотека пользовательского интерфейса Flex поддерживает перетаскивание, динамический контент, мультимедиа, визуальную обратную связь и многое другое. Приложения, требующие потоковой передачи данных в режиме реального времени, получают выгоду от способности Flex принимать данные, «проталкиваемые» с сервера, и мгновенно обновлять содержимое без постоянного опроса сервера, как это делают некоторые приложения Ajax. Приложения, требующие визуализации данных, могут воспользоваться библиотекой Flex Charting, которая может создавать интерактивные и настраиваемые диаграммы и графики. ActionScript расширяет возможности библиотеки пользовательского интерфейса Flex, позволяя вам кодировать мощную логику в ваших приложениях Flex.

9. Метеор JS

Meteor — это полнофункциональная платформа JavaScript для разработки современных веб-приложений и мобильных приложений. Meteor включает в себя ключевой набор технологий для создания реактивных приложений с подключенным клиентом, инструмент сборки и тщательно отобранный набор пакетов из Node.js и общего сообщества JavaScript.

  • Meteor позволяет разрабатывать на одном языке, JavaScript, во всех средах: на сервере приложений, в веб-браузере и на мобильном устройстве.
  • Meteor использует данные по сети, то есть сервер отправляет данные, а не HTML, и клиент их отображает.
  • Meteor охватывает экосистему, представляя вам лучшие части чрезвычайно активного сообщества JavaScript, тщательно и обдуманно.
  • Meteor обеспечивает реактивность полного стека, позволяя вашему пользовательскому интерфейсу плавно отражать истинное состояние мира с минимальными усилиями по разработке.

10. Нокаут

Knockout — это библиотека JavaScript, которая помогает создавать многофункциональные, отзывчивые пользовательские интерфейсы отображения и редактора с чистой базовой моделью данных. Каждый раз, когда у вас есть разделы пользовательского интерфейса, которые динамически обновляются (например, меняются в зависимости от действий пользователя или при изменении внешнего источника данных), KO может помочь вам реализовать его более просто и удобно в сопровождении.

Особенности заголовка:

  • Элегантное отслеживание зависимостей — автоматически обновляет нужные части вашего пользовательского интерфейса при изменении вашей модели данных.
  • Декларативные привязки — простой и очевидный способ связать части вашего пользовательского интерфейса с вашей моделью данных. Вы можете легко создавать сложные динамические пользовательские интерфейсы, используя произвольно вложенные контексты привязки.
  • Тривиально расширяемый — реализуйте настраиваемое поведение в виде новых декларативных привязок для простого повторного использования всего в нескольких строках кода.

Дополнительные преимущества:

  • Чистая библиотека JavaScript — работает с любой серверной или клиентской технологией.
  • Может быть добавлен поверх существующего веб-приложения без серьезных архитектурных изменений.
  • Компактный — около 13 КБ после сжатия.
  • Работает в любом распространенном браузере (IE 6+, Firefox 2+, Chrome, Safari, Edge и др.).
  • Полный набор спецификаций (разработанный в стиле BDD) означает, что его правильное функционирование можно легко проверить в новых браузерах и платформах.

Разработчики, знакомые с Ruby on Rails, ASP.NET MVC или другими технологиями MV*, могут рассматривать MVVM как форму MVC в реальном времени с декларативным синтаксисом. С другой стороны, вы можете думать о KO как об общем способе создания пользовательского интерфейса для редактирования данных JSON… что вам подходит.