把XAML放在服务端,即改即现<二>.... 把DLL也放服务端

 

给Xaml需要的C#

 上文讲到了一种比较好玩而独特的Silverlight的开发模式-----即改即现。如上文所讲的那样,这种模式本身是比较爽的,你当即改的XAML,当即改的UI,可以不经过编译阶段,直接在界面上显示。但问题就是,我们实际的业务过程中,一定会有相应的C#代码来对应这份XAML。而本文怎是阐述我的实现方式。

 

又得说说传统的Silverlight开发了

    在传统的开发中,哪怕我们对Silverlight程序进行任何小的改动,我们都要经历以下的阶段。

1:重新生成DLL文件。

2:将所有的DLL文件打包,形成XAP。

    简答的来说,如果本身这个XAP包由20个DLL文件组成(这种属于比较正常的,通常随便引用一些第三方的DLL 就凑齐20个了)。我第一次编译,生成了一个XAP包。后来修改程序了,其中一个DLL文件发生了极小的变化,但这个时候会生成一个新的XAP包。而且请注意,前后这两个XAP包除了那个修改的DLL,其余完全相同。这多不爽啊。为了一个修改的DLL,别的DLL要重新压缩一次....

     而在我看来,比较好的做法就是,把这个自己写的业务的DLL,放在服务端。当我的这个业务DLL修改了编译了,不需要重新打包到XAP里,一来编译不打包会比之前快得多。加上因为上文已经说到,这个DLL本身没有包含XAML文件,所以不会很大。我之前做过一个项目,15个页面,代码编译后的DLL文件才50KB不到。非常的小.....。

 

上代码

 https://files.cnblogs.com/MySilverlight/demo3.zip

代码说明

  首先照上文所说的那样,找到 ....  \SilverlightApplication2\SilverlightApplication2.web\ClientBin\MyXaml\XamlShow\XamlShow.sln   并切记用Blend打开。

  然后用VS打开SilverlightApplication2.sln。并直接按F5键,点击按钮,会弹出如下界面。

 

点击按钮A.....。

 

 

呵呵,在这里有几点你必须非常注意。

1:按钮A的点击事件是放在

 

 

2:请注意,这Silverlight类库项目是放在

这的,放在服务端。当你的Test修改编译后,刷新界面上即可看到更改的部分。

 

 

至于代码实现,估计又得大跌眼镜,前后估计才10行代码吧。

就是一反射而已呵呵。

后话

 当然这只是粗略的讲解了一种思路而已:将业务代码放在单独的类库中,不混进XAP包。当然,就上面这些代码本质上并没完整解决‘代码后置’的问题。比如现在我要定义一个Converter,我该放哪呢??  XAML上又该怎么引用呢?........  还是那句话 下下下回 分解

 

 前面的文章讲到,这期间写的文章其实是一个系列。而前两篇加上这篇,实际上已经把我的框架的主干讲了。

 任何一个业务系统,都是由许多页面组成(请注意我说的是企业级开发,互联网开发我没接触).... 。而我们开发的过程其实就是开发一个个页面的过程。

  而在我的开发模式中,一个页面的加载有三个步骤

 1:从服务端下载XAML文件并形成界面(http://www.cnblogs.com/MySilverlight/archive/2012/05/26/2518798.html

 2:  绑定数据(http://www.cnblogs.com/MySilverlight/archive/2012/05/24/2516970.html)。

 3:‘代码后置’(本文)。

 这三个步骤我分别写成了三个方法。InnitUI,InnitData,InnitCodeBehind。

  呵呵 睡觉去咯。

  下一篇讲我的 Async初体验。在我开发Silverlight的过程中,大量的异步编程让我痛苦。直到响应高手laozhao的号召使用Async  Await关键才算得到解脱。 Async的使用,也让我的框架使用起来稳定性和易用性爽得不少.......     嘿嘿。

posted @ 2012-05-26 16:11  银光小子  阅读(1839)  评论(3编辑  收藏  举报