Windows通信基础(Windows Communication Foundation,WCF)是应用程序互相通信的框架,是实现简单对象访问协议(SOAP)Web服务的常见方式,使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案,提供了动态、低耦合、互联的应用程序通信功能,并大大降低了系统的复杂性,使开
发人员能够关注业务逻辑的实现。
Silverlight 是一种客户端执行的环境,它无法如同 ASP.NET一样,直接与后端数据源进行沟通,数据存读取和保存全都必须跨越网络,我们就必须使用N-tier架构才能让 Silverlight 顺利的存取远程数据,WCF RIA Service 让开发多层式架构的过程就如同传统 2 层式架构应用程序一般自然。支持TCP通讯,比较HTTP提升3-5倍,限于4502-4534端口。简化WCF RIA Services应用开发过程,通过RIA Services轻松存取数据源。
◎
新建项目,注意选中“
Enable WCF RIA Service
”。
◎
开启数据库服务,sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,安装好manage管理器后, 开启sql2005连接功能,开启办法如下,配置工具->sql server外围应用配置器->服务和连接的外围应用配置器,点击启动,如图
◎ 定义三个字段姓名Name、地址Address、电话Phone,定义Name为主健,并保存为表名Friend。
◎
现在我们需要一个数据访问层,
RIA
的服务支持和
LINQ
到
sql
的框架。增加一个新项目“
ADO.NET Entity Data Model.
”到
Web
项目中。名称为
FriendModel.edmx
◎
添加新建项中选择"Domain Service Class”,命名为:FriendDomainService.cs。
◎
定义Domain Data Class的参数,这里我们要把Entities的FunSLUsers和Enable editing都钩上.Generate associated calsses for Metadata是集成强大数据展示的定义集,一般建议把空上也钩上,集成了例如:正则表达式等数据效验功能.如下图
需再次编译一下,以使Domain Data Class生效到Silverlight项目中,下面进行silverlight端的数据操作。
@H_518_502@<UserControl x:Class="Ch16_Exam3_2.MainPage"
@H_518_502@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
@H_518_502@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@H_518_502@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@H_518_502@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@H_518_502@ d:DesignHeight="300" d:DesignWidth="400"
@H_518_502@xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
@H_518_502@xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.domainservices" xmlns:my="clr-namespace:Ch16_Exam3_2.Web">
@H_518_502@ <Grid x:Name="LayoutRoot">
@H_518_502@ <sdk:DataGrid AutoGenerateColumns="True" Height="197" HorizontalAlignment="Left" Margin="37,33,0" Name="dataGrid1" VerticalAlignment="Top" Width="322" />
@H_518_502@ <Button Content="添加" Height="39" HorizontalAlignment="Left" Margin="55,250,0" Name="btAdd" VerticalAlignment="Top" Width="90" FontSize="15" Click="btAdd_Click" />
@H_518_502@ <Button Content="删除" Height="40" HorizontalAlignment="Left" Margin="170,249,0" Name="btDele" VerticalAlignment="Top" Width="86" FontSize="15" />
@H_518_502@ <Button Content="修改" Height="39" HorizontalAlignment="Left" Margin="271,0" Name="btAdapt" VerticalAlignment="Top" Width="84" FontSize="15" />
@H_518_502@ </Grid>
@H_518_502@</UserControl>
@H_518_502@namespace Ch16_Exam3_2
@H_518_502@{
@H_518_502@ public partial class MainPage : UserControl
@H_518_502@ {
@H_518_502@ FridendContext fridendcontext;
@H_518_502@ public MainPage()
@H_518_502@ {
@H_518_502@ InitializeComponent();
@H_518_502@ fridendcontext= new FridendContext();
@H_518_502@ LoadData();
@H_518_502@ }
@H_518_502@ void LoadData()
@H_518_502@ {
@H_518_502@ dataGrid1.ItemsSource = fridendcontext.Friends;
@H_518_502@ fridendcontext.Load(FridendContext.GetFriendQuery());
@H_518_502@ }
@H_518_502@ private void btAdd_Click(object sender,RoutedEventArgs e)
@H_518_502@ {
@H_518_502@ Friend fid = new Friend();
@H_518_502@ fid.Phone = "87663560";
@H_518_502@ fridendcontext.Friends.Add(fid);
@H_518_502@ fridendcontext.SubmitChanges();
@H_518_502@ }
@H_518_502@ private void btDele_Click(object sender,RoutedEventArgs e)
@H_518_502@ {
@H_518_502@ Friend fid = (Friend)dataGrid1.SelectedItem;
@H_518_502@ fridendcontext.Friends.Remove(fid);
@H_518_502@ fridendcontext.SubmitChanges();
@H_518_502@ }
@H_518_502@ private void btAdapt_Click(object sender,RoutedEventArgs e)
@H_518_502@ {
@H_518_502@ Friend fid = (Friend)dataGrid1.SelectedItem;
@H_518_502@ fridendcontext.SubmitChanges();
@H_518_502@ }
@H_518_502@ }
@H_518_502@}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。