.Net Remoting - Bölüm 3

.Net Remoting - Bölüm 3

Bölüm 1 de .Net Remoting in genel mantığını inceledik. Bölüm 2 de ise ilk uygulamamızı Windows Form üstünde yazdık. Şimdiki bölümde ise Client uygulamamız Web Form, buyrun inceleyelim ama incelemeden önce .Net Remoting in şekline bir daha göz atalım.

2. uygulamamızı yazarken birinci uygulamanın üstünden ilerleyeceğiz. O yüzden eğer yazının önceki bölümlerini okumadıysanız o bölümleri tamamlamnızı öneririm. Eğer önceki bölümdeki kodlar elinizde yoksa buradan indirebilirsiniz.

Şimdi aynı remoting nesnemizin HTTP ile gönderilmesi ve Client taki programında Web Applation olması durumunu inceleyelim.

RmtSrv de çok ufak bir değişiklik yapmamız yeterli.

Imports System.Runtime.Remoting.Channels.Tcp

Satırını

Imports System.Runtime.Remoting.Channels.Http

İle değiştirin. Sonra aşağıdaki kodları düzenleyin. (TCP yerine HTTP yazmanız yeterli)

Dim chn As HttpChannel = New HttpChannel(1234)

Server uygulamamız bu kadar. Şimdi Client uygulamamız için yeni bir Asp.Net Web Application oluşturun. Adına RmtWebClient yazın. Burada şunu hatırlamanız gerekiyor. HTTP kanalını kullanırsanız, verileriniz SOAP formatteri ve XML serialize ile yollanacak. Web Form üstüne deminkine benzer şekilde bir textbox, bir button ve birde DataGrid yerleştirin.

Yine references klasörüne sağ tuşla basarak Add References i seçin. System.Runtime.Remoting i ve RmtNesne yi referans olarak ekleyin.

import edeceğiniz namespace lerden sadece birisi değişiyor.

Imports System.Runtime.Remoting.Channels.Http

 

 

Diğer kodlar yine benzer şekilde. Aşağıdaki Web formunza ekleyin

    Dim nesnem As RmtNesne.RemoteNesne

    Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

        nesnem = CType(Activator.GetObject(GetType(RmtNesne.RemoteNesne), "http://localhost:1234/dataAl"), RmtNesne.RemoteNesne)

        DataGrid1.DataSource = CType(nesnem.DsGonder(TextBox1.Text), DataSet).Tables(0)

        DataGrid1.DataBind()

    End Sub

Değişik olarak Activator un GetObject metodunun 2. parametresi (yani remoting in yolu) “http://” ile başladığı ve son olarakda Web Formlardaki DataBinding olayı. Web Formlarda DataGrid e DataBind fonksiyonunu uygulamazsanız veriler görüntülenmeyecektir.

Son olarak bu kanal tanımlamalarını bir XML dosyasında yapabilirsiniz.

Böylece kanallarda yada portta bir değişiklik olduğunda kodunuzu düzenlemeden ve kodunuzu tekrar derlemeden sadece XML dosyanızı güncelleyerek yeni duruma programınızın adapte olmasını sağlayabilirsiniz.

Aşağıda çok basit şekide bir örnek XML dosyasını gösteriyorum. Bu dosya için projeniz sağ tuş tıklayın ve Add New Item ı seçin buradanda “Application Configuration File” ı adını değiştirmeden seçin. Otomatik olarak sizin uygulamanızın adını alacaktır (uygulama RmtSrv ise dosyanın adı app.conf olmasına rağmen aslında RmtSrv.exe.config olacaktır) aşağıdaki kodları ekleyin

     

           

                 

                       

                 

                 

                       

                 

           

     

Bu yazdıklarımızın üstünde biraz düşünün. Aslında yukarıda yaptıklarımızdan çok farklı değil.

Şimdi bu konfigurasyon dosyasını projemize nasıl ekleyeceğimize bakalım

Bütün kanal tanımlamaları ve Server uygulamamızdaki parametreler yerine şunu yazın

RemotingConfiguration.Configure("RmtSrv.exe.config")

Böylece enine boyuna bir remoting incelemesi ve örneği yapıp bu yeni sayılabilecek teknoloji ile ilgili örnekler yaptık. Herhangi bir problemde bana mail adresimden ulaşabilirsiniz.

Başka bir yazıda görüşmek üzere...

Döküman Arama

Başlık :

Kapat