<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msdnvietnam.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SilverLight programming tip tricks</title><link>http://msdnvietnam.net/wikis/silverlighttips/default.aspx</link><description>Các mẹo khi lập trình SilverLight</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Walkthrough: Adding Query Methods</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-adding-query-methods/revision/0.aspx</link><pubDate>Sun, 26 Sep 2010 09:20:52 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:152</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 5:20:52 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Adding Query Methods&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: &lt;span style="text-decoration: line-through; color: red;"&gt;WCF&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;RIA&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Services&lt;/span&gt;&lt;/div&gt;

&lt;div class="introduction"&gt;
&lt;p&gt;C&amp;aacute;c phương thức d&amp;ugrave;ng để truy vấn dữ liệu từ dữ liệu nguồn đ&amp;ocirc;i khi được gọi l&amp;agrave; c&amp;aacute;c query method. Trong WCF RIA Services, c&amp;aacute;c query method phải được x&amp;aacute;c định bằng c&amp;aacute;ch m&amp;agrave; framework xem ch&amp;uacute;ng l&amp;agrave; query methods. Ngo&amp;agrave;i ra , c&amp;aacute;c truy vấn lu&amp;ocirc;n trả về một single entity được x&amp;aacute;c định kh&amp;aacute;c với c&amp;aacute;c truy vấn trả về nhiều gi&amp;aacute; trị. Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về query method, h&amp;atilde;y xem&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707373%28v=VS.91%29.aspx"&gt;Domain Services&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một lớp domain service v&amp;agrave; x&amp;aacute;c định c&amp;aacute;c entity trong hộp thoại &lt;b&gt;Add 
New Domain Service Class&lt;/b&gt; , th&amp;igrave; RIA Services framework sẽ tự động tạo query method đơn giản cho từng entity được tr&amp;igrave;nh b&amp;agrave;y bởi service. Query method nhận tất cả c&amp;aacute;c d&amp;ograve;ng của entity. B&amp;agrave;i viết n&amp;agrave;y m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để th&amp;ecirc;m một query methods mới, thực thi nhiều truy vấn s&amp;agrave;ng lọc phức tạp hơn bằng một gi&amp;aacute; trị tham số. B&amp;agrave;i n&amp;agrave;y cũng m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o th&amp;ecirc;m một truy vấn trả về một gi&amp;aacute; trị entity v&amp;agrave; trả về một tập c&amp;aacute;c entity.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorkLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một RIA Services project đ&amp;atilde; xuất dữ liệu từ bảng &lt;b&gt;Customer &lt;/b&gt;của cơ sở dữ liệu đơn giản &lt;b&gt;AdventureWorksLT&lt;/b&gt; như l&amp;agrave; trong b&amp;agrave;i viết trước &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method với điều kiện v&amp;agrave;o l&amp;agrave; một tham số v&amp;agrave; trả về một entity duy nhất&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở solution đ&amp;atilde; lấy dữ liệu từ bảng &lt;b&gt;Customer&lt;/b&gt; trong b&amp;agrave;i trước.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem tại li&amp;ecirc;n kết n&amp;agrave;y&amp;nbsp; &lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m một query method nhận một đối số kiểu integer v&amp;agrave; trả về một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt;&lt;/b&gt; entity c&amp;oacute; customer ID tương ứng.&lt;/p&gt;
&lt;p&gt;Nếu một&amp;nbsp; phương thức trả về một single entity bao gồm thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt;, th&amp;igrave; bạn phải thiết lập thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute.iscomposable%28v=VS.91%29.aspx"&gt;IsComposable&lt;/a&gt;&lt;/span&gt; th&amp;agrave;nh &lt;span&gt;&lt;span class="input"&gt;false&lt;/span&gt;&lt;/span&gt;. Người d&amp;ugrave;ng kh&amp;ocirc;ng thể thao t&amp;aacute;c th&amp;ecirc;m c&amp;aacute;c truy vấn từ client. Nếu query method ph&amp;ugrave; hợp với cấu tr&amp;uacute;c của một c&amp;acirc;u truy vấn, bạn kh&amp;ocirc;ng cần &amp;aacute;p dụng thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt; . Gi&amp;aacute; trị trả về phải l&amp;agrave; một instance duy nhất của một đối tượng entity.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;[Query(IsComposable=&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public&lt;/span&gt; Customer GetCustomersByID(&lt;span style="color:blue;"&gt;int&lt;/span&gt; customerID)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.SingleOrDefault(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c =&amp;gt; c.CustomerID == customerID);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method c&amp;oacute; một đối số v&amp;agrave; trả về một tập c&amp;aacute;c entity&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong domain service, th&amp;ecirc;m một query method c&amp;oacute; đầu v&amp;agrave;o l&amp;agrave; một tham số kiểu string v&amp;agrave; trả về bất k&amp;igrave; customers n&amp;agrave;o c&amp;oacute; t&amp;ecirc;n bắt đầu l&amp;agrave; một k&amp;iacute; tự.&lt;/p&gt;
&lt;p&gt;Phương thức n&amp;agrave;y c&amp;oacute; thể trả về một đối tượng&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;IQueryable&amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; bởi v&amp;igrave; người d&amp;ugrave;ng c&amp;oacute; thể muốn cung cấp th&amp;ecirc;m c&amp;aacute;c thao t&amp;aacute;c truy vấn từ client.&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; IQueryable&amp;lt;Customer&amp;gt; GetCustomersByLastNameLetter(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; startingLastNameLetter)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.Where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (c =&amp;gt; c.LastName.StartsWith(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; startingLastNameLetter) == &lt;span style="color:blue;"&gt;true&lt;/span&gt;);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị kết quả của những query methods n&amp;agrave;y trong client project.&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong client project, h&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;TextBox&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls v&amp;agrave; hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Button&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls để người d&amp;ugrave;ng c&amp;oacute; thể lọc ra c&amp;aacute;c customer bằng ID hay bằng k&amp;iacute; tự đầu ti&amp;ecirc;n của t&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;Phần m&amp;atilde; XAML sau tr&amp;igrave;nh b&amp;agrave;y một layout ho&amp;agrave;n chỉnh với &lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; đ&amp;atilde; c&amp;oacute; .&lt;/p&gt;
&lt;div id="snippetGroup2"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode2" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;d&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;300&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;400&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;White&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;25&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by id: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;50&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by name: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;30&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của trang &lt;b&gt;MainPage.xaml&lt;/b&gt; (&lt;b&gt;MainPage.xaml.cs &lt;/b&gt;hay &lt;b&gt;MainPage.xaml.vb&lt;/b&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m m&amp;atilde; v&amp;agrave;o để nhận kết quả truy vấn dựa tr&amp;ecirc;n những g&amp;igrave; m&amp;agrave; người d&amp;ugrave;ng nhập v&amp;agrave;o&lt;/p&gt;
&lt;div id="snippetGroup3"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode3" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{

    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LetterButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByLastNameLetterQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LetterValue.Text), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; IDButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByIDQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(IDValue.Text)), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;void&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;CustomerLoadedCallback(LoadOperation&lt;/span&gt;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;CustomerLoadedCallback&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;(&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;LoadOperation&lt;/span&gt;&amp;lt;Customer&amp;gt; loadOperation)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; đ&amp;acirc;y l&amp;agrave; h&amp;igrave;nh m&amp;ocirc; tả danh s&amp;aacute;ch c&amp;aacute;c customers được lọc ra theo t&amp;ecirc;n.&lt;/p&gt;
&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="541" height="413" /&gt;&lt;/li&gt;
&lt;/ol&gt;Nguồn của b&amp;agrave;i viết v&amp;agrave; được dịch bởi kpopyo tại đ&amp;acirc;y: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Adding Query Methods</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-adding-query-methods/revision/5.aspx</link><pubDate>Sun, 26 Sep 2010 09:19:04 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:136</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 5 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 5:19:04 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Adding Query Methods&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: WCF RIA Services&lt;/div&gt;

&lt;div class="introduction"&gt;
&lt;p&gt;C&amp;aacute;c phương thức d&amp;ugrave;ng để truy vấn dữ liệu từ dữ liệu nguồn đ&amp;ocirc;i khi được gọi l&amp;agrave; c&amp;aacute;c query method. Trong WCF RIA Services, c&amp;aacute;c query method phải được x&amp;aacute;c định bằng c&amp;aacute;ch m&amp;agrave; framework xem ch&amp;uacute;ng l&amp;agrave; query methods. Ngo&amp;agrave;i ra , c&amp;aacute;c truy vấn lu&amp;ocirc;n trả về một single entity được x&amp;aacute;c định kh&amp;aacute;c với c&amp;aacute;c truy vấn trả về nhiều gi&amp;aacute; trị. Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về query method, h&amp;atilde;y xem&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707373%28v=VS.91%29.aspx"&gt;Domain Services&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một lớp domain service v&amp;agrave; x&amp;aacute;c định c&amp;aacute;c entity trong hộp thoại &lt;b&gt;Add 
New Domain Service Class&lt;/b&gt; , th&amp;igrave; RIA Services framework sẽ tự động tạo query method đơn giản cho từng entity được tr&amp;igrave;nh b&amp;agrave;y bởi service. Query method nhận tất cả c&amp;aacute;c d&amp;ograve;ng của entity. B&amp;agrave;i viết n&amp;agrave;y m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để th&amp;ecirc;m một query methods mới, thực thi nhiều truy vấn s&amp;agrave;ng lọc phức tạp hơn bằng một gi&amp;aacute; trị tham số. B&amp;agrave;i n&amp;agrave;y cũng m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o th&amp;ecirc;m một truy vấn trả về một gi&amp;aacute; trị entity v&amp;agrave; trả về một tập c&amp;aacute;c entity.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorkLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một RIA Services project đ&amp;atilde; xuất dữ liệu từ bảng &lt;b&gt;Customer &lt;/b&gt;của cơ sở dữ liệu đơn giản &lt;b&gt;AdventureWorksLT&lt;/b&gt; như l&amp;agrave; trong b&amp;agrave;i viết trước &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method với điều kiện v&amp;agrave;o l&amp;agrave; một tham số v&amp;agrave; trả về một entity duy nhất&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở solution đ&amp;atilde; lấy dữ liệu từ bảng &lt;b&gt;Customer&lt;/b&gt; trong b&amp;agrave;i trước.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem tại li&amp;ecirc;n kết n&amp;agrave;y&amp;nbsp; &lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m một query method nhận một đối số kiểu integer v&amp;agrave; trả về một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt;&lt;/b&gt; entity c&amp;oacute; customer ID tương ứng.&lt;/p&gt;
&lt;p&gt;Nếu một&amp;nbsp; phương thức trả về một single entity bao gồm thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt;, th&amp;igrave; bạn phải thiết lập thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute.iscomposable%28v=VS.91%29.aspx"&gt;IsComposable&lt;/a&gt;&lt;/span&gt; th&amp;agrave;nh &lt;span&gt;&lt;span class="input"&gt;false&lt;/span&gt;&lt;/span&gt;. Người d&amp;ugrave;ng kh&amp;ocirc;ng thể thao t&amp;aacute;c th&amp;ecirc;m c&amp;aacute;c truy vấn từ client. Nếu query method ph&amp;ugrave; hợp với cấu tr&amp;uacute;c của một c&amp;acirc;u truy vấn, bạn kh&amp;ocirc;ng cần &amp;aacute;p dụng thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt; . Gi&amp;aacute; trị trả về phải l&amp;agrave; một instance duy nhất của một đối tượng entity.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;[Query(IsComposable=&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public&lt;/span&gt; Customer GetCustomersByID(&lt;span style="color:blue;"&gt;int&lt;/span&gt; customerID)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.&lt;span style="text-decoration: line-through; color: red;"&gt;ObjectContext.Customers.SingleOrDefault(c&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;ObjectContext.Customers.SingleOrDefault(&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;c&lt;/span&gt; =&amp;gt; c.CustomerID == customerID);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method c&amp;oacute; một đối số v&amp;agrave; trả về một tập c&amp;aacute;c entity&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong domain service, th&amp;ecirc;m một query method c&amp;oacute; đầu v&amp;agrave;o l&amp;agrave; một tham số kiểu string v&amp;agrave; trả về bất k&amp;igrave; customers n&amp;agrave;o c&amp;oacute; t&amp;ecirc;n bắt đầu l&amp;agrave; một k&amp;iacute; tự.&lt;/p&gt;
&lt;p&gt;Phương thức n&amp;agrave;y c&amp;oacute; thể trả về một đối tượng&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;IQueryable&amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; bởi v&amp;igrave; người d&amp;ugrave;ng c&amp;oacute; thể muốn cung cấp th&amp;ecirc;m c&amp;aacute;c thao t&amp;aacute;c truy vấn từ client.&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; IQueryable&amp;lt;Customer&amp;gt; GetCustomersByLastNameLetter(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; startingLastNameLetter)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.Where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (c =&amp;gt; &lt;span style="text-decoration: line-through; color: red;"&gt;c.LastName.StartsWith(startingLastNameLetter&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;c.LastName.StartsWith&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;(&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;startingLastNameLetter&lt;/span&gt;) == &lt;span style="color:blue;"&gt;true&lt;/span&gt;);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị kết quả của những query methods n&amp;agrave;y trong client project.&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong client project, h&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;TextBox&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls v&amp;agrave; hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Button&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls để người d&amp;ugrave;ng c&amp;oacute; thể lọc ra c&amp;aacute;c customer bằng ID hay bằng k&amp;iacute; tự đầu ti&amp;ecirc;n của t&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;Phần m&amp;atilde; XAML sau tr&amp;igrave;nh b&amp;agrave;y một layout ho&amp;agrave;n chỉnh với &lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; đ&amp;atilde; c&amp;oacute; .&lt;/p&gt;
&lt;div id="snippetGroup2"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode2" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;d&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;300&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;400&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;White&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;25&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by id: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;50&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by name: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;30&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của trang &lt;b&gt;MainPage.xaml&lt;/b&gt; (&lt;b&gt;MainPage.xaml.cs &lt;/b&gt;hay &lt;b&gt;MainPage.xaml.vb&lt;/b&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m m&amp;atilde; v&amp;agrave;o để nhận kết quả truy vấn dựa tr&amp;ecirc;n những g&amp;igrave; m&amp;agrave; người d&amp;ugrave;ng nhập v&amp;agrave;o&lt;/p&gt;
&lt;div id="snippetGroup3"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode3" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{

    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LetterButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByLastNameLetterQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LetterValue.Text), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; IDButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByIDQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(IDValue.Text)), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;void&lt;/span&gt; CustomerLoadedCallback(LoadOperation&amp;lt;Customer&amp;gt; loadOperation)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; đ&amp;acirc;y l&amp;agrave; h&amp;igrave;nh m&amp;ocirc; tả danh s&amp;aacute;ch c&amp;aacute;c customers được lọc ra theo t&amp;ecirc;n.&lt;/p&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="558" height="413" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="background: SpringGreen;"&gt;&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="541" height="413" /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;Nguồn của b&amp;agrave;i viết v&amp;agrave; được dịch bởi kpopyo tại đ&amp;acirc;y: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Adding Query Methods</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-adding-query-methods/revision/4.aspx</link><pubDate>Sun, 26 Sep 2010 09:13:31 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:135</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 4 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 5:13:31 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Adding Query Methods&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: WCF RIA Services&lt;/div&gt;

&lt;div class="introduction"&gt;
&lt;p&gt;C&amp;aacute;c phương thức d&amp;ugrave;ng để truy vấn dữ liệu từ dữ liệu nguồn đ&amp;ocirc;i khi được gọi l&amp;agrave; c&amp;aacute;c query method. Trong WCF RIA Services, c&amp;aacute;c query method phải được x&amp;aacute;c định bằng c&amp;aacute;ch m&amp;agrave; framework xem ch&amp;uacute;ng l&amp;agrave; query methods. Ngo&amp;agrave;i ra , c&amp;aacute;c truy vấn lu&amp;ocirc;n trả về một single entity được x&amp;aacute;c định kh&amp;aacute;c với c&amp;aacute;c truy vấn trả về nhiều gi&amp;aacute; trị. Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về query method, h&amp;atilde;y xem&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707373%28v=VS.91%29.aspx"&gt;Domain Services&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một lớp domain service v&amp;agrave; x&amp;aacute;c định c&amp;aacute;c entity trong hộp thoại &lt;b&gt;Add 
New Domain Service Class&lt;/b&gt; , th&amp;igrave; RIA Services framework sẽ tự động tạo query method đơn giản cho từng entity được tr&amp;igrave;nh b&amp;agrave;y bởi service. Query method nhận tất cả c&amp;aacute;c d&amp;ograve;ng của entity. B&amp;agrave;i viết n&amp;agrave;y m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để th&amp;ecirc;m một query methods mới, thực thi nhiều truy vấn s&amp;agrave;ng lọc phức tạp hơn bằng một gi&amp;aacute; trị tham số. B&amp;agrave;i n&amp;agrave;y cũng m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o th&amp;ecirc;m một truy vấn trả về một gi&amp;aacute; trị entity v&amp;agrave; trả về một tập c&amp;aacute;c entity.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorkLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một RIA Services project đ&amp;atilde; xuất dữ liệu từ bảng &lt;b&gt;Customer &lt;/b&gt;của cơ sở dữ liệu đơn giản &lt;b&gt;AdventureWorksLT&lt;/b&gt; như l&amp;agrave; trong b&amp;agrave;i viết trước &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method với điều kiện v&amp;agrave;o l&amp;agrave; một tham số v&amp;agrave; trả về một entity duy nhất&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở solution đ&amp;atilde; lấy dữ liệu từ bảng &lt;b&gt;Customer&lt;/b&gt; trong b&amp;agrave;i trước.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem tại li&amp;ecirc;n kết n&amp;agrave;y&amp;nbsp; &lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m một query method nhận một đối số kiểu integer v&amp;agrave; trả về một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt;&lt;/b&gt; entity c&amp;oacute; customer ID tương ứng.&lt;/p&gt;
&lt;p&gt;Nếu một&amp;nbsp; phương thức trả về một single entity bao gồm thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt;, th&amp;igrave; bạn phải thiết lập thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute.iscomposable%28v=VS.91%29.aspx"&gt;IsComposable&lt;/a&gt;&lt;/span&gt; th&amp;agrave;nh &lt;span&gt;&lt;span class="input"&gt;false&lt;/span&gt;&lt;/span&gt;. Người d&amp;ugrave;ng kh&amp;ocirc;ng thể thao t&amp;aacute;c th&amp;ecirc;m c&amp;aacute;c truy vấn từ client. Nếu query method ph&amp;ugrave; hợp với cấu tr&amp;uacute;c của một c&amp;acirc;u truy vấn, bạn kh&amp;ocirc;ng cần &amp;aacute;p dụng thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt; . Gi&amp;aacute; trị trả về phải l&amp;agrave; một instance duy nhất của một đối tượng entity.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;[Query(IsComposable=&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public&lt;/span&gt; Customer GetCustomersByID(&lt;span style="color:blue;"&gt;int&lt;/span&gt; customerID)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.SingleOrDefault(c =&amp;gt; c.CustomerID == customerID);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method c&amp;oacute; một đối số v&amp;agrave; trả về một tập c&amp;aacute;c entity&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong domain service, th&amp;ecirc;m một query method c&amp;oacute; đầu v&amp;agrave;o l&amp;agrave; một tham số kiểu string v&amp;agrave; trả về bất k&amp;igrave; customers n&amp;agrave;o c&amp;oacute; t&amp;ecirc;n bắt đầu l&amp;agrave; một k&amp;iacute; tự.&lt;/p&gt;
&lt;p&gt;Phương thức n&amp;agrave;y c&amp;oacute; thể trả về một đối tượng&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;IQueryable&amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; bởi v&amp;igrave; người d&amp;ugrave;ng c&amp;oacute; thể muốn cung cấp th&amp;ecirc;m c&amp;aacute;c thao t&amp;aacute;c truy vấn từ client.&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; IQueryable&amp;lt;Customer&amp;gt; GetCustomersByLastNameLetter(&lt;span style="color:blue;"&gt;string&lt;/span&gt; startingLastNameLetter)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.Where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (c =&amp;gt; c.LastName.StartsWith(startingLastNameLetter) == &lt;span style="color:blue;"&gt;true&lt;/span&gt;);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị kết quả của những query methods n&amp;agrave;y trong client project.&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong client project, h&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;TextBox&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls v&amp;agrave; hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Button&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls để người d&amp;ugrave;ng c&amp;oacute; thể lọc ra c&amp;aacute;c customer bằng ID hay bằng k&amp;iacute; tự đầu ti&amp;ecirc;n của t&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;Phần m&amp;atilde; XAML sau tr&amp;igrave;nh b&amp;agrave;y một layout ho&amp;agrave;n chỉnh với &lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; đ&amp;atilde; c&amp;oacute; .&lt;/p&gt;
&lt;div id="snippetGroup2"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode2" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;d&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;300&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;400&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;White&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;25&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by id: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;50&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by name: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;30&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của trang &lt;b&gt;MainPage.xaml&lt;/b&gt; (&lt;b&gt;MainPage.xaml.cs &lt;/b&gt;hay &lt;b&gt;MainPage.xaml.vb&lt;/b&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m m&amp;atilde; v&amp;agrave;o để nhận kết quả truy vấn dựa tr&amp;ecirc;n những g&amp;igrave; m&amp;agrave; người d&amp;ugrave;ng nhập v&amp;agrave;o&lt;/p&gt;
&lt;div id="snippetGroup3"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerTabs"&gt;
&lt;div class="LW_CodeSnippetContainerTabLeft"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerTabRight"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div class="LW_CodeSnippetToolBar"&gt;
&lt;div class="LW_CodeSnippetToolBarText"&gt;&lt;a title="Copy to clipboard."&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id="CodeSnippetContainerCode3" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{

    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LetterButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByLastNameLetterQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LetterValue.Text), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; IDButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByIDQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(IDValue.Text)), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;void&lt;/span&gt; CustomerLoadedCallback(LoadOperation&amp;lt;Customer&amp;gt; loadOperation)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; đ&amp;acirc;y l&amp;agrave; h&amp;igrave;nh m&amp;ocirc; tả danh s&amp;aacute;ch c&amp;aacute;c customers được lọc ra theo t&amp;ecirc;n.&lt;/p&gt;
&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="558" height="413" /&gt;&lt;/li&gt;
&lt;/ol&gt;Nguồn của b&amp;agrave;i viết v&amp;agrave; được dịch bởi kpopyo tại đ&amp;acirc;y: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Adding Query Methods</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-adding-query-methods/revision/3.aspx</link><pubDate>Sun, 26 Sep 2010 09:03:29 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:134</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 3 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 5:03:29 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Adding Query Methods&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: WCF RIA Services&lt;/div&gt;

