基于Cairngorm的Silverlight开发系列

 

最近做了几个silverlight的项目都用到了MVC的开发架构,在silverlight中,MVC、MVVM等架构都很多。各个第三方的公司在推出自己的架构的同时也专门会发布一个for silverlight的版本(如CSLA .NET 3.6支持Silverlight 2 )。  我在做项目时选用了Cairngorm这个MVC框架,因为之前我做flex开发时就用的是他,silverlight中对这个框架进行了移植,用法、思路都是一致的,这里总结了一下自己的开发经验共享出来。

 


两个用Cairngorm做的项目

基于Cairngorm的Silverlight开发 - part1

简单的说Cairngorm是在Silverlight开发中的一个轻量级的MVC开发框架。
和flash、flex开发中的Cairngorm框架一样,Cairngorm是能将程序代码按照逻辑功能(数据、视图、控制)分块的一种开发模型,这个模型被称为MVC(Model模型、View视图、Control控制)模型。

基于Cairngorm的Silverlight开发 - part2 

由浅入深的来搭建架构。 

基于Cairngorm的Silverlight开发 - part3

使用ModelLocator来管理视图

基于Cairngorm的Silverlight开发 - part4

通过绑定用视图来管理ModelLocator

基于Cairngorm的Silverlight开发 - part5

搭建完整的Cairngorm项目

你可以在我的silverlight实验室http://grmcac.com/silverlight/lab/ 里找到更多的好玩意 :)

 

时间: 2024-09-04 06:05:09

基于Cairngorm的Silverlight开发系列的相关文章

基于Cairngorm的Silverlight开发 - part2

  搭建架构   由浅入深的来搭建架构. 从ModelLocator开始 ModelLocator只是Cairngorm中的一个部分,要使用它并不一定要把Cairngorm所有的架构都搭建起来,ModelLocator是可以单独来使用的. ModelLocator是Silverlight程序中的一个数据的容器,所有的数据都存在于一个类中"singleton class".这个类有且仅有一个实例.他使用的是设计模式中的单件模式.(这里我也不多说了,李老师已经说的很清楚了.ModelLoc

基于Cairngorm的Silverlight开发 - part1

基于Cairngorm的Silverlight开发 - part1 概述 简单的说Cairngorm是在Silverlight开发中的一个轻量级的MVC开发框架. 和flash.flex开发中的Cairngorm框架一样,Cairngorm是能将程序代码按照逻辑功能(数据.视图.控制)分块的一种开发模型,这个模型被称为MVC(Model模型.View视图.Control控制)模型. 获取 请访问项目网站 的下载页面 . Cairngorm的各个部分 ModelLocator模型:一个储存程序中所

基于Cairngorm的Silverlight开发 - part5

搭建完整的Cairngorm项目 到这里已经都知道了如何独立的运用Cairngorm中两个特殊的部分,ModelLocator模型和View视图,现在需要的就是建立一个完成的Cairngorm项目了.之前只用到了一种设计模式ModelLocator的单件模式,现在要用到了另一种设计模式命令模式,这个模式也是Cairngorm的核心部分. 一个Cairngorm项目一般是这个样子: 一个Page.xaml -(***.xaml.cs这里我就都不提了)程序的入口 一个App.xaml -用来存放Si

基于Cairngorm的Silverlight开发 - part4

通过绑定用视图来管理ModelLocator   由于绑定是双向的,所以在绑定到一些可以操作其自身属性的的控件时,对ModelLocator也是有影响的.这里把上边事例中的颜色的RGB值分别绑定到三个Slider控件上.         public ColorConfig()         {             InitializeComponent();             this.Loaded += new RoutedEventHandler(ColorConfig_Loa

基于Cairngorm的Silverlight开发 - part3

使用ModelLocator来管理视图 之前只是简单的介绍了一下ModelLocator的用法,在这里要把模型和视图结合起来,通过模型来来控制视图.在Silverlight中我们可以看到所有新建立的xaml都是继承自UserControl,所以在这里更新欢称视图为控件. 至此给出一个项目的结构图出来.这里我是习惯把从网上下载的第三方类库放在项目中一个Lib的目录下,如果有源码的话直接加入解决方案中也是可以的. 所有的用户控件都是创建在Controls目录下.这里提到了创建用户控件,所以就不得不提

【Qt编程】基于Qt的词典开发系列<四>--无边框窗口的缩放与拖动

        在现在,绝大多数软件都向着简洁,时尚发展.就拿有道的单词本和我做的单词本来说,绝大多数用户肯定喜欢我所做的单词本(就单单界面,关于颜色搭配和布局问题,大家就不要在意了).有道的单词本: 我所做的单词本:         很明显,两者的主要区别就是周围的边框问题.你可以对比QQ以前的版本和这几年的版本,就会发现都倾向于下面这种窗口模式.下面我们就说说如何用Qt实现无边框窗口的缩放与拖动.         对于无边框窗口的拖动其实很简单,其基本思想是,在鼠标移动前后记录鼠标的坐标,然

【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东西都不熟悉了.恰逢这学期课比较少,于是乎想写写关于这个软件制作的一系列文章,对日后重拾该软件时能够较快入手.当然,也非常乐意读者们在该软件的基础上添加一些功能,源代码会在该系列文章写完之后公布.可运行的词典软件的下载地址:http://download.csdn.net/detail/tengweit

【Qt编程】基于Qt的词典开发系列&amp;lt;八&amp;gt;--用户登录及API调用的实现

在上一篇文章<调用网络API>中,我只讲述了如何直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用,当然本程序的实现也是借助于扇贝网的API接口文档http://www.shanbay.com/help/developer/api/. 由API文档可知,要想调用其API,必须先注册.因此,我就注册了,账户名为nineheadedbird, 密码为123456.显然,我们要查词,首先必须得登录该账户.如果用浏览器,那就很简单,只需单纯的输入用户名和密码就可以

【Qt编程】基于Qt的词典开发系列&amp;lt;十二&amp;gt;调用讲述人

       我们知道,win7系统自带有讲述人,即可以机器读出当前内容,具体可以将电脑锁定,然后点击左下角的按钮即可.之前在用Matlab写扫雷游戏的时候,也曾经调用过讲述人来进行游戏的语音提示.具体的Matlab脚本文件如下: sp=actxserver('SAPI.SpVoice');sp.Speak('你好,欢迎来到西安电子科技大学!Hello,Welcome to XD University!')        Qt调用讲述人,需要使用专门的类,具体可以参考http://lynxlin