Postaw sobie aplikacje webową. Fajny starter

Postaw sobie aplikacje webową. Fajny starter
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
4

Cześć.
Znalazłam fajną rzecz dla programistów Java, którzy chcą szybko postawić webaplikacje
a nie lubią babrać się z konfiguracją frontendu. Projekt, który z marszu integruje
Spring Boota / PrimeFaces / BootsFaces / OmniFaces / AngularFaces / Mojarra / MyFaces i
jeden z trzech serwerków Tomcat / Jetty / Undertow. (。◕‿‿◕。)

https://github.com/joinfaces/joinfaces

tutaj przykład aplikacji:
https://github.com/joinfaces/joinfaces-example

tutaj wiki projektu:
https://github.com/joinfaces/joinfaces/wiki

dostępnych jest wiele startowych zestawów jak np. (! uwaga):
jsf-jetty-myfaces-bootsfaces-spring-boot-starter:
https://github.com/joinfaces/joinfaces/wiki/JSF-Spring-Boot-Starters

możliwości bootsfaces:
http://showcase.bootsfaces.net/forms/inputText.jsf

możliwości primefaces:
http://www.primefaces.org/showcase/

wszystko pakowane do jednego spring bootowego jara.
Polecam.


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
kate87
Kolejna rzecz do obczajenia :) Dzięki :)
shagrin
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 6 lat
  • Lokalizacja:Norwegia, Stavanger
0

A tak z ciekawości, jak często używa sie teraz PrimeFaces i podobnych?


szarotka
w systemach pisanych na polski rynek się używa, jak często to trudno powiedzieć aż takiego obrazu całości to nie mam
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2
shagrin napisał(a):

A tak z ciekawości, jak często używa sie teraz PrimeFaces i podobnych?

W Niemczech bardzo duzo - jakies maja zamilowanie do zombie technologii. W kazdym razie szczerze odradzam wprowadzanie JSF we wlasnych projektach.


jeden i pół terabajta powinno wystarczyć każdemu
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

@jarekr000000 dlaczego i co proponujesz w zamian? Coś łatwego do ogarnięcia przez przeciętnego java kodziarza i równie dobrego jak PrimeFaces.
Z wieloma gotowymi i działającymi komponentami tak jak w PrimeFaces


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2
karolinaa napisał(a):

@jarekr000000 dlaczego i co proponujesz w zamian? Coś łatwego do ogarnięcia przez przeciętnego java kodziarza i równie dobrego jak PrimeFaces.
Z wieloma gotowymi i działającymi komponentami tak jak w PrimeFaces

JSF i PrimeFaces zupenie nie jest proste i latwe do ogarniecia.
Przed wszystkim wszyscy gina na cyklu zycia beanow (session, viewscope). Trzeba duzo przeczytac i pocwiczyc zeby to ogarnac. Samemu sie nawet da - ale w zespole praktycznie zawsze znajdzie sie kilku, ktorzy nie doczytaja i sie robi bryndza. Jak sie to zawali - to juz potem ciezko odkrecic.

Przede wszystkim niepotrzebne - w javie latwo mozna wystawic Restowe API i robic front jako single page
w Angular2 (typescript) lub Angular1 (JS). proste, latwe, debugowalne ,testowalne i przecietny koder latwiej to ogarnia (mniej magii). Modulow gotowych mnostwo!

JSF generalnie nie byl zaprojektowany do robienia Single Page Applications, a nawet Ajax - i to niestety widac. (See wszystkie fazy .... renderowania strony (WTF - jak to sie ma do roku 2016?)).

Btw. w duzych aplikacjach JSF pojawiaja sie duze problem z wydajnoscia (zajetosc pamieci glownie) ,zwykle fallback to przepisywanie niektorych stron na JavaScript i Rest. A mieszanie JSF z JS to juz pelnia katastrofy.
Lepiej sobie oszczedzic.

Poniewaz, JavaScript jest oczywiscie tragiczny - to zdecydowanie Typescript.
Chociaz TS tez idealny nie jest to jeszcze sa dwa rozwiazania:

  1. https://www.scala-js.org/ - super jestem bardzo zadowolony, ale trzeba byc scalowcem
  2. http://www.jsweet.org/ - ciekawostka - java to JS transpiler. Moim zdaniem dla zatwardzialych javowcow - warto sprobowac. (Chociaz nic nie moge powiedziec o jakosci tego projektu - hello world dziala).

jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
M9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
0

Rekomenduje PrimeFaces do nowych projektów, gdzie skalowalność aplikacji nie ma krytycznego znaczenia, ViewScoped to jest jednak stanowe podejście do wytwarzania aplikacji, które ma pewne zalety (i wiele wad też).

@ViewScoped nie jest trudne, wystarczy wiedzieć, że:

  • to wycinek SessionScoped
  • na jedną kartę przeglądarki przepada 1 ViewScoped
  • stan pomiędzy kartami przeglądarek dla tego samego widoku nie jest współdzielony
  • jak robimy redirect stan @ViewScoped umiera (również za pomoca nawigacji JSF), przy page forward nie

Po pół roku pisania w PrimeFaces można ekstremalnie szybko pisać przyzwoite aplikacje.

Mam zamiar nauczyć się Angular 2 + BootStrap i zobaczyć różnicę, wypróbuje też pewnie PrimeNG.

@karolinaa:

  • czy projekt, który rekomendujesz wykorzystuje jednocześnie CDI i Springa?
  • czy nie lepiej użyć po prostu serwera aplikacyjnego, co takiego daje tutaj Spring Boot (z tego co widzę integracja ze Spring Security to może być fajna wartość dodana)?
  • mam wątpliwość, czy to będzie działać w pełni jeśli chodzi o CDI, ale chętnie przejrzę: w szczególności ciekawi mnie czy obsługiwane są nowości dodane w JSF 2.2 (np. CDI) @FlowScoped

Testowałem konfigurację Spring Boot + JSF z JSF Managed Beans ViewScoped przeportowanym jako springowy custom scope i działa, ale trzeba mieć co najmniej Tomcat 8 dla JSF 2.2+. Chyba wolę wziąć serwer aplikacyjny bo jest prościej (może WildFly Swarm?). Serwer aplikacyjny wydaje mi się bezpieczniejszym rozwiązaniem, bo jest mniejsze prawdopodobieństwo leaka.

PrimeFaces się bardzo fajnie rozwija np. w 6.0 dodali siatkę w stylu bootstrapa. Poza tym to sensowna ścieżka migracji dla legacy aplikacji pisanych od wielu lat np. w IceFaces (mam na głowie system w IceFaces 3.3 kompatybilne z 1.8 portowane jeszcze kiedyś na JSF 2.2 w ramach życia legacy projektu).

edytowany 4x, ostatnio: margor90
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1

Co do uzytecznosci roznych frameworkow GUI itp polecam tzw. kryterium Ponga.
W roku 1975 na Atari (8bit) zaimplementowano gre Pong: https://en.wikipedia.org/wiki/Pong

I teraz pytanie czy w twoim framework UI dasz rade to zrobic? - czy cos Ci ten framework pomoze?
Bo jesli nie - to ten framework nie jest gotowy nawet na rok 1975,
a co dopiero na 2016.

Btw. siedze w plikacjach biznesowych, jest rok 2016 i klientom nie wystarcza juz statyczne GUI
z prostym bijacym po oczach CRUDEm.


jeden i pół terabajta powinno wystarczyć każdemu
M9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
0

Jeśli chce się robić skomplikowane frontendy i dać pełną swobodę frontend deweloperowi JSF nie jest najlepszym rozwiązaniem: nie zastanawiałbym się długo tylko wystawił REST API. Jeśli aplikacja wymaga ostrego hakowania styli to PrimeFaces nie jest rozwiązaniem.

Co do ponga, na pewno nie byłoby problemów: jest HTML 5 Canvas, jest jQuery, nic więcej nie potrzeba (wszystko w standardzie PF).

Jeśli rozważa się użycie full stack developerów, czyli ludzie mają pisać i Java i GUI to w przypadku aplikacji wewnętrznych PF to IMO opcja warta rozważenia, może być szybciej niż wystawiać API restowe, jeśli piszemy aplikacje z dużą liczbą tabelek. Wszystko zależy od wymagań. Do systemu finansowo-księgowego PF jest spoko.

edytowany 2x, ostatnio: margor90
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Byłem dzisiaj na małym workshopie na temat technologii web w moim departamencie, podyskutować w czym różne projekty są klepane i jakie są plusy/minusy i generalnie konkluzja była taka że generalnie u nas na topie jest Spring (+Boot), Angular (1.5/2), TypeScript, NodeJS ;)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

