ADO.NET Entity Framework Giris

 Bu makalemizde Microsoftun ORM araçlarindan Entity Framework yapisini kullanarak bir data modeli olusturacagiz ve bu model ile veritabanindan nasil select islemi yapacagimizi ögrenecegiz.

Entity Framework hakkinda teorik bilgileri internette bolca bulabilirsiniz bu yüzden bu konulara deginmeyi düsünmüyorum. Ilk olarak visual studio 2008 veya 2010 kullanarak yeni bir websitesi olusturalim. Olusturdugumuz web sitesine asagidaki gibi bir “entity framework data model” ekleyelim.

 

Yukarida gördügünüz gibi ADO.NET Entity Data Model’i seyiyoruz ve bir isim veriyoruz. Daha sonra add deyip diger adima geçiyoruz.
.

Biz bu örnegimizde modelimizi var olan bir veritabani üzerinden olusturacagiz. Tam aksine önce modeli olusturup EntityFramework’ün veritabanini kendisinin olusturmasini saglayabiliriz. Next dedikten sonra gelen ekranda “new connection” deyip asagidaki ekranda gördügümüz gibi var olan bir veritabani için connection olusturuyoruz.

 

Örnegimizde AdventureWorks veritabanini kullaniyoruz.

Baglanti ayarlarimiz yaptigimiz zaman yukaridaki ekranda bu baglanti bilgisi için web.config dosyasinda kullanilacak ismi belirleyip next diyoruz.

Gelen yukaridaki ekranda “Tables” sekmesini seçip kullanacagimiz tablolari seçiyoruz. Biz örnegimizde Product , productCategory ve productSubCategory tablolarini kullaniyoruz. Bu adimda Finish dedigimiz zaman modelimiz kullanilmaya hazir hale gelecek. Modelimizin görüntüsü asagidaki gibi olacaktir.

 

 

Simdi gelelim bu modeli kullanarak veritabanindan nasil veri çekecegimize.

Default.aspx sayfasina bir iki adet dropdownlist ve bir adette gridview ekleyelim. Sayfamizin html kismi asagidaki gibi olacak.

<table>

    <tr>

        <td>

            <asp:DropDownList ID="KategoriDropDownList" AutoPostBack="true" runat="server" OnSelectedIndexChanged="KategoriDropDownList_SelectedIndexChanged">

            </asp:DropDownList>

        </td>

        <td>

            <asp:DropDownList ID="AltKategoriDropDownList" runat="server">

            </asp:DropDownList>

        </td>

        <td>

            <asp:Button ID="UrunleriGetirButton" runat="server" Text="Ürünleri Getir" OnClick="UrunleriGetirButton_Click" />

        </td>

    </tr>

    <tr>

        <td colspan="3">

            <asp:GridView ID="UrunlerGridView" runat="server">

            </asp:GridView>

        </td>

    </tr>

</table>

 

Simdi ilk olarak sayfa yüklenirken kategori dropdownlistini dolduralim. Kategori seçilincede alt kategorileri dolduralim.

Ilk olarak kategorileri doldurmak için asagidaki kodu yazin.

protected void Page_Load(object sender, EventArgs e)

{

    if (!IsPostBack)

    {

        KategorileriGetir();

    }

}

 

private void KategorileriGetir()

{

    DemoEntities entity = new DemoEntities();

    List<DimProductCategory> kategoriList = entity.DimProductCategory.ToList();

    KategoriDropDownList.DataSource = kategoriList;

    KategoriDropDownList.DataValueField = "ProductCategoryKey";

    KategoriDropDownList.DataTextField = "EnglishProductCategoryName";

    KategoriDropDownList.DataBind();

 

 

}

 

Ikinci olarak kategori seçildigi zaman asagidaki kodu yazarak alt kategorileri dolduralim.

protected void KategoriDropDownList_SelectedIndexChanged(object sender, EventArgs e)

{

    int KategoriKey = Int32.Parse(KategoriDropDownList.SelectedValue);

    DemoEntities entity = new DemoEntities();

 

    var query = from c in entity.DimProductSubcategory

                where c.DimProductCategory.ProductCategoryKey == KategoriKey

                select c;

 

    AltKategoriDropDownList.DataSource = query.ToList(); ;

    AltKategoriDropDownList.DataValueField = "ProductSubcategoryKey";

    AltKategoriDropDownList.DataTextField = "EnglishProductSubcategoryName";

    AltKategoriDropDownList.DataBind();

}

 

