HTML5 UI Framework [zamknięty]

Znalazłem tam wiele frameworków interfejsu HTML5, takich jak:

Jestem trochę przytłoczony z tak dużo zasobów tam. Niektóre z nich wyglądały, ale prawie wszystkie wydawały się zbyt powolne i ciężkie.

I ' m trochę się pogubiłem, którego się nauczę. Każda z ich stron internetowych mówi o swoim produkcie tak, jakby były najlepsze na rynku. (oczywiste strategie marketingowe).

Jako początkujący w tworzeniu aplikacji internetowych i frameworków JS UI po stronie klienta; wy, bazując na swoim doświadczeniu, który z nich polecacie do szybkiego tworzenia aplikacji internetowych na pulpicie, biorąc pod uwagę szybkość, Kolekcje widżetów, złożoność, wygląd n' feel, wsparcie itp.?

Którą polecacie mi zacząć nauka?

Wiem, że może być wiele odpowiedzi i każdy może preferować inne, ale to może pomóc mi trochę poprowadzić i mieć niektórych krytyków niektórych z najpopularniejszych frameworków.

Author: Vladimir Georgiev, 2012-10-18

2 answers

Jest tak wiele w twoim pytaniu, że odpowiedź nie będzie łatwa i w ogóle nie będzie jednoznaczna. Będzie też bardzo opiniotwórczy. Patrząc na listę ram, które przyniosłeś, widzę bardzo różne rzeczy, które nie są ze sobą porównywalne. Postaram się je jakoś pogrupować i dodać więcej frameworków do listy.

Głównym pytaniem nie są tu plusy i minusy konkretnych ram. Główne pytanie brzmi: ile chcesz ? Czy naprawdę chodziło Ci o podanie jak Gmail czy Grooveshark? A może chodziło Ci o coś takiego jak Stackoverflow-dynamiczna i wcale nie prosta, ale wciąż strona internetowa. Rozważmy wszystkie te opcje.

Być może po prostu chcesz wzbogacić swoją stronę O widżety, takie jak karty, okna dialogowe,elementy przeciągalne/ opuszczalne, Edycja tekstu itp. Używasz ulubionej Javy / PHP / Ruby i nie chcesz pisać dużo logiki i zachowania swojej aplikacji w JavaScript. W tym przypadku rozwiązania podobne do wtyczek jQuery zrobią dla Ciebie, w szczególności jQuery UI i jQuery Mobile.

Widgety JQuery podążają za systemem wtyczek. Oznacza to na ogół, że są niezwykle łatwe w obsłudze. Aby utworzyć przycisk, piszesz:

$('#myButton').button();

Teraz, jeśli chcesz ją wyłączyć, wywołujesz metodę używając następującego wzorca:

$('#myButton').button('disable');

I uzyskanie lub ustawienie wartości, np. na sliderze lub datepickerze, wygląda następująco to:

$('#mySlider').slider('value');
$('#mySlider').slider('value', 42);

Jak widzisz, rozwiązania oparte na jQuery nie mają modelu. Wszystkie Twoje dane są przechowywane w DOM i są uzyskiwane za pomocą dziwacznych wywołań metod. Jeśli chcesz dynamicznie przetwarzać swoje dane, np. wykonać złożone walidacje, załadować coś w tle, filtrować lub sortować, zobaczysz, że wkrótce zrobi się bałagan. Nawiasem mówiąc, to jest problem, dlaczego zespół jQuery UI nie dostarczył jeszcze kontroli siatki - nie mogą tego zrobić bez modelu. W jQuery Mobile dostajesz ładny mobilny UI za pomocą proste znaczniki, ale nie ma oficjalnego sposobu przekazywania danych między stronami.

Podsumowując: jeśli masz stronę wielostronicową, jeśli publikujesz formularze, użyj jQuery UI lub lżejszego rozwiązania, takiego jak Twitter Bootstrap .

Być może, chcesz zbudować coś bardziej złożonego, bardziej application-like(aplikacja jednostronicowa?). Wiesz, że będziesz musiał pracować z danymi po stronie klienta. Więc jakie masz opcje?

Możesz użyć jednego z wielu frameworków JavaScript, które zapewnij modele, powiązanie danych i prawdopodobnie inne sposoby tworzenia aplikacji internetowych i zintegruj je z interfejsem użytkownika why not jQuery. Możesz też użyć bardziej kompletnego frameworka jak Kendo lub Wijmo lub jqWidgets. Frameworki te opierają się na jQuery (Wijmo opiera się na jQuery UI) i zapewniają dodatkowe sposoby manipulacji danymi. Mają modele danych. Kendo wdraża własne rozwiązanie (chyba), natomiast Wijmo i jqWidgets integrują się z popularnym Knockout JS.

Więc Kendo i Wijmo należą do grupy frameworków, które zapewniają zarówno widżety / kontrolki,jak i model wspierający. Istnieją inne frameworki tego typu, które nie są oparte na jQuery, np. Dojo Toolkit. Dodaj dynamiczne ładowanie danych, a otrzymasz nieco złożoną aplikację internetową. Czego jeszcze możesz chcieć?

