Yakup Buğra

Lucene.Net ile arama

Bir e-ticaret projesi yaptığınızı düşünün. Arama sayfasınız nasıl yapardınız? Input'a "Asus" kelimesi girdiğinde yapacağınız en şey an basit haliyle aşağıdaki sql sorgusunu çalıştırmak olacak.

Select * from dbo.Urun where dbo.Urun.Adi like '%Asus%'

Bu sorgu 1000 belki 10.000 ürün bulunan bir tablo için çok yorucu olmayabilir. Peki ya tablonuzda 500.000 ürün varsa?  Yaptığınız arama çok fazla performans kaybına ve kullanıcının saniyelerce beklemesine neden olabilir. İşte bu gibi durumları aşmak için kullanılan bir kütüphane Lucene.  Lucene.Net ise orjinali Java olan Lucene'nin C# ile yazılımış ve .Net geliştiricilerinin kullanımına sunulmuş .Net portu.Read More »Lucene.Net ile arama

Design patterns notları -1- factory pattern

Bundan birkaç gün önce Wrox'un Asp.Net Design Patterns kitabını okumaya başladım. Mvc kitaplarını bitirdikten sonra, mvc'yi hatim ettim diyemesem de bir sonraki aşama olan design patterns konusuna giriş yapmak istedim. Yazılım mühendisliği alanında ilerlemek, gelişmek istiyorsanız bu konuları bilmeniz gerekiyor. Lafı fazla uzatmadan konuya gelmek istiyorum. Factory pattern, adından da anlaşılacağı üzere fabrika gibi çalışan bir sistem. Kitapta verilen örneğe benzer bir örnekle anlatmak istiyorum. Projeyi buradan indirebilirsiniz. Read More »Design patterns notları -1- factory pattern

HtmlAgilityPack ile html parsing – C#

Geçtiğimiz günlerde html parsing ile ilgili küçük bir program yapmagerekiyordu. Biraz araştırdıktan daha önce de olduğu gibi html parsing içinde codeplex'te bir kütüphane bulmuştum. (we <3 codeplex) Bu yazıda Html Agility Pack kullanarak basit bir parser'ın nasıl yapılacağı hakkında bilgi vermek istiyorum. Öncelikle yeni bir windows application oluşturup Nuget Package Manager'dan HtmlAgilityPack paketini projeye referans ediyoruz. Ya da isterseniz buradan dll olarak indirip projeye ekleyebilirsiniz. Örnek uygulamayı buradan indirebilirsiniz. 

Entity Framework CodeFirst pluralizing sorunu

Projenizde EF Codefirst kullanıyorsanız eğer pluralizin sorunu ile karşılaşacaksınızdır. Şöyle ki mesela "Ogrenci" isimli bir tablonuz olsun. Siz bu tablonun model sınıfına  "Ogrenci" adını verin. EF veritabanında "Ogrencis" isimli bir tablo arayacaktır. Veritananındaki tablonuzun ismi "Ogrenci" olduğu için de böyle bir tablo yok diye bir hata verecektir. EF, model isimlerinin sonuna s(çoğul) takısı takarak veritabanına bakar. Bunu çözmek için aşağıdaki gibi context sınıfınıza bir kod parçası yazmanız gerekiyor. Read More »Entity Framework CodeFirst pluralizing sorunu

MSSQL’de trigger yazma

Trigger kelime anlamı olarak tetikleyici demektir. Trigger, SQL’de bir sorgu çalıştırdığımızda, başka bir sorgunun çalışmasını sağlamak için yazılan koddur. Mesela bir tablodan kayıt sildiğimizde, başka bir tablodan onunla ilgili bir kaydın silinmesi için kullanabiliriz. Yada bir tabloya eklem yaptığımızda başka bir tabloya da onunla ilgili olan bilgileri eklemek iin kullanabiliriz. Üç farklı işlem için trigger vardır. Bunlar; insert, update, delete sorguları içindir. Örnek verdiğimiz zaman daha iyi anlayacaksınız.Read More »MSSQL’de trigger yazma