19
Ext JS Zastosowanie w aplikacjach Ruby on Rails Leszek Smentek

Extjs & netzke

Embed Size (px)

Citation preview

Page 1: Extjs & netzke

Ext JSZastosowanie w aplikacjach Ruby on Rails

Leszek Smentek

Page 2: Extjs & netzke

Co to takiego ?

- Ext JS jest frameworkiem stworzonym i rozwijanym przez firmę Sencha.

- Głównym przeznaczeniem jest budowa aplikacji internetowych silnie opartych na języku javascript

- Jest kompatybilny z najbardziej rozpowszechnionymi przeglądarkami na rynku (Firefox, Google Chrome, Safari, Opera, Internet Explorer)

- Posiada dwa rodzaje licencji, komercyjną i open source

Page 3: Extjs & netzke

Do czego może się przydać ?

- Interaktywne aplikacje internetowe (AJAX)

- Dobrze sprawdza się przy operowaniu na dużej ilości dany (dane tekstowe, numeryczne, statystyki, wykresy, itp.)

- Ułatwia budowanie aplikacji wymagających odpowiedniej prezentacji i formatowania danych

- Może służyć do budowy części administracyjnej strony internetowej lub portalu

- Zapewnienie kompatybilność z wszystkimi głównymi przeglądarkami na rynku

- Web Desktop

Page 4: Extjs & netzke

Inni gracze na rynku.

- JQuery

- Google Web Toolkit

- Prototype

- YUI

- ...

Page 5: Extjs & netzke

Po co marnować mój cenny czas na naukę czegoś nowego?

- Wiele ciekawych funkcjonalności zagregowanych w jednym miejscu.

- Dobra dokumentacja

- Społeczność

- Wsparcie techniczne

- Narzędzia

- Estetyczny wygląd

- To wszystko ze sobą działa !

Page 6: Extjs & netzke

Nie tylko zalety...

- Wiele funkcjonalności zagregowanych w jednym miejscu. (Framework jest dość „ciężki”)

- Licencja komercyjna

Page 7: Extjs & netzke

No dobra ale co to ma wspólnego z Ruby on Rails ?!

Page 8: Extjs & netzke

Przyjaciele zza wschodniej granicy

- Netzke to eleganckie i wydajne rozwiązanie architektoniczne na kilka znanych problemów, które towarzyszą rozwoju złożonych opartych na technologii AJAX RIA (Rich Internet Applications). Bez względu na stopień złożoności aplikacji, Netzke pomoże Ci zachować swój kod w porządku i czystości.

- Netzke wprowadza piękną mieszankę kodu klienta i strony serwera (JavaScript i Ruby, odpowiednio). Skutkuje to powstaniem dobrze zdefiniowanych, generujących niewielki ruch, rozszerzalnych komponentów, umożliwiających wielokrotne użycie.

- Netzke wykorzystuje ideologię „konwencji nad konfiguracją”, przez co kod GUI staje się bardzo łatwy w tworzeniu, ale bez narzucania jakichkolwiek ograniczeń.

Page 9: Extjs & netzke

Tyle teorii. Trochę praktyki :)

Krok 1 - Gemfile

gem 'netzke-core', :git => "git://github.com/skozlov/netzke-core.git"

gem 'netzke-basepack', :git => "git://github.com/skozlov/netzke-basepack.git"

Page 10: Extjs & netzke

Tyle teorii. Trochę praktyki :)

Krok 2 - routes.rb

NetzkeTaskManager::Application.routes.draw do

netzke

root :to => "welcome#index"

# ...

end

Page 11: Extjs & netzke

I jeszcze trochę praktyki

Krok 3 – application.html.erb

<!DOCTYPE html>

<html>

<head>

<title>Netzke Task Manager</title>

<%= netzke_init %>

<%= csrf_meta_tag %>

</head>

<body>

<%= yield %>

</body>

</html>

Page 12: Extjs & netzke

I jeszcze trochę praktyki nie związanej z Netzke

Krok 4 - generatory

- rails g controller welcome index

- rails g model Task done:boolean name:string notes:text priority:integer due:date

Krok 5 – migracja

- t.boolean :done, :default => false

Page 13: Extjs & netzke

Prawie u celu

Krok 6 – index.html.erb

<%= netzke :tasks,

:class_name => "Basepack::GridPanel",

:model => "Task"

%>

Page 14: Extjs & netzke

Nareszcie koniec ciężkiej pracy ;)

Krok 7 – Podziwiamy nasze dzieło

Page 15: Extjs & netzke

Co Netzke daje zwykłemu programiście?

- szybkie powstawanie funkcjonalności

- przejrzystość i czytelność kodu

- komponenty wielokrotnego użytku

- elastyczność

- większość kodu to ruby

- wsparcie twórcy

- ciągły rozwój

Page 16: Extjs & netzke

Każdy szanujący się Polak musi trochę ponarzekać. Czyli trochę o wadach.

- dobry kod dokumentuję się sam (nie koniecznie !!!)

- coś więcej niż beta a mniej niż produkt finalny

- wsparcie twórcy (głównie)

- dziwne rozwiązania (niektóre)

- prawie Web Desktop

Page 17: Extjs & netzke

Linki

- Ext JS:

http://www.sencha.com/products/extjs/

http://www.sencha.com/products/extjs/examples/

- Netzke:

http://netzke.org/

http://blog.writelesscode.com/

Page 18: Extjs & netzke

Pytania

Page 19: Extjs & netzke

Dziękuję za uwagę