@Shalom jeszcze niedawno mówiłeś, że SPA to shit jak trzeba zaprogramować, więcej niż 5 przycisków na krzyż z skomplikowaną logiką na formatce XD :P

Dobra w takim razie zmieniam target i zacznę się uczyć Angulara. Tylko, że tam wszystko jest tak nakućkane, szybko się zmienia i wgle że głowa boli.
jakieś webpacki, jakieś dziwne rzeczy. trudne to wszystko w porównaniu z zwykłymi primefacesami.
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.26b3owhbp

zresztą jestem zdania, że przeciętnemu java developerowi znacznie łatwiej i szybciej ogarnąć
JSFy aniżeli TP, Angular'a i ten cały modern HTML5 obecny current frontend

margor90 napisał(a):

Rekomenduje PrimeFaces do nowych projektów, gdzie skalowalność aplikacji nie ma krytycznego znaczenia

przecież można postawić kilkanaście instacji, przed nimi nginxa a na tomcacie współdzielenie sesji. co tu się nie skaluje o.0 ? ;)

jarekr000000 napisał(a):

JSF generalnie nie byl zaprojektowany do robienia Single Page Applications, a nawet Ajax - i to niestety widac. (See wszystkie fazy .... renderowania strony (WTF - jak to sie ma do roku 2016?)).

no taa, ale też się da niby SPA robić:
pacz: http://showcase.bootsfaces.net/layout/navigationAndAJAX.jsf;jsessionid=Ljfre_URHO3V2tMHJa6g_vPU5p9bCfZJtR5rTk29.wildfly01

tylko najlepiej używać apache myfaces http://stackoverflow.com/a/7113961


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
edytowany 3x, ostatnio: karolinaa
Zobacz pozostałe 5 komentarzy
jarekr000000
@Shalom - a co ma piernik do wiatraka (SPA i HTTP2)? Btw. SPA jest tylko tak długo nieprzyjemne jak robisz to w kiepskich technologiach (JSF, GWT itp.). Normalne SPA to własnie prosta,czysta architektura z jasnym podziałem odpowiedzialności, łatwym testowaniem, skalowalnością.
Shalom
@jarekr000000 SPA w wielu miejscach służy do zmniejszenia latency i loadu a http2 także próbuje te parametry zmniejszyć ;) Zresztą jak sobie ludzie chcą robić SPA to niech robią, przynajmniej XSS na stronie SPA jest wygodniejszy w exploitacji bo nie trzeba sie spieszyć. No i jakieś DNS rebindingi nagle stają się trywialnie proste i możemy sobie omijać SOP, podczas gdy wcześniej było prawie niemożliwe że user będzie siedział na jednej stronie wystarczająco długo :D
KA
@Shalom nie hackuj ludzi
jarekr000000
@Shalom - jesli chodzi o reflected XSS - to do klasyczne aplikacje pisane w Javie były wręcz tego pełne (no bo przecież nic złego się nie dzieje :-) ). Jesli chodzi o bezpieczeństwo to jednak SPA z jakimiś dobrymi bibliotekami (powiedzmy Angular) jest dużo łatwiejsze od wypluwanej z JSP , czy JSF html stronki z domowej roboty wstawkami w JQuery...
Shalom
@karolinaa nie wygłupiaj się, co ja bym zrobił bez codziennego oglądania cię z laptopowej kamerki jak akurat odkleisz taśme bo z kimś skypujesz? :P
datdata
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 7 lat
  • Postów:957
0

Ja się totalnie wymiksowałem z weba i frontu, ktoś orientuje się jaki jest status Polymera?


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.
KA
no dobra ja też najchętniej bym sie wymiksowała - ale co jak zamarzy Ci się stworzyć drugiego facebooka albo portal z kotami? przez konsolę i curla to nie podbije świata!
M9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
0

przecież można postawić kilkanaście instacji, przed nimi nginxa a na tomcacie współdzielenie sesji. co tu się nie skaluje o.0 ? ;)

Jak coś nie ma stanu, to może być obsłużone przez dowolnego klienta. Wywołanie stanowe (sesyjne) nie będzie się skalowało, bo jest zależne od konkretnej sesji klienta (niezależnie od liczby węzłów). Oczywiście są work-a-roundy np. Hazelcast (klastrowanie sesji), ale nie wnikałem jak to działa wewnętrznie pewnie jakaś replikacja.

