日期:2014-05-18  浏览次数:21698 次

C#.NET如何实现分布式开发?
类似于java中的EJB

------解决方案--------------------
刚刚才写的一个! 

服务器和客户端需要引用“类文件” 和System.Runtime.Remoting; 

类文件 
-------------- 
using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data; 
using System.Data.SqlClient; 


namespace db 
{ 
public class DBAccess:MarshalByRefObject 
{ 
private SqlConnection con; 
private SqlDataAdapter da; 
private DataSet ds; 
public DBAccess() 
{ 
Console.Write( "构造方法 "); 
} 

public DataSet GetDateSet(string strSql,string tabName) 
{ 
con = new SqlConnection( "server=(local); " + "integrated security=SSPI; " + "database=henry "); 
da = new SqlDataAdapter(strSql, con); 
SqlCommandBuilder builder = new SqlCommandBuilder(da); 
ds = new DataSet(); 
da.Fill(ds,tabName); 
return ds; 
} 

public override object InitializeLifetimeService() 
{ 
return null; 
} 
} 
} 
-------------------------------------- 

服务器文件 
-------------------------------------- 

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.Runtime; 
using System.Runtime.Remoting; 
using System.Runtime.Remoting.Channels; 
using System.Runtime.Remoting.Channels.Tcp; 


namespace db 
{ 
public partial class Form1 : Form 
{ 
public Form1() 
{ 
InitializeComponent(); 
} 

private DBAccess obj; 
private void Form1_Load(object sender, EventArgs e) 
{ 
TcpServerChannel channel = new TcpServerChannel(8888); 
ChannelServices.RegisterChannel(channel, false); 
RemotingConfiguration.RegisterWellKnownServiceType(typeof(DBAccess), "Hi ", WellKnownObjectMode.Singleton); 

} 
} 
} 

------------------------------------------------------ 

客户端代码 form1 
--------------------------------------------------- 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.Runtime; 
using System.Runtime.Remoting; 
using System.Runtime.Remoting.Channels; 
using System.Runtime.Remoting.Channels.Tcp; 


namespace db 
{ 
p