Yukaridaki adimlari tamamladigimiz zaman kategori ve alt kategori alanlari ile olan islemimiz bitmis oluyor. Simdi ise ürünleri getir butonuna basinca seçilen kategorideki ürünleri alip gridview içine atalim.

protected void UrunleriGetirButton_Click(object sender, EventArgs e)

{

    int AltKategoriKey = Int32.Parse(AltKategoriDropDownList.SelectedValue);

    DemoEntities entity = new DemoEntities();

 

    var query = from p in entity.DimProduct

                where p.DimProductSubcategory.ProductSubcategoryKey == AltKategoriKey

                select new { p.ProductKey, p.EnglishProductName, p.Color, p.TurkishDescription };

 

    UrunlerGridView.DataSource = query.ToList(); ;

    UrunlerGridView.DataBind();

}

 

Yukaridaki kodu inceleyecek olursaniz product tablosunda sadece istedigimiz kolonlari getirdik, bunun içinde new deyip yeni bir tanimlama yaptik.
.

Sonuç olarak islemlerin sonucunda asagidaki gibi bir ekran çiktimiz oldu.

 

53 thoughts on “ADO.NET Entity Framework Giris

  1. hocam bu nedir yaa Smile yani bir select çekmek bu kadar uzunsa bu ef ile büyük proje yazman ne kadar zor olur kim bilir.. simdi biri bana selec * from urunler yerine neden bu kadar zor bir yol yapildigini ve bunun kullanilmasi gerektigini açiklayabilir mi ??

  2. Üstatlar Merhaba,

    Bir konuda fikrinize ihtiyacim var bir site üzerinde çalisiyorum ve takildigim bir yer var, 1 saniyelik interval ile webmethod üzerinden gelen talepleri xml türünde geçici olarak saklamak mi yoksa sql e direk göndermek mi? Hangisi daha hizli olur ? Online olarak 150-200 kullanicidan talep oldugunda. Ve tabi islenen veri JSON ile geri gidecek. Önerileriniz için simdiden tesekkür ederim.

  3. Aradan baya zaman geçti Hakki, acaba projen bitti mi, link alabilir miyiz, görüp waoovv demek için. 

  4. ayrica ben .net mi delphimi degil örnek verirsek task nesnesi cpu içerisindeki çekirdeklere otomatik görev dagitimi yapiyor acaba bunu nasil yapabiliyor… bahsettigimiz konular bunlar gibi.. ayrica kaynak kodlari varmi bilmiyorum ama ben kaynak kodlarina degil kullanmis oldugu yapilara bakiyorum inceliyorum ne için kullanimis gibisinden isime yarayacagini düsündügümü kullanmaya çalisiyorum hepsi bu.. "eser.hakki@hotmail.com" msn de sohbet etmek istersen ekleyebilirsin.. projemin adi tradeskep.

  5. Sana su sekilde örnek vereyim bir gridview i wizard ilede doldurabilirsiniz fakat uç bir örnek verirsem gridview 2 farkli kaynaktan veri çekecek dedigimizde bunu kodla yapabiliriz. yada o wizard arka plana neler neler yazar neden biliyomusun çünkü bir programcinin bütün istegine cevap vermek istedigi için. ben kendi ihtiyacimi görüyorum ve bunun için milyon dolarlar harcayarak arastirma ekipleri kurmama gerek yok. ama microsoft on binlerce developer in ihtiyaclarini görebilmek için tabikide büyük bir arastirma içerisinde olacak. ben microsoftu seviyorum .net ciyim ben. visual studio yu hayranlikla kullaniyorum adamlar yapmis diyorum … neyse yorumlarim arasinda facebook tan örnek vermistim zaten o sikka katildigima yorumlarim arasinda görebilirsin. kimsenin aklina gelmeyecek bir proje tabikide degil ama gelse bile cesaret isteyen bir proje oldugunu söylemem gerekir

  6. 4. peki projen ne zaman biter?! "abi üzerinde çalisiyorum veritabanlarini test ediyorum (yine DB test)" alla alla kendi veritabanizi yazinda kurtulak be.

    5. MS milyonlarca dolarlik arge çalismasi yapiyor ama bilmiyorki ankaradan bir liseli bu isi hiç para harcamadan onlardan iyi yapiyor.

     yani bir türlü yel degirmenlerine savas açmaktan projelerine odaklanamadilar. bitiremediler ki projeleri ii mi kötü mü anlayalim. 

    ayrica da çok merak ettim ta basindan beri demekki kaynak kodlarini incelemissin .net frameworkün nedir bu herseyi düsünerek yazdiklari fazla seyler. bikaç örnek alsak. 

  7. zihin fukara olunca fikir ukala olurmus.

    Stajyerlerimle benzer olan yönlerini sayayim da tartisma bitsin.

    1. Projenin performansi yalnizca kodlama ile olmaz, hatta yalnizca ii bir sunucu ile de olmaz. Örnek "netapp"  konusunu incele bunu google.com facebook.com yahoo.com ve aklina gelebilecek herkes kullaniyor. bu kadar online kullaniciya ragmen nasil oluyorda sorunsuz çalisiyorlar diye aklina takilirsa diye söyledim.

    2. "büyük bir projem var ve hiç kimsenin aklina gelmeyen birsey" lafini duymaktan kusmasak iidir.

    3. "abi .net mi delphi mi", "abi su falanca su falancadan hizli çalisiyorMUS", "abi kendi frameworkümü yaziyorum falancaninki ise yaramaz (2003ten beri duyuyorum)".

    4. peki projen ne zaman biter?! "abi üzerinde çalisiyorum veritabanlarini test ediyorum (yine DB test)" alla alla kendi veritabanizi yazind

  8. Beni sabri abiye ukelalik yaparken gördünüzmü ? 😉 sabri abiyle entity framework den bahsediyorduk fakat siz benden bahsediyorsunuz bence siz olgunlasin. söyle özetliyim benim bir ustam var yeni bir sey kesfettigimde gidip abi süper dimi deyip anlatirdim beni dinlerdi. ve sonra öyle birsey söylerdiki konu ile ilgili abi büyüksün derdim. burda entity framework un su yapisini alsak söyle kullansak su frameworkunda su yapisi çok güzel bunu alsak ortaya söyle güzel birsey çikar degilmi hakki deseniz keske bee. lambda yi severim arada kullanirim arada dedigim iyice yoruldugum ve kod yazmaktan bunaldigim zamanlar.

  9. Hakki ya yazdiklarini okudukça hem gülüyor hemde üzülüyorum. Birgün gelecek sende olgunlasacaksin. Daha önceki yorumlarinida okudum, direk olarak saldiriya geçiyorsun ve çook ukalasin. herseyi bildigini saniyorsun. içi bos basaklarin basi dik olur bilirsin. biraz mütevazi ol be kardesim. çok sey bilebilirsin ama bu tavirlarla hayatta hep yanliz kalirsin unutma.

  10. Bence sen küçük düsünüyorsun genç. ben senin stajyerlerinin geçtigi yollardan geçeli bayaa oldu çeviri kitaplari görünce kusmak istedigim günleri biliyorum o sefer algani hala yasatiyorlar ya helal olsun. burak selim senyurt makaleleri okumakla geçerdi bütün günüm simdi hala kendimi gelistirmekteyim en iyisini bulmak veya yaratmak benim isim. bir gün benim orm mi kullanirsan hiç sasirma o yüzden. projemede laf yapma bayilik vererek projenin degerini düsürtecek degilim. ben ömrümün sonuna kadar kod yazmayacak oldugumdan dolayi bu proje kesin olarak en geç 2 seneye kadar bitmeli. ve unutma hayali olmayan insan hiç bir seye sahip olmayan insandir. Yel degirmenlerine açtigin savas mizrakla degil daha güçlü bir yel degirmeniyle olmali, olacaktirda.

  11. kendi piyasani mi yaratirsin o ne be! var olan piyasada uçtun yetmedi kendi piyasani yaratiyorsun süper. maalesef yazdigin yorumun %70i tanidik laflar. yine öteki tifillar gibi biseyleri tek merkezde topluyorsundur. bunu gören insanlar para vermek için siraya girecekler. elimi öpene bayilik verecem falan falan falan…

    projene bu kadar çok güveniyorsan neden halen veritabani baglantilari ile ugrasip framework yazmaya çalisiyorsun. belliki sikilmissin kopmussun bi yerden sonra. akinsofttaki abini dinle sana en güzel abi nasihatini o vermis. odaklanma sorununu en basta söylemis. projenin bitmis hali sende heyecan uyandiriyor olsaydi fw yazmak yerine projeni bitirgmekle ugrasirdin. neymis MS kodlari yavasmis, çok kullanici girerse çökermis. peah. entity fw 40.000 online sistemde kullaniyoruz bilgine.

  12. Lise ögrencisi ile yel degirmenlerine savas açma olayi tamamen çarpiktir, yani yeni baslayan insanlar asil teknolojinin ne kadar ileride olduguna bakar. ve emin ol bu iste yeni felan degilim.. entity framework ögrenmeye çalistigim günleri hatirliyorum peki neden kullanmiyorum hiç merak ettinmi? Bak ben asp.net mvc de biliyorum ama niçin kullanmiorum söyliyim hemen asp.net mvc yi hersyini arastirdim nasil çalisiyor mantigi nedir bilmemne bir sürü olayini biliyorum tabiki tamamen bilemem ama asp.net mvc nin en iyi yanlarini alip bir framework olusturdum fakat bunu orm programina entegre edicek zamanim ne yazikki olmadi o proje hayatimin projesi ben her projeye bu ünvani vermem merak etme bir çok projeyi sonlandirdim. ve emin ol o bahsettigin stajyerlerden degilim =)  beni tanimiyorsun bosu bosuna yargilama. ve sunu unutma aramizdaki fark sen piyasayi takip edersin ben piyasami yaratirim.

  13. hahahaha sen lise ögrencisimisin!!!

    bende neden bu kadar yel degirmenlerine savas açmis diyorum. belliydi.

    "hayatimin projesi" bitmez sizin gibilerde. üniversitenin bilgi isleminde çalistigim dönemlerde senin tipinde çok stajyer vardi. 3-5 tane fonksiyon yazan karsimiza dikiliyordu senin gibi fw yazdim diye o yüzden senin fw yazdim lafini çok kale almamistim.yaw düsün bi fw neden yazilir.

    ayrica da o proje bitmeyecek onun gibi de 40 tanesi baslayip yarim kalacak.

  14. imkansiz.. sirf televizyon izliyecem diye bir f16 ya anten takmakta neyin nesi bla bla bla 😀

  15. ben lise ögrencisiyim merak etme her iki yapidada testlerim oldu 1 sene önce yaklasik 25 milyon küsür mail adresini baska bir pattern ile  2.5 saniye de çekerken, tek satir kodla tabloda ne istiyorsan çekebildigin yazmis oldugum pattern bu veriyi getirmedi. entity framework ise bu veriyi yanlis hatirlamiyorsam 12 sn civari gibi bir dilimde getirdi. eskiden zamanim olurdu yazardim biraz makale bu sitede bulabilirsin su siralar hayatimin projesini yazdigim için vakit olmuyor  açikcasi. malesef sana bu konuda yardimci olamayacagim üzgünüm. he su mercedes olayina gelince kendi kendine vermissin iste cevabi sen hiç oyun oynamadinmi mesela bir oyun vardi seçerdin dizaynami önem veriyorsun yoksa hizami diye 🙂 ayrica bundan 2 sene önce bi abi vardi akinsoft ta çalisiyordu bana dedigi sadece bir yere odaklan orada iyi ol demisti çünkü hepsini mükemmel derecede yapman

  16. senin olay suna benziyor. mercedes herseyi düsünüp konfor, hiz, lüx full aksesuar koymus arabaya o yüzden ise yaramaz. ben bis yaptim bi tek seye odaklanmis o da gitmek :)))))))) 

    Microsoft senin düsündügünü düsünememis, senin gibi genç beyinler eziliyor bu çagda, keske zaman makinesi olsa da orta çaga gönderebilsek seni. Ayrica makalelerini okuyabilecegimiz bir link verebilirmisin? Üstün bilgilerinden istifade etmek isteriz. 

    Ayrica kendi yorumlarini bastan sona oku yer yer kendinle çalismissin.

  17. Yüksekokul okuyorsun ya da yeni mezunsun 🙂

    Polemige girecek degilim " bir bankanin en riskli yapisi entity framwork ile yazilir süphesiz fakat o modulde bir yogunluk olursa sen ozaman gör showu" diye baslayan bir cümlenin gerisini okumaya gerek yoktur.

    Tutturmussun herseyi içine koyduklari için yavastir fikrasi anlatip duruyorsun millete, ne kadar komik oldugunun farkinda degilmisin. Daha geçen hafta bir sistem kurduk ve 1TB sql datasi olan bir yapida sadece 3,5 dakikda full backup alindigini hiç gözünle gördün mü? anlik olarak 850 tane online kullanici sürekli yogun rapor çekiyor ve sifir sikinti. senin olay suna benziyor. mercedes herseyi düsünüp konfor, hiz, lüx full akse

  18. Bence sorun benim büyük düsünmemde degil senin küçük düsünüp bir siteye en fazla 100 kisi girer felsefesi edinmen bence bee.. sonra for a dön dedimm yaaa dönmedinn diye ah yanma

  19. Hmm sen yanlis anlamissin entity frameworkden baska orm lerde var örnegin kendi yazdigim orm programi kendime özgü kodlari yaziyor sag olsun bu ne demek biliyomusun sadece belirli bir noktaya odaklanan bir orm entity framework ise developerlarin yapabiecegi herseyi düsünmüstür buda yapiyi yavas kilar alsana ikinci kural birsey hazirsa bir olaya özgü yazilmadiysa yavas olmaya mahkumdur;) 

  20.  "en iyi programci kopyala yapistir yapan programcidir;)"

    baska sorum yok.

    Ayrica saçmaladigin konu sadece ramle alakali bir durum. kendini kasma fazla yazik sana 🙂 kopyala yapistir keyfine bak. veritabanina eriseyim sorgu yazayim diye yirtindigin kodlar hep bir yerden sonra tekrar zaten. farkli fonksiyonlarda ayni tekrari kullaniyorsun. entity framework bunu ortadan kaldirmis.

    tabi yaptigin is veritabanindan iki tane sorgu çekmekten ileri gitmiyorsa, bence kullanma bu yapiyi seni kod yazdi bisi yapti sansinlar :))

    "Hamala sormus çocuk neden sirtinda devamli yük tasiyorsun. hamal demis vücut gelistiriyorum" iyi vücut gelistirmeler…

  21. güzeldir ise yararlar ama en iyisi senin yazdigin gibidir ayriyetten notepad degil visual studio kullaniyorum. birde sunu unutma en iyi programci kopyala yapistir yapan programcidir;)

  22. Ben yapilmaz demiyorum bir bankanin en riskli yapisi entity framwork ile yazilir süphesiz fakat o modulde bir yogunluk olursa sen ozaman gör showu ayriyetten ciddi ciddi facebook yapisi 2 ayda yazilabilir sonuçta sablon belli yazarsin facebookun aynisi olur fakat facebook 200 milyon anlik kullaniciyi karsilar o adamin sistem 10 bin lerden sonra sapitir programciya göre degisir ama sapitir yani önemli olan alt taraftaki sistemi kurmaktir aç oku hangi teknolojiler kullanildigina bir bak the social network filmini izle mark kendi yaptigi o….. lugunu nasil anlatmis iyi izle.. ayrica o ram olayi nedir ya okadar saçma bisi sölemissinki :d bi ramle sen iyi bir programciyi nasil karsilastirdin ilginç dogrusu. ve ben bu tepkileri sürekli alicam galiba bunun nedenide tembellige isinize kolay geleni benimseyip savunmanizdan geliyor.. bu yapi kötü demiyorum süüper ama .neti seç diye yaptiklari reklamlar. g&uu

  23.  Ayrica ENTITY FRAMEWORK ÖZELLIKLE BANKACILIK YAZILIMLARI GIBI CIDDI YAZILIMLARDA FAZLASIYLA KULLANILIYOR. Bilgine…

  24. Hakki bey yorumlari basindan beri okudum ve sunu anlamiyorum; basindan beri .net olayina özellikle notdefteri gibi editörlerde kod yazmaya alismis, kopyala yapistir yaptiklari halde tüm kodlari kendilerine mal etmis programcilarimiz yok efendim .net hersey hazir veriyor ben kod yazacam ben hastasiyim kod yazmanin falan filan diye yirtindilar. simdi nerdeler çesitli firmalarda .nette proje gelistiriyorlar.

    demissinki su kadar hizli çalisiyor. Allah askina kaç milisaniye hizlandirdin merak ediyorum o kadar önemli mi bu. su anki yapilarda buna hiç bakmazlar neden mi? seni tutup ayda 1000$-1500$ fazla vereceklerine 100$ verip fazladan ram takirlar ham kisa sürede bitiyor hem zamandan tasarruf hem de koddan tasarruf ederler. 

    Forumun birinde de benzer bir arkadas ciddi ciddi facebook u 2 ayda yazabilecegini iddia edip ücretini yazmis. Lütfen bir konu hakkinda yazarken o konu hakkinda gerçekten bilg

  25. hakkicim bu konudan güzel makale çikar 🙂 sen bu konuyla ilgili güzel bi makale hazirlasana ya

  26. Kendi yapima uygun bir yöntem izledigim için enttity framework dan daha hizli çalisiyor sana anlatmak istedigim enttity framework yazilimcilarin yapmak istedigi her türlü seyi düsündügü için haliyle performans kaybi olusuyor mantiksiz gelmedi sanada sanirm =)

  27. yani simdi sen entity framework den daha iyi bir yapimi kurdun ? vayy süper bence. bunu paket haline getirip dagitmali ve diger ORM toollari ile rekabet etmelisin.

  28. örn: urunList.Dispose();

    AktiveInstance Yapisi sadece gidip kullanilacak metodu ram ‘ e yüklüyor bu sayede dll in tamamini ram ‘ e yüklemiyorum her islemden sonra ise dispose metodumu çagriyorum bunu saten .net yapiyor demeyin makeleleri okumanizi öneriyorum ve emin olun dispose metod unu etkili bir sekilde kullanmaya basladiktan sonra hersey tikirinda çalisiyor.. yapida 4 adet katman bulunmakta 1. si degiskenlerin bulundugu katman 2.si Liste katmani 3. sü parametreleri ileten katman ve 4. sü parametreleri alip veritabanina yollayan katman performans konusunda sikinti yasamiyorum.. ve .net ‘ de söyle bir sikinti var bir sey hazirsa yavas olmaya mahkumdur bunun nedeni ise microsoft un beceriksizliginden degil herseyi düsünüp yazmalaridir kimin ne amaçla kullanicagini  Kimin ne amaçla kullanacaklarini kestirmeleri mümkün degildir ve hepsini tek tek yazmak zorundalar..

  29. Ben bi program yazdim veritabanini gösterdigim zaman procedure lerimide yaziyor katmanimida olusturuyor benim bir gridview i doldurmak için yazdigim kod ise

    Örn:  gridview1.DataSoruce = UrunlerDBPrmtr.ActiveInstance.SelectList();

              gridview1.DataBind();

    Ve Ayrica

    Urunler UrunItem = UrunlerDBPrmtr.ActiveInstance.Select(ID)

    bool sonuc = UrunlerDBPrmtr.ActiveInstance.Delete(ID)

    bool sonuc = UrunlerDBPrmtr.ActiveInstance.Update(Urunler)

    UrunlerCollection urunList =  UrunlerDBPrmtr.ActiveInstance.SelectList();

     

    Ayrica entity frameworkde database degistigi an entity framework u tekrar göstermeniz gerekiyor benim yapida ise yeni bir tablo veya kolon geldigi zaman programi açip gereken yerleri seçmem yeterli..

    ayrica bu yapinin dispose metodlarida mevcuttur otomatik yaziyor bunuda

    Örn:

  30. Güzel.. Ama Entityden sorgular için Linq To Sql cümlegi yerine Entity Sql sorgulari yazilsa performans biraz daha artar bunu da belirtmek lazimdi sanki. Hem Entity Framework 4 le gelen Stored Prosedure Complex type destegiyle tadindan yenmez. Senin de gönlün olsun Hakki kardes. Yaz prosedurunu çagir istedigin gibi. CRUD islemleriyle ugrasacagina uygulama katmanina odanlan.

  31. Gezgin kardesim bak gece 3 olmus ve 6:30 da kalkip ise gidicem ve sen suan uyuyosun aramizdaki fark bu 2 senedir bu isi yapiyorum emin ol Microsoft Dynemic ‘ le benzer yapida projeler gelistiriyorum buyur makalelerini görelim meydan senin lafinla degil bilginle ez buyur ya =))

  32. arkadaslar bu konuyu burda kapatalim. makaleyi ben yazdim, devaminida yazacagim.isteyen istedigini kullansin. birbirimize böyle konusmak dogru degil. Eger seviyeli bir tartisma olacaksa foruma ORM vs Non ORM diye bir baslik açin orda teknik olarak tartisin konuyu 🙂 

  33. hakki sen düsündügümden de ezik bir çocukmussun ya 🙂 tek basina proje gelistirip bunlarada büyükmü diyorsun. farkinda olmadan kendi ORM ni gelistirdiysen, demekki ne yaptiginin farkinda bile degilsin daha. kendi ORM gelistirip kullanan birisi nasil olurda diger ORM lere laf atar. anca cahil olursa atar iste. her kod yazacak adam oturup ORM mi gelistirsin yani ? yazdigin picturebox makalesi kötü demiyorum ama alti üstü baslangiç düzeyinde bir picture box makalesi. ayrica picture box hazir bir kontrol degilmi. senin gibi bir dahii ! kendi pictureboxini gelistirmezmi. senin gibi zeki ! bir çocuk bir jpeg dosyanin içerigi ve resmi nasil sikistirdigi hakkinda bilgi sahibi olup, kendi pictureboxini gelistirmeli bence.

    neyse ya sen lisedesin galiba. daha çok yolun var. biraz büyü bisiler ögren sonra tartisalim senle. seviyeyi çok düsürüyosun ç&

  34. ….

    neyse ya sen lisedesin galiba. daha çok yolun var. biraz büyü bisiler ögren sonra tartisalim senle. seviyeyi çok düsürüyosun çünkü. (seviyeyi düsürmen lise ögrencisi oldugun için degil, ezik oldugun için, liseliler alinmasin bizde bir zamanlar lisedeydik).

     

     

     

     

     

  35. Gezgin kardesim zoruna gitmesin ama zaten is hayatindayim ve su bahsettigin projeleri tek basima yapiyorum hani su microsoft 2 un Dynamic CRM programlari varya o tür seyler yaziyorum hatta kendi ORM mi yazmisim haberim yok ezmiyim seni daha fazla burda ayrica if else de en önemli kodlardan birisidir sen benim picturebox makalemi okudunmu 11 bin kisi okumus benim için güzel bir duygu =)) ben hayatimi gözlerimi verdim bu ugurda gözlerimden yaslar geliodu kod yazarken sabah kalktigimda gözlerimin içi kizarik yapma bunu yapma bunu goooolllllllllllll

  36. 10-15 adet tablosu olan 2-3 kisi ile yazilan projelerde bu tür frameworklerin yoklugunu pek anlamazsin. ama yüzlerce tablodan ve yüzlerce sayfadan olusan bir otomasyonu 50 kisi ile gelistiriyorsan o zaman bu tür frameworkle hayat kurtarir. umarim mezun olup is hayatina atildigin zaman bu tür projelerde yer alma sansi bulursun.

  37. Hakki bey, takip ettigim kadariyla ögrencisiniz. Biz o yollardan geçeli senin ögrencilik hayatin kadar olmustur. Bizim ögrenciligimizde de if else i ögrenince herseyi bildigini sanan çocuklar vardi. arada ekranada hello world yazdiriyorlardi.neyse ögrenirsin zamanla. 

    Eger frameworklere karsiysan bu kadar gidip low level programlama ile ugras ne isin var .net le. hem .net kullanacaksin hemde frameworke tembel isi diye çamur atacaksin. Eger gerçekten bilerek konussaydin .net içindeki string sinifi bile kullanmazdin. oturur kendi string sinifini yazar, kendi textboxini kodlardin. Gelisime açik olun biraz. bir yöntem isinizi kolaylastiriyorsa vede artilari eksilerinde daha azsa bu yöntem kullanilmaya degerdir. 

    10-15 adet tablosu olan 2-3 kisi ile yazilan projelerde bu tür frameworklerin yoklugunu pek anlamazsin. ama yüzlerce tablodan ve yüzlerce sayfadan olusan bir oto

  38. Merhaba, bir projemde entityframework kullanmayi düsünüyorum, ancak bu sayede ögrenecegim galiba. anlattiklariniz çok isime yaradi, ayrica ayni yapi ile insert ve update islemlerini nasil yapacagimizida anlatabilirseniz çok iyi olur. tesekkürler

  39. Simdiye kadar adam gibi bir projede çalismamis kendini programlama biliyor sanan çol çocuk anlamaz bu tür yapilardan.  Eline saglik mskunt

  40. Yahu bu makale nedir Allah askina ya 🙂 Yahu Allah askina diyorum birakin artik su dandik hazir kontrolleri, makale böyle mi yazilir yahu.

  41. eger milisaniyelerin bile önemli oldugu bir uygulama gelistiriyorsan tabiki performansi seçersin. ama isin içinde transactionlari kolay yönetebilecegin, cache islemlerini kolayca yapabilecegin, standart ve güvenli bir yapi istiyorsan ORM tam sana göre 🙂

  42. hakkicim düsünecek bisi yok. büyük projelerde ORM kullaniliyor. gerekirse sirketlere ait yazilim ekipleri kendi ORM lerini gelistirip kullaniyorlar. hatta çogu sirket microsoft gibi büyük firmalardan danismanlik alip ORM tasarimini yaptiriyorlar. sadece entityframeworke takili kalma. suan javacilar hibernate kullaniyor. .net  ciler .hibernate ve entity framework. tabiki daha ismini sayamadigimiz bir çok araç var.  Sen düsün bakalim büyük firmalar nedne ORM kullaniyorlar. Maliyet, zaman, tum developerlarin ayni yapiyi kullanarak veriye ulasmasi, bakim kolayligi, hatalarin azaltilmasi gibi gibi. 

    performans konusunda söylediklerin de çok haksiz degilsin. veritabaninda direk select yazmak ile bir mapping araciligi ile veri çekmek tabiki zaman açisindan fark doguracaktir. ama artilari ve eksileri degerlendirmek gerekiyor çogu zaman. eger milisaniyelerin bile &ou

  43. Hayir abi sen yanlis düsünüyorsun hiç bir büyük projede bu tür yapi kullanilmaz bununda altina çok rahat imzami atarim çok harbi diyorum bi düsün sadece abi.. sadece düsün

  44. sen eski usule devam et hakkicim. senin 1 ayda cikardigin isi insanlar bu tür yöntemlerle 1 haftada çikarsinlar. sonra piyasada rekabet edebilirsin ne ala. performans farki muhakkak olacak ama kastettigin kadar abarti bir fark yok (tabiki güzel bir veri yapisi ve kodlama yaparcaksin)

    Eger gelistirdigin uygulama bir otomasyonsa tün veritabani islemlerini tek tek yazmak hiç mantikli degil artik. Artik insanlar bu tür süreçlerde vakit kaybetmeyip diger asamalara yogunlasabiliyorlar,  Ama sen yinede dogru bildigini yapmaya devam et bence.

  45. Birebir gerçegini gördüm gerçekten büyün bir projeydi fakat web sitesi biraz zor açiliyordu =)) yani demek istedigim al yaptim iste ne halin varsa gör seklindeki web site ler yapmak için birebir.. abi lütfen bana sunu övme ya hazir yapi iste sende biliyosun tembel isi oldugunu amelelikten kurtulmaya çalisan çakallik yapiyim diyen ergen yazilimcilar kullaniyor bunu töbee 😀 where(p => p.Adi) seklindeki veri çekme metodlarindan farki varmi allahini seviyosan sen alayini yükle ram ‘ e sonra arasindan Adi’ na göre ele oldu komserim asin beni .s

  46. Eger bahsettigim programa veritabanini veriyorsan ve oda sana veritabani katmanini olusturuyorsa, sen zaten bir ORM kullaniyorsun demekttir. Küçük çapli projelerde ORM kullanmak belki çok avantaj saglamaz fakat onlarca insanin 100 lerce tablo ile iliskili bir veritabani ile program gelistirdiklerini düsünürsen böyle bir yapi uygulama gelistirme sürecini çok hizlandirir. Buda proje maliyetini çok asagi çektigi gibi hata oranini da azaltir. Eger ORM kullanmayi sadece kod yazmaktan bunalmak diyorsan büyük projelere daldigin zaman yeniden konusuruz 🙂

    Windows form uygulamasi yazarken nasil textbox nesnesini oturup kendin yeninden yazmiyorsan ORM kullanarak veritabani katmanina ulasmayida artik kendin yazmiyorsun. Tabiki sen oturup sql ve programlama bilgini konusturup kendi ORM’ni yazabilirsin. Bu çok daha güzel olur.  

  47. nesnenlerin bulundugu uygulamanin yasam süresi boyunca sadece bir kez new diyerek türetilirek ram ‘ e aktarilir daha sonraki çagirilma esnalarinda zaten hali hazirda olan nesne gelir yenisi türetilmez.. buda demek oluyorki ram siseer siseer siseer buumm 😀 ben bunu bi kütüphane projemde kullanmistim zaten evet çok kullanisli bana select yazdirmiyor tesekkür ediyorum ama her hazir yapi yaninda performans kaybinida beraberinde getirir.. ben ORM yerine adini dallama koydugum bir programimi kullaniyorum sag olsun veritabanini verdigim zaman bana tüm katmani çikartiyor ayrica ToList gibi metodlarida tik tik yerine kendisi yaziyor cs dosyasina.. bana sadece arayüz kalmis oluyor. onuda ben yazarim geregi yok =))

  48. wizard kismi isin sadece baslangici hakkicim. suan piyasada bunlar kullaniliyor. veri tabaninda  select ve insert yazma isi eskide kaldi. artik isler bu tür ORM ler kullaniliyor. Ögrenmeni tavsiye ederim.

  49. Evet kod yazmadan bunalan bir yazilimci görüyorum wizardcilar için eli öpülesi makale =))

HakkiX için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir