Search  
Thursday, September 09, 2010 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
SearchForum Home
  Visual FoxPro  .NET Interop  ORM...
 ORM
 
 6/11/2008 1:23:11 PM
User is offlineneagu_laurentiu
87 posts


ORM
 (N/A)
Cum vedeti voi, din perspectiva programatorilor de SQL in general, treaba/avantajul lui object-relational mapping ? Eu ii vad mai mult dezavantaje...
 6/11/2008 1:58:11 PM
User is offlineCristi
939 posts
1st


Re: ORM
 (N/A)
Noi folosim c# cu NHybernate si vreau sa-ti zic ca este foarte comod de folosit, mai ales in C# unde nu lucrezi cu informatiile din baza de date la fel de lejer ca in Fox. Mie imi place. Este adevarat ca este groi cand e vorba de multe date, dar atunci poti sa sari peste NHybernate si sa folosesti ADO.NET direct.
 6/11/2008 2:12:03 PM
User is offlineTibisan
269 posts
4th


Re: ORM
 (Romania)

Pai enumera cateva dintre ele...

Eu nu vad un dezavantaj in a-i spune obiectului "factura" de ex., care contine evident antetul facturii, sa se valideze (drept pentru care se duce la data handler si ii cere regulile de validare pentru antetul facturii) si apoi sa se salveze (caz in care iar se duce la data handler si ii comunica informatiile ce trebuiesc salvate, dupa care data handler-ul se descurca mai departe). Pentru mine obiectul factura e un obiect de bussiness. Ar putea fi bon de consum sau proces verbal de stiu eu ce... particularitatile datorate functionalitarii fiecaruia este ceea ce le diferentiaza, plecand insa de la o clasa cu functionalitate generala, universal valabila, cel mai adesea aceea de a incarca reguli si a uni (pentru incarcare in interfata) sau a fragmenta (pentru salvarea datelor) informatia din sau catre "n" tabele (cu ajutorul data handler-ului), intr-un obiect care imi pune la dispozitie in interfata intregul set de date ce imi este necesar. Lucrand in felul asta pot de ex. sa mai schimb din reguli fara sa fac alt exe si fara sa urmaresc proceduri prin "n" formulare si clase atunci cand trebuie sa redefinesc ceva. Exista limite, desigur, dar depind si de imaginatia ta. Totul este insa incapsulat si cu trasabilitate, pentru ca e scris in putine locuri, si daca iti formulezi ideile in practica intr-un mod in care sa nu-ti tai craca singur (cel mai adesea e suficient sa gandesti simplu, si sa nu amesteci cazuistica prea adanc in obiectele de business), chiar iese ceva dinamic.

 6/11/2008 2:56:47 PM
User is offlineDorin Vasilescu
1362 posts
1st




Re: ORM
 (N/A)
Parerea mea e ca s-a ajuns aici pentru ca nu aveau manipularea datelor integrata, cum e in VFP.
Se pierde timp, si daca structura relationala e complexa, cu n relatii, ma gandesc ca e destul de complicat, cu cod generat de diverse utilitare, la care nu prea ai control.

Exista un tip, tablizer are nick-ul, cu argumente destul de bine puse la punct, am citit ceva eseuri tocmai despre aceasta tematica
Referitor la ce ai scris, de validari, imi vine in minte o clasa de tip cursor adapter, cu date relationale la dispozitie, care face ce ai zis in BeforeCursorUpdate, fara conversii R->O, O->R
si altele


 6/11/2008 3:28:06 PM
User is offlineneagu_laurentiu
87 posts


Re: ORM
 (N/A)
 Tibisan wrote

Pai enumera cateva dintre ele...

- limbajul SQL mi se pare mult mai puternic si in acelasi timp simplu pentru lucrul cu datele;

- nu-i suportat de producatorul bazei de date (si oare de ce ?);

- un limbaj generic nu poate acoperi/lucra eficient cu toate aspectele/caracteristicile unui anumit server de date, ca sa nu mai zic de performanta;

- serverul de date ofera comenzi specifice unor operatiuni ce nu au corespondent in ORM (de ex: OLAP);

- procedura stocata ofera o abstractizare buna in lucrul cu clientul, ori care ar fi el... si nu numai atit;

- serverul e facut sa-ti returneze datele finale, nu date partiale si sa le prelucrezi pe alt nivel (obtin rezultate temporare, tinute pe server, prin aplicarea unor comenzi sql, cu un cursor fac o parcurgere pentru alte prelucrari apoi din nou aplic comenzi sql peste aceste date temporare - orin in ORM ma joc cu aceste date in alt nivel decat cel optim pentru asa ceva).

Obiectul de business e ok, dar una e ce face el si alta e sa mapezi in tot in el tabele/relatii/tranzactii/etc. adica chestiuni care tin de server-ul de date si care acestsa lucreaza optim cu ele !

 6/11/2008 7:58:03 PM
User is offlineDorin Vasilescu
1362 posts
1st




Re: ORM
 (N/A)
Ar mai fi destule:
-acele "entitati", obiecte, din tuoriale, sunt exemple fortate, nu modeleaza intr-adevar lumea reala.  Imi vine greu sa ma gandesc la datele din antetul unei facturi ca la un "obiect"
-relatiile ierarhice dintre obiecte ingreuneaza accesul la datele din tabele "copil", prin dependenta de acel parent key. Pentru rezolvare trebuie duplicat cod, clasa, entitate, etc.
-folosind acele ORM, complexe, se genereaza o gramada de cod de necontrolat, care maresc complexitatea unei aplicatii foarte mult.Puternicele sisteme de gestionare a bazelor de date ajung sa fie folosite daor ca "storage", acele sisteme ORM incearca de fapt sa imite functionalitatea (inclusiv tranzactii) folosind colectii de obiecte. Hmmmm.
-pana la urma, validarile se pot face foarte simplu la nivelul bazei de date, prin triggere, mult mai eficient (nu ma refer la cele de specifice interfetei ).




 6/12/2008 9:55:40 AM
User is offlineDorin Vasilescu
1362 posts
1st




Re: ORM
 (N/A)
Cred ca aici se spune mult mai bine care sunt dezavantajele ORM
http://www.codinghorror.com/blog/archives/000621.html
http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx






 6/12/2008 10:22:49 AM
User is offlineDorin Vasilescu
1362 posts
1st




Re: ORM
 (N/A)
Si o concluzie a autorului :
 
And, although I will likely gather some serious heat for saying this, Visual FoxPro may have some of the most interesting "best of both worlds" mojo in the entire language space on this subject.

 6/12/2008 2:41:56 PM
User is offlineneagu_laurentiu
87 posts


Re: ORM
 (N/A)

Si totusi cei cu decizia insista si dezvolta in continuare pe directia lor...

  Visual FoxPro  .NET Interop  ORM...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2007 Profox   Terms Of Use  Privacy Statement