Ohjelmointi

Java EE ja Flex, osa 1: Pakottava yhdistelmä

Adobe Flexistä on tulossa suosittu valinta yritys Java-sovellusten asiakaspuolen luomiseen. Tässä kahdessa ensimmäisessä artikkelissa Dustin Marx osoittaa, kuinka Flex voi auttaa sinua toimittamaan erittäin vuorovaikutteisia käyttöliittymiä, jotka käyttävät Java EE -sovelluksesi yrityslogiikkaa. Hanki käytännönläheinen yksinkertaisen Flex-asiakkaan parantaminen ja anna sen sitten kommunikoida Java EE -palvelimesi kanssa. Taso: Aloittelija

Flex 3 antaa sinulle toisen vaihtoehdon selainpohjaisten käyttöliittymien rakentamiseen Java EE -sovelluksillesi. Jos et ole vielä havainnut, kuinka helppoa on lisätä rikkaita asiakkaita yritys Java-sovelluksiin Flexin avulla, tämä artikkeli voi toimia lähtökohtana. Opit, mitä etuja Flex tuo pöytään, kuinka luoda sovellusasetteluja Flexin XML-kieliopilla ja kuinka saada Flex-asiakas toimimaan Java EE -sovelluksen kanssa.

Java-kehittäjät ottavat käyttöön Flexin

Tiedämme, että jotkut Java-kehittäjät ovat vastustuskykyisiä Flexille Java EE: n käyttöliittymän teknologiana, mutta on vahva argumentti antaa Flexille mahdollisuus. Kirjoittaja Dustin Marx käsittelee tekijöitä, jotka ajavat Flex-käyttöönottoa Java-yhteisössä tämän käytännön artikkelin sivupalkissa.

Ennen kuin pyydän sinua asentamaan Flexin ja aloittamaan näytesovelluksen kokoamisen, mietitään Flexin käytön etuja asiakaspuolen tekniikkana. Flex tarjoaa erityisiä etuja Java-kehittäjille ja jotkut ovat yleisempiä. Katsomme molempia.

Miksi valita Flex?

Uuden tekniikan käyttöönotto tarkoittaa oppimiskäyrän omaksumista, mikä voi viedä jonkin verran vakuuttavasti. Tässä on joitain yleisiä etuja Flexin käytössä:

  • Voit kirjoittaa Flex-koodin kerran ja suorittaa sen missä tahansa verkkoselaimessa, jolle on olemassa Flash Player -laajennus. Mitään JavaScripti- tai Ajax-sovelluksille tyypillistä selaimen havaitsemiskoodia ei tarvita.
  • Kohdekäyttöaika (Flash Player 9 tai uudempi) on asennettu yli 95 prosenttiin verkkoselaimista maailmanlaajuisesti.
  • Flex perustuu standardeihin. Sen komentokielellä (ActionScript 3.0) on juuret ECMAScriptissä (sama spesifikaatio, jonka JavaScript on toteuttanut), ja sen asettelukieli on erityinen XML-kielioppi nimeltä MXML. Perusperiaatteiden tuntemus voi auttaa sinua oppimaan Flexin suhteellisen helposti.
  • Flexillä on virkistävän yksinkertainen mekanismi yhden sovelluksen ominaisuuden sitomiseksi Flex-sovelluksessa toisen objektin omaisuuteen Flexissä. Tätä riippuvuutta aiheuttavaa ominaisuutta kutsutaan yleisesti nimellä omaisuutta sitova. (JSR 295: Beans Binding on tarkoitus lisätä tämä ominaisuus Java-kieleen, mutta se ei sisälly Java SE 7: een.)
  • Voit liittää Flex-pohjaisen käyttöliittymän mihin tahansa back-end-tekniikkaan käyttämällä tekniikoita, jotka edistävät löysää kytkentää. Flex tarjoaa sisäänrakennetun tuen kommunikointiin taustapohjien kanssa sekä perinteisten HTTP- että SOAP-pohjaisten verkkopalvelujen kautta.
  • Flex tarjoaa laajan joukon komponentteja, Flash-tehosteita (mukaan lukien animaatio, video ja ääni) ja helppokäyttötoiminnot, joiden avulla on helppo lisätä rikkautta ja erittäin sujuvia kokemuksia verkkosovellukseen.

