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;
}
}
}