Makale 7: Bir Sunucu Uygulamasının Derlenmesi – Bölüm 2

Bu işlemler sonrasında New Project ekranı aşağıdaki şekilde görünür:

NOT

Location property’sinde yazmakta olan “C:\Path\to\Your\Project” path’i seçmiş olduğunuz path’e göre değişiklik gösterektir.

1. OK butonuna tıklayın.

2. Karşınıza “Program.cs” isimli bir dosya açık olacak çıkar.

3. Bu dosyanın ismini Solution Explorer penceresi yardımı ile “MyRemotingServer.cs” olarak değiştirin.

4. Visual Studio “Program.cs” dosyasının ismini değiştirdikten sonra bu dosya içerisindeki “Program” isimli class’ın ismi otomatik olarak “MyRemotingServer” şeklinde değişir. Değişmemesi durumunda class’ın ismini “MyRemotingServer” olarak değiştirin.

5. Solution Explorer penceresindeki References klasörüne sağ tıklayarak “Add Reference” seçeneğine tıklayın.

6. Karşınıza “Add Reference” penceresi çıkar. Bu pencerede “.NET” tab’ındaki “System.Runtime.Remoting” assembly’sini seçin ve OK butonuna tıklayın.

7. MyRemotingServer.cs dosyası içerisinde aşağıdaki namespace’leri import edin:

MyRemotingServer.cs dosyasına import edilecek namespace’lerin import edilişleri

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

8. MyRemotingServer class’ının access modifier’ını public olarak ayarlayın.

MyRemotingServer class’ının “public” access modifier’ına sahip olarak ayarlanması

public class MyRemotingServer

9. Remoting server’ımızı “exe” dosyası ile aynı klasörde bulunacak olan “MyFirstRemotingServer.exe.config” dosyasını okuyarak kendisini configure etmesi için RemotingConfiguration class’ının Configure method’unu kullanın.

RemotingConfiguration.Configure method’unun kullanımı

RemotingConfiguration.Configure("MyFirstRemotingServer.exe.config", false);

10.              Remoting server’ınızı ENTER tuşuna basıldığında programı sonlandıracak şekilde ilgili kodu yazın.

Console Application’un ENTER tuşu ile sonlandırılması

Console.WriteLine("Remoting server is running... Press ENTER to exit.");
Console.ReadLine();

11.              Solution Explorer ekranında bulunan project’inizin ismine sağ tıklayarak Add menüsünden “New Item…” seçeneğini seçin.

12.              Açılan “Add New Item” ekranında “Application Configuration File” template’ini seçin ve Name property’sini “MyFirstRemotingServer.exe.config” olarak değiştirin.

13.              Add butonuna tıklayın.

14.              “MyFirstRemotingServer.exe.config” isimli dosya otomatik olarak açılacaktır.

15.              Configuration dosyasının içeriğini aşağıdaki şekilde değiştirin. Bu configuration dosyasına göre Remoting server’ı TCP protokolü kullanarak, 4444. port üzerinden ve gerekli formatlamaları yaparken BinaryFormatter kullanacak şekilde çalışacak ayrıca oluşturmuş olduğumuz MyRemotableType class’ını host edecektir.

MyFirstRemotingServer.exe.config dosyası içeriği

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.runtime.remoting>
        <application>
            <service>
                <wellknown
                    mode="Singleton"
                    type="MyFirstRemotingServer.MyRemotableType, MyFirstRemotingServer"
                    objectUri="MyRemotableType.rem"
                />
            </service>
            <channels>
                <channel ref="tcp" port="4444">
                    <serverProviders>
                        <formatter ref="binary"/>
                    </serverProviders>
                </channel>
            </channels>
        </application>
    </system.runtime.remoting>
</configuration>

16.              Solution Explorer penceresindeki References klasörüne sağ tıklayarak “Add Reference” seçeneğine tıklayın.

17.              Karşınıza “Add Reference” penceresi çıkar. Bu pencerede “Browse” tab’ını seçerek “MyFirstRemotableType” project’inin bulunduğu klasöre gidin.

18.              Bu klasör içerisinde de sırasıyla “bin” ve “Debug” klasörlerine girerek “MyFirstRemotableType.dll” isimli assembly’yi seçin ve OK butonuna tıklayın.

19.              Solution Explorer ekranında bulunan project’inizin ismine sağ tıklayarak Add menüsünden “New Item…” seçeneğini seçin.

20.              Açılan “Add New Item” ekranında “Application Configuration File” template’ini seçin ve Name property’sini “MyRemotableType.cs” olarak değiştirin.

21.              Add butonuna tıklayın.

22.              “MyRemotableType.cs” isimli dosya açık olacak gelir.

23.              Class’ı ImyRemotableType interface’ini implement edecek şekilde yazın.

MyRemotableType.cs dosyası içeriği

using System;
using MyFirstRemotableType;
namespace MyFirstRemotingServer
{
    public class MyRemotableType : MarshalByRefObject, IMyRemotableType
    {
        int requestCount;

        public MyRemotableType()
        {
            this.requestCount = 0;
        }

        public DateTime GetServerDateTime()
        {
            requestCount++;
            return System.DateTime.Now;
        }

        public int RequestCount()
        {
            return requestCount;
        }
    }
}

24.  Build menüsünü kullanarak project’i build edin.

25.  Bu işlem sonrasında Visual Studio’nun sol alt köşesinde “Build succeeded” yazısı belirir.

26.  “Add Project” ekranında project’in Location özelliğine atadığınız path’e gidin.

27.  Bu path içerisinde bulunan “MyFirstRemotingServer.exe.config” isimli dosyayı yine aynı klasörde bulunan “bin” ve bu klasörün altında bulunan “Debug” klasörünün içerisine, yani “MyFirstRemotingServer.exe” dosyasının bulunduğu klasöre kopyalayın.

Bir sonraki makalede diğer adımlar anlatılacaktır.

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.