silverligh的数据访问

     对于在Silverlight中访问数据,初学者的误解之一就是他们在Silverlight中寻找ADO.NET类库。别找了,找不到的。记住,Silverlight是部署在互联网上的客端技术,你不能要求一个浏览器插件去直接访问你的数据库……除非你想把数据库直接暴露在网络上。我们都知道绝对不能这么做。

所以比较可行的方法是在服务层上暴露数据。这也是Silverlight进行数据通信的方式。这里有一些主要的访问手段:

  • Web服务: SOAP, ASP.NET web services (ASMX), WCF services, POX, REST 终端
  • 套接字: 网络套接字通信(Network Socket Communication)
  • 文件: 通过Web请求访问静态内

     对于本项目来说技框架已搭建完成,它是采用RIA Service服务来与数据层交换的:那么什么是RIA Service服务呢?简单的说就是ADO.NET服务应用的WCF实现。

   

    为了数据的安全性,添加了数据逻辑层来处理silverlight展示的GIS数据。

 1   /// <summary>
 2     /// 用户服务
 3     /// </summary>
 4     public class UserService
 5     {
 6         public event EventHandler<BLL.Bases.ObjectEventArgs<User>> OnGetUserByCodeCompleted;
 7 
 8         public void GetUserByCode(string pUserCode)
 9         {
10             UserDALContext myUserDal = new UserDALContext();
11             myUserDal.GetUser(pUserCode, this.GetUserCompleted, "GetUserByCode");
12         }
13 
14         private void GetUserCompleted(InvokeOperation<User> pUserValue)
15         {
16             if (this.OnGetUserByCodeCompleted != null)
17             {
18                 this.OnGetUserByCodeCompleted(this, new Bases.ObjectEventArgs<User>(pUserValue.Value));
19             }
20         }
21 
22         /// <summary>
23         /// 更新用户信息
24         /// </summary>
25         /// <param name="pUser"></param>
26         public void UpdateUser(User pUser)
27         {
28             UserDALContext myUserDAL = new UserDALContext();
29             pUser.TableShowedConfigString = pUser.GetTablesShowedConfig().GetXml();
30             myUserDAL.UpdateUser(pUser, this.UpdateUserOK, "");
31         }
32 
33         /// <summary>
34         /// 当更新用户信息成功后触发的事件
35         /// </summary>
36         public event EventHandler<EventArgs> OnUpdateUserOK;
37 
38         /// <summary>
39         /// 当用户更新之后执行的函数
40         /// </summary>
41         /// <param name="pValue"></param>
42         private void UpdateUserOK(InvokeOperation pValue)
43         {
44             if (this.OnUpdateUserOK != null)
45             {
46                 this.OnUpdateUserOK(this, new EventArgs());
47             }
48         }
49     }
View Code

 

posted @ 2015-02-06 15:24  沣洋  阅读(156)  评论(0编辑  收藏  举报