惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
博客园 - 司徒正美
Jina AI
Jina AI
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
S
SegmentFault 最新的问题
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - Franky
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - qy

枚举 Duwamish7资料收集- [] 学习Duwamish7的MSDN说明及相关技术策略 Duwamish7学习笔记(七) Duwamish7学习笔记(六) Duwamish7学习笔记(四) Duwamish7学习笔记(三) Duwamish7学习笔记(二) Duwamish7学习笔记(-) jQuery介绍及语法----转载 浅谈.net事件机制 使用EditPlus2编写C#代码 跟踪用户会话 按钮确认(js与C#交互) 3-28学会的几句sql语句 Visual Studio 2003/Visual Studio 2005常用快捷键 ----转 最优化javascript自定义对象 BOM 关于用div实现table的效果
Duwamish7学习笔记(五)
qy · 2007-09-18 · via 博客园 - qy

BusinessFacade项目
   业务外观层封装了3个类CustomerSystem,OrderSystem,ProductSystem,类中直接调用数据访问层和业务逻辑层类的方法与属性提供对Web层的接口。有意思是的每个类结尾均以System命名。客户系统?订单系统?产品系统?
 业务外观层中3个类均继承自MarshalByRefObject类,来支持远程处理。MSDN中关于MarshalByRefObject类的解释为:
 “允许在支持远程处理的应用程序中跨应用程序域边界访问对象。”
 “应用程序域是一个操作系统进程中一个或多个应用程序所驻留的分区。同一应用程序域中的对象直接通讯。不同应用程序域中  的对象的通讯方式有两种:一种是跨应用程序域边界传输对象副本,一种是使用代理交换消息。”
 “MarshalByRefObject 是通过使用代理交换消息来跨应用程序域边界进行通讯的对象的基类。不是从 MarshalByRefObject 继承  的对象根据值隐式封送。当远程应用程序引用根据值封送的对象时,将跨应用程序域边界传递该对象的副本。”
 “MarshalByRefObject 对象在本地应用程序域的边界内可直接访问。远程应用程序域中的应用程序首次访问 MarshalByRefObject 时,  会向该远程应用程序传递代理。对该代理后面的调用将封送回驻留在本地应用程序域中的对象。”
 “当跨应用程序域边界使用类型时,类型必须是从 MarshalByRefObject 继承的,而且由于对象的成员在创建它们的应用程序域之外  无法使用,所以不得复制对象的状态。”
  CustomerSystem类中有对密码通过.NET内置的加密支持进行密码保护的代码,可以很方便的用到我们平时的项目之中。

疑问
  1.类结尾命名为System,怎么解释?
        2.类均标记为从MarshalByRefObject类继承,来支持应用程序中跨应用程序域边界的对象访问,系统在什么情况下将会进行“跨应用程序域边界访问对象”?
        3.Common项目中的所有类均标记为[SerializableAttribute],标记为[SerializableAttribute]和继承自MarshalByRefObject类均可用来支持远程调用,两者有何区别?
        4.感觉抽象出业务外观层加大了系统的复杂程度,加大了编码量。