Flex Java-kehittäjille

Yleiset edut saattavat riittää houkuttelemaan sinut Flexiin, mutta on muitakin, jotka on suunnattu enimmäkseen tai kokonaan Java-kehittäjille.

Yksi tällainen etu on Java- ja ActionScript 3.0: n silmiinpistävä samankaltaisuus kieliominaisuuksissa, käsitteissä ja syntaksissa. Kielet käyttävät samankaltaisia ​​ehdollisia lauseita, silmukan syntaksia ja jopa koodauskäytäntöjä. (On kiistatonta, että ActionScript on enemmän kuin Java kuin JavaFX-komentosarja.) Flexin Javadoc-tyyppinen ASDoc-dokumentaation luontityökalu käyttää samaa kommenttisyntaksia, jota käytät Java-ohjelmassa dokumentaation luomiseen. ActionScriptin pakkausrakenne liittyy hakemistorakenteeseen samalla tavalla kuin Java lähestyy paketteja ja hakemistoja.

ActionScript 3 tarjoaa myös luokkaperusteisia olioihin liittyviä ominaisuuksia (kuten luokat Java-merkityksessä, perintö ja käyttöliittymät) ja staattisen kirjoittamisen. Nämä lisäykset siihen, mihin useimmat meistä ovat tottuneet JavaScriptissä, helpottavat ActionScriptin oppimista ja käyttöä. (ActionScript tarjoaa edelleen dynaamisen kirjoitus- ja prototyyppipohjaisen perinnän tilanteisiin, joissa haluat tai tarvitset perinteisen JavaScriptin ominaisuuksia.)

Flexin kyky kommunikoida Java EE -käyttöjärjestelmän kanssa HTTP- tai SOAP-pohjaisten verkkopalvelujen avulla on erittäin hyödyllinen, mutta et ole rajoittunut näihin viestintätapoihin. Blaze DS - Adoben erillinen avoimen lähdekoodin tuote - antaa sinulle entistä suuremman joustavuuden kommunikoida Flex-käyttöliittymän ja Java EE -taustan välillä. BlazeDS antaa sinun käyttää JMS: ää kommunikointiin ja antaa sinun käyttää objektien etäohjausta Java: n kanssa. BlazeDS lisää myös mahdollisia suorituskykyetuja, koska se käyttää binaarista AMF3-muotoa nopeampaan viestintään kuin normaalisti XML: n kanssa.

Kolmannen osapuolen avoimen lähdekoodin tuote nimeltä GraniteDS tarjoaa vielä enemmän vaihtoehtoja Flex-pohjaisen käyttöliittymän käyttämiseen Java EE -sovelluksessa. GraniteDS tarjoaa tukea AMF3-binaarimuodolle ja myös joitain ominaisuuksia, joita ei ole saatavana BlazeDS: n kanssa. Esimerkiksi GraniteDS tarjoaa työkaluja ja palvelukehyksiä Flexin integroimiseksi helpommin EJB 3: n, Spring Frameworkin, Guicen tai Seamin pohjaan.

Keskustellessani Flexistä tähän mennessä olen toistuvasti käyttänyt sanoja yksinkertainen ja helppo. Mutta älä ota vain sanaani siihen. Paras tapa ymmärtää, kuinka yksinkertaiset ja helpot Flex-perusteet ovat, on kokeilla niitä itse. Seuraavissa osissa otat käyttöön esimerkkisovelluksen, muokkaat sitä lisäämällä ominaisuuksia ja vähentämällä kattilakoodia, ja luo sitten yhteys uuden, Flex-pohjaisen asiakkaasi ja Java-palvelinsovelluksen välille.

Flexin hankkiminen ja asentaminen

