folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder [Döküman] - Windows Communication Foundation Uygulaması



[Döküman] - Windows Communication Foundation Uygulaması

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    1.    Önce interface imizi hazırlıyoruz.

            using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.ServiceModel;
            using System.Text;
            namespace WelcomeServiceLibrary
    {
        [ServiceContract]
        public interface IWelcomeService
        {
           [OperationContract]
            string GetWelcome(string mesaj);
            [OperationContract]
            DateTime Getdate();
            [OperationContract]
            int topla(int x, int y);
            [OperationContract]
            int Carp(int x, int y);
        }
    }
    

    2.İnterface deki metodların ne yapacağını tasarlıyoruz.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WelcomeServiceLibrary
    {
        public class WelcomeService:IWelcomeService
        {
            public string GetWelcome(string mesaj)
            {
                if (mesaj == null) throw new ArgumentNullException("mesaj");
                mesaj = "Ziverbey Bey Hoşgeldiniz";
                return mesaj;
                //mesaj = "Ziverbey Bey Hoşgeldiniz";
                //return mesaj;
            }
            public DateTime Getdate()
            {
                return DateTime.Now;
            }
            public int topla(int x, int y)
            {
                int z = x + y;
                return z;
            }
            public int Carp(int x, int y)
            {
                int z = x*y;
                return z;
            }
        }
    }
    

    3.Host uygulamasını geliştirmeye başlıyoruz.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.ServiceModel;
    using System.Text;
    using System.Windows.Forms;
    using WelcomeServiceLibrary;
    using System.ServiceModel.Description;
    namespace HostApplication
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            ServiceHost _host;
            private void btn_SrvStart_Click(object sender, EventArgs e)
            {
                Uri adres = new Uri("http://localhost:1245/ismail_Services/Wservice");
                //_host = new ServiceHost(typeof(WelcomeService), new Uri("http://localhost:1245/ismail_Services/Wservice"));
               _host =new ServiceHost(typeof(WelcomeService),adres);
                //Servisin abc si yani endpoint tanımlaması yapılıyor.
                //_host.AddDefaultEndpoints(); default endpoint tanımlaması fakat ben manuel yapacağım..
               _host.AddServiceEndpoint(typeof (IWelcomeService), new WSHttpBinding(), adres.ToString());
               //istemciler http üzerinden bu servise talepte bulunup wsdl içeriklerini alabilir default olarak kapalı
               ServiceMetadataBehavior MDBeh =new ServiceMetadataBehavior();
               MDBeh.HttpGetEnabled = true;
               //host a metadatabehavior özelliğinin true olduğu bildiriliyor.
               _host.Description.Behaviors.Add(MDBeh);
               _host.Open();
               lbl_SrvDurum.Text = "Servis açıldı ve çalışıyor...";
               lbl_Durum2.Text = _host.State.ToString();
            }
           private void btn_SrvStop_Click(object sender, EventArgs e)
           {
               _host.Close();
               lbl_SrvDurum.Text = "Servis Durduruldu ve Çalışmıyor";
               lbl_Durum2.Text = _host.State.ToString();
          }
       }
    }
    

    Servisimizin çalışıp çalışmadığını kontrol ediyoruz..

    4.Client için Proxy ve Konfigürasyon dosyası üretiyoruz..

    Bu iki dosyayı istemci uygulamamıza ilave edeceğiz.

    5.İstemci (Client) uygulamamızı oluşturup app.config ve Proxy.cs dosyalarını ekleyelim.

    6.  Class diyagramda Görelim

    Gördüğünüz üzere servisimizi yazarken kullandığımız methodların başına  [OperationContract] yazmazsak burada o metodu göremeyiz ve kullanamayız.

    7.  İstemcimizi (CLIENT) kodlayalım.

    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;	
    namespace ClientApp	
    {
        public partial class Form1 : Form	
        {	
            public Form1()	
            {	            InitializeComponent();	
            }	
            private void button1_Click(object sender, EventArgs e)	
            {	
                WelcomeServiceClient client = new WelcomeServiceClient("WSHttpBinding_IWelcomeService");	
                lbl_durum1.Text = "Servise bağlandım";	
                client.Close();	
            }	
            private void btn_tarih_Click(object sender, EventArgs e)	
            {	
                WelcomeServiceClient client = new WelcomeServiceClient("WSHttpBinding_IWelcomeService");	
                string result = client.Getdate().ToString();	
                lbl_tarih.Text = result;	
                client.Close();	
            }	
        }	
    }
    

    Client ı sadece getdate() metodu için yazdım.

    8.  Ve mutlu son uygulamamızı çalıştırıyoruz. Metodu çağırabildiğimizi görüyoruz.

    Not: Bazı açıklamalarım muadil olabilecek kodlar örn; _host nesnesinin yaratıldığı bölüm..

    Not2: Tüm referanslarda System.ServiceModel mutlaka olmalıdır! Ek olarak ta Hostapplication a WelcomeServiceLibrary referans geçilmelidir.

    Bu doküman TBT adına tarafımdan hazırlanmıştır.


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    İstek üzerine kaynak kodlar aşağıdadır..

     ClientApp için Form1.cs

    HostApplication için Form1.Designer.cs ve Form1.cs

    

    WelcomeServiceLibrary için IWelcomeService.cs ve WelcomeService


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ercan
    Ercan's avatar
    Kayıt Tarihi: 04/Temmuz/2008
    Erkek

    güzel anlatmışsn hocam, ilerde lazım olursa okurum...

    bu arada projenin download linkini de verseydn güzel olurdu :)


    IF YOU ARE NOT TİRED, YOU ARE NOT DOING IT RIGHT
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    bi çizikte ben atayım güzel döküman :)


    :)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Homer
    Homer's avatar
    Kayıt Tarihi: 08/Temmuz/2007
    Erkek

    Ercab bunu yazdı:
    -----------------------------

    bu arada projenin download linkini de verseydn güzel olurdu :)


    -----------------------------

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    angels_demos
    angels_demos's avatar
    Kayıt Tarihi: 03/Haziran/2006
    Erkek

    güzel olmuşta download ve source koysaydın daha güzel olurdu. bu net3 mü ister? 

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Framework 4 ister hajım..

    Eve şimdi geldim ve tekrar çıkmak zorundayım. Gece kaynak kodlarıda koyacağım beyler..

     


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    scampjackal
    scampjackal's avatar
    Kayıt Tarihi: 05/Ocak/2010
    Erkek

    çizik hocam eline sağlık

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    ellerine sağlık hacım faydalı bir döküman,bunu dökümanlara ekleyelim istersen?

    birde neden ziyaretçilere kapadın hacım konuyu?


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    güzel döküman olmuş , eline sağlık

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    SharpShooter bunu yazdı:
    -----------------------------

    ellerine sağlık hacım faydalı bir döküman,bunu dökümanlara ekleyelim istersen?

    birde neden ziyaretçilere kapadın hacım konuyu?


    -----------------------------

    SharpShooter hajım aslında evet dökümanlara eklenmesi için desteğe bi mail atayım ben..

    Ziyaretçilere kapama konusu da aslında anlık bişeydi:) ne bileyim hani c/p yapılarak başka yerlere gitmesin TBT ye özel kalsın istedim.. Emek var dedim:)

    Kaynak kodlar 15 dk sonra 2. mesaj da olucak arkadaşlar..


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
Toplam Hit: 2126 Toplam Mesaj: 12