YazilimDevi.Com {..} Yazılım Devi Olacaksın :)  
Kullanıcı Adı :
Şifre :
 
   
  En Çok İzlenen KonularAnlatım
İzle  C# ile Ado.NET-Tablo Verilerini Projemize AktaralimEngin Demirog
İzle  Active Directory Kurulumu (1)Salih Demirog
İzle  Exchange Server 2003 KurulumuSalih Demirog
ASP.NET
ASP.NET AJAX
BILGISAYAR
C#
CRYSTAL REPORTS
CSS
LINQ
MS ACCESS
MS EXCEL
MS POWERPOINT
MS WORD
POCKET PC
SQL
SQL SERVER
VISUAL BASIC
WPF
ISA SERVER 2006
MS EXCHANGE SERVER
MS OUTLOOK
MS SERVER 2003-2008
 
 

SQL Server'da Http Endpoint Olusturarak IIS Olmadan WebServis Kullanmak
Bir veri tabani uzmani, ya da programcisi olarak hiç ummadiginiz zamanlarda alakasiz durumlarla karsilasirsiniz. Bazen “ne isime yarayacak ki, ben zaten onu baska yollarla da yaparim” dediginiz sey karsiniza bir an da çikiverir. O olmazsa olmazdir.
 
Herhalde SqlServer 2005 ve sonrasinda gelen EndPoint ler az önce anlattigim durumlara örnek olarak verilebilir.
 
EndPoint nedir peki! Endpointler kullanicilarinizin(client) servislerinize nasil ulasacagini berlirleyen aracilardir. Dogal olarak URL seklinde olusurlar. WCF’in gündemimizi isgal etmeye baslamasiyla çogumuz bayagi ilgilenir olduk zaten.
 
Bu yazimda Stored Procedurelerimizi(artik SP diyecegim) EndPoint olarak nasil WebServis methodu gibi olusturacagimiza ve kullanacagimiza bakacagiz. Güzel yani IIS kurulu olmasi gibi bir derdiniz yok. Ama eger IIS ile Sql Server ayni portu dinliyorlarsa birinin default portunu degistirin ya da bu örnek için IIS’i durdurun.
 
1.ADIM: Öncelikle asagidaki gibi bir tablo olusturun

Siz varolan herhangi bir tablonuzu da kullanabilirsiniz.
 
2.ADIM: Asagidaki gibi bir SP olusturun.
CREATE proc [dbo].[kitapIsimleriniGetir]
as
begin
select ad from kitaplar
end
 
3.ADIM: Simdi sira endpointi olusturmaya geldi.
CREATE ENDPOINT KitaplarWebServisi
    STATE = Started
AS HTTP
 
    (
 
        PATH = '/Kitaplar',
 
        AUTHENTICATION = (INTEGRATED),
 
        PORTS = (CLEAR),
 
        SITE = '*'
 
    )
FOR SOAP
 
    (
 
        WEBMETHOD 'kitapIsimleriniGetir'
 
            (NAME = 'Kitaplar.dbo.kitapIsimleriniGetir'),
 
        WSDL = DEFAULT,
 
        DATABASE = 'Kitaplar',
 
        NAMESPACE = DEFAULT
 
    )
 
Burada “http” kisminda URL’in nasil olusturulacagi belirlenir. PATH = '/Kitaplar' localhost altinda “http://localhost/kitaplar?wsdl” seklinde bir URL olacagi anlamina gelir. Digerleri ise tamamen güvenlikle alakalidir.(Login,authentication mode, SSL vs.)
“SOAP” kisminda ise webMethodunuzun ismi, hangi SP’nin web method olarak kullanilacagi ve hangi veritabaninin kullanilacagi belirtilir.
Çalistirdiginiz zaman EndPointimiz SERVER OBJECTS altinda /EndPoints/SOAP/KitaplarWebServisi seklinde eklenecektir.
 
4.ADIM:  Artik yeni bir Visual Studio Projesi açip WebServis referansi yaparak olusturdugumuz WebServisi tüketebiliriz.
Ben bir Windows Forms Projesi olusturuyorum ve formum üzerine bir adet ComboBox kontrolü ekliyorum.

 
Sonra asagidaki adimlari takip ederek Web Servisi Referans ediyorum.
 
1.

 
2.

 
3. Web Servisiniz ve methodunuz geldikten sonra Add Reference butonuna tiklayarak projenize ekleyiniz.

 
5.ADIM: Formunuzun load eventine asagidaki kodlari yazarak web servisi tüketiniz.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
using WindowsFormsApplication25.Kitaplar;//EKLEMEYI UNUTMAYIN
 
namespace WindowsFormsApplication25
{
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            KitaplarWebServisi yeni = new KitaplarWebServisi();
 
            //Bu ismi EndPointi olustururken vermistik.
            yeni.Credentials = System.Net.CredentialCache.DefaultCredentials;
            DataTable dt = new DataTable("kitaplar");
            dt = (yeni.kitapIsimleriniGetir()[0] as DataSet).Tables[0];
 
            foreach (DataRow dr in dt.Rows)
            {
                comboBox1.Items.Add(dr["ad"].ToString());
            }
        }
    }
}
 
Sonuç:
Projenizi çalistirdiginizda sonuç asagidaki gibi olacaktir.
 

Umarim isinizi görecektir. Diger yazilarimda görüsmek dilegiyle.
 
Engin Demirog
 
engin@e-learner.net