基于 Silverlight的快速开发框架RapidSL之MVVM解析

RapidSL框架基于WCF RIAService + EF + MVVM,UI 采用了DomainService + RiaControls + EasySL Controls,对sl传统的开发方式进行了集成和封装,核心模块基于View,ViewModel模型,基本上只需要修改View视图就可以完成 CRUD操作,提供了非常便捷的快速开发方式;

一. Model(Domain Model)

1. RIA Service端通过EF生成

2. 然后在sl项目选中“WCF RIA Services link”,


3. 会自动生成UI Model,省去了DTO,保存在Generated_Code


二. ViewModel

1. 使用了LightMVVM,继承自ViewModelBase

2.  作为前端绑定的业务实体如:

复制代码
  
  
protected bool isShowDataFormPanel; public virtual bool IsShowDataFormPanel { get { return isShowDataFormPanel; } set { isShowDataFormPanel = value; RaisePropertyChanged( " IsShowDataFormPanel " ); } }
复制代码

3. 作为视图绑定事件通知的RelayCommand

复制代码
  
  
protected ICommand itemEdit; public virtual ICommand ItemEdit { get { if (itemEdit == null ) itemEdit = new RelayCommand(() => { this .IsShowDataFormPanel = true ; }); return itemEdit; } }
复制代码

4.注入ViewModel到App资源,[StaticResource(Key..., 和在App.xaml里写资源是一样的

  
  
namespace RapidSL.UI.ViewModels { [StaticResource( " MainViewModel " )] public partial class MainViewModel : MyViewModelBase

5. 我实现了一个通用的带CRUD ViewModel:

三. View

1. 赋DataContext为对应的ViewModel

  
  
< UserControl.DataContext > < Binding Source = " {StaticResource Article_ItemViewModel} " /> </ UserControl.DataContext >

2. Binding和Command

  
  
< Button Command = " {Binding ItemDelete} " IsShow = " {Binding IsShowDataFormPanel, Mode=TwoWay} " >

下载:http://easysl.codeplex.com/releases/view/26522
预览:http://rapidsl.guozili.25u.com/  (guest/guest  admin/admin  请不要删除资料)

  
  
RapidSL - a efficient and fast Infrastructure for silverlight development Produced by xiaoyi / www.guozili. 25u .com / guozili@ 163 .com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值