&lt;div class="introduction"&gt;
&lt;p&gt;C&amp;aacute;c phương thức d&amp;ugrave;ng để truy vấn dữ liệu từ dữ liệu nguồn đ&amp;ocirc;i khi được gọi l&amp;agrave; c&amp;aacute;c query method. Trong WCF RIA Services, c&amp;aacute;c query method phải được x&amp;aacute;c định bằng c&amp;aacute;ch m&amp;agrave; framework xem ch&amp;uacute;ng l&amp;agrave; query methods. Ngo&amp;agrave;i ra , c&amp;aacute;c truy vấn lu&amp;ocirc;n trả về một single entity được x&amp;aacute;c định kh&amp;aacute;c với c&amp;aacute;c truy vấn trả về nhiều gi&amp;aacute; trị. Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về query method, h&amp;atilde;y xem&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707373%28v=VS.91%29.aspx"&gt;Domain Services&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một lớp domain service v&amp;agrave; x&amp;aacute;c định c&amp;aacute;c entity trong hộp thoại &lt;b&gt;Add 
New Domain Service Class&lt;/b&gt; , th&amp;igrave; RIA Services framework sẽ tự động tạo query method đơn giản cho từng entity được tr&amp;igrave;nh b&amp;agrave;y bởi service. Query method nhận tất cả c&amp;aacute;c d&amp;ograve;ng của entity. B&amp;agrave;i viết n&amp;agrave;y m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để th&amp;ecirc;m một query methods mới, thực thi nhiều truy vấn s&amp;agrave;ng lọc phức tạp hơn bằng một gi&amp;aacute; trị tham số. B&amp;agrave;i n&amp;agrave;y cũng m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o th&amp;ecirc;m một truy vấn trả về một gi&amp;aacute; trị entity v&amp;agrave; trả về một tập c&amp;aacute;c entity.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorkLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một RIA Services project đ&amp;atilde; xuất dữ liệu từ bảng &lt;b&gt;Customer &lt;/b&gt;của cơ sở dữ liệu đơn giản &lt;b&gt;AdventureWorksLT&lt;/b&gt; như l&amp;agrave; trong b&amp;agrave;i viết trước &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method với điều kiện v&amp;agrave;o l&amp;agrave; một tham số v&amp;agrave; trả về một entity duy nhất&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở solution đ&amp;atilde; lấy dữ liệu từ bảng &lt;b&gt;Customer&lt;/b&gt; trong b&amp;agrave;i trước.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem tại li&amp;ecirc;n kết n&amp;agrave;y&amp;nbsp; &lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m một query method nhận một đối số kiểu integer v&amp;agrave; trả về một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt;&lt;/b&gt; entity c&amp;oacute; customer ID tương ứng.&lt;/p&gt;
&lt;p&gt;Nếu một&amp;nbsp; phương thức trả về một single entity bao gồm thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt;, th&amp;igrave; bạn phải thiết lập thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute.iscomposable%28v=VS.91%29.aspx"&gt;IsComposable&lt;/a&gt;&lt;/span&gt; th&amp;agrave;nh &lt;span&gt;&lt;span class="input"&gt;false&lt;/span&gt;&lt;/span&gt;. Người d&amp;ugrave;ng kh&amp;ocirc;ng thể thao t&amp;aacute;c th&amp;ecirc;m c&amp;aacute;c truy vấn từ client. Nếu query method ph&amp;ugrave; hợp với cấu tr&amp;uacute;c của một c&amp;acirc;u truy vấn, bạn kh&amp;ocirc;ng cần &amp;aacute;p dụng thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt; . Gi&amp;aacute; trị trả về phải l&amp;agrave; một instance duy nhất của một đối tượng entity.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;[Query(IsComposable=&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public&lt;/span&gt; Customer GetCustomersByID(&lt;span style="color:blue;"&gt;int&lt;/span&gt; customerID)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.SingleOrDefault(c =&amp;gt; c.CustomerID == customerID);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method c&amp;oacute; một đối số v&amp;agrave; trả về một tập c&amp;aacute;c entity&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong domain service, th&amp;ecirc;m một query method c&amp;oacute; đầu v&amp;agrave;o l&amp;agrave; một tham số kiểu string v&amp;agrave; trả về bất k&amp;igrave; customers n&amp;agrave;o c&amp;oacute; t&amp;ecirc;n bắt đầu l&amp;agrave; một k&amp;iacute; tự.&lt;/p&gt;
&lt;p&gt;Phương thức n&amp;agrave;y c&amp;oacute; thể trả về một đối tượng&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;IQueryable&amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; bởi v&amp;igrave; người d&amp;ugrave;ng c&amp;oacute; thể muốn cung cấp th&amp;ecirc;m c&amp;aacute;c thao t&amp;aacute;c truy vấn từ client.&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; IQueryable&amp;lt;Customer&amp;gt; GetCustomersByLastNameLetter(&lt;span style="color:blue;"&gt;string&lt;/span&gt; startingLastNameLetter)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.Where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (c =&amp;gt; c.LastName.StartsWith(startingLastNameLetter) == &lt;span style="color:blue;"&gt;true&lt;/span&gt;);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị kết quả của những query methods n&amp;agrave;y trong client project.&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong client project, h&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;TextBox&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls v&amp;agrave; hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Button&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls để người d&amp;ugrave;ng c&amp;oacute; thể lọc ra c&amp;aacute;c customer bằng ID hay bằng k&amp;iacute; tự đầu ti&amp;ecirc;n của t&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;Phần m&amp;atilde; XAML sau tr&amp;igrave;nh b&amp;agrave;y một layout ho&amp;agrave;n chỉnh với &lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; đ&amp;atilde; c&amp;oacute; .&lt;/p&gt;
&lt;div id="snippetGroup2"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode2" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;d&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;300&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;400&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;White&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;25&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by id: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;50&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by name: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;30&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của trang &lt;b&gt;MainPage.xaml&lt;/b&gt; (&lt;b&gt;MainPage.xaml.cs &lt;/b&gt;hay &lt;b&gt;MainPage.xaml.vb&lt;/b&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m m&amp;atilde; v&amp;agrave;o để nhận kết quả truy vấn dựa tr&amp;ecirc;n những g&amp;igrave; m&amp;agrave; người d&amp;ugrave;ng nhập v&amp;agrave;o&lt;/p&gt;
&lt;div id="snippetGroup3"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerTabs"&gt;
&lt;div class="LW_CodeSnippetContainerTabLeft"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerTabRight"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div class="LW_CodeSnippetToolBar"&gt;
&lt;div class="LW_CodeSnippetToolBarText"&gt;&lt;a title="Copy to clipboard."&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id="CodeSnippetContainerCode3" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{

    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LetterButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByLastNameLetterQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LetterValue.Text), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; IDButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByIDQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(IDValue.Text)), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;void&lt;/span&gt; CustomerLoadedCallback(LoadOperation&amp;lt;Customer&amp;gt; loadOperation)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; đ&amp;acirc;y l&amp;agrave; h&amp;igrave;nh m&amp;ocirc; tả danh s&amp;aacute;ch c&amp;aacute;c customers được lọc ra theo t&amp;ecirc;n.&lt;/p&gt;
&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="558" height="413" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span style="background: SpringGreen;"&gt;Nguồn&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;của&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;b&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;i&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;viết&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;v&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;được&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;dịch&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;bởi&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;kpopyo&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;tại&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;đ&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;acirc;y:&lt;/span&gt; &lt;a href="http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx"&gt;&lt;span style="background: SpringGreen;"&gt;http://msdn.microsoft.com/en-us/library/ee707362%28v=VS.91%29.aspx&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Adding Query Methods</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-adding-query-methods/revision/2.aspx</link><pubDate>Sun, 26 Sep 2010 09:01:03 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:133</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 2 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 5:01:03 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Adding Query Methods&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: WCF RIA Services&lt;/div&gt;

&lt;div class="introduction"&gt;
&lt;p&gt;C&amp;aacute;c phương thức d&amp;ugrave;ng để truy vấn dữ liệu từ dữ liệu nguồn đ&amp;ocirc;i khi được gọi l&amp;agrave; c&amp;aacute;c query method. Trong WCF RIA Services, c&amp;aacute;c query method phải được x&amp;aacute;c định bằng c&amp;aacute;ch m&amp;agrave; framework xem ch&amp;uacute;ng l&amp;agrave; query &lt;span style="text-decoration: line-through; color: red;"&gt;methods.Ngo&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;methods&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;.&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Ngo&lt;/span&gt;&amp;agrave;i ra , c&amp;aacute;c truy vấn lu&amp;ocirc;n trả về một single entity được x&amp;aacute;c định kh&amp;aacute;c với c&amp;aacute;c truy vấn trả về nhiều gi&amp;aacute; trị. Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về query method, h&amp;atilde;y xem&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707373%28v=VS.91%29.aspx"&gt;Domain Services&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một lớp domain service v&amp;agrave; x&amp;aacute;c định c&amp;aacute;c entity trong hộp thoại &lt;b&gt;Add 
New Domain Service Class&lt;/b&gt; , th&amp;igrave; RIA Services framework sẽ tự động tạo query method đơn giản cho từng entity được tr&amp;igrave;nh b&amp;agrave;y bởi service. Query method nhận tất cả c&amp;aacute;c d&amp;ograve;ng của entity. B&amp;agrave;i viết n&amp;agrave;y m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để th&amp;ecirc;m một query methods mới, thực thi nhiều truy vấn s&amp;agrave;ng lọc phức tạp hơn bằng một gi&amp;aacute; trị tham số. B&amp;agrave;i n&amp;agrave;y cũng m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o th&amp;ecirc;m một truy vấn trả về một gi&amp;aacute; trị entity v&amp;agrave; trả về một tập c&amp;aacute;c entity.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorkLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một RIA Services project đ&amp;atilde; xuất dữ liệu từ bảng &lt;b&gt;Customer &lt;/b&gt;của cơ sở dữ liệu đơn giản &lt;b&gt;AdventureWorksLT&lt;/b&gt; như l&amp;agrave; trong b&amp;agrave;i viết trước &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method với điều kiện &lt;span style="background: SpringGreen;"&gt;v&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;o&lt;/span&gt; l&amp;agrave; một tham số v&amp;agrave; trả về một entity duy nhất&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở solution đ&amp;atilde; lấy dữ liệu từ bảng &lt;b&gt;Customer&lt;/b&gt; trong b&amp;agrave;i trước.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem &lt;span style="background: SpringGreen;"&gt;tại&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;li&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;ecirc;n&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;kết&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;n&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;y&amp;nbsp;&lt;/span&gt; &lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m một query method nhận một đối số kiểu integer v&amp;agrave; trả về một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt;&lt;/b&gt; entity c&amp;oacute; customer ID tương ứng.&lt;/p&gt;
&lt;p&gt;Nếu một&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;method&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;m&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;agrave;&lt;/span&gt; &amp;nbsp; &lt;span style="background: SpringGreen;"&gt;phương&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;thức&lt;/span&gt; trả về một single entity bao gồm thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt;, th&amp;igrave; bạn phải thiết lập thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute.iscomposable%28v=VS.91%29.aspx"&gt;IsComposable&lt;/a&gt;&lt;/span&gt; th&amp;agrave;nh &lt;span&gt;&lt;span class="input"&gt;false&lt;/span&gt;&lt;/span&gt;. Người d&amp;ugrave;ng kh&amp;ocirc;ng thể thao t&amp;aacute;c th&amp;ecirc;m c&amp;aacute;c truy vấn từ client. Nếu query method ph&amp;ugrave; hợp với cấu tr&amp;uacute;c của một c&amp;acirc;u truy vấn, bạn kh&amp;ocirc;ng cần &amp;aacute;p dụng thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt; . Gi&amp;aacute; trị trả về phải l&amp;agrave; một &lt;span style="text-decoration: line-through; color: red;"&gt;thể&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;hiện&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;đơn&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;instance&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;duy&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;nhất&lt;/span&gt; của một đối tượng entity.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;[Query(IsComposable=&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public&lt;/span&gt; Customer GetCustomersByID(&lt;span style="color:blue;"&gt;int&lt;/span&gt; customerID)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.SingleOrDefault(c =&amp;gt; c.CustomerID == customerID);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method c&amp;oacute; một đối số v&amp;agrave; &lt;span style="text-decoration: line-through; color: red;"&gt;tar3&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;trả&lt;/span&gt; về một tập c&amp;aacute;c entity&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong domain service, th&amp;ecirc;m một query method c&amp;oacute; đầu v&amp;agrave;o l&amp;agrave; một tham số kiểu string v&amp;agrave; trả về bất k&amp;igrave; customers n&amp;agrave;o c&amp;oacute; t&amp;ecirc;n bắt đầu l&amp;agrave; một k&amp;iacute; tự.&lt;/p&gt;
&lt;p&gt;Phương thức n&amp;agrave;y c&amp;oacute; thể trả về một đối tượng&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;IQueryable&amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; bởi v&amp;igrave; người d&amp;ugrave;ng c&amp;oacute; thể muốn cung cấp th&amp;ecirc;m c&amp;aacute;c thao t&amp;aacute;c truy vấn từ client.&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; IQueryable&amp;lt;Customer&amp;gt; GetCustomersByLastNameLetter(&lt;span style="color:blue;"&gt;string&lt;/span&gt; startingLastNameLetter)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.Where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (c =&amp;gt; c.LastName.StartsWith(startingLastNameLetter) == &lt;span style="color:blue;"&gt;true&lt;/span&gt;);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị kết quả của những query methods n&amp;agrave;y trong client project.&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong client project, h&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;TextBox&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls v&amp;agrave; hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Button&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls để người d&amp;ugrave;ng c&amp;oacute; thể lọc ra c&amp;aacute;c customer bằng ID hay bằng k&amp;iacute; tự đầu ti&amp;ecirc;n của t&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;Phần m&amp;atilde; XAML sau tr&amp;igrave;nh b&amp;agrave;y một layout ho&amp;agrave;n chỉnh với &lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; đ&amp;atilde; c&amp;oacute; .&lt;/p&gt;
&lt;div id="snippetGroup2"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode2" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;d&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;300&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;400&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;White&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;25&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by id: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;50&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by name: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;30&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của trang &lt;b&gt;MainPage.xaml&lt;/b&gt; (&lt;b&gt;MainPage.xaml.cs &lt;/b&gt;hay &lt;b&gt;MainPage.xaml.vb&lt;/b&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m m&amp;atilde; v&amp;agrave;o để nhận kết quả truy vấn dựa tr&amp;ecirc;n những g&amp;igrave; m&amp;agrave; người d&amp;ugrave;ng nhập v&amp;agrave;o&lt;/p&gt;
&lt;div id="snippetGroup3"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerTabs"&gt;
&lt;div class="LW_CodeSnippetContainerTabLeft"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerTabRight"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div class="LW_CodeSnippetToolBar"&gt;
&lt;div class="LW_CodeSnippetToolBarText"&gt;&lt;a title="Copy to clipboard."&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id="CodeSnippetContainerCode3" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{

    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LetterButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByLastNameLetterQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LetterValue.Text), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; IDButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByIDQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(IDValue.Text)), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;void&lt;/span&gt; CustomerLoadedCallback(LoadOperation&amp;lt;Customer&amp;gt; loadOperation)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; đ&amp;acirc;y l&amp;agrave; h&amp;igrave;nh m&amp;ocirc; tả danh s&amp;aacute;ch c&amp;aacute;c customers được lọc ra theo t&amp;ecirc;n.&lt;/p&gt;
