info  fabercon.fi | 0400 533 978 tai 044 204 2029

Category: Blogikirjoitukset

JavaFX:n soveltuvuus MVVM-arkkitehtuuriin

JavaFX MVVM-arkkitehtuurissamme on syytä korostaa serveripään tilattomuutta sekä tukeutumista Java EE:n standardi- ja ”best practise” -ratkaisuihin. Tilattomuus takaa siedon hyvin korkealle kuormitukselle. Nykyisin HTML5-sovellukset ovat TSA-arkkitehtuurin mukaisia. Niissä tukena ovat Javascript-kirjastot, jotka vähentävät sovelluskoodia clientilla. Kattavimpia valmiita alustoja ratkaisuille ovat Oracle JET ja Angular 1 tai 2. Yhteyttä clientin ja

Lue lisää

Desktop-sovelluksen hybridi arkkitehtuuri

Tietokantakeskeiset desktop-sovellukset (kuvassa ”Traditional desktop-app”) on perinteisesti tehty siten, että client-koneella oleva sovellus kutsuu tietokantapalvelimella olevaa sovelluksen tietokantaa. Tällaista sovellusta on raskasta päivittää, asennus on tehtävä kaikille client-koneille. Mikäli sovelluksesta halutaan tehdä web-versio, on lähes koko sovellus kirjoitettava uudelleen. Toisaalta desktop-sovellus on helpompi toteuttaa kuin vastaava websovellus, jos sovelluksessa on

Lue lisää

JavaFX ja MVVM-arkkitehtuuri

Aloitamme Faberconilla uuden blogisarjan, jossa käsitellään MVVM-mallin käyttämistä JavaFX-sovelluksissa. Tarkoituksena on esitellä yleiskäyttöinen MVVM-arkkitehtuurimalli JavaFX:lle. JavaFX on Javan uusin käyttöliittymätekniikka graafisia desktop-sovelluksia varten. JavaFX on pikkuhiljaa syrjättänyt 1990-luvulta käytössä olleen Swing-tekniikan. JavaFX sovelluksia voidaan tehdä joko XML-käyttöliittyminä tai ohjelmallisesti Swingin tapaan käyttäen JavaFX:n käyttöliittymäkomponentteja. Seppiä kiinnostaa XML-käyttöliittymät, ne edustavat nykysuuntausta

Lue lisää

Javascriptin koodausohjeita

Näitä ohjeita voi käyttää portlettien kanssa tai aivan yhtä hyvin soveltaen kaikkialla muualla, missä Javascriptia käytetään. Javascript on dynaaminen, heikosti tyypitetty skriptikieli, jonka ongelmat ilmenevät käännösvaiheen puuttuessa vasta ajovaiheessa (runtime errors). Heikko tyypitys on yksi syy näihin hankalasti löytyviin virheisiin. Javascriptin muuttujan tyyppi määräytyy sijoitettavan arvon perusteella ja vaihtelee, jos

Lue lisää

Sivusiirtymien toteutus SPA-portletissa

Kuten jQueryn osalta oli laita, niin yksinkertaisin SPA-arkkitehtuurin ratkaisu Angularin kanssakin on kirjoittaa kaikkien vaihtoehtoisten moduleiden määritys sivulle peräkkäin ja hallita sitten Javascript-koodissa, mitä tai mitä osiot haluaa näyttää. Tämä on tehokas ja yksinkertainen keino, eikä mitään Angularin $routea tarvita. Mutta ongelmana on se, että jokainen käyttäjä voi lukea selaimesta

Lue lisää

Angularin käyttö portletin JSP-sivuilla

Angular-frameworkia käytetään portleteissa neljässä yhteydessä: (1) JSP-tiedostoissa (tiedosto vastaa yhtä websivua), jossa se määrittelee Angularin MVC-mallin sidonnan HTML-elementteihin. (2) Javascript-tiedostoissa, joissa Angularin moduleiden ja kontrollereiden määritys on. (3) Bootstrap-toiminto, joka on viimeiseksi ladattavassa Javascript-tiedostossa. (4) Javascript-tiedosto, jossa on toteutettu sivunvaihdot (router). (1) JSP-sivu ja Angular: JSP-sivu ei ole ongelma HTML-tagituksen

Lue lisää

Angularin MVC-mallin arkkitehtuuri portletissa

Angularin käyttö portletissa ei poikkea Angularin käytöstä ”tavallisilla” web-sivuilla. Seppien esittämässä ratkaisussa ei käytetä muita kuin Angularin peruskirjastoa ja Angularin router-kirjastoa. Angular on MVC-framwork-kirjasto, ei komponenttikirjasto. Angular-pohjaisia komponenttikirjastoja on toteutettu useita, mutta tässä esimerkkiportletissa käytimme puhdasta HTML:aa kirjastokomponenttien sijasta. Angular (tai tarkemmin AngularJS) mainitaan usein MVC-arkkitehtuurimallin esimerkkinä. Pikemminkin malli on

Lue lisää

Angular SPA-portlet, avaussivun Javascript

Angular-SPA-portletin avaavan JSP-sivun Javascriptilla on tärkeä rooli, sillä siinä alustetaan globaalit Javascript-muuttujat. Mahdollisimman suuren osan Javascript-koodista pitäisi olla täysin yleiskäyttöistä. Tämä tarkoittaa lyhyitä ns. utility-metodeja, joilla ei ole sivuvaikutuksia. Näitä tiedostoja kannattaa kerätä yrityksessä ikäänkuin koodauksen pääomaksi. Koetellun yleiskäyttöisen koodin suhteellisen osuuden kasvu sovelluksen koodissa nostaa väistämättä sovelluksen laatua. Jo

Lue lisää

SPA-portletin JSP-avaussivun rakenne

Angular-kirjaston mukaanotto portlettiin on vastaava, kuin muillakin Javascript-kirjastoilla. Se määritellään liferay-portlet.xml sivulla. Google suosittelee Angularin käyttöönottoa websivun osoitteesta, esimerkiksi: <header-portlet-javascript>http://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js</header-portlet-javascript> Javascript-kirjastot on yksinkertaisinta ottaa mukaan nimenomaan ”headerissa”, jolloin käytettöalue on koko sivu. Liferay-portlet.xml sivun sisältö on tavanomainen. Ajaxable-tagin arvoksi pitää laittaa true. Sovelluskohtaisia Javascript-tiedostoja kertyy useita JSP-portlettia kohden, koska Javascript-koodi

Lue lisää

SPA-portletin palvelurajapinnat ja data

Liferayn portaaliohjelmiston mukana asennetaan Liferayn tietokanta, jota käytetään portlettien Java-koodissa Liferayn API-rajapinnan kautta. Nämä rajapintakutsut sisältävät jo transaktion hallinnan (begin transaction ja commit/rollback). Mistä portletissa sitten haetaan käyttöliittymässä esitettävää dataa? Tässä on varteenotettava menetelmä, jossa on kaksi datalähdettä: 1. Käytetään Liferayn tietokantaa Liferay APIn kautta, joka on tehty tähän tarkoitukseen.

Lue lisää
Scroll to Top