<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Creyn &#187; Aurelia</title>
	<atom:link href="http://blog.creyn.pl/tag/aurelia/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.creyn.pl</link>
	<description>Programmer&#039;s notes</description>
	<lastBuildDate>Mon, 22 Aug 2016 07:00:21 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Aurelia, początki</title>
		<link>http://blog.creyn.pl/2016/04/04/aurelia-poczatki/</link>
		<comments>http://blog.creyn.pl/2016/04/04/aurelia-poczatki/#comments</comments>
		<pubDate>Mon, 04 Apr 2016 21:03:14 +0000</pubDate>
		<dc:creator><![CDATA[creyn]]></dc:creator>
				<category><![CDATA[Programmer's notes]]></category>
		<category><![CDATA[Aurelia]]></category>
		<category><![CDATA[Daj się poznać 2016]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.creyn.pl/?p=355</guid>
		<description><![CDATA[Projekt Smart Lodówka będzie miał prostą stronę ze statystykami. Chcę skorzystać z okazji i poznać nowy frontendowy framework. Wiele dobrego słyszałem o Aurelii. Aurelia jest kolejnym frameworkiem JavaScript, a używając słów jej autorów: &#8220;Aurelia is the most powerful, flexible and forward-looking JavaScript client framework in the world.&#8221; &#8220;Aurelia is a next generation UI framework&#8220;. Z...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Projekt Smart Lodówka będzie miał prostą stronę ze statystykami. Chcę skorzystać z okazji i poznać nowy frontendowy framework. Wiele dobrego słyszałem o Aurelii. <a href="http://aurelia.io/" target="_blank">Aurelia</a> jest kolejnym frameworkiem JavaScript, a używając słów jej autorów:</p>
<blockquote>
<p style="text-align: justify;">&#8220;<span class="st"><em>Aurelia</em> is the most powerful, flexible and forward-looking JavaScript client framework in the world.</span>&#8221;<br />
&#8220;<span class="st"><em>Aurelia</em> is a next generation UI framework</span>&#8220;.</p>
</blockquote>
<p style="text-align: justify;">Z tego co widzę, jest to taki następca bardzo popularnego Angulara. Choć może bardziej konkurencja. Nigdy nie myślałem o sobie jako o frontendowcu i dlatego wszelkie biblioteki ułatwiające programowanie w JavaScript uważam za świetny pomysł i im więcej tym lepiej.</p>
<p style="text-align: justify;">Jak zatem zacząć? Na stronie Aurelii jest dość dokładny poradnik <a href="http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.1.4/doc/article/getting-started" target="_blank">Getting Started</a>. Dzięki niemu udało mi się stworzyć przykładową stronę.</p>
<p style="text-align: justify;">Pierwsza rzecz, która rzuca się w oczy: bardzo dużo tutaj wszelkiego rodzaju: gulpów, gruntów, nodów, npmów i jsmpów. Chyba nadeszła chwila, aby dokładniej poznać te narzędzia. Na początek, fajnie że autorzy przygotowali &#8220;Starter Kit&#8221; aby przejść przez tutorial i zacząć poznawać Aurelię. Po pobraniu okazało się że ma on &#8230; 10 MB. Wydało mi się to trochę dużo. Drugą rzeczą jest liczba modułów. Aurelia jest bardzo modułowa i podobno można używać tylko tych, które są naprawdę potrzebne. Okazuje się jednak, że do wyświetlenia mojej banalnej strony potrzebne są praktycznie wszystkie. Nie wykluczam, że coś źle robię i w przyszłości będzie możliwe ograniczenie tej liczby, ale nie wiem czy nie jest to za bardzo modułowe :)</p>
<p style="text-align: justify;">Ucząc się najlepiej zacząć od początku, także chciałem krok po kroku stworzyć najprostszy możliwy projekt. Do solucji w Visual Studio dodałem folder Aurelia i dwa podstawowe pliki: &#8220;config.js&#8221; i &#8220;system.js&#8221;. Pierwszy zawiera listę mapowań modułów na konkretne pliki. Być może tutaj nie potrzebuję mieć wszystkich a jedynie kilka podstawowych. Sprawa do zgłębienia. W każdym razie przenosiłem po kolei pakiety ze &#8220;Starter Kita&#8221; do solucji. Udało mi się uruchomić sam framework w tym sensie, że nie dostawałem już błędów 404 z plikami JavaScript Aurelii. Doszedłem do etapu tworzenia swojej aplikacji.</p>
<p style="text-align: justify;">Aby to zrobić należy stworzyć dwa pliki: &#8220;app.js&#8221; i &#8220;app.html&#8221;. Plik &#8220;app.js&#8221; jest modelem dla widoku z &#8220;app.html&#8221;. Takie MVC. Przychodzący request jest mapowany do konkretnego widoku w ruterze, który konfigurowany jest właśnie w startowym pliku aplikacji &#8220;app.js&#8221;. Ja dodałem tam tylko jeden widok: events. Wyświetla on listę wszystkich zdarzeń pobranych z API, które stworzyłem wcześniej (<a title="http://blog.creyn.pl/2016/03/20/owin-webapi-na-hostingu-webio/" href="http://blog.creyn.pl/2016/03/20/owin-webapi-na-hostingu-webio/" target="_blank">OWIN WebApi na hostingu Webio</a>).</p>
<p style="text-align: justify;">Na koniec opublikowałem zmiany na hosting Webio i uruchomiłem przeglądarkę. Bardzo się zdziwiłem jak długo trwa wczytanie strony. Każdy moduł Aurelii jest pobierany jako jeden plik JavaScript a jest ich wszystkich &#8230; 95. Nic dziwnego, że trochę to trwa (30 sekund).</p>
<p style="text-align: justify;"><img class="aligncenter wp-image-358 size-full" src="http://blog.creyn.pl/wp-content/uploads/2016/04/Aurelia_requests_1.png" alt="Aurelia_requests_1" width="719" height="65" />Ale jest tutaj pole do optymalizacji. W każdym razie drugie załadowanie strony, przy plikach pobranych z cache, jest znośne, choć też zbyt wolne dla tego typu strony. Trwa 1,5 s. Jest to koszt odpalenia frameworka i wszystkich dobroci, które ze sobą niesie, a których chyba nie zauważę w tak prostym projekcie.</p>
<p style="text-align: justify;"><img class="aligncenter wp-image-359 size-full" src="http://blog.creyn.pl/wp-content/uploads/2016/04/Aurelia_requests_2.png" alt="Aurelia_requests_2" width="749" height="65" />Ciekawostka. Przed opublikowaniem tego posta postanowiłem jeszcze raz zrobić test strony po paru godzinach nieaktywności. Strona załadowała się w &#8230; 4 i pół minuty. Wydaje mi się, że na optymalizację będę musiał przeznaczyć więcej czasu niż początkowo zakładałem. Mam też nadzieję że nie będę musiał rezygnować z Aurelii.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-360" src="http://blog.creyn.pl/wp-content/uploads/2016/04/Aurelia_requests_3.png" alt="Aurelia_requests_3" width="752" height="71" /></p>
<p style="text-align: justify;">Podsumowując, udało mi się uruchomić swoją pierwszą stronę we frameworku Aurelia. Na stronie możliwe będzie monitorowanie zdarzeń jakie wystąpią w mojej Smart Lodówce. Dostępna jest pod adresem: <a href="http://smartlodowka.creyn.pl/" target="_blank">http://smartlodowka.creyn.pl</a> (jeśli długo nic nie widać &#8230; cierpliwości). Dla przypomnienia, ta sama lista zdarzeń z systemu dostępna jest bezpośrednio z API: <a href="http://smartlodowka.creyn.pl/api/events" target="_blank">http://smartlodowka.creyn.pl/api/events</a>.</p>
<p style="text-align: justify;">C.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creyn.pl/2016/04/04/aurelia-poczatki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
