First we try, then we trust

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

呵呵,这年头为了挣点点击率,居然做起广告来了,羞愧...

言归正传,现在Ioc与AOP在Java阵营早就炒的沸沸扬扬,但在.net中似乎仍然升温不够。尽管在大名鼎鼎的Martin网站上有专门的Ioc中文版文章,但给人的感觉就是--简单。通过构造函数或Setter注入的实现方式总给人一种“不屑”的感觉,甚至很多人觉得我早就用Ioc了,只是Martin给了名罢了。网上更是有人在说其实.net早在2000年设计的IComponent就应用了Ioc技术。

但是,你真的了解Ioc的强大威力吗?恐怕不多。Ioc又能为我们带来什么呢?《你真的了解Ioc与AOP吗?》将试图通过一个循序渐进的例子展示Ioc的强大威力。

现在编码工作基本完成,文章正在写作中。一共有6个案例,分别是:(1)类之间的依赖;(2)接口依赖;(3)基于配置文件和Reflection的工厂模式;(4)使用Spring.net实现Ioc;(5)Romoting;(6)利用Ioc在不动一行代码的情况下实现Remoting。

现在将编译好的最后一个案例放上来,可以在这里下载:Ioc.rar

解压缩后有3个目录:Server、Client、WithoutRemoting。首先运行Server目录下的RemotingServer.exe,然后运行Client目录下的MainApp.exe进行远程调用。系统通过Remoting完成远程调用。关闭所有程序后,进入到WithoutRemoting目录,里面有个Readme.txt文件,按照操作步骤将文件:

..\Server\HelloGenerator.dll
..\Client\MainApp.exe
..\Client\ICommon.dll
..\Client\SayHello.dll
..\Client\Spring.Core.dll
..\Client\log4net.dll

拷贝到该目录,再次运行MainApp.exe,你会发前它是一个地地道道的本地应用程序!本地与远程唯一的区别就是配置文件的不同以及增加了几个其它的DLL!这就是Ioc的魅力!所有源代码和详细说明随后放上来。

注:本示例程序中使用的Spring.net版本为:“Spring.NET-20050815-0137”,并对Spring.Services组件中的Remoting部分做了微小调整,删除了代码中用于输出的部分命令。

posted on 2005-09-09 11:45  吕震宇  阅读(4661)  评论(23编辑  收藏  举报