Makale 10: İstemci Uygulamalarının Çalışma Zamanında Yapılandırılması

Remoting client’larının programmatic configuration’ları Remoting server’lar ile büyük bir oranda benzerlik gösterirler. Ancak kullanılan bazı methodlar değişecektir. Örneğin Remoting server’ın programmatic configuration’ı sırasında kullanılan ve Remotable Type’ın register edilmesini sağlayan RemotingConfiguration.RegisterWellKnownServiceType method’u Remoting client’larında RemotingConfiguration.RegisterWellKnownClientType şeklinde kullanılmaktadır.

Client-Server farkı bağlamında değişen bu methodlar haricinde channel, formatter gibi configuration bilgileri her iki taraf için de aynı şekilde tanımlanmaktadır.

Remoting server’larının programmatic olarak nasıl configure edilebileceğini görelim.

RemotingClient.cs

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using System.Collections;
using ConfigCliAppProg.RemObjects;
namespace ConfigCliAppProgrammatic
{
    class RemotingClient
    {
        static void Main(string[] args)
        {
            IDictionary channelProperties = new Hashtable();
            channelProperties.Add("name", "MyTcpChannelName");
            channelProperties.Add("port", "1234");
            channelProperties.Add("priority", "1");

            TcpChannel tcpChannel = new TcpChannel(channelProperties, new SoapClientFormatterSinkProvider(), new SoapServerFormatterSinkProvider());

            ChannelServices.RegisterChannel(tcpChannel, false);

            RemotingConfiguration.RegisterWellKnownClientType(typeof(MyRemoteObject), "http://localhost:1234/MyRemoteObject.rem");

            Console.WriteLine("I am now connected to the Remoting server...");
            Console.WriteLine("Press Enter to exit.");
            Console.ReadLine();
        }
    }
}

Yazmış olduğumuz kodları sırasıyla şu şekilde açıklayalım.

  • Daha önce öğrenmiş olduğunuz şekilde TCP protokolünü kullanan channel’ı register ettik.
  • MyRemoteObject type’ındaki object’lerle ilgili işlemler için bu object’in instance’ının hangi URL’de olduğunu register ettik.

Visual Studio üzerinde uygulamayı çalıştırdığımızda karşımıza aşağıdaki ekran gelir:

RemotingClient class’ı içerisinde kullandığımız bazı method’lar ve görevleri aşağıdaki gibidir.

Method


Görev
RemotingConfiguration.RegisterWellKnownClientType Uygulamayı geliştirmeden önce geliştirilen remotable type’ın (ör: MyRemotableType) Remoting client’ı üzerinde Server Activated Object register edilmesini sağlar.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.