zoukankan      html  css  js  c++  java
  • [Silverlight]MVVM+MEF框架Jounce学习(1):Why?

    英文原文:http://csharperimage.jeremylikness.com/2010/10/jounce-part-1-why.html

    【译者注:因为我英文不好,并且懒,所以我不会原文一字不差的翻译原文,只图达意吧。实在看不下去的对照英文吧:)】

    Jounce是一个利用MEF和MVVM创建Silverlight应用程序的框架。

    起因

    我用Silverlight开发企业应用,是从2.0开始。有些应用需要很强的可扩展性,需要方便的添加视图和模块。有时需要很强的模块化,例如动态加载和压缩dll到客户浏览器。我发现MVVM和MEF是很好的工具,可以方便做单元测试和团队分工合作。我发现每次都从头创建新应用是在浪费时间,我需要独立出一套框架可以应用到新的任务中。这个框架被命名为Jounce。类似于大多数的MVVM框架,她提供了messaging services and notify property changed handlers,不同的是她利用了MEF。

    为什么要用Jounce?

    发布Jounce更多的是为了提供一种专门用于解决Silverlight领域的MVVM问题的方法,而不是为了解决所有平台(Silverlight、WPF和Windows phone 7)的问题。在专门的领域成功解决领域问题是我一贯的原则。你可以下载全部源代码阅读并弄明白Jounce是怎么工作的,因为她非常轻量级,只有不到1000行代码。你也可以修改并用到自己的框架中,因为没有一个框架可以解决所有问题。Jounce远比Prism来得轻量,功能上可能没有Prism来的强大,例如区域管理模式。只因为很多功能对我用处不大,例如Calburn和Caliburn Mico提供的自动数据绑定,我宁愿使用显式的试图模型绑定。

    Jounce的设计原则

    • App.xaml.cs中的代码很烦人可以不要,使用更优雅的IApplicationService
    • 执行跟踪很重要,尽管Silverlight没有提供原生的trace支持
    • Commands应该很容易触发和使用,在你需要他们的时候
    • 快速地发送和接收消息,而不用担心必须要把消息封装到UI线程上
    • View models同步view state,可以在view state改变时改变试图的状态,而不用引用View对象
    • 标记view和view model应该是简单灵活的
    • view和view model的绑定应该是简单的,他们应该很容易发现对方
    • 如果我导航到一个View,我不应该担心这个View是否位于另一个动态加载的Xap文件中
    • Navigation应该是一个简单的事件

    如何开始?

    下载地址:http://jounce.codeplex.com/
    文档:http://jounce.codeplex.com/documentation?referringTitle=Home
    快速开始Demos:http://jounce.codeplex.com/releases/view/53423

  • 相关阅读:
    Redis数据类型有哪些?
    什么情况下调用doGet()和doPost()?
    .JSP中动态include和静态include的区别?
    .Request对象的主要方法有哪些?
    Redis数据类型有哪些?
    Redis的特点什么是?
    请写出常用的linux指令
    接口绑定有几种实现方式,分别是怎么实现的?
    什么是 MyBatis 的接口绑定,有什么好处?
    MyBatis 的好处是什么?
  • 原文地址:https://www.cnblogs.com/slmk/p/Jounce.html
Copyright © 2011-2022 走看看