Home Contact RSS

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.

Leave a Comment