Właściwie najważniejsze jest zapomnienie - jak układasz (organizujesz) swoją aplikację? Jeśli spróbujesz zbudować jednostronicową aplikację, która komunikuje się z serwerem w Spokojny sposób, a następnie wkrótce dostać się do bałaganu, jeśli aplikacja nie ma architektury. Funkcje, które są zwykle wymagane do tego są niektóre dotyczą separacji (MVC, MVVM), szablonów, routingu i zarządzania modułami. Tutaj pojawiają sięSproutCore iSencha . Stanowią one kompleksowe rozwiązanie do tworzenia aplikacji internetowych, w których widżety to tylko niewielka część.

Może się wydawać, że SproutCore i Sencha są tutaj zwycięzcami, ponieważ są najbardziej kompletnymi rozwiązania, które obejmują zarówno interfejs użytkownika, jak i logikę biznesową, a także strukturę aplikacji. Pomimo wszystkich plusów, są pewne minusy. Niektórzy mówią, że są zbyt ciężkie lub będą wymagać przestrzegania ich modelu rozwoju, który może Ci się nie spodobać. Na przykład w Sencha opisujesz swój GUI w JavaScript i używasz systemu typów Sencha. Dodaje to pewnego rodzaju ciężkie uczucie, że istnieją abstrakcje i opakowania, podczas gdy naprawdę lubisz łatwość HTML, CSS i vanilla JavaScript.

Ale to nie jedyny sposób. Siłą Internetu jest to, że istnieje wiele-wiele frameworków, bibliotek, narzędzi, mniejszych i większych, które pomogą Ci stworzyć aplikację tak, jak lubisz. Na przykład rozważmy AngularJS . Nie zapewnia zestawu kontroli, ale w połączeniu z Twitterem Bootstrap staje się kompletnym rozwiązaniem dla RIA. Albo, na przykład, spójrz na EmberJS , bardziej lekki framework od faceta, który stworzył heavyweight SproutCore. Informatyka nie dostarcza też zestawu widżetów, ale moim zdaniem jest bardzo dobrą bazą dla aplikacji.

Oto moja ostatnia myśl, a nie wniosek. Wszystkie te ramy zwykle pokazują zestaw widżetów, ładnie wyglądające motywy i inne rzeczy wizualne. Ale tak naprawdę liczy się to, w jaki sposób będziesz rozwijać swoją aplikację, jak będziesz ją strukturyzować, gdzie zaimplementujesz swoją logikę. Dowiedz się, co zapewnia framework i zastanów się, czy możesz zastąpić to, co jest zaginęła.
 130
Author: Infeligo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-18 20:54:40

Odpowiedź Infeligo jest na najwyższym poziomie. Moje doświadczenie może być interesujące dla niektórych. Używam Ruby on Rails jako platformy serwerowej, na której znajduje się większość mojej logiki biznesowej.

Z przodu używam dhtmlx, który jest biblioteką JS 'obiektów', z których najpotężniejszym jest ich obiekt grid. Większość moich aplikacji ma wymagania dotyczące przetwarzania informacji biznesowych / księgowych/wyświetlania, a obiekt grid jest tam moją podstawą. Jednak ich zestaw obiektów jest wszechstronny, w tym możliwość tworzenia dodatkowe "okna" w ramach pojedynczej aplikacji w celu zapewnienia użytkownikowi końcowemu interfejsu typu MDI. Zazwyczaj mam formularz logowania, który po pomyślnym zastosowaniu otwiera pojedynczą stronę HTML z menu na górze. Na podstawie wyboru z menu otwierają się i zamykają nowe okna, aby wyświetlać / manipulować informacjami. Okna te mieszczą się w zakresie pojedynczej strony HTML.

Wszystkie obiekty mają bardzo dobre wydarzenia z nimi związane i robię sporo walidacji z przodu koniec z tymi wydarzeniami. Zwykle jednak powielam wszystkie walidacje danych w modelu Rails. To dodatkowa praca, ale jestem bardzo ostrożny. Istnieje również szereg abstrakcyjnych obiektów, które pomagają łączyć dane między obiektami wizualnymi front-end, np. siatką i serwerem back-end. Większość połączeń danych można wykonać za pomocą XML lub JSON. Używam XML zamiast JSON po prostu ze względu na moje doświadczenie z tą strukturą i fakt, że Rails zapewnia przyzwoity XML builder. Więc w moim przypadek rzadko używam widoków opartych na Railach, ponieważ wszystkie moje obiekty wizualne pochodzą z dHTMLX.

Inną rzeczą, którą lubię w dHTMLX, jest szybkość ich obiektów. Na przykład obiekt siatki z łatwością obsłuży ponad 10 000 wierszy przy bardzo akceptowalnych prędkościach.

Dużym minusem apartamentu jest jego dokumentacja. Firma jest deweloperem z Europy Wschodniej i dlatego często trudno jest dokładnie zrozumieć, co oznacza ich dokumentacja. Również ich dokumentacja ma tendencję do dokumentuj wszystko całkowicie, więc wiele czasu jest marnowane na uczenie się metodą prób i błędów.

Hope this helps

 4
Author: nexar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 12:53:20