零基礎學通Silverlight4(8):WCF RIA Service

Windows通訊基礎(Windows Communication FoundationWCF)是應用程序互相通訊的框架,是實現簡單對象訪問協議(SOAPWeb服務的常見方式,使用該框架,開發人員能夠構建跨平臺、安全、可靠和支持事務處理的企業級互聯應用解決方案,提供了動態、低耦合、互聯的應用程序通訊功能,並大大下降了系統的複雜性,使開 發人員可以關注業務邏輯的實現。
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外圍應用配置器->服務和鏈接的外圍應用配置器,點擊啓動,如圖
     數據庫啓動後,添加數據庫新項。如圖
數據庫添加後,項目中出現數據庫文件時代表創建成功
 
     健打開數據庫,並 選中Tables->右鍵->新建表(Add New Table)
 
◎ 定義三個字段姓名Name、地址Address、電話Phone,定義Name爲主健,並保存爲表名Friend
 
     如今咱們須要一個數據訪問層, RIA 的服務支持和 LINQ SQL 的框架。增長一個新項目「 ADO.NET Entity Data Model. 」到 Web 項目中。名稱爲 FriendModel.edmx
     選擇從數據庫中創建模型。
定義數據庫鏈接,選中咱們的 MyDatabase.mdf 數據庫進行鏈接。
     選擇數據庫內的數據表、示圖、存儲過過程等。這裏咱們只要選取 Friend 表便可,點擊「Finish」完成。
此時需編譯一下Shift+F6。下面建立域名服務,域名服務是爲RIA的關健。經過建立一個在網絡域名服務項目,生成相應的在客戶端訪問的代碼,現是一個本地數據存儲,沒有Web服務配置,鏈接字符串等。
     添加新建項中選擇"Domain Service Class」,命名爲:FriendDomainService.cs
     定義Domain Data Class的參數,這裏咱們要把EntitiesFunSLUsersEnable editing都鉤上.Generate associated calsses for metadata是集成強大數據展現的定義集,通常建議把空上也鉤上,集成了例如:正則表達式等數據效驗功能.以下圖
 
需再次編譯一下,以使Domain Data Class生效到Silverlight項目中,下面進行silverlight端的數據操做。
◎如下是MainPage.xaml的內容, 定義了一個Gridview控件用來顯示數據,三個按扭控件分別是添加、修改、刪除.
<UserControl x:Class="Ch16_Exam3_2.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400"
<!-- 增長SDK 客戶端庫程序集命名空間支持 -->
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices" xmlns:my="clr-namespace:Ch16_Exam3_2.Web">
    <Grid x:Name="LayoutRoot">
        <sdk:DataGrid AutoGenerateColumns="True" Height="197" HorizontalAlignment="Left" Margin="37,33,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="322" />
        <Button Content="添加" Height="39" HorizontalAlignment="Left" Margin="55,250,0,0" Name="btAdd" VerticalAlignment="Top" Width="90" FontSize="15" Click="btAdd_Click" />
        <Button Content="刪除" Height="40" HorizontalAlignment="Left" Margin="170,249,0,0" Name="btDele" VerticalAlignment="Top" Width="86" FontSize="15" />
        <Button Content="修改" Height="39" HorizontalAlignment="Left" Margin="271,250,0,0" Name="btAdapt" VerticalAlignment="Top" Width="84" FontSize="15" />
    </Grid>
</UserControl>
 
◎ 菜單「Data」下「Show Data Sources」,可看到數據源FridendContext,在代碼在可直接使用了。
 
◎如下是MainPage.xaml.cs文件代碼部份。也就是咱們開始經過.net ria service操做數據庫了。
using Ch16_Exam3_2.Web;//後手動直接添加的命名的空間
namespace Ch16_Exam3_2
{
    public partial class MainPage : UserControl
    {             
        FridendContext fridendcontext;      
        public MainPage()
        {
            InitializeComponent();
            fridendcontext= new FridendContext();
            LoadData();
        }
        void LoadData()
        {       
            dataGrid1.ItemsSource = fridendcontext.Friends;
            fridendcontext.Load(FridendContext.GetFriendQuery());
        }
//增長記錄
        private void btAdd_Click(object sender, RoutedEventArgs e)
        {
            Friend fid = new Friend();
         fid.Name = "張剛"+System .DateTime .Now .Millisecond.ToString ();
            fid.Address = "內蒙古市";
            fid.Phone = "87663560";
            fridendcontext.Friends.Add(fid);
            fridendcontext.SubmitChanges();
            MessageBox.Show("增長成功");          
        }
//刪除記錄
        private void btDele_Click(object sender, RoutedEventArgs e)
        {
            Friend fid = (Friend)dataGrid1.SelectedItem;
            fridendcontext.Friends.Remove(fid);
            fridendcontext.SubmitChanges();
            MessageBox.Show("刪除成功");
        }
//修改記錄
        private void btAdapt_Click(object sender, RoutedEventArgs e)
        {
            Friend fid = (Friend)dataGrid1.SelectedItem;
            fid.Address = "北京市南京路";
            fridendcontext.SubmitChanges();
            MessageBox.Show("修改爲功");
        }
    }
}
 
可增長、刪除、修改等,如圖
 
 
更詳細內容及源代碼下載:
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1287058088&asin=B0043RT7I2&sr=8-1
相關文章
相關標籤/搜索