Tämän artikkelin esimerkeissä käytetään Flex 3.2 SDK: ta. Jos haluat rakentaa ja suorittaa esimerkkejä, lataa Flex SDK (mukaan lukien komentorivin kääntäjä ja virheenkorjaus). Yksi ZIP-tiedosto sisältää Flex SDK: n useille alustoille.

Pura tiedosto selvään paikkaan, kuten C: \ flex_sdk_3_2. Lisää mukavuuden lisäämiseksi Flex SDK: n sijainti bin hakemistoon polussa, jotta komentorivityökalut voidaan ajaa mistä tahansa hakemistosta. Haluan luoda FLEX_HOME ympäristömuuttuja, joka osoittaa Flex SDK: n sijaintiin ja lisää sitten $ FLEX_HOME / bin tai % FLEX_HOME% \ bin että PATH. Voit tarkistaa Flexin asennuksen suorittamalla komennon mxmlc -versio, kuten kuvassa 1 on esitetty.

Vaikka esimerkkien luominen ja suorittaminen ei ole pakollista, saatat olla kiinnostunut lataamaan FlexBuilder 3: n, joka on saatavilla ilmaiseksi kokeilujakson ajan. FlexBuilder antaa sinun käyttää mitä tahansa tekstieditoria (kuten JEdit tai VIM) tai Java IDE: tä (kuten NetBeans tai Eclipse) MXML- ja ActionScript-tiedostojen kirjoittamiseen ja ylläpitoon. Aptana Studio ja Spket IDE sisältävät erityisen tuen Flex-tiedostojen muokkaamiseen.

MXML: Joustava asettelu XML: llä

Flex käyttää MXML: ää määritettäessä Flex-sovelluksen asettelua. Joustavien asettelutiedostojen nimet on tyypillisesti a .mxml laajennus. MXML-koodin on oltava hyvin muotoiltu XML, ja siinä on käytettävä XML-nimitiloja. Listing 1: n esimerkki osoittaa yksinkertaisen mutta täysin toimivan, täysin MXML: llä kirjoitetun Flex-sovelluksen, joka näyttää luettelon valituista JavaWorld-artikkeleista.

Luettelo 1. Staattinen MXML-esimerkki

Koska tämä esimerkki on staattinen, se ei osoita monia Flexin ja Flashin etuja. Se toimii kuitenkin hyvänä johdantona MXML: ään.

Kaikki luettelon 1 koodi on hyvin muotoiltu XML. Suurin osa luettelon 1 XML-riveistä liittyy samoihin koodiriveihin (toistuva Ruudukko elementit sisäkkäin Ruudukko ja Tarra elementit). Niitä käytetään määrittämään staattinen näyttöruudukko Ruudukko komponentti ja sen Ruudukko ja Ruudukko alielementit. Käyttö , ja järjestää ja esitä tietoja samalla tavalla kuin HTML-taulukkoelementit

, ja , vastaavasti, käytetään usein.

Tämä ensimmäinen MXML-esimerkki osoittaa myös juuritunniste, jota käytetään kaikissa MXML-sovelluksissa. Tämä tunniste sisältää nimenomaisen leveyden ja korkeuden Flex-sovellukselle. mx etuliite liittyy Flex XML -nimitilaan osana tätä juurielementtiä.

Käytät Flex-komentorivin kääntäjää, mxmlc, koota tämän artikkelin esimerkkejä. Flex-oletusarvot (määritelty flex-config.xml tiedosto) ovat riittäviä esimerkkien tarpeisiin, joten kokoaminen tapahtuu mxmlc helppo. Oletetaan, että ensimmäinen MXML-luettelo tallennetaan tiedostoon nimeltä Esimerkki1.mxml, käännät sen tällä komennolla:

mxmlc Esimerkki1.mxml

Oletusasetusten mukaisesti tämä MXML-tiedosto kootaan SWF-tiedostoksi, nimeltään Esimerkki1.swf, joka sijoitetaan samaan hakemistoon kuin MXML-tiedosto, josta se luotiin. Voit suorittaa SWF-tiedoston avaamalla sen verkkoselaimessa tai kirjoittamalla koko tiedostonimen komentoriville. Renderöity SWF-tiedosto näyttää kuvalta 2.