您的位置:首页 > 移动开发

WinCE5.0移动平台开发笔记(Appdomain之间共享数据变量)

2010-05-16 16:05 691 查看
在项目开发过程中,因项目的需求,在客户端部署的两个.Net 应用程序需要共享一个变量,即:一个.Net应用程序设置了变量的值,那么在另外一个.Net应用程序中就能读取到设置的值。简单来说,需要跨不同的AppDomain来共享变量。

我们知道进程之间的通信有下面几种方法:

1.串口RS232通信(自己定义数据格式,通用性差,出错面临挑战)

2.Socket(自己定义格式,出错验证方面)

3.RPC(远程调用)

4.DCOM(分布式的组件)

5.Web Service

6.Remoting(远程对象模型)

7.WCF(新一代的SOA框架)

8.文件读取等(共享锁定,冲突等)

9.程序的命令行参数。。。。(启动程序时候传递)

10.MSMQ。。。

有很多的进程之间的通信方式,这就根据项目的需要和程序的运行环境来决定采取何种方式来满足项目的目的或要求。

最后我们在项目中决定采用Remoting来实现,有以下几个原因:

1.基于.Net 2.0的winform应用程序

2.开发的效率(Socket需要自己定义格式)

3.尽可能上的依赖其他资源(如文件)

而且使用Remoting技术本身就是.Net程序之间进行分布式的对象调用比较好的方法之一,而且配置方面,开发效率高。

补充:Remoting开发过程:

1、Remoting框架

代码

public static void Main(string[] args)
{
//使用TCP通道得到远程对象
TcpChannel chan1 = new TcpChannel();
ChannelServices.RegisterChannel(chan1, false);
ShareDataList obj1 = (ShareDataList)Activator.GetObject(
typeof(RemotingSamples.ShareDataList),
"tcp://localhost:8085/ShareData");
if (obj1 == null)
{
System.Console.WriteLine(
"Could not locate TCP server");
}
obj1.SetData("传递到另一个.Net Application一个值");//调用远程对象设置共享变量的值
Console.ReadLine();
}

通过上面的代码,客户端调用SetData()方法设置共享变量ShareData的值,那么在服务器端就可以直接获取到设置好的ShareData的值。这样就在技术上实现了,当然也达到了项目中的要求。

Best Regards,

Charles Chen

http://charles2008.cnblogs.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: