Kennis maken met Application Express Patrick Sinke, [email protected] Michiel Jonkers, [email protected] 22 november 2007 1 Motto: In het land der blinden… We streven in dit KC naar: Een eerste eenvoudige kennismaking met Application Express (APEX) Voldoende basis voor de APEX/ADF query op 17 december 2007 Een beeld krijgen van welke onderwerpen jullie graag zien in komende APEX KC’s Vanavond dus geen advanced features 2 Agenda Geschiedenis van APEX Architectuur Ontwikkelen met APEX APEX in de praktijk Waar gaat het naar toe? Demonstraties Hoe te beginnen met APEX? Wanneer is APEX een optie? Diner Workshop: Zelf aan de slag met APEX 3 Geschiedenis van APEX • • • • • • • • One popular misconception is that it's a new version of Web DB. Mike Hichwa created Web DB, a successful web front-end for WebDB Oracle, (1999) but the(aldus development of Web DB Géén opvolger van Oracle Wikipedia)!! started to move in a direction that diverged from Mike's 1.5 eerste versie (feb 2004) vision. When tasked with building an internal web calendar, Mike enlisted the help of Joel Kallman and 1.6 (december 2004) "Flows". They co-developed the Web Calendar started and Flows for several years, adding features to Flows as 2.0 (augustusthey 2005) needed them for to develop the calendar. In the days of Flows, there was no front-end for it, so HTML DB earliest Apex (januari 2006) all changes to an application were made in SQL*Plus via 3.0 (februariinserts, 2007) updates and deletes. For a while, Flows and Web DB shared a lot of code, but as the months went on, most of that code was improved or re-written. Sometime 3.1 (beta beschikbaar voor evaluatie sinds gister) around 2002 all Web DB code was removed from Flows. in door; some team waysvan APEX evolution of Web DB, but it OntwikkelingSo, gaat ca is20an developers/PM’s was really a fresh start with new code and no upgrade path. 4 Architectuur Een metadata repository in schema FLOWS_030000(215 tabellen) Een ‘engine’ (200 PL/SQL objecten, 300.000 regels code) Sessiebeheer, authenticatie, autorisatie, genereren van pagina’s en verwerken van pagina’s De PL/SQL engine genereert realtime HTML-pagina’s. Ontwikkelen is het via een web-interface vullen van de repository met metadata Asynchrone sessies, sessiebeheer in de database, iedere page view wordt afgehandeld in een nieuwe database sessie 5 Architectuur Op de client is geen software nodig voor het ontwikkelen en uitvoeren van applicaties. Onderdeel van de Oracle 11g database, te installeren in Oracle databases vanaf versie 9.2.3 In APEX bevinden zich drie hoofdcomponenten: Application Builder – de ontwikkelomgeving om applicaties te ontwikkelen SQL Workshop – de omgeving om je database te ontwikkelen en te verkennen en queries te schrijven. Utilities – onder andere utilities om bestanden en spreadsheets te importeren in de database 6 APEX in Designer/Developer terminologie Designer/Developer Application Express Designer repository APEX repository Design Editor Application Builder Modules Pages Genereren Realtime rendering Triggers Validations en Page processing BI Beans Flash Charts PL/SQL PL/SQL, XML, Javascript en AJAX 7 Verschillen tussen APEX en Designer Designer/Developer Application Express 3-lagen architectuur 2-lagen architectuur Synchrone database verbinding Asynchrone database verbinding Wel pessimistic locking Geen pessimistic locking Client/Server ontwikkelomgeving Web ontwikkelomgeving Rijke User Interface (Java) Beperkte User Interface (HTML) Eenmalig genereren Realtime genereren Upper CASE Tool Prototyping Duur Gratis `Mature` Volop in ontwikkeling 8 Ontwikkelen met APEX Demonstratie van het ontwikkelen van schermen, rapportages en grafieken in APEX Als je begint gebruik dan wizards voor het maken van schermen, rapporten en grafieken: Excel upload wizard Een applicatie op bestaande tabellen bouwen Basisfunctionaliteit aanpassen Grafieken maken 9 APEX in de praktijk Voorbeelden van websites die zijn gebouwd met APEX: http://metalink.oracle.com http://apex.oracle.com • For the Week ending 11/18/2007: 1,647,648 total page views for the week 2,076 distinct applications accessed during the week 2,773 distinct users logged in throughout the week 243 new workspaces approved in the past week Total Workspaces: 11,290 http://asktom.oracle.com http://www.dgtournament.com http://www.iloveplsqland.net 10 Waar gaat het naartoe? Wat brengt de toekomst voor APEX? Rijkere UI op basis van declaratieve validaties Integratie met 3rd party tools Meer flexibiliteit voor eindgebruikers (zie de video van Carl Backstrom http://carlback.blogspot.com/2007/09/apex-40-preview_14.html) Hoe positioneren we APEX naast de traditionele ontwikkeltools en ADF? Zijn het concurrenten of antagonisten? Kom 17 december luisteren naar Dimitri Gielis en Lucas Jellema. Gaat het aanslaan in Nederland? Nederland is in ieder geval geen early adaptor gebleken. Wellicht toch meer voorkeur voor duurzame applicaties. Doe mee aan de evaluatie van APEX 3.1. en heb zelf invloed op de toekomst! 11 Demonstraties Demonstratie van een aantal packaged applications: RSS integration Amazon webstore Urenregistratie Discussion forum Document Library AJAX integratie 12 Hoe te beginnen met APEX? (1) Zet http://apex.oracle.com in je favorieten: 13 Hoe te beginnen met APEX? (2) Installeer APEX in een database of vraag een workspace aan op http://apex.oracle.com Begin met “Oracle by Example”, een tutorial van 2 uur Download en installeer Packaged Applications (16 stuks) en bekijk de code Stel vragen (en geef antwoorden) op het Technet Forum (28.000 threads) Interessante blogs: Carl Backstrom (http://carlback.blogspot.com/) Patrick Wolf (http://inside-apex.blogspot.com/) Dimitri Gielis (http://dgielis.blogspot.com/) John Scott (http://jes.blogs.shellprompt.net/) … Interessante documentatie: Pro Oracle Application Express (april 2008) Trainingen: European APEX Training Days (maart 2008) 14 Wanneer is APEX een optie? Veel kennis aanwezig van SQL en PL/SQL Gegevens zitten in een Oracle database Zeker geschikt voor RAD, Throw-away applicaties, Ad Hoc oplossingen en het delen van spreadsheets Overweeg APEX als er sprake is van een klein budget vanwege de lage licentiekosten (of geen!) Overweeg de functionele eigenschappen van APEX per geval: + APEX is goed in het maken van overzichten en grafieken - APEX heeft een beperkte user interface (JavaScript/AJAX is nog niet of nauwelijks declaratief in schermen op te nemen) + Steile leercurve (zeker met kennis van SQL en PL/SQL) - Versiebeheer in APEX is nog primitief + Applicaties staan beschreven in een repository … 15 Diner & 16