Merhaba değerli arkadaşlar;
Bu makalemde sizlere SMO den bahsedeceğim.
Örneğin, bir katmanlı mimari ile yapacağımız bir projemiz var. Bunun için tek tek class lar oluşturum propertylerimizi tek tek yazmamız gerekiyor. Buda tabi her seferinde yeni bir projede zamanla sıkabiliyor insanları şahsen beni çok sıkıyor hele birden 10 20 tane kolon olan tablolar yada 20 25 tane tablo olan bir veritabanına denk geldiğimde şöylebi duruyorum. Ama SMO kullanarak sizlerde istediğiniz gibi kendinize bir generate sistemi yapabilirsiniz. Ama ben bu konu hakkındaki ilk makalemde buna deyinmeyeceğim sadece sizlere SMO nun başlangıcını anlatacağım lafı fazla uzun tutmadan gelişmeye giriyorum.
Öncelikle SMO kullanarak kod yazmaya başlamadan önce referans göstermemiz gereken 5 tane DLL imiz var bunlar;
- Microsoft.SqlServer.ConnectionInfo
- Microsoft.SqlServer.Smo.dll
- Microsoft.SqlServer.SmoEnum.dll
- Microsoft.SQLServer.sqlenum.dll
- Microsoft.SqlServer.Management.Sdk.Sfc.dll / / SQL Server / VS 2008 sadece
Yukarıdaki gibidir. Diyeceksinizki arkadaşım biz bunları nerden bulacağızda referans vereceğiz ?
- SQL Server 2005 derlemeleri Konum C: \ Program Files \ Microsoft SQL Server \ 90 \ SDK \
- SQL Server 2008 derlemeleri Konum C: \ Program Files \ Microsoft SQL Server \ 100 \ SDK \
işte bu DLL ler yukarıdaki dizinlerde mevcut.
Ad |
Amaç |
Microsoft.SqlServer.Management.Common |
Bu bir SQL Server örneği için bir bağlantı yapmak ve doğrudan Transact-SQL deyimlerini çalıştırmak için gerekli olacak sınıfları içerir. |
Microsoft.SqlServer.Management.smo |
Bu da çekirdek SMO işlevleri için sınıfları sağlar, tüm SMO uygulamalarda gereken temel ad alanıdır. Bu yardımcı program sınıfları, örneğin sınıflar, numaralandırma, olay işleyicisi türleri ve farklı istisna türleri içerir. |
Microsoft.SqlServer.Management.smo.Agent |
Bu İşi yönetmek için örneğin, Uyarılar vb, SQL Server Agent yönetmek için sınıfları sağlar |
Microsoft.SqlServer.Management.Smo.Broker |
Bu SMO kullanarak Service Broker bileşenlerini yönetmek için sınıfları sağlar. |
Microsoft.SqlServer.Management.Smo.Wmi |
Bu SQL Server, Windows Yönetim Gereçleri (WMI) temsil sınıfları sağlar. Bu sınıflar sayesinde, başlatmak, durdurmak ve SQL Server hizmetleri duraklatma, protokolleri ve ağ kitaplıkları vb değiştirebilirsiniz |
İlk olarak SQL Server oturum açma adı ve SQL Server kimlik doğrulaması kullanarak bir SQL Server örneğine bağlanacağız.
LoginHelper.cs class ımızda login işlemlerini yaptık.
DatabasesHelper.cs class ımızda ise veritabanları,tablolar,kolonlar vb. verilerimizi alıyoruz.
Be bu class ta procedure,function,property gibi işleemleride ekledim ama uygulamada kullanmadım daha sonraki makalemde anlatacağım çünkü.
CommonHelper.cs class ımızda ise forms controllerini doldurma işlemleri yaptım.
Son olarak uygulamamızda bu görüntümüz oluşuyor. Eğer
windows authentication ı seçerseniz kullanıcı adı seçmeden bağlanabilirsiniz.(Tabi yetkiniz var ise).
SMO o ile neler yapabilirsiniz peki ?
1- Kendi kod üreticilerinizi oluşturabilirsiniz.
2- Sql serverı dışarı açmadan bir uygulama yazıp bu uygulamanız üzerinden kontrol edilmesini sağlayabilirsiniz.
3- Şimdilik aklıma gelenler bunlar
Bir sonraki aşamada back up restore işlemlerinide anlatacağım ve daha sonra kendi kod üreticimizi nasıl yaparız onlarıda anlatmaya çalışacağım.
Çalışma dosyasını SMO indirebilirsiniz.