Budte chytří při vytváření aplikací

Podobné dokumenty
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

IS pro podporu BOZP na FIT ČVUT

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

1. Webový server, instalace PHP a MySQL 13

Střední odborná škola a Střední odborné učiliště, Hořovice

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Maturitní otázky z předmětu PROGRAMOVÁNÍ

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

1 Webový server, instalace PHP a MySQL 13

MBI - technologická realizace modelu

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Olga Rudikova 2. ročník APIN

Databázové a informační systémy

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

Databáze II. 1. přednáška. Helena Palovská

Stručný úvod pro programátory. Michal Kuchta

Střední odborná škola a Střední odborné učiliště, Hořovice

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Jaku b Su ch ý 1

Systém elektronického rádce v životních situacích portálu

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Tvorba aplikací v Oracle Application Express

Semestrální práce: Mashup. Observatory Star Explorer

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

NSWI096 - INTERNET JavaScript

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Střední odborná škola a Střední odborné učiliště, Hořovice

Databázové a informační systémy Jana Šarmanová

První kapitola úvod do problematiky

Dobrý CMS Popis produktu a jeho rozšíření

FIREBIRD relační databázový systém. Tomáš Svoboda

17. července :51 z moravec@yahoo.com

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Rezervační systém Tvorba WWW stránek

Software602 Form Designer

InterSystems Caché Post-Relational Database

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

D R U P A L V O J T Ě C H K U S W O J T H A

Sem vložte zadání Vaší práce.

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

4. lekce Přístup k databázi z vyššího programovacího jazyka

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

Bioadresář. Specifikace požadavků. Verze Datum Projektový tým Bc. Martin Ventruba Bc. Ondřej Veselý Bc. Stratos Zerdaloglu

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Oracle Application Express

Návrh a tvorba WWW stránek 1/14. PHP a databáze

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Databázové systémy Cvičení 5.2

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Drupal. Svobodný redakční systém. duben 2007 Jakub Suchý 1

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

DATAMINING SEWEBAR CMS

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Databáze EMS podacích lístků

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Oracle XML DB. Tomáš Nykodým

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

5. POČÍTAČOVÉ CVIČENÍ

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

REGIONÁLNÍ INFORMAČNÍ SYSTÉM S PODPOROU MAP

Střední odborná škola a Střední odborné učiliště, Hořovice

Virtuální privátní databáze

Dobrý FOTO Popis produktu a jeho rozšíření

Architektura aplikace


RESTful API TAMZ 1. Cvičení 11

Virtual Private Database (VPD) Jaroslav Kotrč

Použití databází na Webu

Dobrý SHOP Popis produktu a jeho rozšíření

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Příloha 6. Palety nástrojů

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Jazyk PL/SQL Úvod, blok

PROJEKT ININ, 1 ČÁST 1 ORACLE APEX. Martin Šimeček (kruh 258), prosinec 08

Vstupní požadavky, doporučení a metodické pokyny

KIV/PIA 2013 Jan Tichava

Nové jazykové brány do Caché. Daniel Kutáč

Mobile application developent

KIV/PIA Semestrální práce

Úvod do Web Services

Michal Krátký, Miroslav Beneš

programátor vs. vývojář

Formy komunikace s knihovnami

Maturitní projekt do IVT Pavel Doleček

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Server-side technologie pro webové aplikace

Transkript:

e-book Budte chytří při vytváření aplikací zakladatel APEX Solutions & autor e-booku

představení e-booku a autora APEX je nástroj, který umožňuje psát webové aplikace nad Oracle Databázi rychle, efektivně, bezpečně a spolehlivě. Umožňuje vytvářet aplikace klikáním v APEX Builderu nebo psaním PL/SQL procedur s využitím APEXových API. K napsání aplikace je dobré si osvojit pár jednoduchých zásad, které pomůžou při psaní a udržovaní aplikací. Ing. Kamil Schvarcz zakladatel APEX Solutions & autor e-booku už od roku 2008. Tehdy se změnil můj pohled na vývoj a prototypování webových aplikací tak, že dnes už vím, u které části aplikace se můžu spolehnout na kvalitní Jako architekt APEXových aplikací se věnuji vývoji v APEXu framework a čemu věnovat energii při návrhu a kódování. Z těchto zkušeností potom při použití APExu vznikají naše webová řešení pro úspěch. Osobně garantuji, že použitím APEXu budou vyvinuté aplikace svým uživatelům umožňovat mnohem víc pohodlí při každodenní práci.

