• 30-05-2014, 22:46:42
    #10
    Zaman ayırıp bu kadar detaylı cevap verdiğiniz için, teşekkür ederim.
  • 11-06-2014, 09:10:16
    #11
    Üyeliği durduruldu
    Database Framework olarak Entity Framework' umu önerirsiniz ?

    @PcMaker kafamdaki çoğu soruya çözüm buldum. yazdıklarında eline sağlık.
  • 11-06-2014, 17:14:03
    #12
    EF kullanırsan çok az sql yada hiç sql kullanmaz orm nin tadına varırsın, ama dikkatsiz kullanırsan bu sefer performans kaybedersin.

    PETAPOCO, Service Stack orm lite, Dabber bunlar çok hızlı sonuç veren micro orm ler. Elle kod yazarsın ama sqlconnection(dbconnection) a extension oldukları ve direkt db ye bağlandıkları için performans %80 - 90 artıyor.
  • 12-06-2014, 19:33:55
    #13
    PcMaKeR adlı üyeden alıntı: mesajı görüntüle
    EF kullanırsan çok az sql yada hiç sql kullanmaz orm nin tadına varırsın, ama dikkatsiz kullanırsan bu sefer performans kaybedersin.

    PETAPOCO, Service Stack orm lite, Dabber bunlar çok hızlı sonuç veren micro orm ler. Elle kod yazarsın ama sqlconnection(dbconnection) a extension oldukları ve direkt db ye bağlandıkları için performans %80 - 90 artıyor.
    Proje geliştirirken kendi ORM'mi oluşturmaktayım. EF'ye kıyasla hissedilir performans yaşanır mı?

    Kendi yapımı oluşturunca projeye daha hakim hissediyorum kendimi bu yüzden kodlamam daha rahat oluyor.
  • 12-06-2014, 23:15:14
    #14
    aliarbak adlı üyeden alıntı: mesajı görüntüle
    Proje geliştirirken kendi ORM'mi oluşturmaktayım. EF'ye kıyasla hissedilir performans yaşanır mı?

    Kendi yapımı oluşturunca projeye daha hakim hissediyorum kendimi bu yüzden kodlamam daha rahat oluyor.
    Performans olarak EF en yavaş orm lerden biridir zaten. Eğer yerleşik sınıfları kullanıyorsan performansın yüksektir ama EF nin en büyük artısı linq ile sorgu oluşturman ve bir çok kodlama işini ve şablon oluşturmaları visual studio ya bırakman çok rahatlatıyor ve kodlama zamanın çok azalıyor.

    Ben en son 2 yıl önce kendi DAL ımı yapıyordum. Senin yaptığında büyük olasılık DAL dır.(Data Access Layer) ORM ise ap ayrı bir konu. Hiç sql kodu yazmadan tamamen DAL ın kendisi senin yerine işlemleri yapacak. Şimdi diyeceksin ki e ben zaten yaptırıyorum bu işlemi.

    http://en.wikipedia.org/wiki/Object-relational_mapping

    Açıkçası şuan linux üzerinde nginx + mono + asp.net mvc 4 ü çalıştırmaya çalışıyorum. Bir projemi komple ubuntu server a taşıyacağım. IIS ve windows ile yetirince ASP.NET te taklalar attım. Windows bellek kullanımı konusunda yüksek ram tüketiyor. Freebsd üzerinde tam istikrarlı çalışmaya başladığında onun üzerine geçireceğim büyük olasılık projelerimi. Şimdilik ubuntu server ile yola devam.

    Mono Şuan için:
    MVC 5 çalışmıyor, çünkü async yapısı daha tamamen geçirilmedi mono ya ama öbür türlü Web Forms ve MVC 4 ve öncesi çok tutarlı çalışıyor.

    Bitirirsem kendi sitemi açıp oradan yayınlayacağım makaleleri.
  • 13-06-2014, 07:46:08
    #15
    Üyeliği durduruldu
    PcMaKeR adlı üyeden alıntı: mesajı görüntüle
    Performans olarak EF en yavaş orm lerden biridir zaten. Eğer yerleşik sınıfları kullanıyorsan performansın yüksektir ama EF nin en büyük artısı linq ile sorgu oluşturman ve bir çok kodlama işini ve şablon oluşturmaları visual studio ya bırakman çok rahatlatıyor ve kodlama zamanın çok azalıyor.

    Ben en son 2 yıl önce kendi DAL ımı yapıyordum. Senin yaptığında büyük olasılık DAL dır.(Data Access Layer) ORM ise ap ayrı bir konu. Hiç sql kodu yazmadan tamamen DAL ın kendisi senin yerine işlemleri yapacak. Şimdi diyeceksin ki e ben zaten yaptırıyorum bu işlemi.

    http://en.wikipedia.org/wiki/Object-relational_mapping

    Açıkçası şuan linux üzerinde nginx + mono + asp.net mvc 4 ü çalıştırmaya çalışıyorum. Bir projemi komple ubuntu server a taşıyacağım. IIS ve windows ile yetirince ASP.NET te taklalar attım. Windows bellek kullanımı konusunda yüksek ram tüketiyor. Freebsd üzerinde tam istikrarlı çalışmaya başladığında onun üzerine geçireceğim büyük olasılık projelerimi. Şimdilik ubuntu server ile yola devam.

    Mono Şuan için:
    MVC 5 çalışmıyor, çünkü async yapısı daha tamamen geçirilmedi mono ya ama öbür türlü Web Forms ve MVC 4 ve öncesi çok tutarlı çalışıyor.

    Bitirirsem kendi sitemi açıp oradan yayınlayacağım makaleleri.
    Performans olarak Entity Framework en yavaş ORM'lerden biri demişsiniz, dikkat ettiğimde çoğu firmalar EF ile çalışıyor ve en yaygını EF diye biliyorum. Sizin önerilerinizi alabilirmiyim ORM konusunda.
  • 13-06-2014, 09:17:40
    #16
    Quismo adlı üyeden alıntı: mesajı görüntüle
    Performans olarak Entity Framework en yavaş ORM'lerden biri demişsiniz, dikkat ettiğimde çoğu firmalar EF ile çalışıyor ve en yaygını EF diye biliyorum. Sizin önerilerinizi alabilirmiyim ORM konusunda.
    https://code.google.com/p/dapper-dot-net/
  • 13-06-2014, 09:47:07
    #17
    Üyeliği durduruldu
    en hantalı Entity olarak görüyorum linkte. İlginç. neden en popüleri entity olarak görünüyor ve kullanımı yaygın acaba ?
  • 13-06-2014, 11:07:19
    #18
    Microsoft sağolsun, visual studio ya entegre, durmadan geliştiriliyor, wcf data services ile kardeş gibi çalışıyor, tamamen linq ile tek satır sql kodu yazmadan işleri hızlandırıyor, lazy loading var, stored procedure'leri tıklama ile entiry e bağlamak çocuk işi, dökümantasyon çok güçlü.

    Bunlar artı yönlenleri. Ama eksikleri var. Misal en gıcık olduğum: select işleminde isimsiz sınıf tanımlanamıyor! Tip çevirmelerde illa bir değişkeni göstermek gerekiyor. Örnek:

    Alıntı
    //hata fırlatacak!
    dataContext.tablo.Where(p=>p.Id == Convert.ToInt32("1"));

    //çalışacak.
    int id = 1;
    dataContext.tablo.Where(p=>p.Id == id);
    bu sorun değil, tamamen okunaklı ve type safe bir kod ama bazı durumlarda fıtık edebiliyor.

    şu ise feci küfür savurtuyor!
    Alıntı
    List<tablo> tablo = dataContext.tablo.Where(p=>p.Id >10 && p.SilindiMi == false).Select(p=>new Tablo{Id = p.Id, SilindiMi = p.SilindiMi, Adi = p.Adi}).ToList();
    Direkt hata fırlatacak bu. Kompleks bir sınıf istedin ve ben bunu çeviremem diyecek! LinqToSql de bu direkt çalışıyordu...

    Yukarıdaki kod şunu üretip geriye propertieslerine atanan verileri vermesini beklersin:

    select t.Id, t.SilindiMi, t.Adi from Tablo t WHERE t.Id>10 and t.SilindiMi = False;

    Ama hata fırlatıyor!

    Şöyle yaz diyor:

    Alıntı
    List<tablo> tablo = dataContext.tablo.Where(p=>p.Id >10 && p.SilindiMi == false).ToList().Select(p=>new Tablo{Id = p.Id, SilindiMi = p.SilindiMi, Adi = p.Adi}).ToList();
    bu sefer de sorguda bütün sütunlar çekiliyor! Ve bellekte tekrar foreach dönerek senin listeni dolduruyor! Oluşturduğu sorguları görsen korkarsın. IntelliTrace i açıp debug anında bir breakpoint koy şu satırın altına ve dataContext üzerinde dur. Oluşan sorgular insanı korkutuyor.

    Anlamadığım şu: EF iç içe sorgu oluşturuyor. Bu da performansı çok düşürüyor. Özellikle veri çekip bu veriyi farklı bir sorgu ile tekrar işlemek gerektiğinde resmen felç ediyor. İşlemcinin tavan yaptığını gördüm bir projede. İşin yoksa kastır dur.

    Bir çok orm tool var:

    Telerik:
    http://www.telerik.com/data-access/g...tity-framework

    Karşılaştırmalar:
    http://stackoverflow.com/questions/3...amework-4-ctp4

    Valla en hızlısı dabber ve ardından petapoco geliyor. Ama amelelik yaptırıyor mu? Evet, dizayn aracı yok. 4T template kabul ediyorlar ama uğraşıyorsun.