Introduction:

In this sample describes how to build a distribution application which accesses MS SqlServer2000 on remoting service.

Using the code

Server

using System;

using System.Data;

using System.Data.SqlClient;



namespace www.treaple.com

{

public class Hello : System.MarshalByRefObject

{

public Hello()

{

Console.WriteLine("Hello actived");

}



~Hello()

{

Console.WriteLine("Hello destroyed");

}



public DataSet GetData()

{

string conn = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI";//newSqlConnectionSystem.Configuration.ConfigurationSettings.AppSettings["strconn"]);
SqlDataAdapter da = new SqlDataAdapter("select * from Products", conn);

DataSet ds = new DataSet();

da.Fill(ds);

return ds;

}

}
}

Client



using System;

using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Channels.Tcp;

using System.Data;



namespace www.treaple.com

{

public class Client

{

[STAThread]

public static void Main(string[] args)

{

//TcpChannel chan = new TcpChannel();

ChannelServices.RegisterChannel(new TcpClientChannel());

Hello obj = (Hello)Activator.GetObject(typeof(Hello), "tcp://localhost:8085/Hi");

DataTable dt = obj.GetData().Tables[0];

foreach (DataRow dr in dt.Rows)

{

Console.WriteLine(dr["ProductID"] + " " + dr["ProductName"]);

}

//if (obj == null) System.Console.WriteLine("Could not find server");

//else Console.WriteLine(obj.Greeting("kk"));

//else Console.WriteLine(obj.HelloMethod("John"));



}

}

}

Interface:


using System;



namespace www.treaple.com

{

public interface IHello

{

String HelloMethod(String name);

}



public class HelloServer : MarshalByRefObject, IHello

{

public HelloServer()

{

Console.WriteLine("HelloServer actived");

}



public String HelloMethod(String name)

{

Console.WriteLine("Hello.HelloMethod : {0}", name);

return "hello" + name;

}

}
}