1 Kennis maken met Application Express Patrick Sinke, Michiel Jonkers, 22 november 2007
2 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
3 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
4 Géén opvolger van Oracle WebDB (1999) (aldus Wikipedia)!! 1.5 eerste versie (feb 2004) 1.6 (december 2004) 2.0 (augustus 2005) HTML DB Apex (januari 2006) 3.0 (februari 2007) 3.1 (beta beschikbaar voor evaluatie sinds gister) Ontwikkeling gaat door; team van ca 20 developers/PM’s One popular misconception is that it's a new version of Web DB. Mike Hichwa created Web DB, a successful web front-end for Oracle, but the development of Web DB started to move in a direction that diverged from Mike's vision. When tasked with building an internal web calendar, Mike enlisted the help of Joel Kallman and started "Flows". They co-developed the Web Calendar and Flows for several years, adding features to Flows as they needed them for to develop the calendar. In the earliest days of Flows, there was no front-end for it, so all changes to an application were made in SQL*Plus via inserts, 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 around 2002 all Web DB code was removed from Flows. So, in some ways APEX is an evolution of Web DB, but it was really a fresh start with new code and no upgrade path. Geschiedenis van APEX
5 Architectuur Een metadata repository in schema FLOWS_030000(215 tabellen) Een ‘engine’ (200 PL/SQL objecten, 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
6 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 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
7 APEX in Designer/Developer terminologie Designer/DeveloperApplication Express Designer repositoryAPEX repository Design EditorApplication Builder ModulesPages GenererenRealtime rendering TriggersValidations en Page processing BI BeansFlash Charts PL/SQLPL/SQL, XML, Javascript en AJAX
8 Verschillen tussen APEX en Designer Designer/DeveloperApplication Express 3-lagen architectuur2-lagen architectuur Synchrone database verbindingAsynchrone database verbinding Wel pessimistic lockingGeen pessimistic locking Client/Server ontwikkelomgevingWeb ontwikkelomgeving Rijke User Interface (Java)Beperkte User Interface (HTML) Eenmalig genererenRealtime genereren Upper CASE ToolPrototyping DuurGratis `Mature`Volop in ontwikkeling
9 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
10 APEX in de praktijk Voorbeelden van websites die zijn gebouwd met APEX: 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
11 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 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!
12 Demonstraties Demonstratie van een aantal packaged applications: RSS integration Amazon webstore Urenregistratie Discussion forum Document Library AJAX integratie
13 Hoe te beginnen met APEX? (1) Zet in je favorieten:
14 Hoe te beginnen met APEX? (2) Installeer APEX in een database of vraag een workspace aan op 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 ( threads) Interessante blogs: Carl Backstrom ( Patrick Wolf ( Dimitri Gielis ( John Scott ( … Interessante documentatie: Pro Oracle Application Express (april 2008) Trainingen: European APEX Training Days (maart 2008)
15 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 …
16 Diner &