1. úvod Vytvořit první APEXovou aplikaci dle dostupných návodů, tutoriálů a selského rozumu se každému povede velice rychle. Cílem této e-book je popsat jednoduché kroky a možnosti, kterými je dobré se řídit při návrhu a tvorbě aplikace. V jednotlivých kapitolách si ukážeme kroky před započetím tvorby aplikace ale i kroky, které je možné řešit průběžně při psaní APEXových aplikací. 2. MVC - oddeleni UI od Logiky Model-view-controller (MVC) je softwarová architektura, která rozděluje datový model aplikace, uživatelské rozhraní a řídicí logiku do tří nezávislých komponent tak, že modifikace některé z nich má jen minimální vliv na ostatní. Obecně řečeno, vytváření aplikací s využitím architektury MVC vyžaduje vytvoření tří komponent, mezi které patří: Model (model), což je doménově specifická reprezentace informací, s nimiž aplikace pracuje. View (pohled), který převádí data reprezentovaná modelem do podoby vhodné k interaktivní prezentaci uživateli. Controller (řadič), který reaguje na události (typicky pocházející od uživatele) a zajišťuje změny v modelu nebo v pohledu.

3. Logiku zobrazovaní (VIEW) přesunte do APEXu HTML template + CSS Pro projekty si vytvořte sadu HTML template, která budete používat pro zobrazeni stránek, regionů, buttonů, popisků položek (items), kalendářů, breadcrumbs a reportů. Ideálně je začít s jednou témou z které se bude vycházet a v ní si upravovat jednotlivé templaty podle vlastních požadavek. APEX zveřejňuje zdrojové soubory pro templaty (css, scss, images, psd, js) pro témy 23, 24, 25, 26 a 50 společné s distribuci APEXu na stránkách OTN. Statické soubory kaskádové stýly, javascriptové knihovny a obrázky přesuňte na disk tak, aby byli dostupné pro webový servr (Apache, Tomcat a pod) z jednoho adresáře např. http://server:port/files. Vytvořte zástupný string pro jednodušší manipulaci s adresářem napr.: FILES = /files a odkazy na obrázky, css a javascriptové knihovny v templatech odkazujte pomocí &FILES./image.png.

4. Nepoužívat HTML v SQL dotazech V APEXu je hodně místa, kde sa dá vložit vlastní kód pro změny vzhledu výstupních dát, které jsou mimo SQL dotazů do databáze. Nejčastější problémy při psaní HTML v SQL dotazech: těžké znovu použiti zdrojového kódu, nutí to k úpravám SQL pro změnu prezentace, má dopady na škálovatelnost. Formátovaní položek zařídíme na přímo v APEXu. Sloupce reportů Data v sloupcích reportů je možné doplnit o HTML formátovaní, které bude oddělené od vykonávaného SQL dotazu v časti Column formating. Pro zobrazení hodnoty sloupce se používá syntax s #column# (pozor toto volání je case sensitive). Pokud pro zobrazení potřebujeme kombinaci více sloupců z databáze, tyto sloupce vytáhneme z DB dotazem, ale v APEXu zobrazíme jenom jeden sloupec a ostatní nastavíme jako hidden.

Formulářové sloupce Zobrazeni formulářových polí je závislé na typu, v jakém chceme zobrazit prvek v HTML. Pro editaci zobrazení je možné využít položky element, pomocí které nastavíme CSS styl, parametre HTML elementu nebo obalíme HTML element vlastníma HTML značkami.

5. Přesunout anonymní PL/SQL bloky do databáze APEX má uložený kód v tabulkách, takže pro každé zobrazení kódu, který se má vykonat potřebuje jeho run-time kompilování a každé kompilování zabere systémový čas. Přesunutím kódu do databáze a jeho překompilováním zabezpečíme rychlejší vykonání generováni stránek. Přesunutím kódu do databáze získáme také možnosti pro jednodušší testování, izolaci problémového kódu a v neposledním radě jednodušší vícenásobné použití kódu. Dále tím předejdeme problémům s délkou použitého kódu, protože některé APEXové pole uchovávají data v databázi ve sloupci typu VARCHAR2(4000). K přesunutí anonymních bloků do databáze použitě SQL developera, který obsahuje nástroj na refaktoring v časti Application Express:

Vygeneruje se package a package body se všemi anonymními bloky z APEXu, pojmenovanými podle názvu místa, kde sa anonymní blok v APEXu vyskytuje: podle názvu regionu/validácie/procesu v APEXu se vytvoří několik rovnako pojmenovaných objektů, nepřepisuje se voláni APEXových proměnných jejich volání je potřebné upravit tak, aby se z nich stali parametre vzniknuté procedury resp. funkce; pro uchování funkčnosti je potřebné definovat typ parametru (in, out, in out) Při definici je zobrazené místo v aplikaci, kde se daný kód nachází: /******** SUGGESTED CALL TO PLACE INTO THE PROCESS ****************** PAGE ID: 11 PAGE NAME: Contact_for_conference P11_CO PROCESS NAME: Get user data BEGIN jfcontacts.getuserdata; END; *******************************************************************/

6. Vyhnete se používaní APEXových promenných v uložených PL/SQL kódech V každé proceduře, která potřebuje získat hodnotu APEXové proměnné, potřebuje databáze značné množství databázového výkonu k získání obsahu těchto proměnných. Funkce v resp. nv není deterministická (DETERMINISTICKÁ = funkce vrací stejnou výslednou hodnotu vždy, když je volána se stejnými hodnotami pro své argumenty). Pro získání hodnoty APEXových proměnných využívejte bindovanú syntax např. pro vstavané proměnné :APP_USER, :APP_ID, :SESSION_ID. Chybné volání: CREATE OR REPLACE FUNCTION my_func() RETURN VARCHAR2 AS BEGIN IF v( my_apex_item ) = 1 THEN RETURN xxx ; ELSE RETURN yyy ; END IF; END my_func; Správné volání: CREATE OR REPLACE FUNCTION my_func(ip_my_apex_item NUMBER) RETURN VARCHAR2 AS BEGIN IF ip_my_apex_item = 1 THEN RETURN xxx ; ELSE RETURN yyy ; END IF; END; Správné volání z APEXu: BEGIN my_func(:my_apex_item); END;

7. Využívejte statistiky Oracle nám umožňuje spočítat si statistiky kolik, čeho a kam bylo umístěno, vyhledáváno a podle toho si sám uspořádat všecko tak jak potřebuje, aby se mu pro naši konkrítní tabulku s našimi konkrétními nároky co nejlépe počítalo. Cost-based optimizer v databáze hledá plán s nejmenšími náklady a k tomu využívá statistiky. Statistiky pro vaše APEX aplikace APEX je napsaný v databáze, využívá databázové objekty a proto také využívá Cost-base optimalizátor teda statistiky. Spočítáním statistík bude teda i chod APEXových aplikací přesnější a výkonnější. Spuštěni pod SYS resp. SYSTEM: BEGIN dbms_output.put_line( Gathering statistics for current schema ); dbms_stats.set_param(pname => CASCADE, pval => TRUE ); dbms_stats.set_param(pname => GRANULARITY, pval => ALL ); END; dbms_stats.gather_schema_stats(ownname => APEX_040200, options => GATHER, force => TRUE); dbms_output.put_line( DONE );

Profil autora Kamil Schvarcz je zkušený analytik, návrhář a vývojář se silným zázemím vývoje databázových aplikací s webovým rozhraním. Jeho začátky s programováním jsou spojené s vývojem aplikací v prostředí PHP/MySQL při budování e-commerce aplikací v prostředí B2C. Později se věnoval databázovým aplikacím v Oracle DB v bankách a vývoji v Oracle Application Express od verze 3.1. V současné době je jednatelem společností QuickCode s.r.o.. zakladatel společnosti QuickCode s.r.o. (4/2007), která poskytuje služby APEX Solutions (1/2011) Oracle APEX architekt práce s APEXem od verze 3.0 (4/2008) >10 let zkušeností s webovými technologiemi (HTML, CSS, JavaScript, Apache, Tomcat) >10 let zkušeností s databázemi MySQL, PostgreSQL, Oracle DB, MS SQL >5 let zkušeností s Oracle DB lektor pro technológie Oracle Application Express, HTML, jquery Dovednosti: Databases skills PL/SQL - Oracle, MySQL, PostgreSQL, DB modeling tools Sybase Power designer DB designer Oracle SQL Modeler Web developer skills PHP, Oracle Apex, Google API, XML, XSLT, XML-RPC, WSDL JavaScript, HTML, CSS, jquery Ajax Kontakt e-mail kamil.schvarcz@apex-solutions.cz linkedin http://cz.linkedin.com/in/kamilschvarcz blog http://blog.apex-solutions.cz