14 Nisan 2016 Perşembe

İzlediğim Açık Kaynak Projeler

Genel olarak .Net teknolojilerini kullanmaktayım. Eğer bu konuda piyasada durumlar nasıl ,hangi patternler nasıl kullanılıyor diye merak ediyorsanız açık kaynak projeler size yol gösterebilir. Githup'ta .Net konusunda bir çok popüler açık kaynak projeler bulunmakta. Hatta artık bu konuda Microsoft bile katkıda bulunuyor. Benim takip ettiğim ve incelediğim genel olarak web projeler.
Bunların başında NopCommerce,MVCForum,YAFNET gibi projeler bulunmakta.

NopCommerce adından da anlaşıldığı gibi bir e-ticaret projesi.  ASP.NET(MVC) kullanılarak geliştirilmiş bir proje. Plugin alt yapısına sahip.ORM olarak Entity Framework kullanılmış. Bir buçuk milyondan fazla indirilmiş bir proje.

MVCForum bir forum sitesi ancak StackOverFlow mantığında bir proje. MVC ve Entity Framework kullanılarak geliştirilmiş.
Genel özellikleri:
  • Çoklu dil özelliği
  • Puan sistemi
  • Postları düzenleyebilme
  • Badge sistemi (StackOverflowdaki gibi)
  • Roller
  • Taglama
  • RSS Besleme
  • Emotion
  • Dosya ekleme
  • Oylama sistemi (Kimin oyladığını görebiliyorsunuz)
YAFNET projesi de bir forum projesi. ASP.NET kullanılarak geliştirilmiş. Projenin demosundan genel özelliklerini inceleyebilirsiniz.

Projeler açık kaynak olduğu için hem kodunu inceleyebilirsiniz hem de kurup kendi işiniz için kullanabilirsiniz. 


6 Nisan 2016 Çarşamba

Kitap Severler İçin Kitap Öner

Bu aralar boş zaman buldukça kitap okuyorum. İnternet üzerinde kitap önerisi için bulabileceğiniz bir çok web sitesi var. Yeni açılan kitaponer.com sitesi de bunlardan biri. Ancak sitenin tasarımı ve kullanımı gayet güzel. Henüz kitap veritabanı çok geniş olmasa da zamanla o sorunu da aşacaklarını düşünüyorum.  Site içinde yapacağınız işlemlerde puanlama sistemi mevcut. Her yorumunuz ,beğeniniz sistem üzerinde puanınızın artmasını sağlıyor. Site yeni açıldığı için yapacağınız işlemlerde top 10 a girmeniz kolay.

Entity Framework VS SQL

Projelerimde genel olarak kullandığım teknolojiler web server tarafında ASP.NET MVC  veritabanı SQLSERVER ve kodlamayı  C sharp kullanarak gerçekleştiriyorum.

Entity Framewok 'e yeni geçen biri olarak kolaylıklarından ve sql bazlı sorgulama mantığıyla arasındaki genel farklılıklardan bahsetmek istiyorum. Aslında bu karşılaştırmaya genel olarak ORMler ile SQL arasındaki karşılaştırma diyebiliriz.

ORMlerin en büyük kolaylıkları sql sorgusu yazmadan veritabanı işlemleri yapabilmenizi sağlamasıdır.  Domain Driven Development yapısı için uygundur.
Code-First çalışıyorsanız bütün gerekli işlemleri projenizin içine gömebilirsiniz.
Ancak bazı durumlarda bu özellikler performans konusunda sıkıntı yaratabilir.
Entity tabanlı çalışan bir sistem olduğu için hiç gerekmeyen özellikler her daim sql server tarafından çekilir. Uzak sql server kullanıyorsanız bu baya bir sıkıntı oluşturabilir.
Bunların dışında prosedürlerin performansı büyük çaplı sorgularda çok daha iyi bir sonuç için kullanmanız gerekebilir.

Mesela benim geliştirdiğim bir araç takip uygulamasında günlük 15 milyon kayıt kaydediliyor. Bu data boyutunda olan verilerinizin işlemlerini linq sorgularıyla client tarafta yapamazsınız. Veriyi listeye dolduramazsınız. Sistem kaynakları iflas edebilir. Sql server gibi bir veritabanı sunucusunun görevi burada büyük bir anlam taşımaktadır.

Verinin büyüklüğünden çok ne kadar zaman aralığında bu sorguların çalıştırıldığı önemlidir aslında.
Bir günlük veri çekebilirsiniz bir saatlikte çekebilirsiniz. Gerekli indexleri ayarladığınızda sorgularınız çok hızlı bir şekilde çalışabilir.

Kısacası Entity Framework kullanıyorsanız bile altında sql sorgularının çalıştığını unutmamak gerekir. Onun için her daim sql bilgilerinizi taze tutmanız önemlidir.