none
Veri erişim katmanı mı, Stored Procedure mi ?

    Genel Tartışma

  • Arkadaşlar merhaba. Birşey soracağım. Benim bir projem var. Bu projede veri tabanını genellikle Listeleme, Veri Ekleme, Update, Veri Silme işlemleri için kullanacağım. Ben bu projede kendime veri erişim katmanı hazırlayıp öyle veri eklemem mi daha kolay ve iyi, yoksa kendime güzel, parametreli işimi görecek birkeç Stored Procedure hazırlayıp veri eklemem mi daha kolay ve iyi. Yani kendimize bayağı uğraşığ oluşturduğumuz veri erişim katmanları yerine hemen bir Stored Procedure yapıp hemen iki satır kodla ;

    SqlCommand Command = new SqlCommand("EXEC Veri Ekleme");
    Command.ExecuteNonQuery();

    Eklemek daha mantıklı değil mi ?

    Birde veri erişim katmanıyla stored procedure arasında ne fark var ?

    21 Haziran 2012 Perşembe 21:05

Tüm Yanıtlar

  • Merhaba Abdulkadir NURKALEM ;

    Veri Katmanı Her Projede gerekli mi diye başlayalım bu soruya. HAYIR, Eğer Projende veritabanında bir kaç tablo varsa Katmanlı Mimari oluşturmayabilirsin.

    Yada LINQ,EF vb. gibi yöntemlere başvurabilirsin. Ama Daha büyük Projelerde oluşturmak saydıklarımıza göre Performans Kaybını çok çok daha azaltacaktır. Bunları göz önüne alıp Veri Katmanı hazırlayıp kullanabilirsinde kullanmayablirsinde, Orası sana kalmış.

    SP Kullanmalımıyım sorusuna cevap olarak ise SP ile herşeyden Önce müthiş bir güvenlik sağlamış olursun.. (bknz. Sql Injection)

    Yazacağın code miktarını da minumum seviyeye çekersin.

    Son Olarak verdiğin kod parçası ile çalışmak ne yazıkki sana bir fayda getirmeyecektir... Yine Bu Commanda parametreLER Eklemek zorunda kalacaksın .

    Ama sana Attığım mailde ki gibi bir yapı oluşturabilrsen.. Veri Erişim Katmanını bir kez Oluşturup Daha sonra her insert Yapmak istediğinde bir kaç satır Code ile insert işlemini yapar, sonuca ulaşabilirsin..

    Birde  SP kullanırken C# dan EXEC kullanmana gerek yok.. unutmadan da aşağıdaki gibi commandın türünü belirlemelisin

    cmd.CommandType = System.Data.CommandType.StoredProcedure;


    Jesus Promised The End Of All Wicked People, ODIN Promised The End Of All Ice Giants. I Don't See Many Ice Giants Around... exe[nokta]cute[at]live[nokta]com

    21 Haziran 2012 Perşembe 21:43