微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于 Silverlight的精简框架之版本升级及使用

最近研究了下RIA Services+EF自动生成Silverlight context代码非常方便,但是只有使用EF/Linqtosql + LinqToEntitiesDomainService的方式才能同Silverlight结合的很好,且可控性不是很好,在领域模型耦合度还是比较高,难以同传统的三层架构无缝结合。
      然后回顾了自己的EasySL框架,究其量也只是个轻量级的DomainService,所以提取出核心的数据传输服务,作为独立的版本发布,如果不适应RIA Services的开发方式,可以借以了解下EasySL.


----------------------------------------------------------------------------------------------------------------------- 

  • 你可以在http://www.codeplex.com/EasySL下载到最新的代码
  • 最新的版本在2.0文件夹里,已经精简到只有两个项目EasySL.Core 和 EasySL.Control,里面还包括一个Sample文件夹,主要是提供了一个DataGrid+DataForm基于Easy实现CRUD及分页的示例;
  • 此版本已经去掉大部分控件,remoting分布式部署,只保留数据交互核心模块。

-----------------------------------------------------------------------------------------------------------------------

 

 

Usage:

 -----------------------------------------------------------------------------------------------------------------------

1. 在你的web项目中引用EasySL.Core,在你的web项目里新建Service.ashx,作为data/domain service用

 

1  public   class  Service : DataServiceHandler < EasySL.Data.DAO >

2. 建立entity项目,YourProject.Entity和YourProject.EntitySL,2个项目共享同份代码

代码

3.建立data项目,YourProject.Data(DAL),建立DAO数据实体,对应web项目中的DataServiceHandler<EasySL.Data.DAO>

复制代码

代码
 1  public   class  DAO
 2  {
 3       int  GetProductCount()
 4 
 5   List < Product >  GetProducts(  pageIndex,   pageSize)
 6   7  void  SaveOrAddProduct(Product product)
 8   9   DeleteProduct(  id)
10  }

复制代码

 

4.在你的silverlight项目中引用EasySL.Core.SL

 

单任务:

多任务(串行执行):

复制代码

代码
TaskList taskList  = new  TaskList();
            
        Task task1   Task();
        task1.Begin  +=  ...
        task1.End          Task task2          task2.Begin          task2.End  11          taskList.Add(task1);
12          taskList.Add(task2);
13          taskList.Start();   
 5.  Task全局异 常处理
 如果你需要捕获服务端异常,在page.xaml
页面文件注册Requestor:
 

代码
1  EasySL.Core.Requestor.OnResponse   response  => 2                  {
3                       if  (response.Status  ==  ResponseStatus.ServiceException)
4                          EasySL.Controls.Window.Alert(response.Message);
5                  };



Demo:  http://guozili.25u.com/2009/#6

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