&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="558" height="413" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Adding Query Methods</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-adding-query-methods/revision/1.aspx</link><pubDate>Sun, 26 Sep 2010 08:57:24 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:132</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 1 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 4:57:24 PM&lt;br /&gt;
&lt;div class="introduction"&gt;
&lt;p&gt;C&amp;aacute;c phương thức d&amp;ugrave;ng để truy vấn dữ liệu từ dữ liệu nguồn đ&amp;ocirc;i khi được gọi l&amp;agrave; c&amp;aacute;c query method. Trong WCF RIA Services, c&amp;aacute;c query method phải được x&amp;aacute;c định bằng c&amp;aacute;ch m&amp;agrave; framework xem ch&amp;uacute;ng l&amp;agrave; query methods.Ngo&amp;agrave;i ra , c&amp;aacute;c truy vấn lu&amp;ocirc;n trả về một single entity được x&amp;aacute;c định kh&amp;aacute;c với c&amp;aacute;c truy vấn trả về nhiều gi&amp;aacute; trị. Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin về query method, h&amp;atilde;y xem&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707373%28v=VS.91%29.aspx"&gt;Domain Services&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Khi bạn tạo mới một lớp domain service v&amp;agrave; x&amp;aacute;c định c&amp;aacute;c entity trong hộp thoại &lt;b&gt;Add 
New Domain Service Class&lt;/b&gt; , th&amp;igrave; RIA Services framework sẽ tự động tạo query method đơn giản cho từng entity được tr&amp;igrave;nh b&amp;agrave;y bởi service. Query method nhận tất cả c&amp;aacute;c d&amp;ograve;ng của entity. B&amp;agrave;i viết n&amp;agrave;y m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o để th&amp;ecirc;m một query methods mới, thực thi nhiều truy vấn s&amp;agrave;ng lọc phức tạp hơn bằng một gi&amp;aacute; trị tham số. B&amp;agrave;i n&amp;agrave;y cũng m&amp;ocirc; tả l&amp;agrave;m c&amp;aacute;ch n&amp;agrave;o th&amp;ecirc;m một truy vấn trả về một gi&amp;aacute; trị entity v&amp;agrave; trả về một tập c&amp;aacute;c entity.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorkLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một RIA Services project đ&amp;atilde; xuất dữ liệu từ bảng &lt;b&gt;Customer &lt;/b&gt;của cơ sở dữ liệu đơn giản &lt;b&gt;AdventureWorksLT&lt;/b&gt; như l&amp;agrave; trong b&amp;agrave;i viết trước &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method với điều kiện l&amp;agrave; một tham số v&amp;agrave; trả về một entity duy nhất&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Mở solution đ&amp;atilde; lấy dữ liệu từ bảng &lt;b&gt;Customer&lt;/b&gt; trong b&amp;agrave;i trước.&lt;/p&gt;
&lt;p&gt;Để c&amp;oacute; th&amp;ecirc;m th&amp;ocirc;ng tin, h&amp;atilde;y xem&amp;nbsp; &lt;a href="/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution.aspx"&gt;Walkthrough: Creating a RIA Services Solution.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m một query method nhận một đối số kiểu integer v&amp;agrave; trả về một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt;&lt;/b&gt; entity c&amp;oacute; customer ID tương ứng.&lt;/p&gt;
&lt;p&gt;Nếu một&amp;nbsp; method m&amp;agrave; trả về một single entity bao gồm thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt;, th&amp;igrave; bạn phải thiết lập thuộc t&amp;iacute;nh&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute.iscomposable%28v=VS.91%29.aspx"&gt;IsComposable&lt;/a&gt;&lt;/span&gt; th&amp;agrave;nh &lt;span&gt;&lt;span class="input"&gt;false&lt;/span&gt;&lt;/span&gt;. Người d&amp;ugrave;ng kh&amp;ocirc;ng thể thao t&amp;aacute;c th&amp;ecirc;m c&amp;aacute;c truy vấn từ client. Nếu query method ph&amp;ugrave; hợp với cấu tr&amp;uacute;c của một c&amp;acirc;u truy vấn, bạn kh&amp;ocirc;ng cần &amp;aacute;p dụng thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.server.queryattribute%28v=VS.91%29.aspx"&gt;QueryAttribute&lt;/a&gt;&lt;/span&gt; . Gi&amp;aacute; trị trả về phải l&amp;agrave; một thể hiện đơn của một đối tượng entity.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;[Query(IsComposable=&lt;span style="color:blue;"&gt;false&lt;/span&gt;)]
&lt;span style="color:blue;"&gt;public&lt;/span&gt; Customer GetCustomersByID(&lt;span style="color:blue;"&gt;int&lt;/span&gt; customerID)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.SingleOrDefault(c =&amp;gt; c.CustomerID == customerID);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để th&amp;ecirc;m một query method c&amp;oacute; một đối số v&amp;agrave; tar3 về một tập c&amp;aacute;c entity&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong server project, h&amp;atilde;y mở lớp domain service truy xuất dữ liệu từ bảng &lt;b&gt;Customer.&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;T&amp;ecirc;n của lớp domain service đ&amp;atilde; liệt k&amp;ecirc; trong phần y&amp;ecirc;u cầu l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong domain service, th&amp;ecirc;m một query method c&amp;oacute; đầu v&amp;agrave;o l&amp;agrave; một tham số kiểu string v&amp;agrave; trả về bất k&amp;igrave; customers n&amp;agrave;o c&amp;oacute; t&amp;ecirc;n bắt đầu l&amp;agrave; một k&amp;iacute; tự.&lt;/p&gt;
&lt;p&gt;Phương thức n&amp;agrave;y c&amp;oacute; thể trả về một đối tượng&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;IQueryable&amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; bởi v&amp;igrave; người d&amp;ugrave;ng c&amp;oacute; thể muốn cung cấp th&amp;ecirc;m c&amp;aacute;c thao t&amp;aacute;c truy vấn từ client.&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; IQueryable&amp;lt;Customer&amp;gt; GetCustomersByLastNameLetter(&lt;span style="color:blue;"&gt;string&lt;/span&gt; startingLastNameLetter)
{
    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ObjectContext.Customers.Where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (c =&amp;gt; c.LastName.StartsWith(startingLastNameLetter) == &lt;span style="color:blue;"&gt;true&lt;/span&gt;);
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị kết quả của những query methods n&amp;agrave;y trong client project.&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong client project, h&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;TextBox&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls v&amp;agrave; hai &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Button&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;controls để người d&amp;ugrave;ng c&amp;oacute; thể lọc ra c&amp;aacute;c customer bằng ID hay bằng k&amp;iacute; tự đầu ti&amp;ecirc;n của t&amp;ecirc;n.&lt;/p&gt;
&lt;p&gt;Phần m&amp;atilde; XAML sau tr&amp;igrave;nh b&amp;agrave;y một layout ho&amp;agrave;n chỉnh với &lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; đ&amp;atilde; c&amp;oacute; .&lt;/p&gt;
&lt;div id="snippetGroup2"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode2" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;d&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;300&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;400&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;White&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;25&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by id: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;50&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;IDButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;search by name: &lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterValue&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;30&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;LetterButton_Click&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;Submit&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;

      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;0&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của trang &lt;b&gt;MainPage.xaml&lt;/b&gt; (&lt;b&gt;MainPage.xaml.cs &lt;/b&gt;hay &lt;b&gt;MainPage.xaml.vb&lt;/b&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m m&amp;atilde; v&amp;agrave;o để nhận kết quả truy vấn dựa tr&amp;ecirc;n những g&amp;igrave; m&amp;agrave; người d&amp;ugrave;ng nhập v&amp;agrave;o&lt;/p&gt;
&lt;div id="snippetGroup3"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerTabs"&gt;
&lt;div class="LW_CodeSnippetContainerTabLeft"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerTabRight"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div class="LW_CodeSnippetToolBar"&gt;
&lt;div class="LW_CodeSnippetToolBarText"&gt;&lt;a title="Copy to clipboard."&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id="CodeSnippetContainerCode3" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:black;"&gt;
&lt;pre&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{

    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LetterButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByLastNameLetterQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LetterValue.Text), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; IDButton_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            LoadOperation&amp;lt;Customer&amp;gt; loadOp =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersByIDQuery(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(IDValue.Text)), CustomerLoadedCallback, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);
            CustomerGrid.ItemsSource = loadOp.Entities;
        }

        &lt;span style="color:blue;"&gt;void&lt;/span&gt; CustomerLoadedCallback(LoadOperation&amp;lt;Customer&amp;gt; loadOperation)
        {
            IDButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            LetterButton.IsEnabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; đ&amp;acirc;y l&amp;agrave; h&amp;igrave;nh m&amp;ocirc; tả danh s&amp;aacute;ch c&amp;aacute;c customers được lọc ra theo t&amp;ecirc;n.&lt;/p&gt;
&lt;img id="RIA_QueryMethods" alt="Results of query method" src="http://i.msdn.microsoft.com/dynimg/IC371468.png" title="Results of query method" width="558" height="413" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Creating a RIA Services Solution</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution/revision/0.aspx</link><pubDate>Sun, 26 Sep 2010 08:13:27 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:151</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 4:13:27 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Creating a RIA Services Solution&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: &lt;span style="text-decoration: line-through; color: red;"&gt;WCF&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;RIA&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Services&lt;/span&gt;&lt;/div&gt;

&lt;div class="lw_vs"&gt;
&lt;h2 id="curversion"&gt;&lt;b&gt;
            WCF RIA Services &lt;/b&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="introduction"&gt;
&lt;p&gt;Trong b&amp;agrave;i viết n&amp;agrave;y, bạn sẽ tạo một ứng dụng WCF RIA Services nhận dữ liệu từ AdventureWorksLT database. Bạn sẽ sử dụng Silverlight để tạo client trong tầng presentation. V&amp;agrave; tạo c&amp;aacute;c lớp entity class đại diện cho c&amp;aacute;c bảng dữ liệu kh&amp;aacute;c nhau. B&amp;agrave;i viết n&amp;agrave;y l&amp;agrave; b&amp;agrave;i khởi đầu cho một loạt c&amp;aacute;c b&amp;agrave;i kh&amp;aacute;c.&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;div class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu đầu ti&amp;ecirc;n&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorksLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;b&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Tạo một solution với một RIA Services Link giữa c&amp;aacute;c&amp;nbsp; Project&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;h4 class="procedureSubHeading"&gt;X&amp;acirc;y dựng một&amp;nbsp; RIA Services solution&lt;/h4&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong Visual Studio, tạo mới một RIA Services project bằng c&amp;aacute;ch chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;File&lt;/span&gt;, &lt;span class="label"&gt;New&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; l&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;Project&lt;/span&gt;&lt;/b&gt;. Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Project&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chọn mẫu &lt;b&gt;&lt;span class="label"&gt;Silverlight Application&lt;/span&gt;&lt;/b&gt; v&amp;agrave; đặt t&amp;ecirc;n cho project mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;RIAServicesExample&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;img id="RIA_StartProject" alt="Create Silverlight Application" src="http://i.msdn.microsoft.com/dynimg/IC371470.png" title="Create Silverlight Application" width="549" height="399" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Silverlight Application&lt;/span&gt;&lt;/b&gt; sẽ xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y click chọn &lt;span class="label"&gt;v&amp;agrave;o &amp;ocirc; check box c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;Enable WCF RIA Services&lt;/b&gt;&lt;/span&gt;.Khi bạn chọn check box n&amp;agrave;y, th&amp;igrave; bạn đ&amp;atilde; tạo một li&amp;ecirc;n kết &lt;b&gt;RIA Services&lt;/b&gt; giữa client project v&amp;agrave; server project.&lt;/p&gt;
&lt;img id="RIA_Proj_Link" alt="Enable RIA Services" src="http://i.msdn.microsoft.com/dynimg/IC406209.png" title="Enable RIA Services" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt; &lt;/b&gt;để khởi tạo solution.&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ th&amp;igrave; solution chứa hai projects: một &lt;b&gt;client project&lt;/b&gt; v&amp;agrave; một &lt;b&gt;server project&lt;/b&gt;. &lt;b&gt;Client project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample &lt;/b&gt;v&amp;agrave; n&amp;oacute; chứa m&amp;atilde; 
Silverlight m&amp;agrave; bạn d&amp;ugrave;ng để tạo tầng presentation. &lt;b&gt;Server project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample.Web&lt;/b&gt; v&amp;agrave; n&amp;oacute; chứa phần code của tầng giữa(middle-tier).&lt;/p&gt;
&lt;img id="RIA_ProjectsCreated" alt="Projects Created" src="http://i.msdn.microsoft.com/dynimg/IC371471.png" title="Projects Created" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Data Models&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ khởi tạo c&amp;aacute;c lớp ADO.NET Entity đại diện cho c&amp;aacute;c lớp của AdventureWorksLT database. RIA Services l&amp;agrave;m việc với nhiều lớp m&amp;ocirc; h&amp;igrave;nh dữ liệu v&amp;agrave; nhiều nguồn dữ liệu kh&amp;aacute;c nhau.&lt;/p&gt;
&lt;div class="alert"&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Khi sử dụng một Entity Data Model với Visual Studio 2010, bạn phải chọn t&amp;ugrave;y chọn &lt;b&gt;&lt;span class="label"&gt;Include foreign key columns in the model&lt;/span&gt;&lt;/b&gt;. Mặc định th&amp;igrave; lựa chọn n&amp;agrave;y được tự động th&amp;ecirc;m v&amp;agrave;o khi bạn sử dụng Entity 
Data Model Wizard. Bạn cũng phải sử dụng behavior mặc định của th&amp;ocirc;ng tin m&amp;agrave; Entity Data Model mapping nh&amp;uacute;ng v&amp;agrave;o trong assembly.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;L&amp;agrave;m việc với dữ liệu tại tầng middle&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;,click phải v&amp;agrave;o server project (&lt;b&gt;RIAServicesExample.Web&lt;/b&gt;), chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;New Item&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Add New Item&lt;/span&gt; &lt;/b&gt;xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong hộp thoại đ&amp;oacute;, h&amp;atilde;y chọn phần &lt;b&gt;&lt;span class="label"&gt;Data&lt;/span&gt; &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn mẫu &lt;b&gt;&lt;span class="label"&gt;ADO.NET Entity Data Model&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;AdventureWorksModel.edmx&lt;/span&gt;&lt;/b&gt; v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Entity Data Model Wizard&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Model Contents&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Generate from database&lt;/span&gt; &lt;/b&gt;v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Your Data Connection&lt;/span&gt;&lt;/b&gt;, tạo một kết nối dữ liệu đến database v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần cửa sổ &lt;b&gt;&lt;span class="label"&gt;Choose Your Database Objects&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn c&amp;aacute;c bảng&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Address&lt;/span&gt;, &lt;span class="label"&gt;Customer&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;CustomerAddress&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Finish&lt;/span&gt;&lt;/b&gt;. L&amp;uacute;c n&amp;agrave;y m&amp;ocirc; h&amp;igrave;nh &lt;b&gt;Entity models &lt;/b&gt;đ&amp;atilde; được thiết lập.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Build&amp;nbsp; &lt;/b&gt;solution.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Domain Service&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ th&amp;ecirc;m một domain service v&amp;agrave;o dự &amp;aacute;n tầng middle. Một domain service tr&amp;igrave;nh b&amp;agrave;y c&amp;aacute;c data entity v&amp;agrave; c&amp;aacute;c hoạt động của server
 project đến client project. Bạn c&amp;oacute; thể th&amp;ecirc;m business logic v&amp;agrave;o domain
 service để quản l&amp;iacute; c&amp;aacute;ch thức m&amp;agrave; client tương t&amp;aacute;c với dữ liệu.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để tạo một domain service&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click đ&amp;ocirc;i v&amp;agrave;o &lt;b&gt;server project,&lt;/b&gt; v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt; and &lt;span class="label"&gt;New Item&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong danh s&amp;aacute;ch hiện ra, h&amp;atilde;y chọn &lt;span class="label"&gt;Web&lt;/span&gt; trong phần khung b&amp;ecirc;n tr&amp;aacute;i v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Domain Service Class&lt;/span&gt;&lt;/b&gt; trong phần khung b&amp;ecirc;n phải.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.cs&lt;/span&gt;&lt;/b&gt; (hoặc l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.vb&lt;/span&gt;&lt;/b&gt;).&lt;/p&gt;
&lt;img id="RIA_AddDomainService" alt="Add Domain Service" src="http://i.msdn.microsoft.com/dynimg/IC415518.png" title="Add Domain Service" width="543" height="350" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Add New Domain Service Class&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chắc l&amp;agrave; check box &lt;b&gt;&lt;span class="label"&gt;Enable client access&lt;/span&gt; &lt;/b&gt;được chọn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chọn &lt;b&gt;&lt;span class="label"&gt;Customer&lt;/span&gt; entity &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;Enable Editing&lt;/span&gt; &lt;/b&gt;cho bảng &lt;b&gt;Customer.&lt;/b&gt;&lt;/p&gt;
&lt;img id="RIA_AddEntity" alt="Add Entity" src="http://i.msdn.microsoft.com/dynimg/IC413693.png" title="Add Entity" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; lớp domain service đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở tập tin &lt;b&gt;CustomerDomainService.cs&lt;/b&gt; (hay l&amp;agrave; &lt;b&gt;CustomerDomainService.vb&lt;/b&gt;). &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;c&amp;oacute; từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff423019%28v=VS.91%29.aspx"&gt;LinqToEntitiesDomainService&lt;span&gt;&amp;lt;&lt;/span&gt;TContext&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; l&amp;agrave; một lớp&amp;nbsp; abstract base class trong RIA Services framework. Lớp cơ bản(base class) được sử dụng một c&amp;aacute;ch tự động bởi v&amp;igrave; domain service tr&amp;igrave;nh b&amp;agrave;y một lớp dữ liệu ADO.NET Entity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thường th&amp;igrave; c&amp;aacute;c &lt;b&gt;base class&lt;/b&gt; li&amp;ecirc;n kết với c&amp;aacute;c&lt;b&gt; entity class&lt;/b&gt; đ&amp;atilde; được tạo trong bước trước.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;được đ&amp;aacute;nh dấu với thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.hosting.enableclientaccessattribute%28v=VS.91%29.aspx"&gt;EnableClientAccessAttribute&lt;/a&gt;&lt;/span&gt; để x&amp;aacute;c định l&amp;agrave; n&amp;oacute; được xuất hiện trong tầng client.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một h&amp;agrave;m query c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomers&lt;/span&gt;&lt;/b&gt; được tạo. H&amp;agrave;m n&amp;agrave;y trả về mọi th&amp;agrave;nh phần trong bảng &lt;b&gt;Customers&lt;/b&gt; v&amp;agrave; kh&amp;ocirc;ng lọc hay sắp xếp g&amp;igrave; cả.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;V&amp;agrave; c&amp;ograve;n tạo cả c&amp;aacute;c phương thức insert, update, v&amp;agrave; delete c&amp;aacute;c d&amp;ograve;ng dữ liệu.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Silverlight Client&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Vừa rồi bạn đ&amp;atilde; th&amp;ecirc;m business logic trong domain service. V&amp;agrave; b&amp;acirc;y giờ, bạn chỉ cần sử dụng phương thức&amp;nbsp; &lt;span class="code"&gt;GetCustomers&lt;/span&gt; đ&amp;atilde; tạo.&lt;/p&gt;
&lt;p&gt;Bởi v&amp;igrave; một li&amp;ecirc;n kết RIA Services tồn tạu giữa client project v&amp;agrave; server 
project, c&amp;aacute;c client proxy class được khởi tạo khi bạn build the solution.
 Những proxy class n&amp;agrave;y cho ph&amp;eacute;p bạn truy cập đến dữ liệu từ client.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để thấy c&amp;aacute;c client proxy class đ&amp;atilde; được tạo&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y &lt;b&gt;Build &lt;/b&gt;solution.&lt;/p&gt;
&lt;p&gt;Khi bạn build&amp;nbsp; solution, th&amp;igrave; code sẽ được tạo trong client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;, click &lt;b&gt;&lt;span class="label"&gt;Show All Files&lt;/span&gt;&lt;/b&gt; d&amp;agrave;nh cho client project. (Bạn h&amp;atilde;y chọn client project l&amp;agrave; &amp;quot;Set as startup project&amp;quot;)&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; thư mục &lt;b&gt;Generated_Code &lt;/b&gt;chứa một tập tin code .&lt;/p&gt;
&lt;img id="RIA_GeneratedCode" alt="Generated Code file" src="http://i.msdn.microsoft.com/dynimg/IC365722.png" title="Generated Code file" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code trong thư mục &lt;b&gt;Generated_Code.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;WebContext&lt;/span&gt;&lt;/b&gt; class kế thừa từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.applicationservices.webcontextbase%28v=VS.91%29.aspx"&gt;WebContextBase&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt; class được suy ra từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.domaincontext%28v=VS.91%29.aspx"&gt;DomainContext&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo. Lớp n&amp;agrave;y c&amp;oacute; một phương thức t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&amp;nbsp;&lt;/b&gt; tương ứng với phương thức truy vấn đ&amp;atilde; được tạo trong domain service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; &lt;/b&gt;class c&amp;oacute; nguồn gốc từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.entity%28v=VS.91%29.aspx"&gt;Entity&lt;/a&gt;&lt;/span&gt; class được tạo cho entity do domain service tr&amp;igrave;nh b&amp;agrave;y. Lớp &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; trong client project tương ứng với &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; tr&amp;ecirc;n server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị dữ liệu trong Silverlight client&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Từ thanh &lt;b&gt;Toolbox&lt;/b&gt;, k&amp;eacute;o một&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;control v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Grid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;element trong cửa sổ chứa m&amp;atilde; XAML.&lt;/p&gt;
&lt;p&gt;Một &lt;b&gt;XML namespace&lt;/b&gt; v&amp;agrave; một reference đến một &lt;b&gt;Data assembly&lt;/b&gt; được th&amp;ecirc;m v&amp;agrave;o một c&amp;aacute;ch tự động khi bạn k&amp;eacute;o &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; từ thanh. Nếu bạn th&amp;ecirc;m &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; m&amp;agrave; kh&amp;ocirc;ng k&amp;eacute;o n&amp;oacute; từ &lt;b&gt;Toolbox&lt;/b&gt;, th&amp;igrave; bạn phải th&amp;ecirc;m một reference l&amp;agrave; &lt;b&gt;System.Windows.Controls.Data&lt;/b&gt; assembly v&amp;agrave; một &lt;b&gt;XML namespace &lt;/b&gt;cho &lt;b&gt;&lt;span class="code"&gt;xmlns:data=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&amp;quot;&lt;/span&gt;.&lt;/b&gt; Th&amp;iacute; dụ n&amp;agrave;y đ&amp;atilde; c&amp;oacute;&amp;nbsp; &lt;b&gt;XML namespace&lt;/b&gt; c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;data&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; bạn c&amp;oacute; thể th&amp;ecirc;m một c&amp;aacute;i t&amp;ecirc;n kh&amp;aacute;c cũng được.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;span class="code"&gt;CustomerGrid&lt;/span&gt;&lt;/b&gt; như đoạn code XAML dưới đ&amp;acirc;y.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; 
    &lt;span style="color:Red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:Red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;d&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;300&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;400&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:Red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;Background&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;White&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:Red;"&gt;Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m c&amp;acirc;u lệnh &lt;b&gt;&lt;span class="code"&gt;using&lt;/span&gt; (C#)&lt;/b&gt; hay &lt;b&gt;&lt;span class="code"&gt;Imports&lt;/span&gt; (Visual Basic)&lt;/b&gt; cho namespace&amp;nbsp;&lt;b&gt; &lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; v&amp;agrave; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client%28v=VS.91%29.aspx"&gt;System.ServiceModel.DomainServices.Client&lt;/a&gt;&lt;/span&gt; namespace.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt; namespace l&amp;agrave; tập tin code ph&amp;iacute;a sau được khởi tạo cho client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m đoạn code sau cho &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt;, lấy c&amp;aacute;c customers bằng c&amp;aacute;ch gọi phương thức &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; kết nối kết quả v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, như l&amp;agrave; đoạn code dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Net;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media.Animation;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;partial&lt;/span&gt; &lt;span style="color:Blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:Blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();

            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:Blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&lt;span style="color:Blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.GetCustomersQuery());
            CustomerGrid.ItemsSource = loadOp.Entities;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;Bạn sẽ thấy dữ liệu của data grid tương tự như sau.&lt;/p&gt;
&lt;img id="RIA_ResultsGrid" alt="Results Grid" src="http://i.msdn.microsoft.com/dynimg/IC365724.png" title="Results Grid" width="545" height="305" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;Nguồn của b&amp;agrave;i viết được dịch bởi kpopyo từ: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Creating a RIA Services Solution</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution/revision/3.aspx</link><pubDate>Sun, 26 Sep 2010 08:12:25 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:131</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 3 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 4:12:25 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Creating a RIA Services Solution&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: WCF RIA Services&lt;/div&gt;

&lt;div class="lw_vs"&gt;
&lt;h2 id="curversion"&gt;&lt;b&gt;
            WCF RIA Services &lt;/b&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="introduction"&gt;
&lt;p&gt;Trong b&amp;agrave;i viết n&amp;agrave;y, bạn sẽ tạo một ứng dụng WCF RIA Services nhận dữ liệu từ AdventureWorksLT database. Bạn sẽ sử dụng Silverlight để tạo client trong tầng presentation. V&amp;agrave; tạo c&amp;aacute;c lớp entity class đại diện cho c&amp;aacute;c bảng dữ liệu kh&amp;aacute;c nhau. B&amp;agrave;i viết n&amp;agrave;y l&amp;agrave; b&amp;agrave;i khởi đầu cho một loạt c&amp;aacute;c b&amp;agrave;i kh&amp;aacute;c.&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;div class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu đầu ti&amp;ecirc;n&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorksLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;b&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Tạo một solution với một RIA Services Link giữa c&amp;aacute;c&amp;nbsp; Project&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;h4 class="procedureSubHeading"&gt;X&amp;acirc;y dựng một&amp;nbsp; RIA Services solution&lt;/h4&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong Visual Studio, tạo mới một RIA Services project bằng c&amp;aacute;ch chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;File&lt;/span&gt;, &lt;span class="label"&gt;New&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; l&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;Project&lt;/span&gt;&lt;/b&gt;. Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Project&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chọn mẫu &lt;b&gt;&lt;span class="label"&gt;Silverlight Application&lt;/span&gt;&lt;/b&gt; v&amp;agrave; đặt t&amp;ecirc;n cho project mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;RIAServicesExample&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&lt;img id="RIA_StartProject" alt="Create Silverlight Application" src="http://i.msdn.microsoft.com/dynimg/IC371470.png" title="Create Silverlight Application" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="background: SpringGreen;"&gt;&lt;img id="RIA_StartProject" alt="Create Silverlight Application" src="http://i.msdn.microsoft.com/dynimg/IC371470.png" title="Create Silverlight Application" width="549" height="399" /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Silverlight Application&lt;/span&gt;&lt;/b&gt; sẽ xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y click chọn &lt;span class="label"&gt;v&amp;agrave;o &amp;ocirc; check box c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;Enable WCF RIA Services&lt;/b&gt;&lt;/span&gt;.Khi bạn chọn check box n&amp;agrave;y, th&amp;igrave; bạn đ&amp;atilde; tạo một li&amp;ecirc;n kết &lt;b&gt;RIA Services&lt;/b&gt; giữa client project v&amp;agrave; server project.&lt;/p&gt;
&lt;img id="RIA_Proj_Link" alt="Enable RIA Services" src="http://i.msdn.microsoft.com/dynimg/IC406209.png" title="Enable RIA Services" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt; &lt;/b&gt;để khởi tạo solution.&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ th&amp;igrave; solution chứa hai projects: một &lt;b&gt;client project&lt;/b&gt; v&amp;agrave; một &lt;b&gt;server project&lt;/b&gt;. &lt;b&gt;Client project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample &lt;/b&gt;v&amp;agrave; n&amp;oacute; chứa m&amp;atilde; 
Silverlight m&amp;agrave; bạn d&amp;ugrave;ng để tạo tầng presentation. &lt;b&gt;Server project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample.Web&lt;/b&gt; v&amp;agrave; n&amp;oacute; chứa phần code của tầng giữa(middle-tier).&lt;/p&gt;
&lt;img id="RIA_ProjectsCreated" alt="Projects Created" src="http://i.msdn.microsoft.com/dynimg/IC371471.png" title="Projects Created" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Data Models&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ khởi tạo c&amp;aacute;c lớp ADO.NET Entity đại diện cho c&amp;aacute;c lớp của AdventureWorksLT database. RIA Services l&amp;agrave;m việc với nhiều lớp m&amp;ocirc; h&amp;igrave;nh dữ liệu v&amp;agrave; nhiều nguồn dữ liệu kh&amp;aacute;c nhau.&lt;/p&gt;
&lt;div class="alert"&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Khi sử dụng một Entity Data Model với Visual Studio 2010, bạn phải chọn t&amp;ugrave;y chọn &lt;b&gt;&lt;span class="label"&gt;Include foreign key columns in the model&lt;/span&gt;&lt;/b&gt;. Mặc định th&amp;igrave; lựa chọn n&amp;agrave;y được tự động th&amp;ecirc;m v&amp;agrave;o khi bạn sử dụng Entity 
Data Model Wizard. Bạn cũng phải sử dụng behavior mặc định của th&amp;ocirc;ng tin m&amp;agrave; Entity Data Model mapping nh&amp;uacute;ng v&amp;agrave;o trong assembly.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;L&amp;agrave;m việc với dữ liệu tại tầng middle&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;,click phải v&amp;agrave;o server project (&lt;b&gt;RIAServicesExample.Web&lt;/b&gt;), chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;New Item&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Add New Item&lt;/span&gt; &lt;/b&gt;xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong hộp thoại đ&amp;oacute;, h&amp;atilde;y chọn phần &lt;b&gt;&lt;span class="label"&gt;Data&lt;/span&gt; &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn mẫu &lt;b&gt;&lt;span class="label"&gt;ADO.NET Entity Data Model&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;AdventureWorksModel.edmx&lt;/span&gt;&lt;/b&gt; v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Entity Data Model Wizard&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Model Contents&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Generate from database&lt;/span&gt; &lt;/b&gt;v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Your Data Connection&lt;/span&gt;&lt;/b&gt;, tạo một kết nối dữ liệu đến database v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần cửa sổ &lt;b&gt;&lt;span class="label"&gt;Choose Your Database Objects&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn c&amp;aacute;c bảng&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Address&lt;/span&gt;, &lt;span class="label"&gt;Customer&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;CustomerAddress&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Finish&lt;/span&gt;&lt;/b&gt;. L&amp;uacute;c n&amp;agrave;y m&amp;ocirc; h&amp;igrave;nh &lt;b&gt;Entity models &lt;/b&gt;đ&amp;atilde; được thiết lập.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Build&amp;nbsp; &lt;/b&gt;solution.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Domain Service&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ th&amp;ecirc;m một domain service v&amp;agrave;o dự &amp;aacute;n tầng middle. Một domain service tr&amp;igrave;nh b&amp;agrave;y c&amp;aacute;c data entity v&amp;agrave; c&amp;aacute;c hoạt động của server
 project đến client project. Bạn c&amp;oacute; thể th&amp;ecirc;m business logic v&amp;agrave;o domain
 service để quản l&amp;iacute; c&amp;aacute;ch thức m&amp;agrave; client tương t&amp;aacute;c với dữ liệu.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để tạo một domain service&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click đ&amp;ocirc;i v&amp;agrave;o &lt;b&gt;server project,&lt;/b&gt; v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt; and &lt;span class="label"&gt;New Item&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong danh s&amp;aacute;ch hiện ra, h&amp;atilde;y chọn &lt;span class="label"&gt;Web&lt;/span&gt; trong phần khung b&amp;ecirc;n tr&amp;aacute;i v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Domain Service Class&lt;/span&gt;&lt;/b&gt; trong phần khung b&amp;ecirc;n phải.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.cs&lt;/span&gt;&lt;/b&gt; (hoặc l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.vb&lt;/span&gt;&lt;/b&gt;).&lt;/p&gt;
&lt;img id="RIA_AddDomainService" alt="Add Domain Service" src="http://i.msdn.microsoft.com/dynimg/IC415518.png" title="Add Domain Service" width="543" height="350" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Add New Domain Service Class&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chắc l&amp;agrave; check box &lt;b&gt;&lt;span class="label"&gt;Enable client access&lt;/span&gt; &lt;/b&gt;được chọn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chọn &lt;b&gt;&lt;span class="label"&gt;Customer&lt;/span&gt; entity &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;Enable Editing&lt;/span&gt; &lt;/b&gt;cho bảng &lt;b&gt;Customer.&lt;/b&gt;&lt;/p&gt;
&lt;img id="RIA_AddEntity" alt="Add Entity" src="http://i.msdn.microsoft.com/dynimg/IC413693.png" title="Add Entity" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; lớp domain service đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở tập tin &lt;b&gt;CustomerDomainService.cs&lt;/b&gt; (hay l&amp;agrave; &lt;b&gt;CustomerDomainService.vb&lt;/b&gt;). &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;c&amp;oacute; từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff423019%28v=VS.91%29.aspx"&gt;LinqToEntitiesDomainService&lt;span&gt;&amp;lt;&lt;/span&gt;TContext&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; l&amp;agrave; một lớp&amp;nbsp; abstract base class trong RIA Services framework. Lớp cơ bản(base class) được sử dụng một c&amp;aacute;ch tự động bởi v&amp;igrave; domain service tr&amp;igrave;nh b&amp;agrave;y một lớp dữ liệu ADO.NET Entity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thường th&amp;igrave; c&amp;aacute;c &lt;b&gt;base class&lt;/b&gt; li&amp;ecirc;n kết với c&amp;aacute;c&lt;b&gt; entity class&lt;/b&gt; đ&amp;atilde; được tạo trong bước trước.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;được đ&amp;aacute;nh dấu với thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.hosting.enableclientaccessattribute%28v=VS.91%29.aspx"&gt;EnableClientAccessAttribute&lt;/a&gt;&lt;/span&gt; để x&amp;aacute;c định l&amp;agrave; n&amp;oacute; được xuất hiện trong tầng client.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một h&amp;agrave;m query c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomers&lt;/span&gt;&lt;/b&gt; được tạo. H&amp;agrave;m n&amp;agrave;y trả về mọi th&amp;agrave;nh phần trong bảng &lt;b&gt;Customers&lt;/b&gt; v&amp;agrave; kh&amp;ocirc;ng lọc hay sắp xếp g&amp;igrave; cả.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;V&amp;agrave; c&amp;ograve;n tạo cả c&amp;aacute;c phương thức insert, update, v&amp;agrave; delete c&amp;aacute;c d&amp;ograve;ng dữ liệu.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Silverlight Client&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Vừa rồi bạn đ&amp;atilde; th&amp;ecirc;m business logic trong domain service. V&amp;agrave; b&amp;acirc;y giờ, bạn chỉ cần sử dụng phương thức&amp;nbsp; &lt;span class="code"&gt;GetCustomers&lt;/span&gt; đ&amp;atilde; tạo.&lt;/p&gt;
&lt;p&gt;Bởi v&amp;igrave; một li&amp;ecirc;n kết RIA Services tồn tạu giữa client project v&amp;agrave; server 
project, c&amp;aacute;c client proxy class được khởi tạo khi bạn build the solution.
 Những proxy class n&amp;agrave;y cho ph&amp;eacute;p bạn truy cập đến dữ liệu từ client.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để thấy c&amp;aacute;c client proxy class đ&amp;atilde; được tạo&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y &lt;b&gt;Build &lt;/b&gt;solution.&lt;/p&gt;
&lt;p&gt;Khi bạn build&amp;nbsp; solution, th&amp;igrave; code sẽ được tạo trong client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;, click &lt;b&gt;&lt;span class="label"&gt;Show All Files&lt;/span&gt;&lt;/b&gt; d&amp;agrave;nh cho client project. (Bạn h&amp;atilde;y chọn client project l&amp;agrave; &amp;quot;Set as startup project&amp;quot;)&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; thư mục &lt;b&gt;Generated_Code &lt;/b&gt;chứa một tập tin code .&lt;/p&gt;
&lt;img id="RIA_GeneratedCode" alt="Generated Code file" src="http://i.msdn.microsoft.com/dynimg/IC365722.png" title="Generated Code file" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code trong thư mục &lt;b&gt;Generated_Code.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;WebContext&lt;/span&gt;&lt;/b&gt; class kế thừa từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.applicationservices.webcontextbase%28v=VS.91%29.aspx"&gt;WebContextBase&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt; class được suy ra từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.domaincontext%28v=VS.91%29.aspx"&gt;DomainContext&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo. Lớp n&amp;agrave;y c&amp;oacute; một phương thức t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&amp;nbsp;&lt;/b&gt; tương ứng với phương thức truy vấn đ&amp;atilde; được tạo trong domain service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; &lt;/b&gt;class c&amp;oacute; nguồn gốc từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.entity%28v=VS.91%29.aspx"&gt;Entity&lt;/a&gt;&lt;/span&gt; class được tạo cho entity do domain service tr&amp;igrave;nh b&amp;agrave;y. Lớp &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; trong client project tương ứng với &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; tr&amp;ecirc;n server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị dữ liệu trong Silverlight client&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Từ thanh &lt;b&gt;Toolbox&lt;/b&gt;, k&amp;eacute;o một&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;control v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Grid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;element trong cửa sổ chứa m&amp;atilde; XAML.&lt;/p&gt;
&lt;p&gt;Một &lt;b&gt;XML namespace&lt;/b&gt; v&amp;agrave; một reference đến một &lt;b&gt;Data assembly&lt;/b&gt; được th&amp;ecirc;m v&amp;agrave;o một c&amp;aacute;ch tự động khi bạn k&amp;eacute;o &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; từ thanh. Nếu bạn th&amp;ecirc;m &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; m&amp;agrave; kh&amp;ocirc;ng k&amp;eacute;o n&amp;oacute; từ &lt;b&gt;Toolbox&lt;/b&gt;, th&amp;igrave; bạn phải th&amp;ecirc;m một reference l&amp;agrave; &lt;b&gt;System.Windows.Controls.Data&lt;/b&gt; assembly v&amp;agrave; một &lt;b&gt;XML namespace &lt;/b&gt;cho &lt;b&gt;&lt;span class="code"&gt;xmlns:data=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&amp;quot;&lt;/span&gt;.&lt;/b&gt; Th&amp;iacute; dụ n&amp;agrave;y đ&amp;atilde; c&amp;oacute;&amp;nbsp; &lt;b&gt;XML namespace&lt;/b&gt; c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;data&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; bạn c&amp;oacute; thể th&amp;ecirc;m một c&amp;aacute;i t&amp;ecirc;n kh&amp;aacute;c cũng được.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;span class="code"&gt;CustomerGrid&lt;/span&gt;&lt;/b&gt; như đoạn code XAML dưới đ&amp;acirc;y.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; 
    &lt;span style="color:Red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;clr-namespace:System.Windows.Controls;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:Red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;d&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;300&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;400&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:Red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;Background&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;White&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:Red;"&gt;Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m c&amp;acirc;u lệnh &lt;b&gt;&lt;span class="code"&gt;using&lt;/span&gt; (C#)&lt;/b&gt; hay &lt;b&gt;&lt;span class="code"&gt;Imports&lt;/span&gt; (Visual Basic)&lt;/b&gt; cho namespace&amp;nbsp;&lt;b&gt; &lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; v&amp;agrave; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client%28v=VS.91%29.aspx"&gt;System.ServiceModel.DomainServices.Client&lt;/a&gt;&lt;/span&gt; namespace.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt; namespace l&amp;agrave; tập tin code ph&amp;iacute;a sau được khởi tạo cho client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m đoạn code sau cho &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt;, lấy c&amp;aacute;c customers bằng c&amp;aacute;ch gọi phương thức &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; kết nối kết quả v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, như l&amp;agrave; đoạn code dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Net;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media.Animation;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;partial&lt;/span&gt; &lt;span style="color:Blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();

            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:Blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&lt;span style="color:Blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.GetCustomersQuery());
            CustomerGrid.ItemsSource = loadOp.Entities;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;Bạn sẽ thấy dữ liệu của data grid tương tự như sau.&lt;/p&gt;
&lt;img id="RIA_ResultsGrid" alt="Results Grid" src="http://i.msdn.microsoft.com/dynimg/IC365724.png" title="Results Grid" width="545" height="305" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;Nguồn của b&amp;agrave;i viết được dịch bởi kpopyo từ: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Creating a RIA Services Solution</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution/revision/2.aspx</link><pubDate>Sun, 26 Sep 2010 08:10:52 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:130</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 2 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 4:10:52 PM&lt;br /&gt;
&lt;h2&gt;Walkthrough: Creating a RIA Services Solution&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: WCF RIA Services&lt;/div&gt;

&lt;div class="lw_vs"&gt;
&lt;h2 id="curversion"&gt;&lt;b&gt;
            WCF RIA Services &lt;/b&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="introduction"&gt;
&lt;p&gt;Trong b&amp;agrave;i viết n&amp;agrave;y, bạn sẽ tạo một ứng dụng WCF RIA Services nhận dữ liệu từ AdventureWorksLT database. Bạn sẽ sử dụng Silverlight để tạo client trong tầng presentation. V&amp;agrave; tạo c&amp;aacute;c lớp entity class đại diện cho c&amp;aacute;c bảng dữ liệu kh&amp;aacute;c nhau. B&amp;agrave;i viết n&amp;agrave;y l&amp;agrave; b&amp;agrave;i khởi đầu cho một loạt c&amp;aacute;c b&amp;agrave;i kh&amp;aacute;c.&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;div class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu đầu ti&amp;ecirc;n&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorksLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;b&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Tạo một solution với một RIA Services Link giữa c&amp;aacute;c&amp;nbsp; Project&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;h4 class="procedureSubHeading"&gt;X&amp;acirc;y dựng một&amp;nbsp; RIA Services solution&lt;/h4&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong Visual Studio, tạo mới một RIA Services project bằng c&amp;aacute;ch chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;File&lt;/span&gt;, &lt;span class="label"&gt;New&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; l&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;Project&lt;/span&gt;&lt;/b&gt;. Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Project&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chọn mẫu &lt;b&gt;&lt;span class="label"&gt;Silverlight Application&lt;/span&gt;&lt;/b&gt; v&amp;agrave; đặt t&amp;ecirc;n cho project mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;RIAServicesExample&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;img id="RIA_StartProject" alt="Create Silverlight Application" src="http://i.msdn.microsoft.com/dynimg/IC371470.png" title="Create Silverlight Application" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Silverlight Application&lt;/span&gt;&lt;/b&gt; sẽ xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y click chọn &lt;span class="label"&gt;v&amp;agrave;o &amp;ocirc; check box c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;Enable WCF RIA Services&lt;/b&gt;&lt;/span&gt;.Khi bạn chọn check box n&amp;agrave;y, th&amp;igrave; bạn đ&amp;atilde; tạo một li&amp;ecirc;n kết &lt;b&gt;RIA Services&lt;/b&gt; giữa client project v&amp;agrave; server project.&lt;/p&gt;
&lt;img id="RIA_Proj_Link" alt="Enable RIA Services" src="http://i.msdn.microsoft.com/dynimg/IC406209.png" title="Enable RIA Services" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt; &lt;/b&gt;để khởi tạo solution.&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ th&amp;igrave; solution chứa hai projects: một &lt;b&gt;client project&lt;/b&gt; v&amp;agrave; một &lt;b&gt;server project&lt;/b&gt;. &lt;b&gt;Client project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample &lt;/b&gt;v&amp;agrave; n&amp;oacute; chứa m&amp;atilde; 
Silverlight m&amp;agrave; bạn d&amp;ugrave;ng để tạo tầng presentation. &lt;b&gt;Server project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample.Web&lt;/b&gt; v&amp;agrave; n&amp;oacute; chứa phần code của tầng giữa(middle-tier).&lt;/p&gt;
&lt;img id="RIA_ProjectsCreated" alt="Projects Created" src="http://i.msdn.microsoft.com/dynimg/IC371471.png" title="Projects Created" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Data Models&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ khởi tạo c&amp;aacute;c lớp ADO.NET Entity đại diện cho c&amp;aacute;c lớp của AdventureWorksLT database. RIA Services l&amp;agrave;m việc với nhiều lớp m&amp;ocirc; h&amp;igrave;nh dữ liệu v&amp;agrave; nhiều nguồn dữ liệu kh&amp;aacute;c nhau.&lt;/p&gt;
&lt;div class="alert"&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Khi sử dụng một Entity Data Model với Visual Studio 2010, bạn phải chọn t&amp;ugrave;y chọn &lt;b&gt;&lt;span class="label"&gt;Include foreign key columns in the model&lt;/span&gt;&lt;/b&gt;. Mặc định th&amp;igrave; lựa chọn n&amp;agrave;y được tự động th&amp;ecirc;m v&amp;agrave;o khi bạn sử dụng Entity 
Data Model Wizard. Bạn cũng phải sử dụng behavior mặc định của th&amp;ocirc;ng tin m&amp;agrave; Entity Data Model mapping nh&amp;uacute;ng v&amp;agrave;o trong assembly.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;L&amp;agrave;m việc với dữ liệu tại tầng middle&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;,click phải v&amp;agrave;o server project (&lt;b&gt;RIAServicesExample.Web&lt;/b&gt;), chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;New Item&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Add New Item&lt;/span&gt; &lt;/b&gt;xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong hộp thoại đ&amp;oacute;, h&amp;atilde;y chọn phần &lt;b&gt;&lt;span class="label"&gt;Data&lt;/span&gt; &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn mẫu &lt;b&gt;&lt;span class="label"&gt;ADO.NET Entity Data Model&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;AdventureWorksModel.edmx&lt;/span&gt;&lt;/b&gt; v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Entity Data Model Wizard&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Model Contents&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Generate from database&lt;/span&gt; &lt;/b&gt;v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Your Data Connection&lt;/span&gt;&lt;/b&gt;, tạo một kết nối dữ liệu đến database v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần cửa sổ &lt;b&gt;&lt;span class="label"&gt;Choose Your Database Objects&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn c&amp;aacute;c bảng&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Address&lt;/span&gt;, &lt;span class="label"&gt;Customer&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;CustomerAddress&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Finish&lt;/span&gt;&lt;/b&gt;. L&amp;uacute;c n&amp;agrave;y m&amp;ocirc; h&amp;igrave;nh &lt;b&gt;Entity models &lt;/b&gt;đ&amp;atilde; được thiết lập.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Build&amp;nbsp; &lt;/b&gt;solution.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Domain Service&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ th&amp;ecirc;m một domain service v&amp;agrave;o dự &amp;aacute;n tầng middle. Một domain service tr&amp;igrave;nh b&amp;agrave;y c&amp;aacute;c data entity v&amp;agrave; c&amp;aacute;c hoạt động của server
 project đến client project. Bạn c&amp;oacute; thể th&amp;ecirc;m business logic v&amp;agrave;o domain
 service để quản l&amp;iacute; c&amp;aacute;ch thức m&amp;agrave; client tương t&amp;aacute;c với dữ liệu.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để tạo một domain service&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click đ&amp;ocirc;i v&amp;agrave;o &lt;b&gt;server project,&lt;/b&gt; v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt; and &lt;span class="label"&gt;New Item&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong danh s&amp;aacute;ch hiện ra, h&amp;atilde;y chọn &lt;span class="label"&gt;Web&lt;/span&gt; trong phần khung b&amp;ecirc;n tr&amp;aacute;i v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Domain Service Class&lt;/span&gt;&lt;/b&gt; trong phần khung b&amp;ecirc;n phải.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.cs&lt;/span&gt;&lt;/b&gt; (hoặc l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.vb&lt;/span&gt;&lt;/b&gt;).&lt;/p&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&lt;img id="RIA_AddDomainService" alt="Add Domain Service" src="http://i.msdn.microsoft.com/dynimg/IC415518.png" title="Add Domain Service" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="background: SpringGreen;"&gt;&lt;img id="RIA_AddDomainService" alt="Add Domain Service" src="http://i.msdn.microsoft.com/dynimg/IC415518.png" title="Add Domain Service" width="543" height="350" /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Add New Domain Service Class&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chắc l&amp;agrave; check box &lt;b&gt;&lt;span class="label"&gt;Enable client access&lt;/span&gt; &lt;/b&gt;được chọn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chọn &lt;b&gt;&lt;span class="label"&gt;Customer&lt;/span&gt; entity &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;Enable Editing&lt;/span&gt; &lt;/b&gt;cho bảng &lt;b&gt;Customer.&lt;/b&gt;&lt;/p&gt;
&lt;img id="RIA_AddEntity" alt="Add Entity" src="http://i.msdn.microsoft.com/dynimg/IC413693.png" title="Add Entity" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; lớp domain service đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở tập tin &lt;b&gt;CustomerDomainService.cs&lt;/b&gt; (hay l&amp;agrave; &lt;b&gt;CustomerDomainService.vb&lt;/b&gt;). &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;c&amp;oacute; từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff423019%28v=VS.91%29.aspx"&gt;LinqToEntitiesDomainService&lt;span&gt;&amp;lt;&lt;/span&gt;TContext&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; l&amp;agrave; một lớp&amp;nbsp; abstract base class trong RIA Services framework. Lớp cơ bản(base class) được sử dụng một c&amp;aacute;ch tự động bởi v&amp;igrave; domain service tr&amp;igrave;nh b&amp;agrave;y một lớp dữ liệu ADO.NET Entity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thường th&amp;igrave; c&amp;aacute;c &lt;b&gt;base class&lt;/b&gt; li&amp;ecirc;n kết với c&amp;aacute;c&lt;b&gt; entity class&lt;/b&gt; đ&amp;atilde; được tạo trong bước trước.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;được đ&amp;aacute;nh dấu với thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.hosting.enableclientaccessattribute%28v=VS.91%29.aspx"&gt;EnableClientAccessAttribute&lt;/a&gt;&lt;/span&gt; để x&amp;aacute;c định l&amp;agrave; n&amp;oacute; được xuất hiện trong tầng client.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một h&amp;agrave;m query c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomers&lt;/span&gt;&lt;/b&gt; được tạo. H&amp;agrave;m n&amp;agrave;y trả về mọi th&amp;agrave;nh phần trong bảng &lt;b&gt;Customers&lt;/b&gt; v&amp;agrave; kh&amp;ocirc;ng lọc hay sắp xếp g&amp;igrave; cả.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;V&amp;agrave; c&amp;ograve;n tạo cả c&amp;aacute;c phương thức insert, update, v&amp;agrave; delete c&amp;aacute;c d&amp;ograve;ng dữ liệu.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Silverlight Client&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Vừa rồi bạn đ&amp;atilde; th&amp;ecirc;m business logic trong domain service. V&amp;agrave; b&amp;acirc;y giờ, bạn chỉ cần sử dụng phương thức&amp;nbsp; &lt;span class="code"&gt;GetCustomers&lt;/span&gt; đ&amp;atilde; tạo.&lt;/p&gt;
&lt;p&gt;Bởi v&amp;igrave; một li&amp;ecirc;n kết RIA Services tồn tạu giữa client project v&amp;agrave; server 
project, c&amp;aacute;c client proxy class được khởi tạo khi bạn build the solution.
 Những proxy class n&amp;agrave;y cho ph&amp;eacute;p bạn truy cập đến dữ liệu từ client.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để thấy c&amp;aacute;c client proxy class đ&amp;atilde; được tạo&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y &lt;b&gt;Build &lt;/b&gt;solution.&lt;/p&gt;
&lt;p&gt;Khi bạn build&amp;nbsp; solution, th&amp;igrave; code sẽ được tạo trong client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;, click &lt;b&gt;&lt;span class="label"&gt;Show All Files&lt;/span&gt;&lt;/b&gt; d&amp;agrave;nh cho client project. (Bạn h&amp;atilde;y chọn client project l&amp;agrave; &amp;quot;Set as startup project&amp;quot;)&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; thư mục &lt;b&gt;Generated_Code &lt;/b&gt;chứa một tập tin code .&lt;/p&gt;
&lt;img id="RIA_GeneratedCode" alt="Generated Code file" src="http://i.msdn.microsoft.com/dynimg/IC365722.png" title="Generated Code file" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code trong thư mục &lt;b&gt;Generated_Code.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;WebContext&lt;/span&gt;&lt;/b&gt; class kế thừa từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.applicationservices.webcontextbase%28v=VS.91%29.aspx"&gt;WebContextBase&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt; class được suy ra từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.domaincontext%28v=VS.91%29.aspx"&gt;DomainContext&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo. Lớp n&amp;agrave;y c&amp;oacute; một phương thức t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&amp;nbsp;&lt;/b&gt; tương ứng với phương thức truy vấn đ&amp;atilde; được tạo trong domain service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; &lt;/b&gt;class c&amp;oacute; nguồn gốc từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.entity%28v=VS.91%29.aspx"&gt;Entity&lt;/a&gt;&lt;/span&gt; class được tạo cho entity do domain service tr&amp;igrave;nh b&amp;agrave;y. Lớp &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; trong client project tương ứng với &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; tr&amp;ecirc;n server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị dữ liệu trong Silverlight client&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Từ thanh &lt;b&gt;Toolbox&lt;/b&gt;, k&amp;eacute;o một&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;control v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Grid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;element trong cửa sổ chứa m&amp;atilde; XAML.&lt;/p&gt;
&lt;p&gt;Một &lt;b&gt;XML namespace&lt;/b&gt; v&amp;agrave; một reference đến một &lt;b&gt;Data assembly&lt;/b&gt; được th&amp;ecirc;m v&amp;agrave;o một c&amp;aacute;ch tự động khi bạn k&amp;eacute;o &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; từ thanh. Nếu bạn th&amp;ecirc;m &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; m&amp;agrave; kh&amp;ocirc;ng k&amp;eacute;o n&amp;oacute; từ &lt;b&gt;Toolbox&lt;/b&gt;, th&amp;igrave; bạn phải th&amp;ecirc;m một reference l&amp;agrave; &lt;b&gt;System.Windows.Controls.Data&lt;/b&gt; assembly v&amp;agrave; một &lt;b&gt;XML namespace &lt;/b&gt;cho &lt;b&gt;&lt;span class="code"&gt;xmlns:data=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&amp;quot;&lt;/span&gt;.&lt;/b&gt; Th&amp;iacute; dụ n&amp;agrave;y đ&amp;atilde; c&amp;oacute;&amp;nbsp; &lt;b&gt;XML namespace&lt;/b&gt; c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;data&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; bạn c&amp;oacute; thể th&amp;ecirc;m một c&amp;aacute;i t&amp;ecirc;n kh&amp;aacute;c cũng được.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;span class="code"&gt;CustomerGrid&lt;/span&gt;&lt;/b&gt; như đoạn code XAML dưới đ&amp;acirc;y.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; 
    &lt;span style="color:Red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&lt;span style="background: SpringGreen;"&gt;clr-namespace:System.Windows.Controls&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:Red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;d&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;300&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;400&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:Red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;Background&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;White&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:Red;"&gt;Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m c&amp;acirc;u lệnh &lt;b&gt;&lt;span class="code"&gt;using&lt;/span&gt; (C#)&lt;/b&gt; hay &lt;b&gt;&lt;span class="code"&gt;Imports&lt;/span&gt; (Visual Basic)&lt;/b&gt; cho namespace&amp;nbsp;&lt;b&gt; &lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; v&amp;agrave; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client%28v=VS.91%29.aspx"&gt;System.ServiceModel.DomainServices.Client&lt;/a&gt;&lt;/span&gt; namespace.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt; namespace l&amp;agrave; tập tin code ph&amp;iacute;a sau được khởi tạo cho client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m đoạn code sau cho &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt;, lấy c&amp;aacute;c customers bằng c&amp;aacute;ch gọi phương thức &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; kết nối kết quả v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, như l&amp;agrave; đoạn code dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Net;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media.Animation;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;partial&lt;/span&gt; &lt;span style="color:Blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();

            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:Blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;br /&gt;&lt;span style="color:Blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;._customerContext.GetCustomersQuery());
            CustomerGrid.ItemsSource = loadOp.Entities;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;Bạn sẽ thấy dữ liệu của data grid tương tự như sau.&lt;/p&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&lt;img id="RIA_ResultsGrid" alt="Results Grid" src="http://i.msdn.microsoft.com/dynimg/IC365724.png" title="Results Grid" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="background: SpringGreen;"&gt;&lt;img id="RIA_ResultsGrid" alt="Results Grid" src="http://i.msdn.microsoft.com/dynimg/IC365724.png" title="Results Grid" width="545" height="305" /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;Nguồn của b&amp;agrave;i viết được dịch bởi kpopyo từ: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Walkthrough: Creating a RIA Services Solution</title><link>http://msdnvietnam.net/wikis/silverlighttips/walkthrough-creating-a-ria-services-solution/revision/1.aspx</link><pubDate>Sun, 26 Sep 2010 08:05:44 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:129</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 1 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/26/2010 4:05:44 PM&lt;br /&gt;
&lt;div class="lw_vs"&gt;
&lt;h2 id="curversion"&gt;&lt;b&gt;
            WCF RIA Services &lt;/b&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="introduction"&gt;
&lt;p&gt;Trong b&amp;agrave;i viết n&amp;agrave;y, bạn sẽ tạo một ứng dụng WCF RIA Services nhận dữ liệu từ AdventureWorksLT database. Bạn sẽ sử dụng Silverlight để tạo client trong tầng presentation. V&amp;agrave; tạo c&amp;aacute;c lớp entity class đại diện cho c&amp;aacute;c bảng dữ liệu kh&amp;aacute;c nhau. B&amp;agrave;i viết n&amp;agrave;y l&amp;agrave; b&amp;agrave;i khởi đầu cho một loạt c&amp;aacute;c b&amp;agrave;i kh&amp;aacute;c.&lt;/p&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;div class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Y&amp;ecirc;u cầu đầu ti&amp;ecirc;n&lt;br /&gt;&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Visual Studio 2010&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Silverlight 4&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=144687"&gt;WCF RIA Services for Visual Studio 2010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=181567"&gt;AdventureWorksLT sample database&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;b&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Tạo một solution với một RIA Services Link giữa c&amp;aacute;c&amp;nbsp; Project&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;h4 class="procedureSubHeading"&gt;X&amp;acirc;y dựng một&amp;nbsp; RIA Services solution&lt;/h4&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong Visual Studio, tạo mới một RIA Services project bằng c&amp;aacute;ch chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;File&lt;/span&gt;, &lt;span class="label"&gt;New&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; sau đ&amp;oacute; l&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;Project&lt;/span&gt;&lt;/b&gt;. Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Project&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chọn mẫu &lt;b&gt;&lt;span class="label"&gt;Silverlight Application&lt;/span&gt;&lt;/b&gt; v&amp;agrave; đặt t&amp;ecirc;n cho project mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;RIAServicesExample&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;img id="RIA_StartProject" alt="Create Silverlight Application" src="http://i.msdn.microsoft.com/dynimg/IC371470.png" title="Create Silverlight Application" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;New Silverlight Application&lt;/span&gt;&lt;/b&gt; sẽ xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y click chọn &lt;span class="label"&gt;v&amp;agrave;o &amp;ocirc; check box c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;Enable WCF RIA Services&lt;/b&gt;&lt;/span&gt;.Khi bạn chọn check box n&amp;agrave;y, th&amp;igrave; bạn đ&amp;atilde; tạo một li&amp;ecirc;n kết &lt;b&gt;RIA Services&lt;/b&gt; giữa client project v&amp;agrave; server project.&lt;/p&gt;
&lt;img id="RIA_Proj_Link" alt="Enable RIA Services" src="http://i.msdn.microsoft.com/dynimg/IC406209.png" title="Enable RIA Services" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt; &lt;/b&gt;để khởi tạo solution.&lt;/p&gt;
&lt;p&gt;B&amp;acirc;y giờ th&amp;igrave; solution chứa hai projects: một &lt;b&gt;client project&lt;/b&gt; v&amp;agrave; một &lt;b&gt;server project&lt;/b&gt;. &lt;b&gt;Client project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample &lt;/b&gt;v&amp;agrave; n&amp;oacute; chứa m&amp;atilde; 
Silverlight m&amp;agrave; bạn d&amp;ugrave;ng để tạo tầng presentation. &lt;b&gt;Server project &lt;/b&gt;c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;RIAServicesExample.Web&lt;/b&gt; v&amp;agrave; n&amp;oacute; chứa phần code của tầng giữa(middle-tier).&lt;/p&gt;
&lt;img id="RIA_ProjectsCreated" alt="Projects Created" src="http://i.msdn.microsoft.com/dynimg/IC371471.png" title="Projects Created" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Data Models&lt;/span&gt;&lt;/h2&gt;
&lt;h3 class="LW_CollapsibleArea_TitleDiv"&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ khởi tạo c&amp;aacute;c lớp ADO.NET Entity đại diện cho c&amp;aacute;c lớp của AdventureWorksLT database. RIA Services l&amp;agrave;m việc với nhiều lớp m&amp;ocirc; h&amp;igrave;nh dữ liệu v&amp;agrave; nhiều nguồn dữ liệu kh&amp;aacute;c nhau.&lt;/p&gt;
&lt;div class="alert"&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;&lt;b&gt;Lưu &amp;yacute;:&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Khi sử dụng một Entity Data Model với Visual Studio 2010, bạn phải chọn t&amp;ugrave;y chọn &lt;b&gt;&lt;span class="label"&gt;Include foreign key columns in the model&lt;/span&gt;&lt;/b&gt;. Mặc định th&amp;igrave; lựa chọn n&amp;agrave;y được tự động th&amp;ecirc;m v&amp;agrave;o khi bạn sử dụng Entity 
Data Model Wizard. Bạn cũng phải sử dụng behavior mặc định của th&amp;ocirc;ng tin m&amp;agrave; Entity Data Model mapping nh&amp;uacute;ng v&amp;agrave;o trong assembly.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;L&amp;agrave;m việc với dữ liệu tại tầng middle&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;,click phải v&amp;agrave;o server project (&lt;b&gt;RIAServicesExample.Web&lt;/b&gt;), chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;New Item&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Add New Item&lt;/span&gt; &lt;/b&gt;xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong hộp thoại đ&amp;oacute;, h&amp;atilde;y chọn phần &lt;b&gt;&lt;span class="label"&gt;Data&lt;/span&gt; &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn mẫu &lt;b&gt;&lt;span class="label"&gt;ADO.NET Entity Data Model&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin mới l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;AdventureWorksModel.edmx&lt;/span&gt;&lt;/b&gt; v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại &lt;b&gt;&lt;span class="label"&gt;Entity Data Model Wizard&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Model Contents&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Generate from database&lt;/span&gt; &lt;/b&gt;v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần khung &lt;b&gt;&lt;span class="label"&gt;Choose Your Data Connection&lt;/span&gt;&lt;/b&gt;, tạo một kết nối dữ liệu đến database v&amp;agrave; click &lt;b&gt;&lt;span class="label"&gt;Next&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong phần cửa sổ &lt;b&gt;&lt;span class="label"&gt;Choose Your Database Objects&lt;/span&gt;&lt;/b&gt;, h&amp;atilde;y chọn c&amp;aacute;c bảng&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Address&lt;/span&gt;, &lt;span class="label"&gt;Customer&lt;/span&gt;,&lt;/b&gt; v&amp;agrave; &lt;b&gt;&lt;span class="label"&gt;CustomerAddress&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Finish&lt;/span&gt;&lt;/b&gt;. L&amp;uacute;c n&amp;agrave;y m&amp;ocirc; h&amp;igrave;nh &lt;b&gt;Entity models &lt;/b&gt;đ&amp;atilde; được thiết lập.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Build&amp;nbsp; &lt;/b&gt;solution.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Domain Service&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Trong phần n&amp;agrave;y, bạn sẽ th&amp;ecirc;m một domain service v&amp;agrave;o dự &amp;aacute;n tầng middle. Một domain service tr&amp;igrave;nh b&amp;agrave;y c&amp;aacute;c data entity v&amp;agrave; c&amp;aacute;c hoạt động của server
 project đến client project. Bạn c&amp;oacute; thể th&amp;ecirc;m business logic v&amp;agrave;o domain
 service để quản l&amp;iacute; c&amp;aacute;ch thức m&amp;agrave; client tương t&amp;aacute;c với dữ liệu.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để tạo một domain service&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Click đ&amp;ocirc;i v&amp;agrave;o &lt;b&gt;server project,&lt;/b&gt; v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt; and &lt;span class="label"&gt;New Item&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong danh s&amp;aacute;ch hiện ra, h&amp;atilde;y chọn &lt;span class="label"&gt;Web&lt;/span&gt; trong phần khung b&amp;ecirc;n tr&amp;aacute;i v&amp;agrave; chọn &lt;b&gt;&lt;span class="label"&gt;Domain Service Class&lt;/span&gt;&lt;/b&gt; trong phần khung b&amp;ecirc;n phải.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho tập tin l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.cs&lt;/span&gt;&lt;/b&gt; (hoặc l&amp;agrave; &lt;b&gt;&lt;span class="input"&gt;CustomerDomainService.vb&lt;/span&gt;&lt;/b&gt;).&lt;/p&gt;
&lt;img id="RIA_AddDomainService" alt="Add Domain Service" src="http://i.msdn.microsoft.com/dynimg/IC415518.png" title="Add Domain Service" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;Add&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Hộp thoại&amp;nbsp; &lt;b&gt;&lt;span class="label"&gt;Add New Domain Service Class&lt;/span&gt;&lt;/b&gt; xuất hiện.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y chắc l&amp;agrave; check box &lt;b&gt;&lt;span class="label"&gt;Enable client access&lt;/span&gt; &lt;/b&gt;được chọn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chọn &lt;b&gt;&lt;span class="label"&gt;Customer&lt;/span&gt; entity &lt;/b&gt;v&amp;agrave; sau đ&amp;oacute; chọn &lt;b&gt;&lt;span class="label"&gt;Enable Editing&lt;/span&gt; &lt;/b&gt;cho bảng &lt;b&gt;Customer.&lt;/b&gt;&lt;/p&gt;
&lt;img id="RIA_AddEntity" alt="Add Entity" src="http://i.msdn.microsoft.com/dynimg/IC413693.png" title="Add Entity" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;b&gt;&lt;span class="label"&gt;OK&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;V&amp;agrave; lớp domain service đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở tập tin &lt;b&gt;CustomerDomainService.cs&lt;/b&gt; (hay l&amp;agrave; &lt;b&gt;CustomerDomainService.vb&lt;/b&gt;). &lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;c&amp;oacute; từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff423019%28v=VS.91%29.aspx"&gt;LinqToEntitiesDomainService&lt;span&gt;&amp;lt;&lt;/span&gt;TContext&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; l&amp;agrave; một lớp&amp;nbsp; abstract base class trong RIA Services framework. Lớp cơ bản(base class) được sử dụng một c&amp;aacute;ch tự động bởi v&amp;igrave; domain service tr&amp;igrave;nh b&amp;agrave;y một lớp dữ liệu ADO.NET Entity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thường th&amp;igrave; c&amp;aacute;c &lt;b&gt;base class&lt;/b&gt; li&amp;ecirc;n kết với c&amp;aacute;c&lt;b&gt; entity class&lt;/b&gt; đ&amp;atilde; được tạo trong bước trước.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lớp &lt;b&gt;&lt;span class="code"&gt;CustomerDomainService&lt;/span&gt; &lt;/b&gt;được đ&amp;aacute;nh dấu với thuộc t&amp;iacute;nh &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.hosting.enableclientaccessattribute%28v=VS.91%29.aspx"&gt;EnableClientAccessAttribute&lt;/a&gt;&lt;/span&gt; để x&amp;aacute;c định l&amp;agrave; n&amp;oacute; được xuất hiện trong tầng client.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một h&amp;agrave;m query c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomers&lt;/span&gt;&lt;/b&gt; được tạo. H&amp;agrave;m n&amp;agrave;y trả về mọi th&amp;agrave;nh phần trong bảng &lt;b&gt;Customers&lt;/b&gt; v&amp;agrave; kh&amp;ocirc;ng lọc hay sắp xếp g&amp;igrave; cả.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;V&amp;agrave; c&amp;ograve;n tạo cả c&amp;aacute;c phương thức insert, update, v&amp;agrave; delete c&amp;aacute;c d&amp;ograve;ng dữ liệu.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;
&lt;div class="LW_CollapsibleArea_Container"&gt;
&lt;h2 class="LW_CollapsibleArea_TitleDiv"&gt;&lt;span class="LW_CollapsibleArea_Title"&gt;Khởi tạo Silverlight Client&lt;/span&gt;
&lt;div class="LW_CollapsibleArea_HrDiv"&gt;
&lt;hr class="LW_CollapsibleArea_Hr" /&gt;
&lt;/div&gt;
&lt;/h2&gt;
&lt;p&gt;Vừa rồi bạn đ&amp;atilde; th&amp;ecirc;m business logic trong domain service. V&amp;agrave; b&amp;acirc;y giờ, bạn chỉ cần sử dụng phương thức&amp;nbsp; &lt;span class="code"&gt;GetCustomers&lt;/span&gt; đ&amp;atilde; tạo.&lt;/p&gt;
&lt;p&gt;Bởi v&amp;igrave; một li&amp;ecirc;n kết RIA Services tồn tạu giữa client project v&amp;agrave; server 
project, c&amp;aacute;c client proxy class được khởi tạo khi bạn build the solution.
 Những proxy class n&amp;agrave;y cho ph&amp;eacute;p bạn truy cập đến dữ liệu từ client.&lt;/p&gt;
&lt;h3 class="procedureSubHeading"&gt;Để thấy c&amp;aacute;c client proxy class đ&amp;atilde; được tạo&lt;br /&gt;&lt;/h3&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y &lt;b&gt;Build &lt;/b&gt;solution.&lt;/p&gt;
&lt;p&gt;Khi bạn build&amp;nbsp; solution, th&amp;igrave; code sẽ được tạo trong client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trong cửa sổ &lt;b&gt;Solution Explorer&lt;/b&gt;, click &lt;b&gt;&lt;span class="label"&gt;Show All Files&lt;/span&gt;&lt;/b&gt; d&amp;agrave;nh cho client project. (Bạn h&amp;atilde;y chọn client project l&amp;agrave; &amp;quot;Set as startup project&amp;quot;)&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; thư mục &lt;b&gt;Generated_Code &lt;/b&gt;chứa một tập tin code .&lt;/p&gt;
&lt;img id="RIA_GeneratedCode" alt="Generated Code file" src="http://i.msdn.microsoft.com/dynimg/IC365722.png" title="Generated Code file" /&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code trong thư mục &lt;b&gt;Generated_Code.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Lưu &amp;yacute; l&amp;agrave; tập tin n&amp;agrave;y c&amp;oacute; c&amp;aacute;c đặc điểm như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;WebContext&lt;/span&gt;&lt;/b&gt; class kế thừa từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.applicationservices.webcontextbase%28v=VS.91%29.aspx"&gt;WebContextBase&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt; class được suy ra từ lớp &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.domaincontext%28v=VS.91%29.aspx"&gt;DomainContext&lt;/a&gt;&lt;/span&gt; đ&amp;atilde; được tạo. Lớp n&amp;agrave;y c&amp;oacute; một phương thức t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&amp;nbsp;&lt;/b&gt; tương ứng với phương thức truy vấn đ&amp;atilde; được tạo trong domain service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Một &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; &lt;/b&gt;class c&amp;oacute; nguồn gốc từ&amp;nbsp; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.entity%28v=VS.91%29.aspx"&gt;Entity&lt;/a&gt;&lt;/span&gt; class được tạo cho entity do domain service tr&amp;igrave;nh b&amp;agrave;y. Lớp &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; trong client project tương ứng với &lt;b&gt;&lt;span class="code"&gt;Customer&lt;/span&gt; entity&lt;/b&gt; tr&amp;ecirc;n server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h3 class="procedureSubHeading"&gt;Để hiển thị dữ liệu trong Silverlight client&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="subSection"&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;H&amp;atilde;y mở &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Từ thanh &lt;b&gt;Toolbox&lt;/b&gt;, k&amp;eacute;o một&amp;nbsp; &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;control v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;Grid&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;element trong cửa sổ chứa m&amp;atilde; XAML.&lt;/p&gt;
&lt;p&gt;Một &lt;b&gt;XML namespace&lt;/b&gt; v&amp;agrave; một reference đến một &lt;b&gt;Data assembly&lt;/b&gt; được th&amp;ecirc;m v&amp;agrave;o một c&amp;aacute;ch tự động khi bạn k&amp;eacute;o &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; từ thanh. Nếu bạn th&amp;ecirc;m &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; m&amp;agrave; kh&amp;ocirc;ng k&amp;eacute;o n&amp;oacute; từ &lt;b&gt;Toolbox&lt;/b&gt;, th&amp;igrave; bạn phải th&amp;ecirc;m một reference l&amp;agrave; &lt;b&gt;System.Windows.Controls.Data&lt;/b&gt; assembly v&amp;agrave; một &lt;b&gt;XML namespace &lt;/b&gt;cho &lt;b&gt;&lt;span class="code"&gt;xmlns:data=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&amp;quot;&lt;/span&gt;.&lt;/b&gt; Th&amp;iacute; dụ n&amp;agrave;y đ&amp;atilde; c&amp;oacute;&amp;nbsp; &lt;b&gt;XML namespace&lt;/b&gt; c&amp;oacute; t&amp;ecirc;n l&amp;agrave; &lt;b&gt;&lt;span class="code"&gt;data&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; bạn c&amp;oacute; thể th&amp;ecirc;m một c&amp;aacute;i t&amp;ecirc;n kh&amp;aacute;c cũng được.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đặt t&amp;ecirc;n cho &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;span class="code"&gt;CustomerGrid&lt;/span&gt;&lt;/b&gt; như đoạn code XAML dưới đ&amp;acirc;y.&lt;/p&gt;
&lt;div id="snippetGroup"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode0" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; 
    &lt;span style="color:Red;"&gt;xmlns:data&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  
    &lt;span style="color:Red;"&gt;x:Class&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;RIAServicesExample.MainPage&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.microsoft.com/expression/blend/2008&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;d&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
    &lt;span style="color:Red;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;300&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;400&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt; &lt;span style="color:Red;"&gt;x:Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;LayoutRoot&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;Background&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;White&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt; &lt;span style="color:Red;"&gt;Name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CustomerGrid&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;data&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataGrid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mở tập tin code ph&amp;iacute;a sau của &lt;b&gt;MainPage.xaml.&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m c&amp;acirc;u lệnh &lt;b&gt;&lt;span class="code"&gt;using&lt;/span&gt; (C#)&lt;/b&gt; hay &lt;b&gt;&lt;span class="code"&gt;Imports&lt;/span&gt; (Visual Basic)&lt;/b&gt; cho namespace&amp;nbsp;&lt;b&gt; &lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; v&amp;agrave; &lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client%28v=VS.91%29.aspx"&gt;System.ServiceModel.DomainServices.Client&lt;/a&gt;&lt;/span&gt; namespace.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="input"&gt;RIAServicesExample.Web&lt;/span&gt;&lt;/span&gt; namespace l&amp;agrave; tập tin code ph&amp;iacute;a sau được khởi tạo cho client project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Th&amp;ecirc;m đoạn code sau cho &lt;b&gt;&lt;span class="code"&gt;CustomerDomainContext&lt;/span&gt;&lt;/b&gt;, lấy c&amp;aacute;c customers bằng c&amp;aacute;ch gọi phương thức &lt;b&gt;&lt;span class="code"&gt;GetCustomersQuery&lt;/span&gt;&lt;/b&gt;, v&amp;agrave; kết nối kết quả v&amp;agrave;o trong &lt;b&gt;&lt;span&gt;&lt;span class="input"&gt;DataGrid&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;, như l&amp;agrave; đoạn code dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;div id="snippetGroup1"&gt;
&lt;div class="LW_CodeSnippetContainer"&gt;
&lt;div class="LW_CodeSnippetContainerCodeCollection"&gt;
&lt;div id="CodeSnippetContainerCode1" class="LW_CodeSnippetContainerCode"&gt;
&lt;div style="color:Black;"&gt;
&lt;pre&gt;&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Net;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Media.Animation;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; RIAServicesExample.Web;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.ServiceModel.DomainServices.Client;

&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; RIAServicesExample
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;partial&lt;/span&gt; &lt;span style="color:Blue;"&gt;class&lt;/span&gt; MainPage : UserControl
    {
        &lt;span style="color:Blue;"&gt;private&lt;/span&gt; CustomerDomainContext _customerContext = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; CustomerDomainContext();

        &lt;span style="color:Blue;"&gt;public&lt;/span&gt; MainPage()
        {
            InitializeComponent();

            LoadOperation&amp;lt;Customer&amp;gt; loadOp = &lt;span style="color:Blue;"&gt;this&lt;/span&gt;._customerContext.Load(&lt;span style="color:Blue;"&gt;this&lt;/span&gt;._customerContext.GetCustomersQuery());
            CustomerGrid.ItemsSource = loadOp.Entities;
        }
    }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chạy ứng dụng.&lt;/p&gt;
&lt;p&gt;Bạn sẽ thấy dữ liệu của data grid tương tự như sau.&lt;/p&gt;
&lt;img id="RIA_ResultsGrid" alt="Results Grid" src="http://i.msdn.microsoft.com/dynimg/IC365724.png" title="Results Grid" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div class="subSection"&gt;Nguồn của b&amp;agrave;i viết được dịch bởi kpopyo từ: &lt;a href="http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee707376%28v=VS.91%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Silverlight Tip of the Day #33: How to Scale your entire App and its Elements to your Browsers Size</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-33-how-to-scale-your-entire-app-and-its-elements-to-your-browsers-size/revision/0.aspx</link><pubDate>Thu, 19 Aug 2010 01:49:55 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:77</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 8/19/2010 9:49:55 AM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #33: How to Scale your entire App and its Elements to your Browsers Size&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: &lt;span style="text-decoration: line-through; color: red;"&gt;Silverlight&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;H&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;atilde;y&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;n&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;oacute;i&lt;/span&gt; &lt;p&gt;&lt;span style="background: SpringGreen;"&gt;Giả&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;sử&lt;/span&gt; l&amp;agrave; bạn c&amp;oacute; 1 ứng dụng Silverlight m&amp;agrave; bạn muốn thu nhỏ lại bằng chiều rộng v&amp;agrave; chiều của cửa sổ tr&amp;igrave;nh duyệt của bạn. Bằng c&amp;aacute;ch n&amp;agrave;y ứng dụng được đưa l&amp;ecirc;n to&amp;agrave;n bộ cửa sổ v&amp;agrave; kh&amp;ocirc;ng chỉ l&amp;agrave; một cửa sổ với k&amp;iacute;ch thước cố định.&amp;nbsp; Để minh họa điều n&amp;agrave;y, t&amp;ocirc;i đ&amp;atilde; tạo một ứng dụng đơn giản của những phần tử UI ngẫu nhi&amp;ecirc;n tr&amp;ecirc;n n&amp;oacute;.&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể xem trước v&amp;agrave; chạy ứng dụng tại đ&amp;acirc;y:&lt;a title="http://silverlight.services.live.com/invoke/66033/Page%20Scaling/iframe.html" href="http://silverlight.services.live.com/invoke/66033/Page%20Scaling/iframe.html"&gt;http://silverlight.services.live.com/invoke/66033/Page%20Scaling/iframe.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ngo&amp;agrave;i ra, những cửa sổ sau sẽ cho bạn thấy ứng dụng đơn giản thay đổi&amp;nbsp; tr&amp;igrave;nh duyệt với nhiều k&amp;iacute;ch cỡ kh&amp;aacute;c nhau (cao, b&amp;igrave;nh thường, rộng). Như bạn c&amp;oacute; thể thấy, mỗi phần tử UI trong ứng dụng được chia c&amp;acirc;n xứng với k&amp;iacute;ch thước của tr&amp;igrave;nh duyệt.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_6.png"&gt;&lt;img title="image" style="border-width:0px;" alt="image" src="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_thumb_2.png" width="254" border="0" height="686" /&gt;&lt;/a&gt; &lt;a href="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_2.png"&gt;&lt;img title="image" style="border-width:0px;" alt="image" src="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_thumb.png" width="418" border="0" height="445" /&gt;&lt;/a&gt;&lt;a href="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_8.png"&gt;&lt;img title="image" style="border-width:0px;" alt="image" src="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_thumb_3.png" width="697" border="0" height="355" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Để ho&amp;agrave;n th&amp;agrave;nh điều n&amp;agrave;y, tất cả những việc bạn phải l&amp;agrave;m l&amp;agrave; th&amp;ecirc;m một&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt; của phần&amp;nbsp; &lt;span style="color:#008080;"&gt;ScaleTransform&lt;/span&gt; v&amp;agrave;o một Grid hay Canvas của ứng dụng  Silverlight của bạn. &lt;/p&gt;
&lt;p&gt;Th&amp;iacute; dụ, th&amp;ecirc;m đoạn code sau v&amp;agrave;o trang Page.xaml của bạn:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Canvas.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;ScaleTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;CanvasScale&amp;quot; ScaleX=&amp;rdquo;1&amp;rdquo; ScaleY=&amp;rdquo;1&amp;rdquo;&lt;/span&gt;&amp;gt;&amp;lt;/ScaleTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Canvas.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;G&amp;aacute;n ScaleX&amp;nbsp; v&amp;agrave; ScaleY&amp;nbsp; l&amp;agrave;&amp;nbsp; &amp;ldquo;1&amp;rdquo; th&amp;igrave; tương đương với tỉ lệ l&amp;agrave;  100% . Nếu bạn g&amp;aacute;n&amp;nbsp; ScaleX v&amp;agrave;&amp;nbsp; ScaleY l&amp;agrave;&amp;nbsp; &amp;ldquo;0.33&amp;rdquo; th&amp;igrave; control sẽ&amp;nbsp; bằng&amp;nbsp; 1/3 k&amp;iacute;ch cỡ b&amp;igrave;nh thường của n&amp;oacute;.&lt;/p&gt;
&lt;p&gt;N&amp;agrave;o b&amp;acirc;y giờ, như đ&amp;atilde; chứng minh tại&amp;nbsp; &lt;a href="http://silverlight.net/blogs/msnow/archive/2008/06/06/browser-resize-how-to-determine-your-browser-size.aspx" target="_blank"&gt;Tip of the Day #9&lt;/a&gt;&amp;nbsp; kiểm so&amp;aacute;t việc thay đổi k&amp;iacute;ch cỡ tr&amp;igrave;nh duyệt trong tập tin&amp;nbsp; Page.xaml.cs của bạn. G&amp;aacute;n cho&amp;nbsp; &lt;span style="color:#008080;"&gt;CanvasScale&lt;/span&gt; ScaleX v&amp;agrave;&amp;nbsp; ScaleY với một phần trăm m&amp;agrave; bạn muốn cho chiều d&amp;agrave;i v&amp;agrave; chiều rộng.&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ScaleTransform&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Page : UserControl&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; _startingWidth = 800;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; _startingHeight = 600;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Page()&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            InitializeComponent();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            App.Current.Host.Content.Resized += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler(Content_Resized);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Content_Resized(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; height = App.Current.Host.Content.ActualHeight;   &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; width = App.Current.Host.Content.ActualWidth;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            CanvasScale.ScaleX = width / _startingWidth;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            CanvasScale.ScaleY = height / _startingHeight;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;       &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Thank you, 
  &lt;br /&gt;--Mike Snow 
  &lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #33: How to Scale your entire App and its Elements to your Browsers Size</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-33-how-to-scale-your-entire-app-and-its-elements-to-your-browsers-size/revision/1.aspx</link><pubDate>Thu, 23 Jul 2009 05:21:16 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:128</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 1 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 7/23/2009 1:21:16 PM&lt;br /&gt;
&lt;p&gt;H&amp;atilde;y n&amp;oacute;i l&amp;agrave; bạn c&amp;oacute; 1 ứng dụng Silverlight m&amp;agrave; bạn muốn thu nhỏ lại bằng chiều rộng v&amp;agrave; chiều của cửa sổ tr&amp;igrave;nh duyệt của bạn. Bằng c&amp;aacute;ch n&amp;agrave;y ứng dụng được đưa l&amp;ecirc;n to&amp;agrave;n bộ cửa sổ v&amp;agrave; kh&amp;ocirc;ng chỉ l&amp;agrave; một cửa sổ với k&amp;iacute;ch thước cố định.&amp;nbsp; Để minh họa điều n&amp;agrave;y, t&amp;ocirc;i đ&amp;atilde; tạo một ứng dụng đơn giản của những phần tử UI ngẫu nhi&amp;ecirc;n tr&amp;ecirc;n n&amp;oacute;.&lt;/p&gt;
&lt;p&gt;Bạn c&amp;oacute; thể xem trước v&amp;agrave; chạy ứng dụng tại đ&amp;acirc;y:&lt;a title="http://silverlight.services.live.com/invoke/66033/Page%20Scaling/iframe.html" href="http://silverlight.services.live.com/invoke/66033/Page%20Scaling/iframe.html"&gt;http://silverlight.services.live.com/invoke/66033/Page%20Scaling/iframe.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ngo&amp;agrave;i ra, những cửa sổ sau sẽ cho bạn thấy ứng dụng đơn giản thay đổi&amp;nbsp; tr&amp;igrave;nh duyệt với nhiều k&amp;iacute;ch cỡ kh&amp;aacute;c nhau (cao, b&amp;igrave;nh thường, rộng). Như bạn c&amp;oacute; thể thấy, mỗi phần tử UI trong ứng dụng được chia c&amp;acirc;n xứng với k&amp;iacute;ch thước của tr&amp;igrave;nh duyệt.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_6.png"&gt;&lt;img title="image" style="border-width:0px;" alt="image" src="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_thumb_2.png" width="254" border="0" height="686" /&gt;&lt;/a&gt; &lt;a href="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_2.png"&gt;&lt;img title="image" style="border-width:0px;" alt="image" src="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_thumb.png" width="418" border="0" height="445" /&gt;&lt;/a&gt;&lt;a href="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_8.png"&gt;&lt;img title="image" style="border-width:0px;" alt="image" src="http://silverlight.net/blogs/msnow/WindowsLiveWriter/SilverlightTipoftheDay33HowtoScaleyouren_13AF9/image_thumb_3.png" width="697" border="0" height="355" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Để ho&amp;agrave;n th&amp;agrave;nh điều n&amp;agrave;y, tất cả những việc bạn phải l&amp;agrave;m l&amp;agrave; th&amp;ecirc;m một&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt; của phần&amp;nbsp; &lt;span style="color:#008080;"&gt;ScaleTransform&lt;/span&gt; v&amp;agrave;o một Grid hay Canvas của ứng dụng  Silverlight của bạn. &lt;/p&gt;
&lt;p&gt;Th&amp;iacute; dụ, th&amp;ecirc;m đoạn code sau v&amp;agrave;o trang Page.xaml của bạn:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Canvas.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;ScaleTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;CanvasScale&amp;quot; ScaleX=&amp;rdquo;1&amp;rdquo; ScaleY=&amp;rdquo;1&amp;rdquo;&lt;/span&gt;&amp;gt;&amp;lt;/ScaleTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Canvas.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;G&amp;aacute;n ScaleX&amp;nbsp; v&amp;agrave; ScaleY&amp;nbsp; l&amp;agrave;&amp;nbsp; &amp;ldquo;1&amp;rdquo; th&amp;igrave; tương đương với tỉ lệ l&amp;agrave;  100% . Nếu bạn g&amp;aacute;n&amp;nbsp; ScaleX v&amp;agrave;&amp;nbsp; ScaleY l&amp;agrave;&amp;nbsp; &amp;ldquo;0.33&amp;rdquo; th&amp;igrave; control sẽ&amp;nbsp; bằng&amp;nbsp; 1/3 k&amp;iacute;ch cỡ b&amp;igrave;nh thường của n&amp;oacute;.&lt;/p&gt;
&lt;p&gt;N&amp;agrave;o b&amp;acirc;y giờ, như đ&amp;atilde; chứng minh tại&amp;nbsp; &lt;a href="http://silverlight.net/blogs/msnow/archive/2008/06/06/browser-resize-how-to-determine-your-browser-size.aspx" target="_blank"&gt;Tip of the Day #9&lt;/a&gt;&amp;nbsp; kiểm so&amp;aacute;t việc thay đổi k&amp;iacute;ch cỡ tr&amp;igrave;nh duyệt trong tập tin&amp;nbsp; Page.xaml.cs của bạn. G&amp;aacute;n cho&amp;nbsp; &lt;span style="color:#008080;"&gt;CanvasScale&lt;/span&gt; ScaleX v&amp;agrave;&amp;nbsp; ScaleY với một phần trăm m&amp;agrave; bạn muốn cho chiều d&amp;agrave;i v&amp;agrave; chiều rộng.&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ScaleTransform&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Page : UserControl&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; _startingWidth = 800;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; _startingHeight = 600;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Page()&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            InitializeComponent();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            App.Current.Host.Content.Resized += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler(Content_Resized);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Content_Resized(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; height = App.Current.Host.Content.ActualHeight;   &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; width = App.Current.Host.Content.ActualWidth;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            CanvasScale.ScaleX = width / _startingWidth;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            CanvasScale.ScaleY = height / _startingHeight;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;       &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;

Thank you, 
  &lt;br /&gt;--Mike Snow 

  &lt;/p&gt;</description></item><item><title>Uninstall Silverlight SDK RTM before installing VS 2010 Beta 2</title><link>http://msdnvietnam.net/wikis/silverlighttips/uninstall-silverlight-sdk-rtm-before-installing-vs-2010-beta-2/revision/0.aspx</link><pubDate>Mon, 21 Dec 2009 06:54:57 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:138</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 12/21/2009 2:54:57 PM&lt;br /&gt;
&lt;p&gt;Nếu bạn đ&amp;atilde; c&amp;agrave;i đặt phi&amp;ecirc;n bản Silverlight 3 SDK RTM (kh&amp;ocirc;ng phải GDR) th&amp;igrave; bạn cần phải gỡ bỏ &lt;b&gt;&lt;span style="text-decoration:underline;"&gt;uninstall&lt;/span&gt;&lt;/b&gt; n&amp;oacute; trước khi chạy tr&amp;igrave;nh c&amp;agrave;i đặt Visual Studio 2010 beta 2 setup.   &lt;/p&gt;
&lt;p&gt;Điều n&amp;agrave;y kh&amp;ocirc;ng ph&amp;acirc;n biệt l&amp;agrave; phi&amp;ecirc;n bản ng&amp;ocirc;n ngữ SDK language hay l&amp;agrave; nền tảng platform.&amp;nbsp; SDK GDR &lt;b&gt;&lt;span style="text-decoration:underline;"&gt;kh&amp;ocirc;ng&lt;/span&gt;&lt;/b&gt; c&amp;agrave;i đặt tr&amp;ecirc;n phi&amp;ecirc;n bản RTM của SDK. Vấn đề n&amp;agrave;y n&amp;ecirc;n được khắc phục bởi RTM. &lt;/p&gt;
&lt;p&gt;Nếu bạn tiến h&amp;agrave;nh c&amp;agrave;i đặt trong t&amp;igrave;nh trạng n&amp;agrave;y th&amp;igrave; bạn sẽ nhận được một lỗi được th&amp;ocirc;ng b&amp;aacute;o v&amp;agrave;o cuối tiến tr&amp;igrave;nh c&amp;agrave;i đặt, l&amp;agrave; việc c&amp;agrave;i đặt SDK đ&amp;atilde; bị thất bại. Lỗi n&amp;agrave;y kh&amp;ocirc;ng ảnh hưởng đến việc c&amp;agrave;i đặt phi&amp;ecirc;n bản beta 2 đối với Visual Studio nhưng bạn vẫn sẽ cần gỡ bỏ SDK RTM v&amp;agrave; c&amp;agrave;i đặt lại&amp;nbsp; SDK GDR nếu bạn muốn c&amp;oacute; phi&amp;ecirc;n bản mới nhất của SDK.&lt;/p&gt;
&lt;p&gt;Để &lt;b&gt;uninstall&lt;/b&gt; phi&amp;ecirc;n bản RTM của SDK:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;H&amp;atilde;y v&amp;agrave;o chương tr&amp;igrave;nh &lt;b&gt;Add/Remove programs &lt;/b&gt;của bạn&lt;b&gt;. &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Sau đ&amp;oacute; chọn&amp;nbsp; &lt;b&gt;Microsoft Silverlight 3 SDK. &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Nhấp phải chuột tr&amp;ecirc;n n&amp;oacute; v&amp;agrave; chọn &lt;b&gt;uninstall&lt;/b&gt; từ thanh thực đơn hiện ra.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;V&amp;agrave;o l&amp;uacute;c n&amp;agrave;y bạn c&amp;oacute; thể c&amp;agrave;i đặt&amp;nbsp; Visual Studio 2010 Beta 2 m&amp;agrave; c&amp;oacute; thể tải về từ đ&amp;acirc;y ==&amp;gt; &lt;a href="http://www.microsoft.com/visualstudio/en-us/try/default.mspx#download"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;H&amp;atilde;y lưu &amp;yacute; l&amp;agrave; bạn c&amp;oacute; thể c&amp;agrave;i đặt SL3 GDR SDK trực tiếp tại đ&amp;acirc;y: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=1ea49236-0de7-41b1-81c8-a126ff39975b"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=1ea49236-0de7-41b1-81c8-a126ff39975b&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Thank you,&lt;/p&gt;
&lt;p&gt;--Mike    &lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #106 – Setting Default Browser from within VS</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-106-setting-default-browser-from-within-vs/revision/0.aspx</link><pubDate>Mon, 21 Dec 2009 06:42:58 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:137</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 12/21/2009 2:42:58 PM&lt;br /&gt;
&lt;p&gt;Từ trong VS bạn c&amp;oacute; thể x&amp;aacute;c định tr&amp;igrave;nh duyệt Internet browser n&amp;agrave;o m&amp;agrave; bạn muốn khởi chạy khi đang chạy ứng dụng Silverlight của bạn. Tr&amp;igrave;nh duyệt hệ thống mặc định của bạn kh&amp;ocirc;ng bị thay đổi bởi thiết lập n&amp;agrave;y.&lt;/p&gt;
&lt;p&gt;Để thực hiện thay đổi n&amp;agrave;y, h&amp;atilde;y nhấp phải chuột tr&amp;ecirc;n trang web khởi động của bạn v&amp;agrave; chọn&amp;nbsp;
&lt;b&gt;Browse with&amp;hellip; &lt;/b&gt;từ thanh thực đơn hiện ra. Thao t&amp;aacute;c n&amp;agrave;y sẽ l&amp;agrave;m xuất hiện hộp thoại sau:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_2F3287F5.png"&gt;&lt;img title="image" style="border:0px none;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_599EB912.png" width="400" border="0" height="305" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Từ trong hộp thoại n&amp;agrave;y bạn h&amp;atilde;y chọn tr&amp;igrave;nh duyệt m&amp;agrave; bạn muốn sử dụng v&amp;agrave; chọn&amp;nbsp; &amp;ldquo;Set as Default&amp;rdquo;. Đ&amp;oacute;ng hộp thoại sau khi bạn thực hiện xong&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #104 – Cool Silverlight Tutorial Blogs</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-104-cool-silverlight-tutorial-blogs/revision/0.aspx</link><pubDate>Fri, 25 Sep 2009 12:51:28 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:120</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/25/2009 8:51:28 PM&lt;br /&gt;
&lt;p&gt;Trong kh&amp;oacute;a học năm ngo&amp;aacute;i t&amp;ocirc;i đ&amp;atilde; thu thập được một số Silverlight tutorial blogs thật sự tốt m&amp;agrave; t&amp;ocirc;i nghĩ t&amp;ocirc;i sẽ share với c&amp;aacute;c bạn. L&amp;agrave; những blog đang hoạt động, được update thường xuy&amp;ecirc;n, được định hướng cụ thể để giảng dạy về&amp;nbsp; lập tr&amp;igrave;nh  Silverlight. Tức l&amp;agrave;, ch&amp;uacute;ng hiển thị tất cả cho bạn về l&amp;agrave;m thế n&amp;agrave;o để thực hiện v&amp;agrave; cho bạn phần source code bạn cần để tự l&amp;agrave;m điều đ&amp;oacute;. Nếu t&amp;ocirc;i nhỡ mất bất k&amp;igrave; đường link hay n&amp;agrave;o h&amp;atilde;y post một comment v&amp;agrave; t&amp;ocirc;i sẽ th&amp;ecirc;m n&amp;oacute; v&amp;agrave;o!&lt;/p&gt;
&lt;p&gt;C&amp;aacute;c trang web Silverlight tutorial theo thứ tự alphabetical:&lt;/p&gt;
&lt;table width="693" border="0" cellpadding="2" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;b&gt;Author/Site&lt;/b&gt;&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;b&gt;Link&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Andy Beauliue&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://www.andybeaulieu.com/Home/tabid/67/Default.aspx" href="http://www.andybeaulieu.com/Home/tabid/67/Default.aspx"&gt;http://www.andybeaulieu.com/Home/tabid/67/Default.aspx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Brad Adams&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://blogs.msdn.com/brada/default.aspx" href="http://blogs.msdn.com/brada/default.aspx"&gt;http://blogs.msdn.com/brada/default.aspx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Chris Hay&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://www.screencast.com/users/chrishayuk" href="http://www.screencast.com/users/chrishayuk"&gt;http://www.screencast.com/users/chrishayuk&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;DotNet Curry&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://www.dotnetcurry.com/" href="http://www.dotnetcurry.com/"&gt;http://www.dotnetcurry.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Jesse Liberty&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://silverlight.net/blogs/jesseliberty/" href="http://silverlight.net/blogs/jesseliberty/"&gt;http://silverlight.net/blogs/jesseliberty/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Joe Stegman&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://blogs.msdn.com/jstegman/default.aspx" href="http://blogs.msdn.com/jstegman/default.aspx"&gt;http://blogs.msdn.com/jstegman/default.aspx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Nikola Mihaylov&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://blogs.msdn.com/nikola/default.aspx" href="http://blogs.msdn.com/nikola/default.aspx"&gt;http://blogs.msdn.com/nikola/default.aspx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Page Brooks&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://pagebrooks.com/" href="http://pagebrooks.com/"&gt;http://pagebrooks.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Pete Brown&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://community.irritatedvowel.com/blogs/pete_browns_blog/default.aspx" href="http://community.irritatedvowel.com/blogs/pete_browns_blog/default.aspx"&gt;http://community.irritatedvowel.com/blogs/pete_browns_blog/default.aspx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Shawn Wildermuth&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://wildermuth.com/" href="http://wildermuth.com/"&gt;http://wildermuth.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Silverlight Learning Resources&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://silverlight.net/learn/" href="http://silverlight.net/learn/"&gt;http://silverlight.net/learn/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;SilverlightShow&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://www.silverlightshow.net/" href="http://www.silverlightshow.net/"&gt;http://www.silverlightshow.net/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Terence Tsang&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://www.shinedraw.com/" href="http://www.shinedraw.com/"&gt;http://www.shinedraw.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Tim Heuer&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://timheuer.com/blog/" href="http://timheuer.com/blog/"&gt;http://timheuer.com/blog/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Timmy Kokke&lt;/td&gt;
&lt;td width="491" valign="top"&gt;&lt;a title="http://geekswithblogs.net/tkokke/Default.aspx" href="http://geekswithblogs.net/tkokke/Default.aspx"&gt;http://geekswithblogs.net/tkokke/Default.aspx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Ngo&amp;agrave;i ra, đ&amp;acirc;y l&amp;agrave; một trang&amp;nbsp; Silverlight Blog rất tuyệt: &lt;a title="http://www.netvibes.com/rboarman#Silverlight" href="http://www.netvibes.com/rboarman#Silverlight"&gt;http://www.netvibes.com/rboarman#Silverlight&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thank you,    &lt;br /&gt;--Mike&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #103 – Use Integers for Layout Calculations</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-103-use-integers-for-layout-calculations/revision/0.aspx</link><pubDate>Fri, 18 Sep 2009 23:15:22 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:118</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/19/2009 7:15:22 AM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #103 – Use Integers for Layout Calculations&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Khi t&amp;iacute;nh to&amp;aacute;n vị tr&amp;iacute; của c&amp;aacute;c vật thể(object) như l&amp;agrave; &lt;span style="background: SpringGreen;"&gt;trong&lt;/span&gt; c&amp;aacute;c Images&lt;span style="text-decoration: line-through; color: red;"&gt;chắc&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;chắn&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;l&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;agrave;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;để&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;,&lt;/span&gt; sử dụng &lt;span style="background: SpringGreen;"&gt;c&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;aacute;c&lt;/span&gt; gi&amp;aacute; trị số nguy&amp;ecirc;n &lt;span style="text-decoration:underline;"&gt;(integer&lt;/span&gt; values)&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;sẽ&lt;/span&gt; kh&amp;ocirc;ng l&amp;agrave;m tr&amp;agrave;n c&amp;aacute;c điểm gi&amp;aacute; trị.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ, h&amp;atilde;y nh&amp;igrave;n v&amp;agrave;o đoạn code n&amp;agrave;y &lt;span style="text-decoration: line-through; color: red;"&gt;m&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;agrave;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;đặt&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;tại&lt;/span&gt; trung t&amp;acirc;m&amp;nbsp; bản &lt;span style="text-decoration: line-through; color: red;"&gt;đồ(map&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;đặt&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;một&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;đồ&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;vớimột&lt;/span&gt; vị tr&amp;iacute; nhất định:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border:1px solid silver;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;direction:ltr;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;div id="codeSnippet" style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CenterMap(&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; windowWidth, &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; windowHeight)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; != _parentCanvas)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;        &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; leftPos = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;) ((windowWidth / 2) - _currentX);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;        &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; topPos = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;) ((windowHeight / 2) - _currentY);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;        _parentCanvas.SetValue(Canvas.LeftProperty, (&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;) leftPos);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;        _parentCanvas.SetValue(Canvas.TopProperty, (&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;)topPos);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;H&amp;atilde;y lưu &amp;yacute; l&amp;agrave; t&amp;ocirc;i chuyển layout của bản đồ đặt tại  left v&amp;agrave; top để được l&amp;agrave; số nguy&amp;ecirc;n(integer). Screen shot &lt;span style="text-decoration: line-through; color: red;"&gt;sau&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;hiển&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;thị&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;l&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;&lt;/span&gt; một v&amp;iacute; dụ về &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;sử dụng &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;c&amp;aacute;c gi&amp;aacute; trị double&amp;nbsp; thay v&amp;igrave; l&amp;agrave; c&amp;aacute;c gi&amp;aacute; trị nguy&amp;ecirc;n integers. Kết quả l&amp;agrave; những image hơi mờ v&amp;agrave; c&amp;aacute;c đường &lt;span style="background: SpringGreen;"&gt;thẳng&lt;/span&gt; (hay c&amp;aacute;c đường nối ) xuất hiện giữa c&amp;aacute;c&amp;nbsp; h&amp;igrave;nh ảnh đặt cạnh nhau.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_52F0C758.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_1F485AFA.png" width="511" border="0" height="324" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;So s&amp;aacute;nh &lt;span style="text-decoration: line-through; color: red;"&gt;với&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;screenshot&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;ở tr&amp;ecirc;n&lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt; &lt;span style="background: SpringGreen;"&gt;với&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;screenshot&lt;/span&gt;&amp;nbsp; sử dụng c&amp;aacute;c số
doubles với c&amp;aacute;c  shot b&amp;ecirc;n dưới sử dụng c&amp;aacute;c gi&amp;aacute; trị integers. Trong screen shot
b&amp;ecirc;n dưới c&amp;aacute;c images sắc n&amp;eacute;t v&amp;agrave; giữa c&amp;aacute;c h&amp;igrave;nh đặt cạnh nhau kh&amp;ocirc;ng c&amp;oacute; c&amp;aacute;c đường nối hay c&amp;aacute;c đường thẳng.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_3D4668EE.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_4DDE63DC.png" width="513" border="0" height="321" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #103 – Use Integers for Layout Calculations</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-103-use-integers-for-layout-calculations/revision/2.aspx</link><pubDate>Fri, 18 Sep 2009 12:48:38 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:111</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 2 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 8:48:38 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #103 – Use Integers for Layout Calculations&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Khi t&amp;iacute;nh to&amp;aacute;n vị tr&amp;iacute; của c&amp;aacute;c vật thể(object) như l&amp;agrave; c&amp;aacute;c Images chắc chắn l&amp;agrave; để &lt;span style="text-decoration: line-through; color: red;"&gt;sự&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;sử&lt;/span&gt; dụng gi&amp;aacute; trị số nguy&amp;ecirc;n &lt;span style="text-decoration:underline;"&gt;(integer&lt;/span&gt; values)&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;not&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;floating&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;point&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;values&lt;/span&gt;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;kh&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;ocirc;ng&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;l&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;m&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;tr&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;n&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;c&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;aacute;c&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;điểm&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;gi&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;aacute;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;trị&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ, h&amp;atilde;y nh&amp;igrave;n v&amp;agrave;o đoạn code n&amp;agrave;y &lt;span style="text-decoration: line-through; color: red;"&gt;đặt&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;tại&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;m&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;&lt;/span&gt; trung t&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;acirc;m&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;một&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;&amp;acirc;m&amp;nbsp;&lt;/span&gt; bản đồ(map) &lt;span style="background: SpringGreen;"&gt;đặt&lt;/span&gt; một vị tr&amp;iacute; nhất định:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border:1px solid silver;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;direction:ltr;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;div id="codeSnippet" style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CenterMap(&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; windowWidth, &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; windowHeight)&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;{&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; != _parentCanvas)&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;    {&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;        &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; leftPos = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;) ((windowWidth / 2) - _currentX);&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;        &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; topPos = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;) ((windowHeight / 2) - _currentY);&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;        _parentCanvas.SetValue(Canvas.LeftProperty, (&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;) leftPos);&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;        _parentCanvas.SetValue(Canvas.TopProperty, (&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;)topPos);&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;    }&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;}&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;H&amp;atilde;y lưu &amp;yacute; l&amp;agrave; t&amp;ocirc;i chuyển layout của bản đồ đặt tại  left v&amp;agrave; top để được l&amp;agrave; số nguy&amp;ecirc;n(integer). Screen shot sau hiển thị một v&amp;iacute; dụ về &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;sử dụng &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;c&amp;aacute;c gi&amp;aacute; trị double&amp;nbsp; thay v&amp;igrave; l&amp;agrave; c&amp;aacute;c gi&amp;aacute; trị nguy&amp;ecirc;n integers. Kết quả l&amp;agrave; những image hơi mờ v&amp;agrave; c&amp;aacute;c đường (hay c&amp;aacute;c &lt;span style="text-decoration: line-through; color: red;"&gt;seams&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;đường&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;nối&lt;/span&gt; ) xuất hiện giữa c&amp;aacute;c&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;image&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;tiles&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;h&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;igrave;nh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;ảnh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;đặt&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;cạnh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;nhau&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_52F0C758.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_1F485AFA.png" width="511" border="0" height="324" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;So s&amp;aacute;nh với screenshot ở tr&amp;ecirc;n sử dụng c&amp;aacute;c số
doubles với c&amp;aacute;c  shot b&amp;ecirc;n dưới sử dụng c&amp;aacute;c gi&amp;aacute; trị integers. Trong screen shot
b&amp;ecirc;n dưới c&amp;aacute;c images sắc n&amp;eacute;t v&amp;agrave; giữa c&amp;aacute;c &lt;span style="text-decoration: line-through; color: red;"&gt;terrain&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;tiles&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;h&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;igrave;nh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;đặt&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;cạnh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;nhau&lt;/span&gt; kh&amp;ocirc;ng c&amp;oacute; &lt;span style="text-decoration: line-through; color: red;"&gt;seams&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;c&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;aacute;c&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;đường&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;nối&lt;/span&gt; hay c&amp;aacute;c đường thẳng.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_3D4668EE.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_4DDE63DC.png" width="513" border="0" height="321" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #103 – Use Integers for Layout Calculations</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-103-use-integers-for-layout-calculations/revision/1.aspx</link><pubDate>Fri, 18 Sep 2009 12:43:13 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:110</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 1 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 8:43:13 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Khi t&amp;iacute;nh to&amp;aacute;n vị tr&amp;iacute; của c&amp;aacute;c vật thể(object) như l&amp;agrave; c&amp;aacute;c Images chắc chắn l&amp;agrave; để sự dụng gi&amp;aacute; trị số nguy&amp;ecirc;n &lt;span style="text-decoration:underline;"&gt;(integer&lt;/span&gt; values)&amp;nbsp; not floating point values.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ, h&amp;atilde;y nh&amp;igrave;n v&amp;agrave;o đoạn code n&amp;agrave;y đặt tại trung t&amp;acirc;m một bản đồ(map) một vị tr&amp;iacute; nhất định:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border:1px solid silver;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;direction:ltr;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;div id="codeSnippet" style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CenterMap(&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; windowWidth, &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; windowHeight)&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;{&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; != _parentCanvas)&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;    {&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;        &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; leftPos = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;) ((windowWidth / 2) - _currentX);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;        &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; topPos = (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;) ((windowHeight / 2) - _currentY);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;&amp;nbsp;&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;        _parentCanvas.SetValue(Canvas.LeftProperty, (&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;) leftPos);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;        _parentCanvas.SetValue(Canvas.TopProperty, (&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;)topPos);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;    }&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;}&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;H&amp;atilde;y lưu &amp;yacute; l&amp;agrave; t&amp;ocirc;i chuyển layout của bản đồ đặt tại  left v&amp;agrave; top để được l&amp;agrave; số nguy&amp;ecirc;n(integer). Screen shot sau hiển thị một v&amp;iacute; dụ về &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;sử dụng &lt;/span&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;c&amp;aacute;c gi&amp;aacute; trị double&amp;nbsp; thay v&amp;igrave; l&amp;agrave; c&amp;aacute;c gi&amp;aacute; trị nguy&amp;ecirc;n integers. Kết quả l&amp;agrave; những image hơi mờ v&amp;agrave; c&amp;aacute;c đường (hay c&amp;aacute;c seams) xuất hiện giữa c&amp;aacute;c&amp;nbsp; image tiles.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_52F0C758.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_1F485AFA.png" width="511" border="0" height="324" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;So s&amp;aacute;nh với screenshot ở tr&amp;ecirc;n sử dụng c&amp;aacute;c số
doubles với c&amp;aacute;c  shot b&amp;ecirc;n dưới sử dụng c&amp;aacute;c gi&amp;aacute; trị integers. Trong screen shot
b&amp;ecirc;n dưới c&amp;aacute;c images sắc n&amp;eacute;t v&amp;agrave; giữa c&amp;aacute;c terrain tiles kh&amp;ocirc;ng c&amp;oacute; seams hay c&amp;aacute;c đường thẳng.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_3D4668EE.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_4DDE63DC.png" width="513" border="0" height="321" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #102 - Bypassing the Image Cache</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-102-bypassing-the-image-cache/revision/0.aspx</link><pubDate>Fri, 18 Sep 2009 12:27:53 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:117</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 8:27:53 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #102 - Bypassing the Image Cache&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: &lt;span style="text-decoration: line-through; color: red;"&gt;Silverlight&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Mặc định Silverlight sẽ kh&amp;ocirc;ng
download một h&amp;igrave;nh ảnh image nhiều hơn một lần nếu được chứa trong image
cache. Tức l&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;agrave;That&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;&amp;agrave;,&lt;/span&gt; miễn l&amp;agrave;&amp;nbsp; URI vẫn giống nhau, n&amp;oacute; sẽ tham chiếu  c&amp;aacute;c image từ bộ nhớ đệm(cache).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Vậy sẽ thế n&amp;agrave;o nếu h&amp;igrave;nh ảnh tr&amp;ecirc;n m&amp;aacute;y chủ server thay đổi mặc d&amp;ugrave; URI vẫn giữ nguy&amp;ecirc;n? Ứng dụng của bạn c&amp;oacute; thể dẫn đến một update bằng c&amp;aacute;ch g&amp;aacute;n gi&amp;aacute; trị thuộc t&amp;iacute;nh &lt;span style="color:#008080;"&gt;IgnoreImageCache&lt;/span&gt; th&amp;agrave;nh true.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ:&lt;/span&gt;&lt;/p&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;Image img = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Image();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;Uri uri = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;http://YourServer.com/MyImage.png&amp;quot;&lt;/span&gt;, UriKind.Absolute);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;BitmapImage bi = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.Imaging.BitmapImage(uri);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;img.Source = bi;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;LayoutRoot.Children.Add(img);&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/h3&gt;</description></item><item><title>Silverlight Tip of the Day #102 - Bypassing the Image Cache</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-102-bypassing-the-image-cache/revision/3.aspx</link><pubDate>Fri, 18 Sep 2009 12:25:40 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:109</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 3 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 8:25:40 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #102 - Bypassing the Image Cache&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: Silverlight&lt;/div&gt;

&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Mặc định Silverlight sẽ kh&amp;ocirc;ng
download một h&amp;igrave;nh ảnh image nhiều hơn một lần nếu được chứa trong image
cache. Tức l&amp;agrave;That is, miễn l&amp;agrave;&amp;nbsp; URI vẫn giống nhau, n&amp;oacute; sẽ tham chiếu  c&amp;aacute;c image từ bộ nhớ đệm(cache).&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Vậy sẽ thế n&amp;agrave;o nếu h&amp;igrave;nh ảnh tr&amp;ecirc;n m&amp;aacute;y chủ server thay đổi mặc d&amp;ugrave; URI vẫn giữ nguy&amp;ecirc;n? Ứng dụng của bạn c&amp;oacute; thể dẫn đến một update bằng c&amp;aacute;ch g&amp;aacute;n gi&amp;aacute; trị thuộc t&amp;iacute;nh &lt;span style="color:#008080;"&gt;IgnoreImageCache&lt;/span&gt; th&amp;agrave;nh true.&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ:&lt;/span&gt;&lt;/h3&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;Image img = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Image();&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;Uri uri = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;http://YourServer.com/MyImage.png&amp;quot;&lt;/span&gt;, UriKind.Absolute);&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;BitmapImage bi = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.Imaging.BitmapImage(uri);&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;img.Source = bi;&lt;/pre&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;LayoutRoot.Children.Add(img);&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;!--CRLF--&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/h3&gt;</description></item><item><title>Silverlight Tip of the Day #102 - Bypassing the Image Cache</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-102-bypassing-the-image-cache/revision/2.aspx</link><pubDate>Fri, 18 Sep 2009 12:24:15 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:108</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 2 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 8:24:15 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #102 - Bypassing the Image Cache&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: Silverlight&lt;/div&gt;

&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Mặc định Silverlight sẽ kh&amp;ocirc;ng
download một h&amp;igrave;nh ảnh image nhiều hơn một lần nếu được chứa trong image
cache. Tức l&amp;agrave;That is, miễn l&amp;agrave;&amp;nbsp; URI vẫn giống nhau, n&amp;oacute; sẽ tham chiếu  c&amp;aacute;c image từ bộ nhớ đệm(cache).&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Vậy sẽ thế n&amp;agrave;o nếu h&amp;igrave;nh ảnh tr&amp;ecirc;n m&amp;aacute;y chủ server thay đổi mặc d&amp;ugrave; URI vẫn giữ nguy&amp;ecirc;n? Ứng dụng của bạn c&amp;oacute; thể dẫn đến một update bằng c&amp;aacute;ch g&amp;aacute;n gi&amp;aacute; trị thuộc t&amp;iacute;nh &lt;span style="color:#008080;"&gt;IgnoreImageCache&lt;/span&gt; th&amp;agrave;nh true.&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ:&lt;/span&gt;&lt;/h3&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;Image img = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Image();&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;Uri uri = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;http://YourServer.com/MyImage.png&amp;quot;&lt;/span&gt;, UriKind.Absolute);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;BitmapImage bi = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.Imaging.BitmapImage(uri);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;img.Source = bi;&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;LayoutRoot.Children.Add(img);&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;h3&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/h3&gt;</description></item><item><title>Silverlight Tip of the Day #102 - Bypassing the Image Cache</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-102-bypassing-the-image-cache/revision/1.aspx</link><pubDate>Fri, 18 Sep 2009 12:22:47 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:107</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 1 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 8:22:47 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Mặc định Silverlight sẽ kh&amp;ocirc;ng
download một h&amp;igrave;nh ảnh image nhiều hơn một lần nếu được chứa trong image
cache. Tức l&amp;agrave;That is, miễn l&amp;agrave;&amp;nbsp; URI vẫn giống nhau, n&amp;oacute; sẽ tham chiếu  c&amp;aacute;c image từ bộ nhớ đệm(cache).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Vậy sẽ thế n&amp;agrave;o nếu h&amp;igrave;nh ảnh tr&amp;ecirc;n m&amp;aacute;y chủ server thay đổi mặc d&amp;ugrave; URI vẫn giữ nguy&amp;ecirc;n? Ứng dụng của bạn c&amp;oacute; thể dẫn đến một update bằng c&amp;aacute;ch g&amp;aacute;n gi&amp;aacute; trị thuộc t&amp;iacute;nh &lt;span style="color:#008080;"&gt;IgnoreImageCache&lt;/span&gt; th&amp;agrave;nh true.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Th&amp;iacute; dụ:&lt;/span&gt; &lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border:1px solid silver;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;direction:ltr;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;div id="codeSnippet" style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;Image img = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Image();&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;Uri uri = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;http://YourServer.com/MyImage.png&amp;quot;&lt;/span&gt;, UriKind.Absolute);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;BitmapImage bi = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.Imaging.BitmapImage(uri);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;text-align:left;"&gt;img.Source = bi;&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;direction:ltr;line-height:12pt;font-family:&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;text-align:left;"&gt;LayoutRoot.Children.Add(img);&lt;/pre&gt;
&amp;lt;!--CRLF--&amp;gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;Thank you, &lt;br /&gt;--Mike Snow &lt;/span&gt;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #101 – Silverlight 3 Beta 1 Feature Summary</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-101-silverlight-3-beta-1-feature-summary/revision/0.aspx</link><pubDate>Fri, 18 Sep 2009 08:45:43 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:116</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 9/18/2009 4:45:43 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Unless you have had your head under a
rock you probably have heard Silverlight 3 Beta 1 has been released! Nếu bạn chưa c&amp;oacute;, h&amp;atilde;y install n&amp;oacute; từ đ&amp;acirc;y &lt;/span&gt;&lt;a title="http://silverlight.net/getstarted/silverlight3/default.aspx" href="http://silverlight.net/getstarted/silverlight3/default.aspx"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;http://silverlight.net/getstarted/silverlight3/default.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Phi&amp;ecirc;n bản n&amp;agrave;y được đ&amp;oacute;ng g&amp;oacute;i k&amp;egrave;m theo một số c&amp;aacute;c chức năng tuyệt nhất từ trước đến nay. Nếu bạn l&amp;agrave; một nh&amp;agrave; lập tr&amp;igrave;nh ph&amp;aacute;t triển game, bạn sẽ vui mừng khi nghe c&amp;aacute;c chức năng b&amp;ecirc;n dưới đ&amp;acirc;y b&amp;acirc;y giờ đ&amp;atilde; c&amp;oacute; trong
Silverlight 3. T&amp;ocirc;i sẽ v&amp;agrave; đang viết c&amp;aacute;c chi tiết về số c&amp;aacute;c chức năng n&amp;agrave;y tr&amp;ecirc;n blog để gi&amp;uacute;p bạn &amp;aacute;p dụng ch&amp;uacute;ng trong c&amp;aacute;c ứng dụng của bạn.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:#0080ff;"&gt;Image Opened&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Trong Silverlight 2 rất kh&amp;oacute; để x&amp;aacute;c định một c&amp;aacute;ch ch&amp;iacute;nh x&amp;aacute;c khi n&amp;agrave;o một image được mở ho&amp;agrave;n to&amp;agrave;n.
Trường hợp n&amp;agrave;y thường cần đến để x&amp;aacute;c định k&amp;iacute;ch thước thực tế của image. Vấn đề đ&amp;oacute; xảy ra v&amp;igrave;  DownloadProgress được khởi động 
100% trước khi image được ho&amp;agrave;n to&amp;agrave;n decoded(giải m&amp;atilde;). Để giải quyết vấn đề n&amp;agrave;y, một event mới được gọi l&amp;agrave; ImageOpened đ&amp;atilde; xuất hiện trong Silverlight 3. B&amp;acirc;y giờ đảm bảo bạn c&amp;oacute; thể c&amp;oacute; được k&amp;iacute;ch thước ph&amp;ugrave; hợp của image. Th&amp;iacute; dụ:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; LoadImage(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; fileName)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    Image img = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Image();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    Uri uri = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(fileName, UriKind.Relative);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    img.Source = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.Imaging.BitmapImage(uri);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    img.ImageOpened += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler&amp;lt;RoutedEventArgs&amp;gt;(Image_ImageOpened);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;}&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Image_ImageOpened(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    Image img = (Image)sender;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    BitmapImage bi = (BitmapImage)img.Source;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; width = bi.PixelWidth;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; height = bi.PixelWidth != _radius)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:#0080ff;"&gt;XAP Compression&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Sự tối ưu h&amp;oacute;a được thực hiện để giảm thiểu k&amp;iacute;ch thước của c&amp;aacute;c file  XAP. Bạn c&amp;oacute; thể hi vọng l&amp;agrave; k&amp;iacute;ch thước của file XAP
b&amp;acirc;y giờ c&amp;oacute; thể ngang bằng (nếu kh&amp;ocirc;ng tốt hơn)  Windows zipping. C&amp;aacute;c game thường được đ&amp;oacute;ng g&amp;oacute;i k&amp;egrave;m với rất nhiều nội dung v&amp;igrave; vậy r&amp;otilde; r&amp;agrave;ng l&amp;agrave; nếu k&amp;iacute;ch thước file XAP của bạn c&amp;agrave;ng nhỏ th&amp;igrave; c&amp;aacute;c kh&amp;aacute;ch h&amp;agrave;ng của bạn sẽ c&amp;oacute; thể download c&amp;aacute;c game của bạn c&amp;agrave;ng nhanh.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:#0080ff;"&gt;Perspective 3D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Perspective 3D transforms b&amp;acirc;y giờ c&amp;oacute; thể được &amp;aacute;p dụng trong c&amp;aacute;c Silverlight controls dựa v&amp;agrave;o thuộc t&amp;iacute;nh  &lt;b&gt;PlaneProjection&lt;/b&gt;
property. Điều n&amp;agrave;y cho ph&amp;eacute;p bạn &lt;i&gt;rotate&amp;nbsp; &lt;/i&gt;một&amp;nbsp; 2D control trong một 3D plane. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_4B2280B1.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_350BEF52.png" width="585" border="0" height="252" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Đoạn code v&amp;iacute; dụ n&amp;agrave;y sẽ tr&amp;igrave;nh b&amp;agrave;y c&amp;aacute;ch thức để thực hiện được điều đ&amp;oacute;:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Image Source=&lt;span style="color:#006080;"&gt;&amp;quot;Man.png&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Image.Projection&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;PlaneProjection RotationX=&lt;span style="color:#006080;"&gt;&amp;quot;45&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/PlaneProjection&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Image.Projection&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Image&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:#0080ff;"&gt;Pixel Shaders&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Pixel shaders cho ph&amp;eacute;p bạn &amp;aacute;p dụng c&amp;aacute;c hiệu ứng(effect) để kiểm so&amp;aacute;t như l&amp;agrave; c&amp;aacute;c  images. C&amp;oacute; hai hiệu ứng mặc định c&amp;oacute; sẵn l&amp;agrave;: Drop Shadow v&amp;agrave; Blur. Ngo&amp;agrave;i ra, bạn c&amp;oacute; thể s&amp;aacute;ng tạo v&amp;agrave; &amp;aacute;p dụng c&amp;aacute;c hiệu ứng t&amp;ugrave;y chỉnh của ri&amp;ecirc;ng bạn.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;C&amp;aacute;c image sau hiển thị kết quả của việc &amp;aacute;p dụng hiệu ứng &lt;i&gt;pixel shader effects&lt;/i&gt; tr&amp;ecirc;n n&amp;oacute;:&lt;/span&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_3DAC47DE.png"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_4B023517.png" width="735" border="0" height="200" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Đ&amp;acirc;y l&amp;agrave; đoạn code v&amp;iacute; dụ&amp;nbsp; để thực hiện việc n&amp;agrave;y th&amp;ocirc;ng qua một  built trong shader:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;Image Source=&lt;span style="color:#006080;"&gt;&amp;quot;dwarf.jpg&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&lt;span style="font-size:x-small;"&gt;    &amp;lt;Image.Effect&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="font-size:x-small;"&gt;        &amp;lt;BlurEffect&amp;gt;&amp;lt;/BlurEffect&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&lt;span style="font-size:x-small;"&gt;    &amp;lt;/Image.Effect&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;/Image&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="color:#0080ff;"&gt;Binding&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;B&amp;acirc;y giờ bạn c&amp;oacute; thể bind c&amp;aacute;c control để&amp;nbsp; kết nối đến c&amp;aacute;c c&amp;aacute;i kh&amp;aacute;c. Th&amp;iacute; dụ,  Text của một TextBlock c&amp;oacute; thể bind đến Text của một TextBox. Hoặc l&amp;agrave;, một TextBox Text c&amp;oacute; thể bind đến một Value of
Slider. Th&amp;iacute; dụ:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;StackPanel&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&lt;span style="font-size:x-small;"&gt;    &amp;lt;TextBox x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;UserText&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/TextBox&amp;gt;            &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="font-size:x-small;"&gt;    &amp;lt;TextBlock Text=&lt;span style="color:#006080;"&gt;&amp;quot;{Binding Text, ElementName=UserText}&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;/StackPanel&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Bất cứ loại n&amp;agrave;o trong TextBox cũng tự động được tham chiếu(reflected) trong TextBlock.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Bitmap API&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Bitmap APIs b&amp;acirc;y giờ đ&amp;atilde; sẵn s&amp;agrave;ng được sử dụng th&amp;ocirc;ng qua một class gọi l&amp;agrave;&amp;nbsp; WriteableBitmap. Phương thức n&amp;agrave;y c&amp;oacute; c&amp;aacute;c tham số như l&amp;agrave;
surface width v&amp;agrave; height v&amp;agrave; định dạng pixel.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Đoạn code th&amp;iacute; dụ:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;WriteableBitmap wb = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; WriteableBitmap(0, 0, PixelFormats.Bgr32);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;wb.Render(img, &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ScaleTransform());&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;wb.Lock();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&lt;span style="color:#008000;"&gt;// walk through WriteableBitmap[]&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;wb.Invalidate();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;wb.Unlock();&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Hardware Acceleration&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Silverlight b&amp;acirc;y giờ l&amp;agrave;m cho việc sử dụng GPU
(Graphics Processing Unit) cho rendering m&amp;agrave; giải ph&amp;oacute;ng thời gian rảnh rỗi của CPU cho c&amp;aacute;c task kh&amp;aacute;c. C&amp;aacute;c GPU thường được đặt tr&amp;ecirc;n một video card. N&amp;oacute; l&amp;agrave; một thiết bị xử l&amp;yacute; đồ họa chuy&amp;ecirc;n dụng được sử dụng cho một loạt c&amp;aacute;c nhiệm vụ như l&amp;agrave; t&amp;iacute;nh to&amp;aacute;n hoạt động của c&amp;aacute;c dấu chấm động .&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Animated Text Performance Improvements&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Một thuộc t&amp;iacute;nh gọi l&amp;agrave; TextRenderingMode
b&amp;acirc;y giờ đ&amp;atilde; cho ph&amp;eacute;p bạn x&amp;aacute;c định RenderForAnimation. Điều n&amp;agrave;y turns off sự tối ưu h&amp;oacute;a(optimization) m&amp;agrave; c&amp;oacute; thể ảnh hưởng trực tiếp đến c&amp;aacute;c  text animation như l&amp;agrave; scaling, rotating, vv.... Kết quả l&amp;agrave; một smother, thực thi c&amp;aacute;c sự chuyển động của text nhiều hơn. Th&amp;iacute; dụ về c&amp;aacute;ch thức g&amp;aacute;n thuộc t&amp;iacute;nh n&amp;agrave;y như sau:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;RenderOptions.SetTextRenderingMode(MyTextbox, TextRenderingMode.RenderForAnimation);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Network Monitoring API&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;B&amp;acirc;y giờ đ&amp;atilde; c&amp;oacute; API&amp;rsquo;s cho ph&amp;eacute;p bạn kiểm so&amp;aacute;t t&amp;igrave;nh trạng&amp;nbsp; network. Để xem một mạng lưới hiện đang c&amp;oacute; sẵn hay kh&amp;ocirc;ng, bạn c&amp;oacute; thể gọi:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; isConnected = NetworkInterface.GetIsNetworkAvailable();&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Bạn cũng c&amp;oacute; thể gắn th&amp;ecirc;m một event sẽ khởi động khi network status thay đổi:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;NetworkChange.NetworkAddressChanged += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Để kết nối đến c&amp;aacute;c phương thức n&amp;agrave;y, bạn sẽ cần reference đến namespace &lt;b&gt;System.Net.NetworkInformation;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;SaveFileDialog&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Cuối c&amp;ugrave;ng ch&amp;uacute;ng ta đ&amp;atilde; c&amp;oacute; thể save c&amp;aacute;c file trong
Silverlight! Thực hiện gọi phương thức n&amp;agrave;y sẽ dẫn ra một hộp thoại dialog cho ph&amp;eacute;p bạn x&amp;aacute;c định một file để save. Phương thức n&amp;agrave;y trả về một con trỏ(pointer) trỏ đến một
Stream m&amp;agrave; bạn c&amp;oacute; thể write v&amp;agrave; hơn thế nữa ở tr&amp;ecirc;n đ&amp;oacute;. Đoạn code th&amp;iacute; dụ:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;SaveFileDialog sfd = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SaveFileDialog();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;sfd.Filter = &lt;span style="color:#006080;"&gt;&amp;quot;map files (*.xml)|*.xml|All files (*.*)|*.*&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;sfd.ShowDialog();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;System.IO.Stream stream = sfd.OpenFile();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&lt;span style="color:#008000;"&gt;// Save your data here&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;stream.Flush();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;stream.Close();&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;H&amp;atilde;y chắc l&amp;agrave; để  flush v&amp;agrave; close  stream hoặc l&amp;agrave; file sẽ kh&amp;ocirc;ng được tạo.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;CaretBrush&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&amp;nbsp;CaretBrush rất c&amp;oacute; &amp;iacute;ch v&amp;igrave; bạn b&amp;acirc;y giờ c&amp;oacute; thể thay đổi sự xuất hiện của caret(dấu nh&amp;aacute;y viết). Đ&amp;acirc;y sẽ l&amp;agrave; một vấn đề nếu, th&amp;iacute; dụ, bạn muốn c&amp;oacute; một m&amp;agrave;u  background color của một textbox được g&amp;aacute;n . Thế l&amp;agrave; dấu nh&amp;aacute;y trỏ đen(cursor)&amp;nbsp; c&amp;ugrave;ng m&amp;agrave;u đen sẽ kh&amp;ocirc;ng xuất hiện.&amp;nbsp; Đ&amp;acirc;y l&amp;agrave; th&amp;iacute; dụ l&amp;agrave;m sao để đổi m&amp;agrave;u của dấu nh&amp;aacute;y:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;TextBox Foreground=&lt;span style="color:#006080;"&gt;&amp;quot;White&amp;quot;&lt;/span&gt; Background=&lt;span style="color:#006080;"&gt;&amp;quot;Black&amp;quot;&lt;/span&gt; Width=&lt;span style="color:#006080;"&gt;&amp;quot;200&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#006080;"&gt;&amp;quot;Hello&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;TextBox.CaretBrush&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;SolidColorBrush Color=&lt;span style="color:#006080;"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/SolidColorBrush&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/TextBox.CaretBrush&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/TextBox&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Kết quả của Screenshot (h&amp;atilde;y ch&amp;uacute; &amp;yacute; đến dấu nh&amp;aacute;y trắng(white caret)):&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.net/blogs/msnow/image_1AF7E396.png"&gt;&lt;img title="image" style="border-width:0px;display:inline;" alt="image" src="http://silverlight.net/blogs/msnow/image_thumb_018FE05C.png" width="200" border="0" height="24" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Local Connection &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;T&amp;iacute;nh năng n&amp;agrave;y cho ph&amp;eacute;p hai ứng dụng Silverlight ri&amp;ecirc;ng biệt giao tiếp với từng c&amp;aacute;i kh&amp;aacute;c tr&amp;ecirc;n client
side m&amp;agrave; kh&amp;ocirc;ng cần l&amp;agrave;m một v&amp;ograve;ng đến server. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Thực thi t&amp;iacute;nh năng n&amp;agrave;y kh&amp;aacute; dễ d&amp;agrave;ng. Bắt đầu bằng việc khởi tạo hai ứng dụng  Silverlight ri&amp;ecirc;ng biệt. Với mỗi c&amp;aacute;i, h&amp;atilde;y th&amp;ecirc;m đoạn code n&amp;agrave;y để lắng nghe( listen) cho một message:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;LocalMessageReceiver receiver = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; LocalMessageReceiver(&lt;span style="color:#006080;"&gt;&amp;quot;R2D2&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;receiver.MessageReceived += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler&amp;lt;MessageReceivedEventArgs&amp;gt;(receiver_MessageReceived);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;receiver.Listen();&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Bạn sẽ cần để tham chiếu (reference) đến
System.Windows.Messaging để thực hiện c&amp;aacute;c cuộc gọi n&amp;agrave;y. H&amp;agrave;m khởi tạo cho
LocalMessageReceiver mang một định danh duy nhất.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Với ứng dụng kh&amp;aacute;c th&amp;ecirc;m đoạn  code n&amp;agrave;y sẽ gửi một message đến ứng dụng Silverlight đầu ti&amp;ecirc;n:&lt;/span&gt;&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;LocalMessageSender sender = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; LocalMessageSender(&lt;span style="color:#006080;"&gt;&amp;quot;R2D2&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;sender.SendCompleted += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler&amp;lt;SendCompletedEventArgs&amp;gt;(sender_SendCompleted);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;sender.SendAsync(&lt;span style="color:#006080;"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Navigation&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Navigation b&amp;acirc;y giờ đ&amp;atilde; được hỗ trợ trong Silverlight. Điều n&amp;agrave;y cho ph&amp;eacute;p bạn l&amp;agrave;m một số việc như l&amp;agrave; nối navigation trong ứng dụng Silverlight của bạn v&amp;agrave;o  c&amp;aacute;c button Back v&amp;agrave; Forward của browser của bạn. Một template mới được gọi l&amp;agrave; &amp;ldquo;Silverlight Navigation Application&amp;rdquo; c&amp;oacute; sẵn để minh họa bằng c&amp;aacute;ch n&amp;agrave;o để thực hiện điều n&amp;agrave;y.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Về cơ bản để thực hiện điều n&amp;agrave;y bạn sẽ cần đặt main page của bạn v&amp;agrave;o trong một thẻ &amp;lt;navigation:Frame&amp;gt;. Bạn th&amp;ecirc;m history bằng c&amp;aacute;ch gọi c&amp;aacute;i n&amp;agrave;y:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;this.Frame.Navigate(new Uri(currentPage, UriKind.Relative));&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Sau đ&amp;oacute;, khi c&amp;aacute;c back v&amp;agrave; forward
buttons của&amp;nbsp; browse của bạn được click th&amp;igrave;  frame object n&amp;agrave;y sẽ&amp;nbsp; chặn ch&amp;uacute;ng v&amp;agrave; hiển thị trang đ&amp;uacute;ng.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;System Colors&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;B&amp;acirc;y giờ bạn c&amp;oacute; thể truy cập đến một user thiết lập cho  System Colors của họ. Những thuộc t&amp;iacute;nh n&amp;agrave;y c&amp;oacute; sẵn trong 
System.Windows.SystemColors.*. Th&amp;iacute; dụ:
System.Windows.SystemColors.ActiveBorderColor. Điều n&amp;agrave;y sẽ cho ph&amp;eacute;p bạn&amp;nbsp; đặt một sự đối chiếu cho ph&amp;ugrave; hợp với một user&amp;#39;s settings. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#0080ff;font-size:small;"&gt;Other&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Out of Browser Experience &amp;ndash; Cho ph&amp;eacute;p bạn run ứng dụng Silverlight như l&amp;agrave; một desktop application.&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Assembly Caching &amp;ndash; Enables non-core runtime extensions to be cached.&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;ManagedResourceDictionary &amp;ndash; Quản l&amp;yacute; resources files trong c&amp;aacute;c separate files.&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;New controls &amp;ndash; Một số c&amp;aacute;c controls mới đ&amp;atilde; được th&amp;ecirc;m v&amp;agrave;o.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;H.264 / AAC Media Playback - Hỗ trợ định dạng Media
     mới.&lt;/li&gt;
&lt;li&gt;Animation Easing Effects - Hỗ trợ th&amp;ecirc;m c&amp;aacute;c hiệu ứng
     h&amp;igrave;nh ảnh gồm cả smoother transitions.&lt;/li&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;span&gt;
&lt;li&gt;Media Logging - Cho ph&amp;eacute;p bạn thu gom dữ liệu về một
     customer v&amp;agrave; c&amp;aacute;c&amp;nbsp; meda experience của họ. Dự liệu được gửi lại cho một
     hay nhiều servers để ph&amp;acirc;n t&amp;iacute;ch.&lt;/li&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;span&gt;Thanks,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;span&gt;--Mike Snow&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/ol&gt;</description></item><item><title>Silverlight Tip Of The Day Từ Tip 61 đến Tip 100</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-t-tip-61-n-tip-100/revision/0.aspx</link><pubDate>Thu, 06 Aug 2009 20:45:36 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:104</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 8/7/2009 4:45:36 AM&lt;br /&gt;
&lt;p&gt;Đ&amp;acirc;y l&amp;agrave; Silverlight Tip Of The Day Từ Tip 61 đến Tip 100, gồm c&amp;oacute; 2 file: file word v&amp;agrave; file pdf, nội dung giống nhau.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/Silverlight/Silverlight%20Tip%20of%20the%20Day%2061-100%20file%20pdf.pdf"&gt;File PDF&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/Silverlight/Silverlight%20Tip%20of%20the%20Day%2061-100%20file%20word.docx"&gt;File Word&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks you&lt;/p&gt;
&lt;p&gt;--Quỳnh&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day </title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day/revision/0.aspx</link><pubDate>Mon, 03 Aug 2009 16:18:43 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:103</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 8/4/2009 12:18:43 AM&lt;br /&gt;
&lt;p&gt;Đ&amp;acirc;y l&amp;agrave; t&amp;agrave;i liệu về tất cả những b&amp;agrave;i Silverlight Tip of the Day từ b&amp;agrave;i 1 đến b&amp;agrave;i 60. &lt;/p&gt;
&lt;p&gt;C&amp;oacute; hai file: file pdf v&amp;agrave; file docx. Hai file c&amp;oacute; nội dung giống nhau.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/Silverlight/Silverlight%20Tip%20of%20the%20Day1-60%20file%20pdf.rar"&gt;File PDF&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-c756261140cf0eb3.skydrive.live.com/self.aspx/Silverlight/Silverlight%20Tip%20of%20the%20Day1-60%20file%20word.rar"&gt;File Word&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #17: How to Animate a Rotating Image</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-17-how-to-animate-a-rotating-image/revision/0.aspx</link><pubDate>Mon, 03 Aug 2009 14:13:20 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:61</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Current revision posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 8/3/2009 10:13:20 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #17: How to Animate a Rotating Image&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: &lt;span style="text-decoration: line-through; color: red;"&gt;Silverlight&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;Mỗi phần tử Silverlight đều được biểu diễn bằng một thuộc t&amp;iacute;nh l&amp;agrave;&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt;
, thuộc t&amp;iacute;nh n&amp;agrave;y được sử dụng để chuyển đổi vị tr&amp;iacute; của phần tử. T&amp;ocirc;i sẽ l&amp;agrave;m thử một chuyển động xoay tr&amp;ograve;n kh&amp;ocirc;ng ngừng của 1 h&amp;igrave;nh ảnh như dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;pre id="line162"&gt;&lt;span&gt;&lt;/span&gt;&lt;a&gt;&lt;/a&gt;&lt;a href="http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html&lt;/span&gt;&lt;/p&gt;
&lt;pre id="line162"&gt;&lt;a href="http://silverlight.net/blogs/msnow/archive/2008/07/14/tip-of-the-day-17-how-to-animate-a-rotating-image.aspx"&gt;&lt;span style="background: SpringGreen;"&gt;Click&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;v&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;agrave;o&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;để&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;xem&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;ảnh&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;gốc&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style="background: SpringGreen;"&gt;Đầu&lt;/span&gt; ti&amp;ecirc;n h&amp;atilde;y khai b&amp;aacute;o một h&amp;igrave;nh ảnh trong trang Page.xaml. H&amp;atilde;y chắc l&amp;agrave; bạn đ&amp;atilde; th&amp;ecirc;m c&amp;aacute;i h&amp;igrave;nh đ&amp;oacute; v&amp;agrave;o c&amp;aacute;i thư mục nơi bạn đặt project m&amp;atilde; của bạn. V&amp;igrave; ch&amp;uacute;ng ta sẽ thực hiện xoay ảnh quanh trung t&amp;acirc;m của n&amp;oacute;, n&amp;ecirc;n ta sẽ g&amp;aacute;n 2 thuộc t&amp;iacute;nh CenterX v&amp;agrave;&amp;nbsp; CetnerY l&amp;agrave; tọa độ trung t&amp;acirc;m của h&amp;igrave;nh m&amp;agrave; ta sẽ xoay. Trong trường hợp của t&amp;ocirc;i, t&amp;ocirc;i sử dụng ảnh c&amp;oacute; k&amp;iacute;ch thước l&amp;agrave; 64x48 pixels, n&amp;ecirc;n trung t&amp;acirc;m sẽ g&amp;aacute;n l&amp;agrave; CenterX=32, CenterY=24.&lt;/p&gt;
&lt;p&gt;Trong trang XAML thay &amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt; bằng:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas Background=&lt;span style="color:#006080;"&gt;&amp;quot;Black&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Image x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballLogo&amp;quot;&lt;/span&gt; Source=&lt;span style="color:#006080;"&gt;&amp;quot;images/Fireballlogo.png&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &amp;lt;RotateTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballTransform&amp;quot;&lt;/span&gt; CenterX=&lt;span style="color:#006080;"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; CenterY=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;/Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Image&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tiếp theo, h&amp;atilde;y thiết lập thời gian lặp bằng c&amp;aacute;ch sử dụng CompositionTarget.Rendering trong sự kiện lặp của ch&amp;uacute;ng ta. Ta thực hiện chuyển đổi vị tr&amp;iacute; xung quanh trung t&amp;acirc;m của h&amp;igrave;nh l&amp;agrave; 32,24&amp;nbsp; v&amp;igrave; k&amp;iacute;ch thước của h&amp;igrave;nh l&amp;agrave; 64x48 . Với mỗi lần chuyển động, ch&amp;uacute;ng ta tăng g&amp;oacute;c l&amp;ecirc;n 1.&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Tip17&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Page : UserControl&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Page()&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            InitializeComponent();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            CompositionTarget.Rendering += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler(CompositionTarget_Rendering);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CompositionTarget_Rendering(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            FireballTransform.Angle += 1; &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            FireballTransform.Transform(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Point(32, 24)); &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thank you, 
  &lt;br /&gt;--Mike Snow&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #17: How to Animate a Rotating Image</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-17-how-to-animate-a-rotating-image/revision/7.aspx</link><pubDate>Mon, 03 Aug 2009 14:11:33 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:53</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 7 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 8/3/2009 10:11:33 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #17: How to Animate a Rotating Image&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: Silverlight&lt;/div&gt;

&lt;p&gt;Mỗi phần tử Silverlight đều được biểu diễn bằng một thuộc t&amp;iacute;nh l&amp;agrave;&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt;
, thuộc t&amp;iacute;nh n&amp;agrave;y được sử dụng để chuyển đổi vị tr&amp;iacute; của phần tử. T&amp;ocirc;i sẽ l&amp;agrave;m thử một chuyển động xoay tr&amp;ograve;n kh&amp;ocirc;ng ngừng của 1 h&amp;igrave;nh ảnh như dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;pre id="line162"&gt;&lt;span&gt;&lt;/span&gt;&lt;a&gt;&lt;/a&gt;&lt;a href="http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html"&gt;http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html&lt;/a&gt;&lt;/pre&gt;
&lt;p&gt;ti&amp;ecirc;n h&amp;atilde;y khai b&amp;aacute;o một h&amp;igrave;nh ảnh trong trang Page.xaml. H&amp;atilde;y chắc l&amp;agrave; bạn đ&amp;atilde; th&amp;ecirc;m c&amp;aacute;i h&amp;igrave;nh đ&amp;oacute; v&amp;agrave;o c&amp;aacute;i thư mục nơi bạn đặt project m&amp;atilde; của bạn. V&amp;igrave; ch&amp;uacute;ng ta sẽ thực hiện xoay ảnh quanh trung t&amp;acirc;m của n&amp;oacute;, n&amp;ecirc;n ta sẽ g&amp;aacute;n 2 thuộc t&amp;iacute;nh CenterX v&amp;agrave;&amp;nbsp; CetnerY l&amp;agrave; tọa độ trung t&amp;acirc;m của h&amp;igrave;nh m&amp;agrave; ta sẽ xoay. Trong trường hợp của t&amp;ocirc;i, t&amp;ocirc;i sử dụng ảnh c&amp;oacute; k&amp;iacute;ch thước l&amp;agrave; 64x48 pixels, n&amp;ecirc;n trung t&amp;acirc;m sẽ g&amp;aacute;n l&amp;agrave; CenterX=32, CenterY=24.&lt;/p&gt;
&lt;p&gt;Trong trang XAML thay &amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt; bằng:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas Background=&lt;span style="color:#006080;"&gt;&amp;quot;Black&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Image x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballLogo&amp;quot;&lt;/span&gt; Source=&lt;span style="color:#006080;"&gt;&amp;quot;images/Fireballlogo.png&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &amp;lt;RotateTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballTransform&amp;quot;&lt;/span&gt; CenterX=&lt;span style="color:#006080;"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; CenterY=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;/Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Image&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tiếp theo, h&amp;atilde;y thiết lập thời gian lặp bằng c&amp;aacute;ch sử dụng CompositionTarget.Rendering trong sự kiện lặp của ch&amp;uacute;ng ta. Ta thực hiện chuyển đổi vị tr&amp;iacute; xung quanh trung t&amp;acirc;m của h&amp;igrave;nh l&amp;agrave; 32,24&amp;nbsp; v&amp;igrave; k&amp;iacute;ch thước của h&amp;igrave;nh l&amp;agrave; 64x48 . Với mỗi lần chuyển động, ch&amp;uacute;ng ta tăng g&amp;oacute;c l&amp;ecirc;n 1.&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Tip17&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Page : UserControl&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Page()&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            InitializeComponent();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            CompositionTarget.Rendering += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler(CompositionTarget_Rendering);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CompositionTarget_Rendering(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            FireballTransform.Angle += 1; &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            FireballTransform.Transform(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Point(32, 24)); &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thank you, 
  &lt;br /&gt;--Mike Snow&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #17: How to Animate a Rotating Image</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-17-how-to-animate-a-rotating-image/revision/6.aspx</link><pubDate>Mon, 03 Aug 2009 14:05:47 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:52</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 6 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 8/3/2009 10:05:47 PM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #17: How to Animate a Rotating Image&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: Silverlight&lt;/div&gt;

&lt;p&gt;Mỗi phần tử Silverlight đều được biểu diễn bằng một thuộc t&amp;iacute;nh l&amp;agrave;&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt;
, thuộc t&amp;iacute;nh n&amp;agrave;y được sử dụng để chuyển đổi vị tr&amp;iacute; của phần tử. T&amp;ocirc;i sẽ l&amp;agrave;m thử một chuyển động xoay tr&amp;ograve;n kh&amp;ocirc;ng ngừng của 1 h&amp;igrave;nh ảnh như dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html%20"&gt;&lt;/a&gt;&lt;a href="http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js&lt;/span&gt;&lt;/p&gt;
&lt;pre id="line162"&gt;&lt;span&gt;&lt;/span&gt;&lt;a&gt;&lt;span style="background: SpringGreen;"&gt;http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;
&lt;p&gt;ti&amp;ecirc;n h&amp;atilde;y khai b&amp;aacute;o một h&amp;igrave;nh ảnh trong trang Page.xaml. H&amp;atilde;y chắc l&amp;agrave; bạn đ&amp;atilde; th&amp;ecirc;m c&amp;aacute;i h&amp;igrave;nh đ&amp;oacute; v&amp;agrave;o c&amp;aacute;i thư mục nơi bạn đặt project m&amp;atilde; của bạn. V&amp;igrave; ch&amp;uacute;ng ta sẽ thực hiện xoay ảnh quanh trung t&amp;acirc;m của n&amp;oacute;, n&amp;ecirc;n ta sẽ g&amp;aacute;n 2 thuộc t&amp;iacute;nh CenterX v&amp;agrave;&amp;nbsp; CetnerY l&amp;agrave; tọa độ trung t&amp;acirc;m của h&amp;igrave;nh m&amp;agrave; ta sẽ xoay. Trong trường hợp của t&amp;ocirc;i, t&amp;ocirc;i sử dụng ảnh c&amp;oacute; k&amp;iacute;ch thước l&amp;agrave; 64x48 pixels, n&amp;ecirc;n trung t&amp;acirc;m sẽ g&amp;aacute;n l&amp;agrave; CenterX=32, CenterY=24.&lt;/p&gt;
&lt;p&gt;Trong trang XAML thay &amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt; bằng:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas Background=&lt;span style="color:#006080;"&gt;&amp;quot;Black&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Image x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballLogo&amp;quot;&lt;/span&gt; Source=&lt;span style="color:#006080;"&gt;&amp;quot;images/Fireballlogo.png&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &amp;lt;RotateTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballTransform&amp;quot;&lt;/span&gt; CenterX=&lt;span style="color:#006080;"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; CenterY=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;/Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Image&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tiếp theo, h&amp;atilde;y thiết lập thời gian lặp bằng c&amp;aacute;ch sử dụng CompositionTarget.Rendering trong sự kiện lặp của ch&amp;uacute;ng ta. Ta thực hiện chuyển đổi vị tr&amp;iacute; xung quanh trung t&amp;acirc;m của h&amp;igrave;nh l&amp;agrave; 32,24&amp;nbsp; v&amp;igrave; k&amp;iacute;ch thước của h&amp;igrave;nh l&amp;agrave; 64x48 . Với mỗi lần chuyển động, ch&amp;uacute;ng ta tăng g&amp;oacute;c l&amp;ecirc;n 1.&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Tip17&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Page : UserControl&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Page()&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            InitializeComponent();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            CompositionTarget.Rendering += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler(CompositionTarget_Rendering);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CompositionTarget_Rendering(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            FireballTransform.Angle += 1; &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            FireballTransform.Transform(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Point(32, 24)); &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thank you, 
  &lt;br /&gt;--Mike Snow&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #17: How to Animate a Rotating Image</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-17-how-to-animate-a-rotating-image/revision/5.aspx</link><pubDate>Sun, 21 Jun 2009 22:14:34 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:51</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 5 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 6/22/2009 6:14:34 AM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #17: How to Animate a Rotating Image&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: Silverlight&lt;/div&gt;

&lt;p&gt;Mỗi phần tử Silverlight đều được biểu diễn bằng một thuộc t&amp;iacute;nh l&amp;agrave;&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt;
, thuộc t&amp;iacute;nh n&amp;agrave;y được sử dụng để chuyển đổi vị tr&amp;iacute; của phần tử. T&amp;ocirc;i sẽ l&amp;agrave;m thử một chuyển động xoay tr&amp;ograve;n kh&amp;ocirc;ng ngừng của 1 h&amp;igrave;nh ảnh như dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;iframe&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;style=&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;width:&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;200px&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;height&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;100px&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;src=&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;scrolling=&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;frameborder=&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;Silverlight&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;2&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;RTM&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;required)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html%20"&gt;&lt;/a&gt;&lt;a href="http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js"&gt;http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ti&amp;ecirc;n h&amp;atilde;y khai b&amp;aacute;o một h&amp;igrave;nh ảnh trong trang Page.xaml. H&amp;atilde;y chắc l&amp;agrave; bạn đ&amp;atilde; th&amp;ecirc;m c&amp;aacute;i h&amp;igrave;nh đ&amp;oacute; v&amp;agrave;o c&amp;aacute;i thư mục nơi bạn đặt project m&amp;atilde; của bạn. V&amp;igrave; ch&amp;uacute;ng ta sẽ thực hiện xoay ảnh quanh trung t&amp;acirc;m của n&amp;oacute;, n&amp;ecirc;n ta sẽ g&amp;aacute;n 2 thuộc t&amp;iacute;nh CenterX v&amp;agrave;&amp;nbsp; CetnerY l&amp;agrave; tọa độ trung t&amp;acirc;m của h&amp;igrave;nh m&amp;agrave; ta sẽ xoay. Trong trường hợp của t&amp;ocirc;i, t&amp;ocirc;i sử dụng ảnh c&amp;oacute; k&amp;iacute;ch thước l&amp;agrave; 64x48 pixels, n&amp;ecirc;n trung t&amp;acirc;m sẽ g&amp;aacute;n l&amp;agrave; CenterX=32, CenterY=24.&lt;/p&gt;
&lt;p&gt;Trong trang XAML thay &amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt; bằng:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas Background=&lt;span style="color:#006080;"&gt;&amp;quot;Black&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Image x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballLogo&amp;quot;&lt;/span&gt; Source=&lt;span style="color:#006080;"&gt;&amp;quot;images/Fireballlogo.png&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &amp;lt;RotateTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballTransform&amp;quot;&lt;/span&gt; CenterX=&lt;span style="color:#006080;"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; CenterY=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;/Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Image&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tiếp theo, h&amp;atilde;y thiết lập thời gian lặp bằng c&amp;aacute;ch sử dụng CompositionTarget.Rendering trong sự kiện lặp của ch&amp;uacute;ng ta. Ta thực hiện chuyển đổi vị tr&amp;iacute; xung quanh trung t&amp;acirc;m của h&amp;igrave;nh l&amp;agrave; 32,24&amp;nbsp; v&amp;igrave; k&amp;iacute;ch thước của h&amp;igrave;nh l&amp;agrave; 64x48 . Với mỗi lần chuyển động, ch&amp;uacute;ng ta tăng g&amp;oacute;c l&amp;ecirc;n 1.&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Tip17&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;{&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Page : UserControl&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Page()&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            InitializeComponent();&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            CompositionTarget.Rendering += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler(CompositionTarget_Rendering);&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; CompositionTarget_Rendering(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        {&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            FireballTransform.Angle += 1; &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;            FireballTransform.Transform(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Point(32, 24)); &lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;    }&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Thank you, 
  &lt;br /&gt;--Mike Snow&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Silverlight Tip of the Day #17: How to Animate a Rotating Image</title><link>http://msdnvietnam.net/wikis/silverlighttips/silverlight-tip-of-the-day-17-how-to-animate-a-rotating-image/revision/4.aspx</link><pubDate>Sun, 21 Jun 2009 22:14:13 GMT</pubDate><guid isPermaLink="false">019a604b-fb74-42d5-8a6d-7cedfb08f61c:32</guid><dc:creator>Nguyễn Thị Như Quỳnh</dc:creator><description>Revision 4 posted to SilverLight programming tip tricks by Nguyễn Thị Như Quỳnh on 6/22/2009 6:14:13 AM&lt;br /&gt;
&lt;h2&gt;Silverlight Tip of the Day #17: How to Animate a Rotating Image&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: Silverlight&lt;/div&gt;

&lt;p&gt;Mỗi phần tử Silverlight đều được biểu diễn bằng một thuộc t&amp;iacute;nh l&amp;agrave;&amp;nbsp; &lt;span style="color:#008080;"&gt;RenderTransform&lt;/span&gt;
, thuộc t&amp;iacute;nh n&amp;agrave;y được sử dụng để chuyển đổi vị tr&amp;iacute; của phần tử. T&amp;ocirc;i sẽ l&amp;agrave;m thử một chuyển động xoay tr&amp;ograve;n kh&amp;ocirc;ng ngừng của 1 h&amp;igrave;nh ảnh như dưới đ&amp;acirc;y:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="background: SpringGreen;"&gt;&amp;lt;iframe&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;style=&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;quot;width:&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;200px&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;height&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;:&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;100px&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;;&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;src=&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;quot;http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js&amp;quot;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;scrolling=&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;frameborder=&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;(&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;Silverlight&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;2&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;RTM&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;required)&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.services.live.com/invoke/66033/How%20to%20Animate%20a%20Rotating%20Image/iframe.html%20"&gt;&lt;/a&gt;&lt;a href="http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js"&gt;http://msbluelight-0.agappdom.net/e1/d/66033/16631694/63381312000/0.WGrE6tkn5t6kzSZQQr9H3PECxUA/zziframehtml2zz.html#%2f%2fappId%2fTip17Publish%252fClientBin%252fTip17.xap%2f%2f%2f%2f%2f%2f%2ftrue%2f2.0%2f1%2fTip17Publish%252fSilverlight.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ti&amp;ecirc;n h&amp;atilde;y khai b&amp;aacute;o một h&amp;igrave;nh ảnh trong trang Page.xaml. H&amp;atilde;y chắc l&amp;agrave; bạn đ&amp;atilde; th&amp;ecirc;m c&amp;aacute;i h&amp;igrave;nh đ&amp;oacute; v&amp;agrave;o c&amp;aacute;i thư mục nơi bạn đặt project m&amp;atilde; của bạn. V&amp;igrave; ch&amp;uacute;ng ta sẽ thực hiện xoay ảnh quanh trung t&amp;acirc;m của n&amp;oacute;, n&amp;ecirc;n ta sẽ g&amp;aacute;n 2 thuộc t&amp;iacute;nh CenterX v&amp;agrave;&amp;nbsp; CetnerY l&amp;agrave; tọa độ trung t&amp;acirc;m của h&amp;igrave;nh m&amp;agrave; ta sẽ xoay. Trong trường hợp của t&amp;ocirc;i, t&amp;ocirc;i sử dụng ảnh c&amp;oacute; k&amp;iacute;ch thước l&amp;agrave; 64x48 pixels, n&amp;ecirc;n trung t&amp;acirc;m sẽ g&amp;aacute;n l&amp;agrave; CenterX=32, CenterY=24.&lt;/p&gt;
&lt;p&gt;Trong trang XAML thay &amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt; bằng:&lt;/p&gt;
&lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;Canvas Background=&lt;span style="color:#006080;"&gt;&amp;quot;Black&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;Image x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballLogo&amp;quot;&lt;/span&gt; Source=&lt;span style="color:#006080;"&gt;&amp;quot;images/Fireballlogo.png&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;            &amp;lt;RotateTransform x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;FireballTransform&amp;quot;&lt;/span&gt; CenterX=&lt;span style="color:#006080;"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; CenterY=&lt;span style="color:#006080;"&gt;&amp;quot;24&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;        &amp;lt;/Image.RenderTransform&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:#f4f4f4;"&gt;    &amp;lt;/Image&amp;gt;&lt;/pre&gt;
&lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;background-color:white;"&gt;&amp;lt;/Canvas&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tiếp theo, h&amp;atilde;y thiết lập thời gian lặp bằng c&amp;aacute;ch sử dụng CompositionTarget.Rendering trong sự kiện lặp của ch&amp;uacute;ng ta. Ta thực hiện chuyển đổi vị tr&amp;iacute; xung quanh trung t&amp;acirc;m của h&amp;igrave;nh l&amp;agrave; 32,24&amp;nbsp; v&amp;igrave; k&amp;iacute;ch thước của h&amp;igrave;n
