• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    BUTHRAKAURObject Relational Mapping :: rady, tipy, triky
    JENIIK
    JENIIK --- ---
    BUTHRAKAUR: no já teda nechci zase vypadat jako zpátečník, ale v momentě, kdy tě začne zajímat výkon aplikace, pak na všechny objekty zapomeneš, protože ono se v tom hezky píše a všechno vypadá elegantně, problém je ale v tom, že někdy musí elegance stranou a jde se po výkonu.

    Jenže to se někdy těžko vysvětluje i lidem, pro něž je třetí normální forma dogmatem a tak, to si prostě musí každý ozkoušet sám.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: hmm.. koukam, ze primo na strankach ceny nemaj - zkusim si schvalne vyplnit Price Inquiry. pokud by byla ta cena takhle nizka, jak rikas, tak to vazne trochu meni situaci :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    jestli si dobre pomatuju, tak cenova politka db4o u komernich projektu je $9 za 1 licenci v provozu ( + mnozstevni slevy ). to je oproti mssql/oracle cenove uplne nekde jinde.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    LITTLELI: na to jsem koukal.. s db4o uz jsem kdysi i pokusoval a nenarazil jsem na zadnej zasadni problem, co se tyce funkce - problem je spis s tim presvedcit zakaznika k nakupu neceho jinyho nez oracle/mssql :/
    LITTLELI
    LITTLELI --- ---
    BUTHRAKAUR: jo to me taky sere :( nicmene teda ted nacpali do db4o linq - coz pro tebe jako .netistu musi byt pomerne zajimave.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    SHAGA: nj, pro mne je zlo relacni model a ORM je nastroj na zmirneni relacni bolesti :)) a bohuzel investice objektovejch DB nejsou dostatecny, aby se ODBMS nejak vyraznejs prosadily ;(
    SHAGA
    SHAGA --- ---
    ORM je zlo. Cokoliv, co se snaží maskovat fakt, že relační a objektový model jsou dvě různé věci, skončí tak, že buď se spousta černé automagie po chvíli zhroutí a začne generovat prapodivné chyby apod., nebo tak, že se přiohýbá db modelování objektovému, což vede k - slušně řečeno - suboptimální výkonnosti. iBatis a spring JDBC abstrakce jsou imho ideální, schovávaj JDBC prudu s checkovanejma výjimkama a resource managementem a přitom nechávají člověku v rukou plnou kontrolu.
    LITTLELI
    LITTLELI --- ---
    no tomu rozumim, jenze ja mam problem v tom, ze neuridim hibernate a tu jeho temnou magii uvnitr - a ze to je temna sila o tom doufam, nikdo nepochybuje :)
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    LITTLELI: hmm.. to mi teda prijde takovy podivne magicky a nepruhledny :) teda aspon to generovani SQL ciste podle signatury metody - nejak jsou mi blizsi ty atributy/anotace, jako to ma treba Castle.ActiveRecord... skoro mi teda ale prijde, ze se ten iBatis s (N)Hibernate temahle poslednima/planovanejma zmenama zacinaji celkem hodne priblizovat.
    mne to primitivni CRUD SQL nebavi, takze zustanu u NH, ale ceka mne ted prepsani jedny aplikace nad takovou celkem brutalni oldskull DB strukturou, tak uvidim, jestli se nakonec nebudu muset k iBatis taky uchylit...
    LITTLELI
    LITTLELI --- ---
    aaaah, ad dynamic sql. jo to je ono. je to jenom takovej templating s parametry.
    LITTLELI
    LITTLELI --- ---
    BUTHRAKAUR: melo by to byt tohle. kdy to bude nevim, to tam nikde nepisou :) nicmene pro to pak nepotrebujes explicitni sql. jinak v soucasnosti ano, a to mi zase tolik nevadi.. stejne nekde potrebuju testovat model, pripravit fixtures, takze mam vsecko podchycene.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    LITTLELI: ted se asi trochu ztracim :) dynamic sql myslis tohle? to je akorat trochu rozsirena syntaxe tech vygenerovanejch/psanejch dotazu, jestli to dobre chapu = porad musis tomu frameworku dodat klasicky SQL dotazy i pro primitivne mapovany operace.

    a pod tim "implicitni resp. konvenci rizene dotazy podle nazvu dao metod" si muzu predstavit co presne? nejaky rozsireny mapovani pomoci atributu?
    LITTLELI
    LITTLELI --- ---
    BUTHRAKAUR: aha a neresi to ta moznost kterou nazyvaji dynamic sql? ja tu prave mam ted aplikaci, ktera je vyvijena z datoveho modelu a nejsem si uplne jistej, jestil by mi (n)hibernate byl po ruce. pokud vim do v3 planujou nejaky zmeny jako implicitni resp. konvenci rizene dotazy podle nazvu dao metod.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    LITTLELI: na iBatis.Net sem koukal a napsal si v nem najekou primitivni testovaci aplikaci... na praci s nejakejma legacy DB to driv bylo asi jediny schudny reseni, pze NHibernate neumel navazat na CRUD custom SQL nebo SP, ale pokud vim, tak od verze 1.2 NH umi custom SQL. takze pokud to dobre chapu (v praxi jsem to jeste nepouzil), tak by se tim mela stirat hlavni nevyhoda NH vs iBatis.
    na novy nebo jednoduse mapovatelny tridy muze pak clovek pouzivat ActiveRecord a na slozitejsi/legacy struktury si muze namapovat vlastni SQL...

    na iBatis by mi vadila hlavne ta nutnost psat (nebo generovat) kompletne vsechny SQL i v pripade, ze se jedna o trivialni mapovani. nebo ma iBatis nejaky novoty v tomhle ohledu?
    LITTLELI
    LITTLELI --- ---
    co trebas iBatis / iBatis.NET? nekdo se zkusenostmi? mne se to zatim libi o poznani vic plne ostre ORM frameworky.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    aby to tu tak nezkomiralo ;)

    Migrator.Net - takova sikovna zalezitost pro verzovani DB zmen pro .Net. zacal jsem to asi pred mesicem pouzivat zkusebne na jednom projektu a zatim velka spokojenost..
    http://code.google.com/p/migratordotnet/
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    screencaast k Castle.ActiveRecord
    http://hammett.castleproject.org/?p=213
    GARFIELD
    GARFIELD --- ---
    // reklama na klub

    novy klub o webovych aplikacich v JAVE
    [ JAVA a webove aplikace - struts, seam, ... ]

    // nezlobte se za spam
    JSEVCIK
    JSEVCIK --- ---
    Jo a este celkom slusny template pre MyGeneration na generovanie C# business objektov+XML k aktualnej verzii NHibernate:
    http://www.mygenerationsoftware.com/TemplateLibrary/Article/?guid=9253c1a1-299a-46fa-8869-c39ea228e58c
    Kliknutím sem můžete změnit nastavení reklam