标签:说明 pac wrap join name blog 高效 lan 自己的
JointCode.Shuttle 是一个用于 AppDomain 间通信的服务架构。
1. 什么情况下使用 JointCode.Shuttle
在 .net / mono 开发中,一般不太需要使用额外的 AppDomain,但在一些 特定情况 下,让代码运行在新的 AppDomain 中也许是一个好的选择。
当代码需要跨越 AppDomain 边界访问另一个 AppDomain 时,便产生了跨 AppDomain 通信的问题,JointCode.Shuttle 正是专为此目的而开发的一个服务框架。
2. 为什么开发 JointCode.Shuttle
一般来说,在进行跨 AppDomain 调用时,大部分人会选择使用默认提供的 remoting 库作为底层通信机制。代码也很简单,例如:
1 namespace JoitCode.Shuttle.SimpleSample 2 { 3 public class MyService : MarshalByRefObject 4 { 5 public void Do() { } 6 } 7 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 // 在默认 AppDomain 中创建一个子 AppDomain 13 var serviceDomain = AppDomain.CreateDomain("ServiceDomain", null, null); 14 15 var myService = (MyService)serviceDomain.CreateInstanceAndUnwrap 16 (typeof(MyService).Assembly.FullName, 17 "JoitCode.Shuttle.SimpleSample.MyService"); 18 19 myService.Do(); 20 21 Console.Read(); 22 } 23 } 24 }
这种方式有什么问题?
3. JointCode.Shuttle 的特点
与 remoting 相比,JointCode.Shuttle 除了具备相同的跨 AppDomain 通信的功能之外,还有自己的一些特点:
4. 目前的限制
JointCode.Shuttle 是一个非常新颖的框架,现在功能还不是十分完备,尽管作者计划在未来继续完善现有功能,并推出更多新的功能,但目前还是存在着一些不足,包括:
5. 如何使用 JointCode.Shuttle
如果您对 JointCode.Shuttle 有兴趣,请移步前往 这里,我们提供了一个简单的示例来说明如何使用这个框架。
JointCode.Shuttle,一个简单高效的跨 AppDomain 通信的服务框架
标签:说明 pac wrap join name blog 高效 lan 自己的
原文地址:http://www.cnblogs.com/johnny-liu/p/7190730.html