Aurelia: Приятно познакомиться

ru-RU | создано: 26.11.2015 | опубликовано: 26.11.2015 | обновлено: 30.12.2017 | просмотров за всё время: 3953

В Интернете можно найти огромное количество клиентских фреймворков для разработки Single Page Application (SPA). Для примера приведу самые известные: AngularJS, ExtJS, EmberJS, BackboneJS. Все они имеют свою историю, свои плюсы и минусы и своих разработчиков (поклонников). Но мой выбор пал на новый, можно сказать "свежий" фреймворк, который называется Aurelia.

История выбора

Некоторое время назад, я увлекся одностраничными порталами (Single Page Application, или SPA). Писать свой движок не хотелось, да и выбор уже существующих был огромный. Пошатавшись по просторам Интернета, полистав страницы веб-сайтов с описанием фреймворков удалось выяснить, что большинство уже давно существуют и в 90% случаев построены без использования паттернов проектирования, либо реализация этих паттернов осуществлена на псевдо уровне. В последнее время выходят новые версии этих библиотек (фреймворков), где уже более солидно прослеживаются паттерны проектирования. Не буду далеко ходить за примером, одним из таких является ExtJS. Только в последних версиях стала прослеживаться тенденция склоняться к MVVM паттерну. А всеми любимый AngularJS и по сей день ориентирован на устаревающий MVC паттерн.

В сети есть сайт, на котором собраны на "одной странице" проекты созданные при использовании разных фреймворков. Проекты представляют собой ничто иное как простейшую реализацию "Списка дел" (To Do List). Авторы постарались собрать воедино информацию о плюсах и минусах разных фреймворков и примерами реализации и исходными текстами.

В общем, покрутившись на месте, накликал я DurandalJS, который тоже не в полной мере реализует MVVM, но во всяком случае очень близко. Автором этого фреймворка является Роберт Эйзенберг (Rob Eisenberg). Про этот фреймворк я написал в своем блоге некоторое количество статей, и более того, сделал несколько десятков одностраничных сайтов. Прелесть DurandalJS в том, что он построен на jQuery, Knockout и RequireJS, то есть без излишеств и на основе тех компонентов, которые я знаю.

Но счастье было не долгим. В один прекрасный момент, на сайте фреймворка появилась ссылка на http://aurelia.io. Автор в своем блоге рассказал историю появления нового фреймворка. Если вкратце, то в записях блога прослеживается такая история.

В начале 2015 года...

... команда разработчиков AngularJS снова пригласила меня поработать над очередной версией AngularJS в качестве архитектора системы. Я с радостью согласился, поэтому очередная версия Durandal JS пока остается под вопросом...

Эта новость меня огорчила, но девятью месяцами позже...

...при разработки нового и переработки старого в системе AngularJS возникли разногласия с точки зрения реализации инфраструктуры и архитектуры фреймворка, поэтому я принял решения отказаться от участия в проекте. Я возвращаюсь к разработке DurandalJS. Ждите в ближайшем будущем новой версии 3.0...

А еще спустя пару месяцев...

Дорогие друзья, я рад вам представить новый фреймфорк - Aurelia. Это современный фреймворк, который написан со взглядов в будущее, потому что использует ES2016. Он имеет двунаправленное связывание (binding), современная архитектура, расширяемый HTML, маршрутизацию и композицию, MV* договоренности, поддерживает ES5, ES2015, ES2016, TypeScript или CoffeeScript и вдобавок ко всему еще и тестируемый.

В общем, посмотрев ознакомительное видео, я был поражен! Чтобы не быть многословным, просто сравните код реализации одно и той же задачи.

Дело, конечно же, не только в представленном коде, вернее в его краткости, все "фишки" нового фреймворка со смаком описаны на официальном сайте. Изучив все представленные возможности, определившись с отличиями и тенденциями по развитию JavaScript, я выбрал для изучения этот фреймворк. В своем блоге я буду делиться кодом, проблемами при решении задач, решениям этих проблем и впечатлениями от разработки на этом фреймворке. Если у вас остались вопросы, автор фреймворка ответит на нах на страницах своего блога. Вот часто задаваемые вопросы.

Что есть Aurelia?

Итак, что такое Аурелия (Aurelia)? По словам автора это:

Это современный фреймворк, который написан со взглядов в будущее, потому что использует ES2016. Он имеет двунаправленное связывание (binding), современная архитектура, расширяемый HTML, маршрутизацию и композицию, MV* договоренности, поддерживает ES5, ES2015, ES2016, TypeScript или CoffeeScript и вдобавок ко всему еще и тестируемый фреймворк.

Ни убавить, ни добавить. В следующей статье создадим первый сайт на ASP.NET 5 с использованием Aurelia.