Silverlight学习点滴之一――使用WCF RIA构建应用

来源:互联网 时间:1970-01-01

WCF RIA是一项很有意思的技术,能够让客户端的Silverlight直接访问服务端的数据库,而不需要创建新的WCF项目(当然,其底层还是通过WCF实现的),就像操作本地的数据库一样。

不过,WCF RIA只能用于Silverlight。相关安装包在Silverlight 4.0中包含。

我选择创建的是Silverlight Businuss,参考的是这个视频:.NET RIA Services Intro

1. 创建Silverlight Businuss Application

我创建的项目名称是DataManageSystem。创建成功后,在解决方案目录下,会生成DataManageSystem和DataManageSystem.Web两个项目。

在这里,推荐使用火狐浏览器进行调试。Chrome没法禁止缓存,常常每次修改完运行调试,运行的还是老版本的代码。IE8么,实在是卡,动不动就假死,只好算了。

 

2. 添加数据库访问层

这里我选的Entity Framework 4.1。因为数据库已经建了表了,所以选择Database First方式,在DataManageSystem.Web项目中添加新项目,选择ADO.Net 实体数据模型。我对表名全部使用了复数形式,所以勾选“确定所生成的对象名称的单复数形式”,这样能够映射得到单数形式的类名。

完了记得生成一下项目,这一步非常重要!

 

3. 添加Service

在DataManageSystem.Web项目中添加新项目,选择Domain Service Class。勾选对应的实体,是否启用编辑就随意了。

上一步如果没有生成项目的话,这边的实体类是不会显示的!

 

4. 在客户端添加新的视图

在客户端的View当中添加Silverlight页"DataSourceList.xaml"。

添加"System.Windows.Controls.Data"的引用,是这个Dll提供了DataGrid控件。

编辑Xaml,添加命名空间:

xmlns:data="clr-namespace:System.Windows.Controls;      assembly=System.Windows.Controls.Data"
 

添加控件DataGridView(记得加data前缀)。

<data:DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsReadOnly="True">
    <data:DataGrid.Columns>
        <data:DataGridTextColumn Header="数据源类别" 
            Binding="{Binding 数据源类别}" />
        <data:DataGridTextColumn Header="数据源版本" 
            Binding="{Binding 数据源版本}" />
        <data:DataGridTextColumn Header="摘要" 
            Binding="{Binding 摘要}" />
        <data:DataGridTextColumn Header="测图比例尺" 
            Binding="{Binding 测图比例尺}" />
        <data:DataGridTextColumn Header="保密级别" 
            Binding="{Binding 保密级别}" />
    </data:DataGrid.Columns>
</data:DataGrid>

 

转到后台代码,添加命名空间"DataManageSystem.Web",在页面Loaded事件中添加数据绑定的代码:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    var context = new DataSourceContext();
    dataGrid.ItemsSource = context.DataSources;
    context.Load( context.GetDataSourcesQuery() );
}

 

转到MainPage中,依样画葫芦,再加一个HyperlikeButton。其中NavigateUri改为"/DataSourceList", Content改为"数据页面"。

最后生成以下,启动调试:

本文来自贼寇在何方的博客,原文地址:http://www.cnblogs.com/Realh/archive/2011/06/30/2094019.html


相关阅读:
Top