| Editor Login | Register | ||
| > Akademik İnternet ® > .Net FrameWork |
|
|
| .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)
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 <configuration> <system.runtime.remoting> <application> <service> <wellknown mode="SingleCall" type="RmtNesne.RemoteNesne, RmtNesne" objectUri="DataAl"/> </service> <channels> <channel ref="tcp" port="1234"/> </channels> </application> </system.runtime.remoting> </configuration> 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... |
|
| Bağlantılar: bilgininefendisi.net |
| Open Source Document Project | AUP&TOS |