ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 22
Abonament PDF

Dezvoltare rapidă de aplicații web cu Oracle APEX

George Bara
Co-fondator
@ZA Cloud



PROGRAMARE

Ați dorit vreodată să dezvoltați o aplicație web foarte rapid, fără să fiți nevoiți să învățați un nou limbaj de programare? V-ați întrebat de ce este încă dificil să creați pagini web cu formulare și rapoarte și de ce fiecare tool de Rapid Application Development devine "rapid" doar după ce investiţi câteva luni pentru a-l învăţa?

Aflați că există un produs trecut cu vederea numit Oracle Application Express (APEX) care ar putea să fie răspunsul pentru dezvoltatorii "one-off" de aplicaţii web, cei de baze de date, dar şi programatorii experimentaţi. Folosind un mediu de dezvoltare declarativ, puteţi construi aplicaţii web profesioniste cu o abordare click-and-click. Surpriza vine din faptul că acest tool este dezvoltat de Oracle, o corporaţie renumită pentru produsele sale scumpe şi exclusiviste. APEX este un tool gratis (dar nu open source) care s-a născut dintr-un proiect intern al Oracle menit să facă facă mai uşoară viaţa programatorilor şi administratorilor de baze de date.

Experienţa mea cu APEX a început în anul 2009, pe când lucram ca Oracle database developer la o companie specializată în asigurări de viaţă. Principalul task era integrarea mai multor sisteme software, atât interne cât şi folosite de clienţi. Partea bună era că toate componentele software foloseau Oracle ca baze de date; partea proastă era că nu aveam la dispoziţie suficient timp şi resurse umane pentru a dezvolta interfeţele între sisteme în Java, .NET, PHP sau alt limbaj de programare sau framework. Managerul de dezvoltare avea puţină experienţă la început cu APEX, însă avea mare încredere în capacităţile acestui tool. Aşa a început o experienţă intensivă cu APEX 3.2 pe durata a trei ani, într-un moment când documentaţia era puţină, iar experţii în domeniu şi entuziaştii APEX puteau fi număraţi pe degete. Rezultatul a fost o experienţă de software development unică, multă documentaţie scrisă, guide-uri şi whitepapers create pe parcurs precum şi o carte publicată în 2013 cu titlul "Oracle APEX Reporting Tips & Tricks" (disponibilă pe Amayon, iBookStore şi Barnes and Noble).

Oracle Application Express, cunoscut ca APEX, este tool de Rapid Application Development (RAD) care a atins un nivel de maturitate o dată cu lansarea versiuniii 4.0 în iunie 2010. APEX combină ciclurile de dezvoltare rapidă pentru aplicaţii web, în jurul unei baze de date Oracle, cu o comunitate de programatori specializaţi în creştere şi evanghelişti dedicaţi care promovează această tehnologie. Tehnica de programare este foarte declarativă şi se desfăşoară într-un mediu web-based, investind un efort de codare minim.

APEX foloseşte un concept unic care poate fi considerat opusul trendurilor actuale din dezvoltare aplicaţiilor web. În timp ce acum majoritatea aplicaţiilor web ar trebui să fie cuplate cât mai "loose" de bazele de date din backend, cu o emfază pe interacţiunea client-side, APEX are o abordare radicală, în care totul este stocat în bazele de date, de la datele până la meta-datele folosite pentru generarea paginilor web. Un web server al RDBMS-ului Oracle este folosit pentru a genera pagini HTML direct din baza de date, unde atât datele folosite de aplicaţie cât şi meta-datele care descriu paginile aplicaţiilor. Cu toate că APEX este un produs gratis, acesta funcţionează doar cu bazele de date Oracle, marea parte a procesărilor de backend, dar şi frontend fiind realizate de procedurile stocate.