edytowany 3x, ostatnio: margor90
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
0
karolinaa napisał(a):

@
zresztą jestem zdania, że przeciętnemu java developerowi znacznie łatwiej i szybciej ogarnąć
JSFy aniżeli TP, Angular'a i ten cały modern HTML5 obecny current frontend

Ja sie z tym nie zgadzam - widzialem praktycznie tylko porazki. Glownie na wspomnianym nie zrozumieniu cyklu zycia beanow i faz renderowania JSF.
Latwiej mi sie bylo (rok 2012 ) wyniesc z JSF i nauczyc calego HTML5 , JS, CSS od nowa niz ciagle poprawiac wpierniczane na potege SessionScopy :-).

Nie mowiac o wygladzie aplikacji. Primefaces wyglada dobrze tylko do czasu jak klient nie zapragnie dostosowac kolorow do swojego jedynie slusznego Korpostylu :-)


jeden i pół terabajta powinno wystarczyć każdemu
szarotka
style primefaces można nadpisać (w sensie w css domyślne nazwy klas komponentów primefaces), nie mówię, że to trywialne, dużo roboty, ale robiłam kiedyś i wyszła zajebista skórka, że byś nie poznał że to primefaces.
KA
@jarekr000000 to dziwne. standardową sytuacją z jaką się spotykam to , że większość osób nie zna dokładnie faz renderowania i cyklu życia beanów (sama też nie znam), ale trzymają się szablonu i podstawowych zasad, używają ViewScope i po prostu klepią formatki bez większej wiedzy i to po prostu działa.
szarotka
Nie no standardowo ludziki używają @SessionScope, w apkach, które mają powrót do poprzedniej strony z zapamiętanym stanem sprzed
M9
jak ma pamiętać przez całą sesję to można sessionscoped, flash scope wystarcza do przekazywania danych między widokami
M9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
0

Strona zrobiona w PrimeFaces:
http://www.tipi.camp

jarekr000000
Ładne! Mało wlasnego sktryptu. (Naprawdę w PrimeFaces? bo po co komentarze w kodzie HTML).
0

Ja to najbardziej nie lubię jak ktoś robi single-page-application z multi-page-application, czyli takie wciskanie SPA na siłę tam gdzie aplikacja w gruncie rzeczy jest wielo-stronowa

SP
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:127
0
margor90 napisał(a):

Strona zrobiona w PrimeFaces:
http://www.tipi.camp

Ta może nie Primefaces ale JSF:
http://www.gameduell.com

Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
3

JSyF i PrimitiveFaces należało by już dawno wypalić do gołej ziemi, zasypać metrową warstwą soli i całość zatopić w odpadach z produkcji plutonu.

  1. Cykle życia beanów są pomyślane o webie z roku 1995. Ładujemy całą stronę i z całą stroną pracujemy.
  2. Tragiczna wręcz integracja z rozwiązaniami dynamicznymi (np. wykresami live, streamingiem danych, websocketami). Zazwyczaj kończy się pisaniem kontrolki, która pod spodem uderza do jakiegoś restowego API ma w rejestrze DUPIX cały syf głównej aplikacji.
  3. Zapomnijmy o SPA w kontekście JSF/PF... chyba że czujemy potrzebę pisania w HTMLu 3.2 i nadużywania iFrame/Frame.
  4. Pamięciożerność i co za tym idzie skalowalność. Niestety rozwiązania w rodzaju klaster tomcatów ze współdzieloną sesją nie jest fajnym rozwiązaniem w roku 2016.
  5. Mieszanie front i backendu. Generalnie lubię rozwiązania typu Vaadin, gdzie piszę w Javie, a wyświetla się w HTMLu, ale to jest dobre jedynie w przypadku gdy brakuje nam frontendowców/grafików/webowców by aplikacja wyglądała do ludzi. Jednak to jak powinno być renderowane i magia biznesowa powinny być oddzielone na poziomie technologii i gadać ze sobą po protokołach w rodzaju HTTP czy protobuf. JSF miesza rzeczy backendowe z frontendowymi. Nawet jak uda się to jakoś odseparować, to w większym zespole znajdzie się jakiś nowy, który tego nie ogarnie albo zajdzie zmiana, która nam zaorze separację (bo coś tam).

Co osobiście?

  1. Vaadin jak robimy SPA i nie znamy się na JS i HTML+CSS na tyle by wyprodukować coś funkcjonalnego i ładnego zarazem.
  2. REST framework w rodzaju SpringBoot+REST, Spray.io, Wasabi, Akka HTTP i przód zrobiony w Angularze/Emberze/NodeJS+Jade(albo Mustache albo czymś w ten deseń). Mamy wtedy możliwość fizycznej separacji backendu i artystów.

Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
KA
szkoda tylko, że do Vaadina nie ma nawet stylu boostrapowego ;)
KA
jak można nie znać się na HTML / CSS
Koziołek
@karolinaa, rozróżnijmy znać się, a robić rzeczy hm... ładne. Patrz mój blogasek, tylko nie bełtnij z okazji jego wyglądu.
KA
akurat twój blog jest mega czytelny i przejrzysty. kolory też okey. właśnie tak powinien wyglądać internet - prosto i przejrzyście. jak na chanach, ja 4programmers. a nie jakieś wodotryski i flash anime XD
0

Nie mam osobistego doświadczenia z JSP, ale koledzy "dinozaury" mówią, żeby uciekać od tego jak najdalej.

Lectre
Mają rację ;]
0
Zimny Terrorysta napisał(a):

Nie mam osobistego doświadczenia z JSP, ale koledzy "dinozaury" mówią, żeby uciekać od tego jak najdalej.

jeszcze zatęsknią

IE
InterruptedException
To ja pisałem. Co Ty. Vertx + JS na froncie i jechane.
M9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
0
Koziołek napisał(a):
  1. Tragiczna wręcz integracja z rozwiązaniami dynamicznymi (np. wykresami live, streamingiem danych, websocketami). Zazwyczaj kończy się pisaniem kontrolki, która pod spodem uderza do jakiegoś restowego API ma w rejestrze DUPIX cały syf głównej aplikacji.

JSF 2.3 ma zawierać bardzo prostą integrację z WebSocketami. Uderzenie do REST api, którego nie używa się tak często to zwykłe jQuery AJAX w standardzie PrimeFaces.

Koziołek napisał(a):
  1. Zapomnijmy o SPA w kontekście JSF/PF... chyba że czujemy potrzebę pisania w HTMLu 3.2 i nadużywania iFrame/Frame.

Bez przesady, można używać elganckiej HTML 5 friendly markup. Nie lubię SPA w JSF i nie używam są do tego lepsze technologie. Po prostu słabo się pisze. Co innego aplikacje, gdzie używa się redirect: przynajmniej wiadomo kiedy @ViewScoped kończy życie.

Koziołek napisał(a):
  1. Pamięciożerność i co za tym idzie skalowalność. Niestety rozwiązania w rodzaju klaster tomcatów ze współdzieloną sesją nie jest fajnym rozwiązaniem w roku 2016.

Zgoda, ale Vaadin ma dokładnie ten sam problem tylko na większą skalę: PrimeFaces ostro używa client-side (jQuery). Już wolę pisać desktop niż Vaadin (i konsumować REST) lub użyć jakiegoś Angulara 2 (NativeScript?).

edytowany 3x, ostatnio: margor90
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
0

@margor90, ja nie mówię, że Vaadin jest wspaniały i jedyny słuszny. On jest OK, jak nie masz frontendowców pod ręką. Rzecz w tym, że na chwilę obecną JSF jest bardzo ograniczoną technologią jeżeli chcemy pisać aplikacje z interfejsem webowym. Co innego portaloza, ale to już zupełnie inna bajka.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
Shalom
A Vaadin nie umarł czasem razem z trendem GWT/GXT i Wicketa? Wydawało mi się że już od dawna jest passe.
Koziołek
@Shalom, no nie do końca, bo wypuścili wersję 7, która jest używalna i całkiem sprawnie im to idzie.
jarekr000000
Vaadin znalazł sobie ciekawą niszę - w sumie najłatwiejszy sposób migrowania starych aplikacji JavaSwing na Webowe (jeśli ktoś z jakichś dziwnych powodów potrzebuje migrować).
Koziołek
Powodów jest kilka, ale chyba najważniejszym jest duża podatność Javy na ataki, a komputery klienckie znacznie trudniej zabezpieczyć niż serwer.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)