摘要: 今天的这篇博客,是此阶段学习Prism的最后一篇。在今天使用Prism过程中,可能会再加上一些Prism使用的技巧或者对源码的学习。希望这些代码能够作为今天工作中的查阅资料,也希望这些博文可以帮到学习此框架的人们。因为现在还处于对Prism的学习阶段,并没有在实际的项目中使用。所以,如果有什么错误的地方,恳请各个拍砖和指正。之前主要学习了Prism中的一基础知识,包括Unity, UnityContainer, Bootstrapper, Shell, Region, View, Command, RegionManager, EventAggregator等类。通过之前的学习,我们可以方便的 阅读全文
posted @ 2012-04-11 20:01 Gene Li 阅读(1615) 评论(1) 推荐(3) 编辑
摘要: 有几天没有写博客了. 今天接着之前的部分继续写,模块间的通讯。在Prism框架中,我目前总结出来的模块间的通讯主要有两种。一种是基于接口的通讯,主要是使用UnityContainer的Resolve方法在模块外,获取模块内部的接口。然后通过接口向该模块传递数据或调用其方法,也可以注册其事件。这是一种弱藕合的通讯方式,因为两个模块之间都需要引用同一个接口。另一种通讯方式是使用Prism框架中的IEventAggregator来实现。该方式可以实现模块间的完全解藕,所以在此重要讲述。IEventAggregator 从字面上看,他是一个事件聚合器。它将某一类型的事件注册到EventAggregat 阅读全文
posted @ 2012-04-10 23:37 Gene Li 阅读(2983) 评论(2) 推荐(3) 编辑
摘要: 上一章中,对Shell, Region, View有了一个初步的了解。我们可以通过这些类向指定的用户控件加载Shell中,但是目前,还无法实现模块之间的交互。接下来开始开始逐步探索这方面的应用。还是继续上一章中的例程接着往下改。在Prism中,允许在UI中绑定Command对象来实现MVVM模式。步聚如下:1. 在InterfaceProject模块中的ITextServices中修改代码,如下:1publicinterfaceITextService2{3stringGetText();4voidSetText(stringnewText);56eventEventHandlerTextCh 阅读全文
posted @ 2012-04-06 20:50 Gene Li 阅读(2301) 评论(0) 推荐(2) 编辑
摘要: Prism学习(6)---Shell Region View 阅读全文
posted @ 2012-04-06 00:43 Gene Li 阅读(2856) 评论(1) 推荐(4) 编辑
摘要: 之前的章节中,从对一个计算器解决方案的重构,学会了Prism应用的基础知识。现在,我们再从一个新的Silverlight项目开始,继续Prism的学习。看来今天运气有点背啊,我下载的Prism的版本是4.1的,它源码中的Silverlight部分是基于 Silverlight 5.0的。可惜,我当前系统中只安装了Silverlight 4.0 的 SDK。 郁闷中... 好不容易下载下来,一安装又提示要求安装 VS 2010 SP1。 要喷血了! 好吧,哥慢慢跟你耗着。下载...安装.... (两个小时) ..... -_ -! .... 算了, 我睡觉的, 明天接着搞。终于搞定了!开始今天的 阅读全文
posted @ 2012-03-31 22:43 Gene Li 阅读(2961) 评论(5) 推荐(2) 编辑
摘要: Bootstrapper类,在Prism框架中的启动器类。它的职责是初始化并启动系统。在我所重构的计算器项目中,它的工作就是完成Application项目中Program类里的Main方法的实现部分。既然Prism框架为了我们提供了一个这样的神器,那我还何必要舍近求远的自己实现呢?今天这一章将是重构计算器部分的最后一章。之后,我将继续深入的学习如何在Silverlight项目中应用Prism框架。先看看Unity中的Bootstrapper类吧。在Unity中有一个继承致Bootstrapper类的抽象类,它的类名叫 UnityBootstrapper。之前说过,在Prism框架中,有两种IO 阅读全文
posted @ 2012-03-29 19:22 Gene Li 阅读(4973) 评论(0) 推荐(2) 编辑
摘要: 上一章中,我使用Unity重构了解决方案。不过在Application工程中仍然需要引用其他各个依懒项。很明显,这样做并不能实现计算器模块的可插拔。今天,将以此为目标,对该解决方案进行再次的重构。首先,在使用Prism框架加载的程序集中分别添加一个类,并让这些类实现IModule接口。当Prism框架加载某个程序集后,将首先在程序集中搜索实现了该接口的类。之后将会调用该接口的Initialize方法。于是,我们可以在这个方法中实现程序集内部的初化始操作,或者执行某个动作。通过这种机制,可以实现程序集的完全解藕。具体的操作如下:1. 在CalculatorLibrary程序集中添加一个类:Cal 阅读全文
posted @ 2012-03-28 22:22 Gene Li 阅读(4700) 评论(8) 推荐(4) 编辑
摘要: Prism学习(2)---初识Unity 阅读全文
posted @ 2012-03-27 00:42 Gene Li 阅读(3283) 评论(1) 推荐(3) 编辑
摘要: 在学习Prism框架之前,我预先写了一个非常简单的计算器解决方案。代码如下:1staticvoidMain(string[]args)2{3while(true)4{5stringinput=Console.ReadLine();67if(CommandTypes.Contains(input))8{9intindex=Array.IndexOf(CommandTypes,input);1011intx=int.Parse(Console.ReadLine());12inty=int.Parse(Console.ReadLine());1314intresult=funs[index](x,y 阅读全文
posted @ 2012-03-25 22:26 Gene Li 阅读(3118) 评论(3) 推荐(6) 编辑