DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   [C#] Modeli/Pristup bazi (http://www.devprotalk.com/showthread.php?t=5688)

Bojan Zivanovic 30. 06. 2008. 15:02

[C#] Modeli/Pristup bazi
 
Poceo sam malo da se igram sa C# i ASP.net MVC framework-om, pa me interesuje sta da koristim za modele, tj. pristup bazi. Koji je vas pristup?

Poceo sam prvo da se interesujem za LINQ (To SQL), ali Lazy Loading koji on obavlja dovodi to toga da se za najprostije stvari na bazu salje veliki broj upita, sto mi se jako ne dopada. Postoji mogucnost da se Lazy Loading iskljuci, kombinacije preko DataLoadOptions, ali u tom slucaju dobijaju se duplirani redovi iz baze, a i dalje postoji mogucnost da se baza obaspe upitima....
Na netu ima bas dosta clanaka o ovome, i prosto ne bih toliko zrtvovao performanse zbog malo sintaksickog secera.

Na kratko sam pogledao i Entity Framework, vidim opet se koristi LINQ (To Entities), ali verujem da svi problemi gore navedeni mogu da se primene i na ovaj slucaj, ispravite me ako gresim...

Od low level resenja tu je SqlDataReader, prosto slanje upita na bazu, sto mi je blisko resenje, a video sam i SqlDataAdapter koji obavlja slicnu funkciju, samo malo naprednije...

Procitao sam i tutorial za Data Access Layer, zvuci lepo, mada mi se ne svidja to sto nema C# koda, vec se sve generise na osnovu XML seme...

Dakle, mnogo resenja, pa mene zanima sta vi preporucujete, koliko apstrakcije mi je potrebno, te sta bi najbolje radilo posao.

ylodi 01. 07. 2008. 12:58

Ja sam u firmi poslao zaduženje da se za predstojeći projekt ispitaju i istestiraju SubSonic, CoolStorage te LINQ. Tipovi su popljuvali SubSonic i CoolStorage zato što to nije Microsoft. Na stranu sad to što je Microsoft zaposlio Roba Conerya upravo zbog njegovog rada na SubSonicu. Ali to ekipa ne zna.

Uglavnom prisiljen sam koristiti LINQ, ali ni to nije problem da DBA ne inzistira da sav pristup bazi ide preko stora pa se LINQ zapravo i ne koristi kako bi se trebao već je to jedna mješavina s kojom ja ne želim imati posla (drugi kolega radi data layer).

Ali na osnovi dosadašnjeg iskustva vidim da je LINQ dosta sirov i nedorađen i ponavlja neke greške koje su drugi ORM-ovi (mada se LINQ dosta razlikuje od standardnih biblioteka toga tipa) već odavno riješili prije preko nekoliko godina.

Ono što se meni dopada je CoolStorage - ProMesh kombinacija. ProMesh i koristimo u razvoju, ali kako se radi o Ajax aplikaciji (ExtJS kao user interface) uglavnom ga upotrebljavamo samo za provjeru prava pristupa i kreiranje JSON API-ja serijalizirajući ono što nam vraća data layer).

Meni se dopada navedena kombinacija jer u njima nema viška (binary ProMesha i CoolStoragea nemaju zajedno više od 100Kb zipano) već samo ono što je potrebno prosječnom developeru web aplikacija.

ProMesh - http://www.codeplex.com/ProMesh
CoolStorage - http://www.codeplex.com/CoolStorage

Bojan Zivanovic 01. 07. 2008. 20:55

CoolStorage - uprkos smesnom imenu, deluje izuzetno dobro, probacu ga...

ProMesh mi ne znaci puno posto vec koristim ASP.NET MVC, koji ipak ima vecu podrsku kad je community u pitanju.

Dragi Tata 01. 07. 2008. 22:11

A čudo niko nije pogledao NHibernate?

Bojan Zivanovic 02. 07. 2008. 13:28

Gledao sam NHibernate, izgleda i kvalitetno i kompleksno, razmisljam da nije overkill za prostije projekte (ispravi me ako gresim)... Za slozenije, verujem da vredi uloziti vreme u tako nesto..

Svakako cu pogledati sve opcije, tek ulazim u celu pricu...

bags 02. 07. 2008. 23:20

Jos jedan glas za NHibernate.

Nazalost anotacije (tj. atributi u .NET-u) ne rade dobro kao u Javi,pa se uglavnom radi sa XML fajlovima.Mislim da nije overhead , jer ti omogucava laku promenu baze i lako se odrzava.Jedino ako bas imas samo par tabela...

PS.
Serija video tutorijala od Rob Conery-a za TDD,MVC i Subsonic je nesto najvrednije postavljeno na netu. :)

merjadok 03. 07. 2008. 18:10

Imam samo pozitivna iskustva sa iBATIS frameworkom (doduše Java verzijom), tako da mislim da vredi pogledati.

Pozdrav,


Vreme je GMT +2. Trenutno vreme je 00:17.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.