260 likes | 425 Views
Rosu. demo arhitectura client server TODO’s invataminte discutii. demo(n). pagina nu se reincarca UI- ul e fluent , dinamic si redimensionabil demo login locatii & panoul de navigare. demo student. contracte sistemul de notificare neintrusiv navigare bazata pe orar.
E N D
Rosu • demo • arhitectura • client • server • TODO’s • invataminte • discutii
demo(n) • pagina nu se reincarca • UI-ul e fluent , dinamicsiredimensionabil • demo login • locatii & panoul de navigare
demo student • contracte • sistemul de notificareneintrusiv • navigarebazatapeorar
demo prof • navigarebazatapeorar • editareacursului • materiale de curs
arhitectura macro stateful client (UI) stateful client (UI) invoke operations abstract protocol (msg types & operations ajax) implements operations stateless server (validation, persistence)
arhitectura server protocol RPC interface HTTP interface servicii security upload teme contracte materii auth mesaje blogic persistence servlet container hibernate domain HQL MYSQL
arhitectura client subsitem 1 subsistem 2 subsistem 3 RPC service view controlercopil activity (controller) pornestesioprestesubsisteme activity manager (global controller)
structuraunuisubsistem UI widgets RPC
lifecycle client • Apploaderconfigureazainfrastructura de securitate • login • Apploaderconfigureaza o noua App in functie de rolurileuserului • App initializeazaPlaceManagersiActivityManager • App initializeazasistemul de navigaresicel de notificare • App pornesteActivityManager • ActivityManagerpornesteActivitatea care corespundelocatieiactuale • Activitateaporneste : • obtine view-ulcorespunzatorsiservicii remote • inregistreazaevenimente • apeleaza server, ii zice la view sadeseneze • view-ulnotificaactivitatea de interactiuni cu UI-ul • userulnavigheaza la o altalocatie • activitateacurentaesteoprita • ActivityManagerpornesteActivitatea care corespundelocatieiactuale
servicii de infrastructura client infrastructura hinturi reconnect logic activity manager (global controller) security notifications eventbus place manager
client • servicii de infrastructura • APPLoader • APP • top level lifecycle management (aici ii “mainul”)
client.config • clase de configurare • declaraasocieriledintre • URL-urisi Place-uri • Place-urisiActivitati • Place-urisitaburi in Navigare
client.ui & client.widgets • sabloane de UI globaleaplicatiei • stiluri CSS globale • resurse UI globale (poze, etc) • widgeturigenericereutilizabile
client.contract et all • implementeazasubsistemelecorespunzatoare
server.blogic • Depindedoar de server.domain • Incapsuleazareguli business • Opereaza cu domeniulsiilpastreaza consistent conform regulilor de business
server.*serviceImpl • Contineserealizare in DAO a obiectelodedomeniu • Interactiuni simple cu obiecte de domeniu • Logica de comunicare cu clientul
server.security • valideazatokenuri de securitatetrimise de client • filtreazarequesturilesirespingepeceleneautorizate • transformatokenurile in domain.Login
TODO’s • terminat de implementatsubsitemteme • terminat de implementatsubsistem de notare • cautat o modalitate de a refolosimaimult cod in UI • maimultefatete (orar->bd->temasiteme>bd) • migrat la RequestFactory • politica de cache centralizata • sistem de validare • incapsulatmai bine regulide business pe server
invataminte • GWT e java, static types tine codul in ordinesi refactoring e fain • layout panele is o ideebuna • HQL e fain , la felsisession.persist • datastore e foartediferit de sql
invataminte • GWT e dificil • are un API inutil de complicat • abstratiaoferitacurgefoarte tare • tresastiihtml, CSS layout, dom event s, javascript • tresacitestiimplementareadacadai de probleme • nu suntdestulewidgeturi, decitresa le scriitupornind de joos (widget orar) • e enervantca activity framework impune o gramada de bilerplatequasiidentic • Hibernate e complex pestemasura • Dacamaiintroduceamsi Spring cu Quartz sistemuldeveneaimposibil de inteles de un singurom