Saklı yordamları kullanmak bir yoludur ve yıllardır yaygın olarak kullanılmaktadır.
C # (veya herhangi bir .NET dili) SQL Server veritabanlarıyla etkileşim kurmanın daha modern bir yolu Entity Framework kullanmaktır. Entity Framework'ün avantajı, daha yüksek bir soyutlama düzeyi sağlamasıdır.
Microsoft'tan alıntı yapmak için ( https://msdn.microsoft.com/en-us/data/jj590134 ):
ADO.NET Entity Framework, geliştiricilerin doğrudan ilişkisel bir depolama şemasına karşı programlama yapmak yerine kavramsal bir uygulama modeline göre programlama yaparak veri erişim uygulamaları oluşturmalarını sağlar. Amaç, veri odaklı uygulamalar için gereken kod ve bakım miktarını azaltmaktır. Entity Framework uygulamaları aşağıdaki avantajları sağlar:
- Uygulamalar, mirasa sahip türler, karmaşık üyeler ve ilişkiler dahil olmak üzere daha uygulama merkezli bir kavramsal model açısından çalışabilir.
- Uygulamalar, belirli bir veri motoruna veya depolama şemasına sabit kodlanmış bağımlılıklardan kurtarılır.
- Kavramsal model ile depolamaya özgü şema arasındaki eşlemeler, uygulama kodunu değiştirmeden değişebilir.
- Geliştiriciler, muhtemelen farklı veritabanı yönetim sistemlerinde uygulanan çeşitli depolama şemalarıyla eşleştirilebilen tutarlı bir uygulama nesne modeliyle çalışabilir.
- Birden fazla kavramsal model, tek bir depolama şemasına eşlenebilir.
- Dille tümleşik sorgu (LINQ) desteği, kavramsal bir modele karşı sorgular için derleme zamanı sözdizimi doğrulaması sağlar.
Bir ORM'ye Karşı Saklı Yordamların kullanımı, özellikle güvenlik ve mantığın bulunduğu yerlerde dengesizlikleri içerir.
SQL Server ile geliştirmeye yönelik "klasik" yaklaşım, uygulama mantığının depolanan yordamlarda ve programların doğrudan güncelleştirilen depolanmış yordamları yürütmek için güvenlik hakları verdiği programlarda kalmasını sağlamaktır. Buradaki konsept, saklı prosedürlerin uygulama (lar) için iş mantığı katmanı olduğudur. Teori sağlam olsa da, çeşitli nedenlerle lehine düşme eğilimi vardı, bunun yerine iş mantığını C # veya VB gibi bir programlama dilinde uygulamak. İyi uygulamalar, endişelerin ayrılması vb. Dahil olmak üzere kademeli bir yaklaşımla uygulanmaktadır, ancak MVC gibi bir modeli takip etme olasılığı daha yüksektir.
Veritabanı yerine ORM'de mantık uygulamasının bir dezavantajı, veritabanından sorumlu olanların (DA veya DBA) veri bütünlüğü kurallarında hata ayıklama ve test etme kolaylığıdır. Çekten tasarruf hesabınıza para aktarmanın klasik örneğini ele alalım, bunun atomik bir iş birimi, yani bir işlemde sandviç haline getirilmesi önemlidir. Bu tür bir aktarımın sadece saklı bir prosedürle yapılmasına izin verilirse, DA ve denetçilerin saklı prosedürü KG için nispeten kolaydır.
Öte yandan, bu, Varlık Çerçevesi gibi bir ORM yoluyla yapılırsa ve üretimde, nadiren de olsa, paranın kontrol edilmesinden alındığı ancak tasarruflara konulmadığı, özellikle de birden fazla programın potansiyel olarak dahil olduğu durumlarda, hata ayıklamanın çok daha karmaşık olabileceği keşfedilir. Bu, büyük olasılıkla, belirli bir dizide vb. Meydana gelmesi gereken tuhaf donanım sorunlarını içeren bir uç durum olacaktır.