O aplicaţie web Oracle APEX este dezvoltată folosindu-se SQL şi PL-SQL, cu toate că marea parte a efortului de codare poate fi realizat într-un mod declarativ, folosind interfaţa de dezvoltate din web browser. APEX este un tool database-centric, adică necesită şi rulează doar cu o bază de date Oracle. Istoria APEX începe în anul 2004, pe când era doar un tool intern al Oracle numit HTML DB. În 2006 a fost redenumit în Oracle Application Express (versiunea 2.1). În acest moment versiunea stabilă este 4.2.4 şi deja este lansată şi versiunea early adopter 5.0 (https://apexea.oracle.com/i/index.html).

Pentru a utiliza APEX în cadrul unei instanţe a unei baze de date Oracle, chiar şi cu varianta free de baze de date Oracle XE, nu este nevoie de licensing adiţional, pentru că numărul de developeri, aplicaţii şi end-users nu este restricţionat. Suportă toate versiunile de baze de date Oracle începând cu 10gR2 şi poate fi folosit şi cu setup-uri Exadata, ORA şi RAC. În mod implicit, Oracle APEX este distribuit cu toate ediţiile bazelor de date Oracle.

Din punct de vedere arhitectural, APEX foloseşte o arhitectură simplă de tip 2-tier. Paginile web sunt generate dinamic folosindu-se metadata stocată în baza de date şi nu se generează cod compilabil sub forma unor fişiere. De fapt, APEX rulează o dată cu baza de date. APEX foloseşte un principiu de multitenant hosting, organizând paginile web în aplicaţii şi workspace-uri, care pot folosi la rândul lor baze de date distincte sau shared.

Cu toate că marea partea a codului din spate este scris în PLSQL, pentru a începe să lucrezi cu APEX nu ai nevoie de cunoştinţe avansate de programare, cu excepţia unor elemente de HTML. Fiind un tool web-based, procesul de development consistă dintr-o serie de pagini şi obiecte predefinite, de la formulare şi rapoarte până la grafice. Toate paginile şi componentele sunt stocate în obiecte din baza de date Oracle, de obicei tabele şi view-uri, aşa că este pus la dispoziţie şi un tool de management a schemei bazei de date. Crearea de tabele, views şi proceduri stocate se poate face direct în APEX, aşa încât întregul proces de dezvoltare se face în acelaşi environment, cel de dezvoltare web-based.

APEX se poate accesa prin intermediul unui URL într-un browser web, fie că folosiţi o instanţă instalată local, o instanţă de private cloud (SaaS) sau serviciul Oracle Database Cloud Service, produsul cloud al Oracle care foloseşte APEX pentru dezvoltare de aplicaţii web (http://cloud.oracle.com).

Cu toate acestea, Oracle APEX nu este un tool care este potrivit oricărui proiect. Cazurile tipice unde APEX poate fi folosit sunt cele de aplicaţii data-driven (aplic aţii de productivitate la nivel de department sau aplicaţii ad-hoc), reporting online bazat de query-uri SQL, transformarea spreadsheet-urilor Excel sau de alt tip în aplicaţii web sau pentru centralizarea acesului la date (unde APEX se poate fi folosit ca un central point of access pentru scheme multiple într-una sau mai multe baze de date Oracle).

Principalele componente ale mediului de dezvoltare APEX sunt:

Application Builder, unde sunt construite paginile şi aplicaţiile web în mod declarativ prin folosirea unor wizzards. Fiecare aplicaţie este compusă din una sau mai multe pagini, fiecare pagină este împărţită în regiuni. Fiecare regiune a unei pagini poate să conţină test, cod PLSQL, rapoarte, grafice, hărţi, calendare, formulare sau rezultate aduse prin intermediul unor servicii web. De asemenea sunt disponibile obiecte care sunt specifice nu doar paginilor, ci intregii aplicații, cum ar fi application items, processes, computations, scheme de autentificare și autorizare sau obiecte de navigare ca tabs, lists sau breadcrumbs.

SQL Workshop, un tool care permite managementul obiectelor din baza de date Oracle. Query-uri SQL ad-hoc, wizards pentru crearea de tabele, view-uri, proceduri stocate şi alte obiecte de baze de date pot fi utilizate de developer pentru a face management-ul schemei Oracle din acest tool browser- based.

Team Development, o unealtă de team management pentru development pentru urmărirea feature-urilor, bugs şi milestones. Acest tool este legat direct de paginile APEX.

Administration, pentru administrarea contului, a workspace-urilor şi a dashbord-urilor.

Ca majoritate uneltelor RAD, Oracle APEX facilitează dezvoltarea de aplicaţii într-un mod declarativ, folosind item-uri de pagini web deja existente cum ar fi: rapoarte, formulare, grafice, calendare, template-uri de UI, navigaţie, validări, procese de pagină şi aplicaţie, servicii web, servicii de e-mail şi localizare (traducere), autentificare, autorizare, logging şi monitorizare.

Pentru mai multe detalii legate de dezvoltare aplicaţiilor APEX, puteţi achiziţiona cartea "Oracle APEX Reporting Tips&Tricks": http://www.apexninjas.com/blog/2013/06/oracle-apex-reporting-tips-tricks-out-now/

De asemenea, puteţi încerca o aplicaţie simplă de blogging dezvoltată integral în APEX aici: http://apex.oracle.com/pls/apex/f?p=20559:101:

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects