Dnes: 16. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Datový sklad
    Tento pojem poprvé formuloval koncem 80. let William Inmon jako strategii přístupu k datům určeným pro rozsáhlé analýzy. V případě datového skladu hovoříme o historických, časově rozlišených, agregovaných, průběžně rozšiřovaných datech uspořádaných pro podporu potřeb managementu.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Tipy a triky pro Caché XXI. - Dynamické odbavení vlastností a metod tříd


    [Tipy - triky] - V tomto díle našeho seriálu se seznámíme s velmi užitečnou schopností Caché tříd, která je k dispozici již delší dobu, ale teprve v posledních verzích se dostává více do popředí a to v souvislosti s dynamickým SQL a ZEN frameworkem. Jedná se o dynamické odbavení (vyhodnocení) vlastností a metod, anglicky „dynamic dispatch“, jinými slovy o ošetření volání vlastností a metod, které třída nemá definovány a nejsou tedy součástí jejích metadat.



    Všichni zajisté víte, že pokusíte-li se přistoupit za běhu programu k neexistující vlastnosti třídy nebo volat neexistující metodu, program vám vrátí výjimku. To je výchozí chování Caché. Zajisté si ale dovedete představit situace, kdy toto chování není žádoucí a vám by se naopak hodilo, aby třída nějakým způsobem zareagovala, aniž byste museli programovat zpracování výjimek.

    Představte si například situaci, kdy máte třeba dvě aplikace nebo i jednu vícevrstvou, jako například webovou aplikaci. Na straně jedné, třeba u webového klienta, něco provedete a potřebujete přenést data na stranu druhou - na server. Většinou se jedná o data strukturovaná a tedy k nim sestrojíte třídu, která danou strukturu popíše. No a tohle budete chtít dělat ne pro jednu webovou stránku, ale pro desítky či stovky aplikačních stránek (obrazovek). Jistě se Vám nebude moc chtít pokaždé definovat separátní strukturu (objekt). A právě v tomto okamžiku přichází neocenitelný pomocník – dynamické odbavení. Místo mnoha specializovaných tříd, sloužících jako pouhý kontejner pro přenos dat z různých obrazovek, si uděláte jednu jedinou třídu a té implementujete kód, který bude řídit dynamické odbavení jejích vlastností. Ti z Vás, kteří používáte ZEN framework v novějších verzích Caché, případně jste měli možnost se seznámit s novou verzí DeepSee, mohli narazit na masivní využití třídy %ZEN.proxyObject. To je konkrétní implementace dynamického odbavení v praxi. Pomocí této třídy můžete velmi elegantně předávat objekty jazyka Javascript jako argumenty zenových metod (metod s klíčovým slovem ZenMethod). Javascript totiž umožňuje definovat dynamické objekty, jejichž definice vznikají za běhu klienta (prohlížeče) a tyto dynamické objekty je Caché na straně serveru schopna zpracovat právě díky implementaci dynamického odbavení. API pro dynamické odbavení obsahuje následující metody:

    • %DispatchMethod(Method As %String, Args...)
    • %DispatchClassMethod(Class As %String, Method As %String, Args...)
    • %DispatchGetProperty(Property As %String)
    • %DispatchSetProperty(Property As %String, Value)
    • %DispatchSetMultidimProperty(Property As %String, Value, Subs...)

    Samotné názvy metod určují jejich použití, je tedy na Vás, programátorech, co budou jednotlivé metody provádět. Dovedu si lehce představit, že takto můžete sestavit objekt, jehož instance budou ukládány nikoliv v databázi, ale v textových souborech na disku či naopak můžete lehce nad libovolně zvrhnou globálovou strukturou definovat objek

    nyní jedna malá, triviálně jednoduchá ukázka: Mějme registrovanou třídu a té implementujme metodu %OnNew() tak, že jejím argumentem bude seznam dvojtečkou oddělěných párů název:hodnota. Pomocí dynamického odbavení můžeme jednoduše po instancování třídy pracovat s předanými páry jako s vlastnostmi a jejich hodnotami. Tuto konstrukci můžeme lehce použít jako základ komunikačního protokolu mezi našimi aplikacemi nebo naší a cizími aplikacemi. Např. obalením webovými službami získáme jednoduché a univerzální objektové komunikační rozhraní.

    Ukázkový výstup:

    SYM:s x=##class(tt.Tip21).%New("jmeno:pepa:prijmeni:novak")
    SYM:w x.jmeno
    pepa
    SYM:w x.prijmeni
    novak
    

    Pokud budete chtít vidět praktickou implementaci %ZEN.proxyObject, poohlédněte se v Zenové komunitě na Google, před nějakým časem jsem tam umístil malou aplikaci, která umí zobrazovat Caché projekty nebo skupiny tříd pomocí UML notace. V jedné ze tříd projektu je proxyObjekt třída využita pro předávání informací z uživatelské obrazovky ke zpracování na server Caché.

    V příštím díle se budeme věnovat nové implementaci dynamického SQL.

    Související články:
    Tipy a triky pro Caché XXII. - Nová implementace dynamického SQL (15.11.2010)
    Tipy a triky pro Caché XX. - Práce s třídou %Installer (01.11.2010)
    Tipy a triky pro Caché XIX. - Využití uživatelské projekce (25.10.2010)
    Tipy a triky pro Caché XVIII. - Testování kódu (11.10.2010)
    Tipy a triky pro Caché XVII. – try - catch (04.10.2010)
    Tipy a triky pro Caché XVI. – kdy a proč používat třídu System.Eents? (02.10.2006)
    Tipy a triky pro Caché XV. – jak na chybové stavy? (31.07.2006)
    Tipy a triky pro Caché XIV. – jak na grafiku s XML transformací? (13.07.2006)
    Tipy a triky pro Caché XIII. – jak na izolaci objektů v CSP? (06.04.2006)
    Tipy a triky pro Caché XII. – jak na Caché Server Rules? (09.03.2006)
    Tipy a triky pro Caché XI. – definování virtuálních CSP serverů (09.02.2006)
    Tipy a triky pro Caché X. – vlastní vyhledávání (23.01.2006)
    Tipy a triky pro Caché IX. – komunikace mezi procesy podruhé (16.01.2006)
    Tipy a triky pro Caché VIII. – komunikace mezi procesy poprvé (09.01.2006)
    Tipy a triky pro Caché VII. – Java Server Pages a Caché (02.01.2006)
    Tipy a triky pro Caché VI. – psaní kódu v .NET pomocí COM třídy Factory (14.11.2005)
    Tipy a triky pro Caché V. – jak na ladění CSP stránek? (05.10.2005)
    Tipy a triky pro Caché IV. – jak na neznámý počet parametrů? (19.08.2005)
    Tipy a triky pro Caché III. – casting objektů (19.07.2005)
    Tipy a triky pro Caché II. – dotazy bez SQL (18.05.2005)
    Tipy a triky pro Caché I. - izolace (05.05.2005)

    ( Celý článek! | Autor: Daniel Kutáč | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1546 hl.)
    Do 1 000,- Kč 
     (1065 hl.)
    Do 10 000,- Kč 
     (997 hl.)
    Do 25 000,- Kč 
     (1375 hl.)
    Do 50 000,- Kč 
     (1015 hl.)
    Do 75 000,- Kč 
     (1177 hl.)
    Více než 75 000,- Kč 
     (1015 hl.)

    Celkem hlasovalo: 8190


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena