Silverlight 3.0+Wcf+LingToSql+lamda
2012-05-04 16:40
169 查看
丰富型互联网应用将是未来的发展趋势,Silverlight 是c# vb 码农们建立富互联网应用的必备手段。 我使用的是工具是vs 2010 +blend 3。silverlight是个客户端工具。如何与数据库交互呢,这就用到了 wcf API (vs2010中是:启用了silverlight的wcf服务)。使用 LingToSql 作为数据查询的架构,能够快速,高效,简便的使silverlight客户端与wcf服务端进行交互。lamda在处理silverlight控件事件的时候可以少写很多代码。使得我们的代码更简洁。
一:首先 建个silverlight 应用程序+web应用程序。
在web应用程序中添加新项 : 选择启动了silverlight 的wcf 服务
代码示例:
LingSqlHelp LS = new LingSqlHelp();
[OperationContract]
/// <summary>
/// 查询角色
/// </summary>
public IEnumerable<User_Role> QueryUser_Role()
{
IEnumerable<User_Role> User_Roles = LS.Query();
return User_Roles;
}
LingSqlHelp 是我写的ling to sql的一个帮助类。 IEnumerable 这个类型 是ling to sql 返回的类型。wcf可以把这个类型直接返回的silverlight客户端。
User_Role是个模型类 ,这个类也会被silverlight客户端生成代理模型, [DataContract]标识, [DataMember]标识不能少。这些都是约定好的标签。
[DataContract]
public class User_Role
{
[DataMember]
public int id {get;set;}
[DataMember]
public string rolename { get; set; }
}
二:silverlight客户端
添加服务 -前往-生成代理类。跟引用webservice差不多
ServiceReference1.ServiceClient sc = new ServiceReference1.ServiceClient();//这个是生成的代理类
sc.OpenAsync(); //打开连接
sc.QueryUser_RoleAsync();
sc.QueryUser_RoleCompleted += (object sender, ServiceReference1.QueryUser_RoleCompletedEventArgs e)=》
{
ObservableCollection<ServiceReference1.User_Role> User_Roles = e.Result;
User_Roles.Insert(0,new ServiceReference1.User_Role() { id=0, rolename="全部"});
comboBox1.ItemsSource = User_Roles;
comboBox1.SelectedIndex = 0;
};//lamda表达式。 服务端所有的泛型集合 包括Lsit<T> 在silverlight客户端中生成的代理类中都会转化为ObservableCollection<T>泛型集合
sc.CloseAsync()//关闭连接
职位是通过刚那个交互绑定的。其他的绑定datagrid绑定我们会在下一讲到。
要说明的一点是silverlight只是一个客户端。wcf是一个服务。我需要做些安全的措施。建议大家使用ssl 认证。没有条件的可以使用约定的密钥,ip限制等进行判断请求是否我们的客户端的发起的。
博客园首发 菜鸟原创 转载请著名作者:青牛客
一:首先 建个silverlight 应用程序+web应用程序。
在web应用程序中添加新项 : 选择启动了silverlight 的wcf 服务
代码示例:
LingSqlHelp LS = new LingSqlHelp();
[OperationContract]
/// <summary>
/// 查询角色
/// </summary>
public IEnumerable<User_Role> QueryUser_Role()
{
IEnumerable<User_Role> User_Roles = LS.Query();
return User_Roles;
}
LingSqlHelp 是我写的ling to sql的一个帮助类。 IEnumerable 这个类型 是ling to sql 返回的类型。wcf可以把这个类型直接返回的silverlight客户端。
User_Role是个模型类 ,这个类也会被silverlight客户端生成代理模型, [DataContract]标识, [DataMember]标识不能少。这些都是约定好的标签。
[DataContract]
public class User_Role
{
[DataMember]
public int id {get;set;}
[DataMember]
public string rolename { get; set; }
}
二:silverlight客户端
添加服务 -前往-生成代理类。跟引用webservice差不多
ServiceReference1.ServiceClient sc = new ServiceReference1.ServiceClient();//这个是生成的代理类
sc.OpenAsync(); //打开连接
sc.QueryUser_RoleAsync();
sc.QueryUser_RoleCompleted += (object sender, ServiceReference1.QueryUser_RoleCompletedEventArgs e)=》
{
ObservableCollection<ServiceReference1.User_Role> User_Roles = e.Result;
User_Roles.Insert(0,new ServiceReference1.User_Role() { id=0, rolename="全部"});
comboBox1.ItemsSource = User_Roles;
comboBox1.SelectedIndex = 0;
};//lamda表达式。 服务端所有的泛型集合 包括Lsit<T> 在silverlight客户端中生成的代理类中都会转化为ObservableCollection<T>泛型集合
sc.CloseAsync()//关闭连接
职位是通过刚那个交互绑定的。其他的绑定datagrid绑定我们会在下一讲到。
要说明的一点是silverlight只是一个客户端。wcf是一个服务。我需要做些安全的措施。建议大家使用ssl 认证。没有条件的可以使用约定的密钥,ip限制等进行判断请求是否我们的客户端的发起的。
博客园首发 菜鸟原创 转载请著名作者:青牛客
相关文章推荐
- 数据库LINQ TO SQL在Silverlight中的应用(WCF)
- 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)
- silverlight+wcf+linq to sql项目实战
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数
- Silverlight+wcf+LinqToSql的demo
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- 用 linq to sql+wcf service+datagrid 创建基本的silverlight2.0应用程序
- 7 Simple Steps to Connect SQL Server using WCF from SilverLight
- 7 Simple Steps to Connect SQL Server Using WCF from SilverLight
- silverlight+wcf+linq to sql项目实战
- silverlight+wcf+linq to sql访问数据
- DataRabbit 3.0 与 Linq to sql 性能比较
- Ling to sql更新实体概述
- How to get data from Oracle DB in silverlight via WCF ?
- Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)
- 强大的DataGrid组件[3]_数据交互之Linq to SQL——Silverlight学习笔记
- [Silverlight][linq to sql]不能找到linq to sql自动生成类型
- sql,lingq。lamda对照
- SilverLight 3.0 WCF连接数据库
- 稳扎稳打Silverlight(40) - 3.0绑定之Element to Element Binding, RelativeSource; 样式之动态修改样式, 样式继承, 自定义光标