文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Silverlight-Caliburn应用框架2

Silverlight-Caliburn应用框架2

时间:2010-08-24  来源:Ringgo.Yao

         前一篇对Cailburn有个先入为主的印象,这篇我们具体的认识一下Caliburn这个框架。

         Caliburn框架本身为支持UI设计支持了MVC,MVP,MVVM,Commands和App Controller模式,这样它就提供了较为普遍的UI架构问题的解决方案,

那么其中还包括减轻了对依赖注入容器的使用。

         Caliburn框架提供了几个比较重要的特性:

        Action:Caliburn扩展了之前SL的不能绑定到方法的能力,其为一些相关类提供了手势,附加事件等持久型的API,这种方法绑定移除了MVP,MVVM中

代码的耦合,同时Caliburn的Action机制可以从UI上传递参数给方法,并将返回的结果绑定到UI上,它还提供了一个Filter机制用于装饰方法,这些过滤器

可以通过禁用,折叠,隐藏控件影响UI,Caliburn也可以执行异步方法和回调,框架本身已经对线程进行处理。

       Command:Command可以解决SL3之前不支持Command的问题,Command是构建在Action之上,自然可以共享一些特性,比如说支持多个

输入参数,过滤器和异步执行,这里父Command不仅可以执行多个子Command命令,也可以被子命令通过多种方式影响。

       App Model:Caliburn通过IPersenter接口支持基于MVP,MVVM的UI架构,其通过Presenter, PresenterManager, MultiPresenter等类对各种

UI组件进行激活,禁用和关闭等场景的操作。

      Convention:这一点,第1篇已经粗略提到,Caliburn定义了一些基本的规范用于获取对应视图,Action的绑定等,这个部分也可以自己进行扩展

或定制

      Testability:Caliburn对测试数据绑定提供了丰富的支持,并定义了接口用于验证对象的变化通知,Caliburn的绑定校验可以准确的告诉你问题所

在以及相关错误的信息。

       Utilities:Caliburn提供了丰富的类和扩展方法,其中最受欢迎的就是Execute静态类了。

      上面主要是对Cailburn的几个特点进行了一些说明,这个部分其实是我从官方网站上进行的翻译,也是第一次翻译技术文档,有理解不对的,欢迎指正!

其实也可以看出来,我翻译的内容也是有侧重点的,因为我主要关注的两点就是Action和Command,对于其它部分,若是感兴趣可以自己去官网了解。

      这篇我们先关注一下Silverlight应用Caliburn框架的配置

      创建好项目之后,先添加dll:

            Caliburn.Core.dll,

            Caliburn.PresenationFramework.dll ,

            Microsoft.Practices.ServiceLocation.dll

      这个在第1篇中已经详细说过,主要看下面的部分:

      现在我们需要在App.cs中进行配置

      首先引用命名空间

       using Caliburn.Core;
       using Caliburn.PresentationFramework;
现在修改Application_Startup
       private void Application_Startup(object sender, StartupEventArgs e)
        {         
            CaliburnFramework.ConfigureCore().WithPresentationFramework().Start();
            this.RootVisual = new MainPage();
        }

       这行代码就将Calibrun中核心框架与各种特性配置到应用程序中了,这时候程序就可以编译了,你也可以像第一篇所演示

的那样从CaliburnApplication类继承 ,这是最简单的配置方式,除此之外,还有许多方法用来自定义配置,因为从本质上讲,

Caliburn是一系列UI服务的集合,那么其中任一服务都可以单独进行配置,不过这种情况出现相对而言也是比较少的,主要是利用了Caliburn对依赖注入容器的一个扩展机制,上面的例子就是Caliburn默认的通过DI容器进行的简单配置,也可以通过IServiceLocator接口进行配置,这里不是我所关注的地方,如果必要,请参阅相关文档。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载