<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.devexpress.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>XPO</title><link>http://community.devexpress.com/blogs/xpo/default.aspx</link><description>eXpress Persistent Objects</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 SP1 (Build: 30415.43)</generator><item><title>LINQPad is XPO’s new best friend!</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/12/27/xpo-s-new-friend-is-the-linqpad.aspx</link><pubDate>Tue, 27 Dec 2011 10:23:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:361215</guid><dc:creator>Apostolis Bekiaris (DevExpress)</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=361215</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=361215</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/12/27/xpo-s-new-friend-is-the-linqpad.aspx#comments</comments><description>&lt;p&gt;LINQ is &lt;a href="http://msdn.microsoft.com/en-us/library/bb308959.aspx" target="_blank"&gt;.NET Language-Integrated Query&lt;/a&gt;. It&amp;#39;s included in .NET Framework 3.5 and you can use it in Visual Studio 2008 projects. XPO has officially supported LINQ since v7.3 and since then we have continued to improve and support it. Nowadays &lt;a href="http://www.devexpress.com/Support/Center/kb/p/K18051.aspx" target="_blank"&gt;LINQ to XPO&lt;/a&gt; is very mature, extendable (&lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument9948" target="_blank"&gt;How to: Implement Custom Functions and Criteria in LINQ to XPO&lt;/a&gt;) and powerful (&lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument8130" target="_blank"&gt;Free Joins&lt;/a&gt;). In the latest version we make it even easier to use LINQ to XPO since we only distribute one assembly, DevExpress.XPO.dll, which includes everything! (custom providers as well).&lt;/p&gt;  &lt;p&gt;XPO can talk transparently to a large &lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument2114" target="_blank"&gt;list of database systems&lt;/a&gt;. It was already possible to make complex queries using our &lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument2047" target="_blank"&gt;standard criteria syntax&lt;/a&gt;, however using LINQ offers some great advantages. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;No magic strings, like you have in standard criteria syntax, &lt;/li&gt;    &lt;li&gt;Intellisense support making it easier and faster to construct your queries, &lt;/li&gt;    &lt;li&gt;Compile time checking, &lt;/li&gt;    &lt;li&gt;Learning to write LINQ queries/lambdas is a must learn for .NET developers, &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The benefits are clear, however there is a caveat when using LINQ. It is not possible to use Edit and Continue and with even the smallest change you need to restart your debugging session. As a result your development speed is decreased dramatically.&lt;/p&gt;  &lt;p&gt;The solution as always is to use the right tool and in this case the right tool is &lt;a href="http://www.linqpad.net/" target="_blank"&gt;LINQPad&lt;/a&gt;. It provides a flexible UI allowing you to use LINQ in various ways. &lt;/p&gt;  &lt;p&gt;In our latest version our team released an XPO context driver for LINQPad. Let’s see how to configure it.&lt;/p&gt;  &lt;p&gt;Firstly we need to install the driver found at C:\DevExpress 2011.2\Components\Tools\DXperience\XPOContextDriver.lpx. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_41B8A46C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_3BFD8AC6.png" width="502" height="460" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Secondly we need to setup a new connection.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_73639BF4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_0AAEA066.png" width="595" height="474" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this example we are going to use the MainDemo assembly containing the business objects.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_68E2C7D4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_074D08BE.png" width="519" height="357" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;LINQPad populated the domain in a hierarchical treelist. This allows us to enjoy using drag &amp;amp; drop plus intellisence in its expression editor to form the LINQ queries. Furthermore it is possible to use your style of language as demonstrated below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_136E82E5.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_6A173AE6.png" width="640" height="397" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The cool part is that LINQPad, written by the great &lt;a href="http://www.albahari.com/" target="_blank"&gt;Joe Albahari&lt;/a&gt;, is available for free. It is strongly recommended as a great way to learn LINQ.&lt;/p&gt;  &lt;p&gt;Now for the fun part, let’s see it in action. Imagine we have the following code in our VS.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; queryable = &lt;span style="color:blue;"&gt;from&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; contacts&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;let&lt;/span&gt; tasks = c.&lt;span style="color:purple;"&gt;Tasks&lt;/span&gt;.&lt;span style="color:#008b8b;"&gt;Where&lt;/span&gt;(t =&amp;gt; t.&lt;span style="color:purple;"&gt;ActualWork&lt;/span&gt; &amp;lt; 0)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;where&lt;/span&gt; tasks.&lt;span style="color:#008b8b;"&gt;Any&lt;/span&gt;()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;orderby&lt;/span&gt; c.&lt;span style="color:purple;"&gt;LastName&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;select&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c.&lt;span style="color:purple;"&gt;LastName&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:purple;"&gt;Orders&lt;/span&gt; = tasks.&lt;span style="color:#008b8b;"&gt;Count&lt;/span&gt;(),&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;We wish to see the results of queryable variable ,the best way to achieve this is to set a breakpoint then hit F5. Next we wait for our app to load and navigate to the action that will hit the breakpoint. Finally we must select the queryable variable and hit Shift+F9 to invoke the debugger window and examine the result set. Now we can try to make our requirements more complex. Lets say we also want to examine the result set when ActualWork&amp;gt;10. The solution is really easy when using LINQPad, we simply need to copy paste the code from VS to LINQPad the expression editor like this,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_37EFEA9C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_54A95FB1.png" width="699" height="660" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After this we can quickly and easily form queries as we wish and examine their result sets instantly. Using the excellent and cheap &lt;a href="http://www.linqpad.net/Purchase.aspx" target="_blank"&gt;LINQPad Autocompletion&lt;/a&gt; it is possible to use VS like intelligence to further speed up your development.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_2747C9E1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_17C4B812.png" width="657" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;PS: eXpandFrameWork contributors are already using the Autocompletion feature since LINQPad offered a license for its contributors.&lt;/p&gt;  &lt;p&gt;We would appreciate your feedback on this post. Has it been useful to you? Feel free to contact us with any further questions&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=361215" width="1" height="1"&gt;</description></item><item><title>XPO - 11.2 Sneak Peek – XPCollection performance improvements (once again!)</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/09/13/xpo-11-2-sneak-peek-xpcollection-performance-improvements.aspx</link><pubDate>Tue, 13 Sep 2011 07:00:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:353909</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>15</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=353909</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=353909</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/09/13/xpo-11-2-sneak-peek-xpcollection-performance-improvements.aspx#comments</comments><description>&lt;h3 align="justify"&gt;Prerequisites &lt;/h3&gt; &lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;     &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;As you probably know, when inserting or removing records from collections supporting &lt;em&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;IBindingList&lt;/span&gt;&lt;/em&gt;, it is necessary to load the entire collection (that means constructing its persistent objects and their related objects graphs) from the database. It is an understandable requirement (we need to fire the &lt;span&gt;&lt;em&gt;IBindingList.ListChanged&lt;/em&gt; event with correct indices&lt;/span&gt;), but it might drive to some XPO customers crazy. For example, if we inserted or removed an object from an associated details collection containing a lot of complex objects, it might become a performance problem.                 &lt;/span&gt;&lt;/p&gt;      &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;Though there has been an unofficial solution (based on the use of IList collections instead of collections of XPCollection type) available for many years, it was not final and had some drawbacks (the need to redesign persistent classes, inability to access Criteria and other features of the XPCollection, data binding limitations, etc.). Finally, improving the current state of affairs has also been one of the most popular requests our customers asked&amp;#160; us for in recent years.                &lt;/span&gt;&lt;/p&gt;      &lt;p align="justify"&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/span&gt;  &lt;h3 align="justify"&gt;One-to-many associations are significantly faster in 11.2&lt;/h3&gt; &lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;     &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;Our developers have managed to work around the limitation described above in version &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;11.2&lt;/span&gt;&lt;/strong&gt;, and trust me, it is something you will notice immediately. Generally, XPCollection will perform &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;significantly faster&lt;/span&gt;&lt;/strong&gt; on &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;inserting&lt;/span&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;deleting&lt;/span&gt;&lt;/strong&gt; objects into and from a &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;large associated 1-M details collection&lt;/span&gt;&lt;/strong&gt;. Certainly, the exact speed improvement will depend on the collection size, the complexity of your objects graphs and other factors. Note that these changes do not affect M-M details collections at this time, because this is a more difficult case. We will research it the future.                 &lt;/span&gt;&lt;/p&gt;      &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;To test it in action, I used a modified version of the test application (you can download it &lt;a href="http://community.devexpress.com/blogs/xpo/XpoPerformanceTest.zip"&gt;here&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/u&gt;) from &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/09/12/performance-boost-on-removing-data-from-a-large-xpcollection-available-in-11-1-7.aspx"&gt;my previous blog&lt;/a&gt;. See my results below: &lt;/span&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/span&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;            &lt;p align="center"&gt;&lt;strong&gt;&lt;font size="4"&gt;11.1.7&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;strong&gt;&lt;font size="4"&gt;11.2.1&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td align="center"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_0D9FC62A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_1A69F67B.png" width="360" height="123" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td align="center"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_19255D9C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_261F3DAD.png" width="360" height="124" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td align="center"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_6C2FFAC0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_0B72A194.png" width="360" height="123" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td align="center"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_635FF274.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_6DB116D4.png" width="360" height="123" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt; &lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;     &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;"&gt;As you see, it is &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;~100x&lt;/span&gt;&lt;/strong&gt; faster on insert and &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:calibri;"&gt;~10x&lt;/span&gt;&lt;/strong&gt; faster on removal when the details collection was comprised of 10000 objects. These improvements will be more noticeable, the greater the size of the details collection.                 &lt;/span&gt;&lt;/p&gt;      &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;Do you like the XPO improvements? Please let us know your opinion!&lt;/span&gt;&lt;/p&gt;      &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-font-family:calibri;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;Happy XPOing!&lt;/span&gt;&lt;/p&gt;   &lt;/font&gt;&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_57813B8B.png" /&gt;&lt;/span&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=353909" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/performance/default.aspx">performance</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.2/default.aspx">11.2</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/inserting/default.aspx">inserting</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPCollection/default.aspx">XPCollection</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/deleting/default.aspx">deleting</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/removing/default.aspx">removing</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/adding/default.aspx">adding</category></item><item><title>Performance boost on removing data from a large XPCollection (available in 11.1.7)</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/09/12/performance-boost-on-removing-data-from-a-large-xpcollection-available-in-11-1-7.aspx</link><pubDate>Mon, 12 Sep 2011 07:40:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:353883</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=353883</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=353883</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/09/12/performance-boost-on-removing-data-from-a-large-xpcollection-available-in-11-1-7.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;I am happy to announce that XPO developers have tweaked &lt;/font&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;&lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument2066"&gt;XPCollection&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/strong&gt;&lt;font color="#000000"&gt; in version &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;11.1.7&lt;/span&gt;&lt;/strong&gt;, and trust me, it is something you will notice immediately. This improvement was accomplished while working on a &lt;/font&gt;&lt;a href="http://www.devexpress.com/issue=Q335700"&gt;customer&amp;#39;s issue&lt;/a&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;font color="#000000"&gt; and that again proves how customer feedback is invaluable to us. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;Generally, XPCollection will perform &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;several times faster&lt;/span&gt;&lt;/strong&gt; on removing objects from large associated 1-M or M-M details collections. Certainly, the exact speed improvement will depend on the collection size, the complexity of your object graphs and other factors. Also, you will be interested to know that we achieved this by optimizing the removal algorithm that sets a reference to a master object to null (you can improve your familiarity with associations in XPO by reading &lt;/font&gt;&lt;a href="http://www.devexpress.com/Support/Center/kb/p/K18444.aspx"&gt;this KB Article&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/u&gt;&lt;font color="#000000"&gt;). &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-theme-font:minor-latin;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;To demonstrate these improvements in action, I built a small console application with a couple of persistent classes, with a 1-M relationship between them. My test applications first created several master objects (5 and 10) with several thousand details (5000 and 10000) in each, committed them all to the Microsoft SQL Server database and then ran another loop to delete each master and its details from the database. Time was measured for the remove operation performed for each master object. Test applications were built in the Release configuration (+ Any CPU) against .NET 4.0 and the 10.2.9 and 11.1.7 versions of XPO. You can download test applications as well as screenshots showing the results using the links below&lt;/font&gt;&lt;/span&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/XpoPerformanceTest_10.2.9.zip"&gt;XpoPerformanceTest_10.2.9.zip&lt;/a&gt;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/XpoPerformanceTest_11.1.7.zip"&gt;XpoPerformanceTest_11.1.7.zip&lt;/a&gt;&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-theme-font:minor-latin;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;During tests, most noticeable (~3-4 times faster) improvements occurred when the details collection was comprised of 10000 objects&lt;/font&gt;&lt;/span&gt;:&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="2"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p align="center"&gt;&lt;strong&gt;10.2.9&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="justify"&gt;&lt;strong&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/10.2.9_thumb4_16859399.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="10.2.9_thumb[4]" border="0" alt="10.2.9_thumb[4]" src="http://community.devexpress.com/blogs/xpo/10.2.9_thumb4_thumb_64EA0036.png" width="502" height="197" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p align="justify"&gt;&lt;strong&gt;11.1.7&lt;/strong&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/11.1.7_2E2CA532.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="11.1.7" border="0" alt="11.1.7" src="http://community.devexpress.com/blogs/xpo/11.1.7_thumb_743D6245.png" width="500" height="194" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;It was ~2x faster on 5000 details. I expect improvements will be more noticeable (maybe dozen and hundreds times faster) the greater the size of the details collection. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:8pt;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;&lt;font color="#000000"&gt;The good news is that more performance improvements are coming in &lt;strong&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-theme-font:minor-latin;mso-bidi-font-family:calibri;"&gt;v2011 vol2&lt;/span&gt;&lt;/strong&gt;! I am preparing another blog post about this, and hope to publish it this week. Stay tuned, and please let us know how much better your real XPO applications perform in 11.1.7. Thank you in advance! &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Happy XPOing!&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_09FF3C8B.png" /&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=353883" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/performance/default.aspx">performance</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPCollection/default.aspx">XPCollection</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/deleting/default.aspx">deleting</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/removing/default.aspx">removing</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1.7/default.aspx">11.1.7</category></item><item><title>Profiling medium trust web applications</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/08/29/profiling-medium-trust-web-applications.aspx</link><pubDate>Mon, 29 Aug 2011 06:08:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:352822</guid><dc:creator>Apostolis Bekiaris (DevExpress)</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=352822</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=352822</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/08/29/profiling-medium-trust-web-applications.aspx#comments</comments><description>&lt;p align="justify"&gt;Our profiler uses WCF in order to communicate with the client application. One of the benefits of the XPOProfiler is that it supports 2 binding types. Both binding types have their advantages however in this situation only one allows us the flexibility we require.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="text-decoration:underline;"&gt;NetTcpBinding&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;This option provides a secure and reliable binding environment for .Net to .Net cross machine communication. By default it creates a communication stack using WS-ReliableMessaging protocol, TCP for message delivery and windows security for message and authentication at run time. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_53205648.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_18C4E067.png" width="349" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;One drawback is that in shared host environments there is no way to open a port neither to use &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx" target="_blank"&gt;Mutexes&lt;/a&gt;. Our second option allows us to overcome this by creating a WCF service and hosting it with our web application.&amp;nbsp; &lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="text-decoration:underline;"&gt;WSHttpBinding&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Defines a secure, reliable, interoperable binding suitable for non-duplex service contracts,&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Supports WS-* functionality and distributed transactions with reliable and secure sessions using SOAP security,&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Uses HTTP and HTTPS transport for communication,&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Reliable sessions are disabled by default&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_0C56BD3E.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_240DF4A4.png" width="318" height="223" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;We have already identified limitations when profiling medium trust web applications, now we must look at modifying our application in order to overcome them.&lt;/p&gt;  &lt;p align="justify"&gt;The first step is to add the new service using VS add new Item context menu.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_3BC52C0A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_797213C6.png" width="556" height="422" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;This action will add the following items to the project;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;IMyLogService.cs - the communication interface description,&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;MyLogService.svc.cs - the communication service class declaration&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Furthermore the Web.config file will be modified by adding &amp;lt;system.serviceModel&amp;gt; section. I am using .NET3.5 right now, be aware that this step may vary according to the .NET version you are using.&lt;/p&gt;  &lt;p align="justify"&gt;The next step is to remove the IMyLogService.cs from the project.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_01BF5C75.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_3206312B.png" width="243" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;Then we are going to modify the MyLogService.svc.cs as&amp;nbsp; follows;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&lt;div id="CodeDiv"&gt;&lt;pre class="brush: csharp"&gt;[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MyLogService : LogService {
    static LoggerBase logger = new LoggerBase(50000);
    static MyLogService() {
        LogManager.SetTransport(logger);
    }
    public MyLogService()
        : base(logger) {        
    }
}&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;The final step is to change the name of the communication contract in &amp;lt;system.serviceModel&amp;gt; section of Web.config file from WebApplicationToProfile.IMyLogService to DevExpress.Xpo.Logger.Transport.ILogSource.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_7AA686D8.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_4B08684C.png" width="878" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After that we are ready to run the XPOProfiler and create a new connection to our medium hosted XPO web application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/image_175FFBEE.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://community.devexpress.com/blogs/xpo/image_thumb_0770B72A.png" width="585" height="294" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note: Version 11.2 will allow us to carry out all the above processes.&lt;/p&gt;  &lt;p&gt;Happy profiling!&lt;/p&gt;  &lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Related Links&lt;/strong&gt; &lt;/span&gt;    &lt;br /&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/archive/tags/profiling+tool/default.aspx" target="_blank"&gt;Blog posts&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://documentation.devexpress.com/#Xaf/CustomDocument3343" target="_blank"&gt;Videos&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=352822" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/profiling+tool/default.aspx">profiling tool</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>Webinar: Profiling a XAF application with XPO Profiler</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/08/18/webinar-profiling-a-xaf-application-with-xpo-profiler.aspx</link><pubDate>Thu, 18 Aug 2011 05:01:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:352041</guid><dc:creator>Apostolis Bekiaris (DevExpress)</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=352041</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=352041</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/08/18/webinar-profiling-a-xaf-application-with-xpo-profiler.aspx#comments</comments><description>&lt;p&gt;XPO Profiler, although still in beta can be a great tool when there are performance problems. Today we are going to do an extensive discussion on it. Moreover we are going to see how to deal with the following scenario;&lt;/p&gt;  &lt;p&gt;Our Customer has a &lt;a href="http://www.devexpress.com/Products/NET/Application_Framework/" target="_blank"&gt;XAF&lt;/a&gt; application in production using an Access database. He complained that there is a delay when navigating through his customers at detail view. However we cannot reproduce the delay in our environment. Probably because we do not have access to his data. &lt;/p&gt;  &lt;p&gt;Note: If we had access to his data, things may have been easier for us. We could then use the &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/05/04/xpo-11-1-sneak-peek-profile-it.aspx" target="_blank"&gt;Remote profiling mode&lt;/a&gt;. However I am sure we can find the solution to this problem in local mode as well.&lt;/p&gt;  &lt;p&gt;Come and join us!&lt;/p&gt;&lt;p&gt;You can watch the webinar &lt;a href="http://www.devexpress.com/Support/Webinars/details.xml?id=XPOProfiler"&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Related Links&lt;/strong&gt; &lt;/span&gt;    &lt;br /&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/05/04/xpo-11-1-sneak-peek-profile-it.aspx" target="_blank"&gt;Blog posts&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=352041" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/profiling+tool/default.aspx">profiling tool</category></item><item><title>XPO–11.2 Sneak Peek - Auto-generated Int64 keys</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/07/28/xpo-11-2-sneak-peek-auto-generated-int64-keys.aspx</link><pubDate>Thu, 28 Jul 2011 07:30:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:350594</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>15</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=350594</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=350594</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/07/28/xpo-11-2-sneak-peek-auto-generated-int64-keys.aspx#comments</comments><description>&lt;p&gt;We are not far from 11.1 and I presume that you will be surprised to see 11.2 sneak peeks at this time&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-smile_0A121EB9.png" /&gt;&lt;/p&gt;  &lt;p&gt;There is not actually not much to say here, because the subject says it all. Starting from version 11.2 you can define a &lt;strong&gt;Int64&lt;/strong&gt; (long) &lt;strong&gt;key&lt;/strong&gt; property in your class and mark it with the &lt;a href="http://documentation.devexpress.com/#XPO/clsDevExpressXpoKeyAttributetopic"&gt;KeyAttribute&lt;/a&gt;, whose &lt;em&gt;AutoGenerate&lt;/em&gt; parameter will be set to True:&lt;/p&gt;  &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: [NonPersistent, MemberDesignTimeVisibility(&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;abstract&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; XPObjectWithInt64Key : XPCustomObject {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:     ...
&lt;/pre&gt;&lt;pre style="background-color:#80ff80;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4:     Int64 _oid = -1;
&lt;/pre&gt;&lt;pre style="background-color:#80ff80;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:     [Persistent(&amp;quot;&lt;span style="color:#8b0000;"&gt;OID&lt;/span&gt;&amp;quot;), Key(AutoGenerate = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]
&lt;/pre&gt;&lt;pre style="background-color:#80ff80;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Int64 Oid {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; _oid; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:             Int64 oldValue = Oid;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:             &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (oldValue == &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;) &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:             _oid = &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:             OnChanged(&amp;quot;&lt;span style="color:#8b0000;"&gt;Oid&lt;/span&gt;&amp;quot;, oldValue, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:     ...
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; TestPerson : XPObjectWithInt64Key {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; TestPerson(Session session)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19:         : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(session) { }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20:     &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; firstName;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; FirstName {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; firstName; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue(&amp;quot;&lt;span style="color:#8b0000;"&gt;FirstName&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; firstName, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25:     &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; lastName;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; LastName {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; lastName; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue(&amp;quot;&lt;span style="color:#8b0000;"&gt;LastName&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; lastName, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Interested readers will notice that for my base persistent class I grabbed the source code from the standard &lt;em&gt;XPObject&lt;/em&gt; class and then just changed its key type from Int32 to Int64.&lt;/p&gt;

&lt;p&gt;Well, if you now create and save a new object, a key will be automatically generated for it:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/screenshot_7E7C6179.png"&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" title="screenshot" alt="screenshot" src="http://community.devexpress.com/blogs/xpo/screenshot_thumb_169FCBD5.png" width="695" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you like this small addition to XPO, because it provides you with more flexibility (previously auto generation was supported only for Int32 and Guid keys).&lt;/p&gt;

&lt;p&gt;Please let us know your thoughts on this.&lt;/p&gt;

&lt;p&gt;Happy XPOing&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_43F0A074.png" /&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=350594" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.2/default.aspx">11.2</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/Int64/default.aspx">Int64</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/PK/default.aspx">PK</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/long/default.aspx">long</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/auto-generated/default.aspx">auto-generated</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/key/default.aspx">key</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO – 11.1 Sneak Peek - WCF services for IObjectLayer</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/05/17/xpo-11-1-sneak-peek-wcf-services-for-iobjectlayer.aspx</link><pubDate>Tue, 17 May 2011 17:10:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:344754</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=344754</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=344754</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/05/17/xpo-11-1-sneak-peek-wcf-services-for-iobjectlayer.aspx#comments</comments><description>&lt;p align="justify"&gt;In the two previous blog posts, we already described how to provide the &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx"&gt;IDataStore&lt;/a&gt; and &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/04/21/xpo-11-1-sneak-peek-data-caching-improvements.aspx"&gt;ICachedDataStore&lt;/a&gt; implementations, working via WCF Services. In this blog post, we will talk about implementing a distributed object layer service (&lt;a href="http://community.devexpress.com/blogs/garyshort/archive/2010/11/01/xpo-n-tier-instance-field-level-security-and-much-more-in-xpo-coming-in-v2010-vol-2.aspx"&gt;IObjectLayer/ISerializableObjectLayer&lt;/a&gt;), working via WCF. Creating a WCF service for ISerializableObjectLayer is a bit more complex than for IDataStore and ICachedDataStore, but it is still very similar.&lt;/p&gt;  &lt;p align="justify"&gt;First, we will create a new &lt;em&gt;Class Library&lt;/em&gt; project and add a Customer class via the &lt;em&gt;Persistent Object&lt;/em&gt; item template to it (you can see the source code of this class in &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx"&gt;our first blog&lt;/a&gt;). Then, we will create a new &lt;em&gt;WCF Service Application&lt;/em&gt; project and remove files with auto-generated interfaces for the service. Since our service needs to know about persistent classes, we will add a project reference to our class library and modify our service class as follows:&lt;/p&gt;  &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.Metadata;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; ClassLibrary1;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: ...
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Service1: SerializableObjectLayerService {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Service1()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:         :&lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ObjectServiceProxy()){
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:     } 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:     &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; Service1() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:         &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; connectionString = MSSqlConnectionProvider.GetConnectionString(&amp;quot;&lt;span style="color:#8b0000;"&gt;localhost&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;ServiceDB&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:         IDataStore dataStore = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:         XPDictionary dictionary = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ReflectionDictionary();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:         dictionary.CollectClassInfos(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Customer).Assembly);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:         XpoDefault.DataLayer = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ThreadSafeDataLayer(dictionary, dataStore);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:         XpoDefault.Session = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;; 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; ObjectServiceProxy : SerializableObjectLayerProxyBase {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20:     &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; SerializableObjectLayer GetObjectLayer() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21:         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SerializableObjectLayer(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UnitOfWork(), &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24: &lt;/pre&gt;&lt;/pre&gt;

&lt;p align="justify"&gt;To finish with the service, we will need to change some binding properties in its Web.config file:&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2:  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;services&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;service&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;WcfService2.Service1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;behaviorConfiguration&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;WcfService2.Service1Behavior&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4:      &lt;span style="color:#008000;"&gt;&amp;lt;!-- Service Endpoints --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;endpoint&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;address&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;binding&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;basicHttpBinding&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: &lt;span style="color:#ff0000;"&gt;contract&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;DevExpress.Xpo.DB.ISerializableObjectLayerService&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;identity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:          &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;dns&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;identity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;endpoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;service&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;services&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:  &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;behaviors&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;behavior&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;WcfService2.Service1Behavior&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;serviceMetadata&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;httpGetEnabled&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;serviceDebug&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;includeExceptionDetailInFaults&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18:      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;behavior&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19:    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20:  &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;behaviors&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21: &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22: &lt;/pre&gt;&lt;/pre&gt;

&lt;p align="justify"&gt;At this time, our service is ready to use and all that we need to do is to write the client part. &lt;/p&gt;

&lt;p align="justify"&gt;For the client, we will add a &lt;em&gt;Console Application&lt;/em&gt; into our existing solution and add a project reference to the class library with our Customer persistent class. The &lt;em&gt;Main&lt;/em&gt;() method should also be modified as follows:&lt;/p&gt;

&lt;p align="justify"&gt;&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.Metadata;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; ClassLibrary1;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: ...
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; ObjectWcfClient {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Program {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; IObjectLayer ObjectLayer;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:             ISerializableObjectLayer serializableObjectLayer =  
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:                 &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SerializableObjectLayerServiceClient(&amp;quot;&lt;span style="color:#8b0000;"&gt;BasicHttpBinding_ObjectLayer&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:             serializableObjectLayer.CanLoadCollectionObjects.ToString(); &lt;span style="color:#008000;"&gt;//Check connection&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:             XpoDefault.DataLayer = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:             XpoDefault.Session = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:             ObjectLayer = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SerializableObjectLayerClient(serializableObjectLayer);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:  
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:             &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt;(UnitOfWork uow = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UnitOfWork(ObjectLayer)) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18:                 &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt;(XPCollection&amp;lt;Customer&amp;gt; customers = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; XPCollection&amp;lt;Customer&amp;gt;(uow)){
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19:                     &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt;(Customer customer &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; customers) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20:                         Console.WriteLine(&amp;quot;&lt;span style="color:#8b0000;"&gt;Company Name = {0}; ContactName = {1}&lt;/span&gt;&amp;quot;, 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21:                             customer.CompanyName, customer.ContactName);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22:                     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23:                 }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24:             } 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25:             Console.WriteLine(&amp;quot;&lt;span style="color:#8b0000;"&gt;Press any key...&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26:             Console.ReadKey();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30: &lt;/pre&gt;&lt;/pre&gt;

&lt;br /&gt;The final step will be adding the App.config file into the client project and modifying it as follows:



&lt;p align="justify"&gt;&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; &lt;span style="color:#0000ff;"&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4:     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;bindings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;binding&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;BasicHttpBinding_ObjectLayer&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;maxBufferSize&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;2147483647&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:             &lt;span style="color:#ff0000;"&gt;maxReceivedMessageSize&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;2147483647&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:           &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;security&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;mode&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;None&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:         &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;binding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:       &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;bindings&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;client&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;endpoint&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;address&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://localhost:64466/Service1.svc&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;binding&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;basicHttpBinding&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:           &lt;span style="color:#ff0000;"&gt;bindingConfiguration&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;BasicHttpBinding_ObjectLayer&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:           &lt;span style="color:#ff0000;"&gt;contract&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;DevExpress.Xpo.DB.ISerializableObjectLayerService&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;BasicHttpBinding_ObjectLayer&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;client&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18: &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: &lt;/pre&gt;&lt;/pre&gt;



&lt;p align="justify"&gt;Now if we run the service and client parts, we will see the following output: &lt;/p&gt;

&lt;p align="justify"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/Result_7341B847.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Result" border="0" alt="Result" src="http://community.devexpress.com/blogs/xpo/Result_thumb_791C5BE0.png" width="697" height="362" /&gt;&lt;/a&gt; 

  &lt;br /&gt;As you can see, our client connects to the service and loads serialized persistent objects from it, and not just plain statements (insert, update, delete, select). You can learn more on which capabilities it opens for XPO customers at the end of our &lt;a href="http://community.devexpress.com/blogs/garyshort/archive/2010/11/01/xpo-n-tier-instance-field-level-security-and-much-more-in-xpo-coming-in-v2010-vol-2.aspx"&gt;introductory blog for the object layer&lt;/a&gt;.&lt;/p&gt;

&lt;p align="justify"&gt;Happy XPOing!&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_65FB2F34.png" /&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=344754" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1/default.aspx">11.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/ISerializableObjectLayer/default.aspx">ISerializableObjectLayer</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/IObjectLayer/default.aspx">IObjectLayer</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/IDataStore/default.aspx">IDataStore</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/distributed+applications/default.aspx">distributed applications</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/service/default.aspx">service</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011+vol1/default.aspx">v2011 vol1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO – 11.1 Sneak Peek – IDataStore WCF Service in Silverlight</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/05/16/xpo-11-1-sneak-peek-idatastore-wcf-service-in-silverlight.aspx</link><pubDate>Mon, 16 May 2011 03:30:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:344585</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=344585</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=344585</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/05/16/xpo-11-1-sneak-peek-idatastore-wcf-service-in-silverlight.aspx#comments</comments><description>&lt;p align="justify"&gt;In this blog post we will talk about peculiarities of using &lt;strong&gt;IDataStore&lt;/strong&gt; WCF services in &lt;strong&gt;Silverlight&lt;/strong&gt; projects. As you guess, the main restriction is that all inquiries should be performed asynchronously or rather should not block the UI thread.&lt;/p&gt;  &lt;p align="justify"&gt;Let’s extend the solution from the &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx"&gt;WCF services for IDataStore&lt;/a&gt; blog by adding a new &lt;em&gt;Silverlight Application&lt;/em&gt; project to it. Then, we will add references to &lt;em&gt;DevExpress.Data&lt;/em&gt; and &lt;em&gt;DevExpress.Xpo&lt;/em&gt; assemblies and an existing&amp;nbsp; Persistent.cs file with the &lt;em&gt;Customer&lt;/em&gt; class definition.&lt;/p&gt;  &lt;p align="justify"&gt;Next, we will drop the &lt;a href="http://www.devexpress.com/Products/NET/Controls/Silverlight/Grid_Pro/"&gt;GridConrtol&lt;/a&gt;&lt;em&gt;&lt;/em&gt; (gridControl1) component onto the main page and modify the MainPage.xaml file as shown below:&lt;/p&gt;  &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;UserControl&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;SilverlightApplication1.MainPage&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2:     &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:     &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4:     &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;d&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:     &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;mc&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:     &lt;span style="color:#ff0000;"&gt;mc&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Ignorable&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;d&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:     &lt;span style="color:#ff0000;"&gt;d&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;DesignHeight&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;300&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;d&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;DesignWidth&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;400&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;sdk&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:              &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;dxg&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.devexpress.com/winfx/2008/xaml/grid&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;    
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;dxg&lt;/span&gt;:&lt;span style="color:#800000;"&gt;GridControl&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;gridControl1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;AutoPopulateColumns&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;            
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:         &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;dxg&lt;/span&gt;:&lt;span style="color:#800000;"&gt;GridControl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13: &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;UserControl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14: &lt;/pre&gt;

&lt;p align="justify"&gt;Finally, we will modify the MainPage class code in the following way:&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: ...
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; SilverlightApplication1 {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; partial &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MainPage : UserControl {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:         Session session = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; MainPage() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:             InitializeComponent();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:             &lt;span style="color:#008000;"&gt;//Initialize connection settings in a separate thread.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:             ThreadPool.QueueUserWorkItem(o =&amp;gt; {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:                 &lt;span style="color:#008000;"&gt;//Create connection to our WCF Service.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:                 XpoDefault.DataLayer = XpoDefault.GetDataLayer(
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:                     &amp;quot;&lt;span style="color:#8b0000;"&gt;http://localhost:64466/Service.svc&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:                     AutoCreateOption.SchemaAlreadyExists
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:                 );
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:                 session = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Session();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:                 &lt;span style="color:#008000;"&gt;//It is necessary to call UpdataSchema method for all persistent classes.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18:                 session.UpdateSchema(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Customer));&lt;br /&gt;                     session.TypesManager.EnsureIsTypedObjectValid();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19:                 Dispatcher.BeginInvoke(BeginInitializeDataSource);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20:             });
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22:         &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; BeginInitializeDataSource() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23:             var query = from c &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; session.Query&amp;lt;Customer&amp;gt;()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24:                         where c.Country.Length &amp;gt; 2
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25:                         select c;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26:             &lt;span style="color:#008000;"&gt;//Execute the query asynchronously.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27:             query.EnumerateAsync(EndInitializeDataSource);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29:         &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; EndInitializeDataSource(IEnumerable&amp;lt;Customer&amp;gt; result, Exception ex) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30:             &lt;span style="color:#008000;"&gt;//Assign the data source to the control.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 31:             gridControl1.DataSource = result;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 32:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 33:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 34: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 35: &lt;/pre&gt;

&lt;p&gt;If we run the application, we will see the following results:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/Result_4609F15A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Result" border="0" alt="Result" src="http://community.devexpress.com/blogs/xpo/Result_thumb_43ECF291.png" width="686" height="302" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy XPOing in Silverlight!&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_1BDA4372.png" /&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=344585" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1/default.aspx">11.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/asynchronous/default.aspx">asynchronous</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/SL/default.aspx">SL</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/IDataStore/default.aspx">IDataStore</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011+vol1/default.aspx">v2011 vol1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO – 11.1 Sneak Peek – Data binding in WPF</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/05/16/xpo-11-1-sneak-peek-data-binding-in-wpf.aspx</link><pubDate>Mon, 16 May 2011 03:00:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:344579</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=344579</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=344579</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/05/16/xpo-11-1-sneak-peek-data-binding-in-wpf.aspx#comments</comments><description>&lt;p&gt;In this blog post, we are going to demonstrate how to use a new &lt;strong&gt;XPObservableAssociationList&amp;lt;T&amp;gt;&lt;/strong&gt; class in the &lt;em&gt;&lt;strong&gt;DevExpress.Xpo.Linq&lt;/strong&gt;&lt;/em&gt; library for data binding to persistent classes in &lt;strong&gt;WPF&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;First, we will create a new &lt;em&gt;WPF Application&lt;/em&gt; project. Then, we will add references to the &lt;em&gt;DevExpress.Data, DevExpress.Xpo&lt;/em&gt; and &lt;em&gt;DevExpress.Xpo.Linq&lt;/em&gt; assemblies. Then, we will add a base persistent &lt;em&gt;BaseObject&lt;/em&gt; and a couple of persistent classes &lt;em&gt;Person&lt;/em&gt; and &lt;em&gt;Order&lt;/em&gt; as follows:&lt;/p&gt;  &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.Helpers;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: …
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: [NonPersistent]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; BaseObject : PersistentBase {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:     &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; oid;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:     [Key(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Oid {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; oid; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;Oid&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; oid, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:     }
&lt;/pre&gt;&lt;pre style="background-color:#80ff80;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:     &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; IList&amp;lt;T&amp;gt; CreateAssociationList&amp;lt;T&amp;gt;(DevExpress.Xpo.Metadata.XPMemberInfo property) {
&lt;/pre&gt;&lt;pre style="background-color:#80ff80;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; XPObservableAssociationList&amp;lt;T&amp;gt;(Session, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;, property);
&lt;/pre&gt;&lt;pre style="background-color:#80ff80;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; BaseObject(Session session)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:         : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(session) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Person : BaseObject {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21:     &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; firstName;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; FirstName {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; firstName; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;FirstName&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; firstName, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26:     &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; lastName;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; LastName {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; lastName; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;LastName&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; lastName, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 31:     &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; age;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 32:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Age {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 33:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; age; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 34:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;Age&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; age, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 35:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 36:     [Association(&amp;quot;&lt;span style="color:#8b0000;"&gt;Person-Orders&lt;/span&gt;&amp;quot;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 37:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IList&amp;lt;Order&amp;gt; Orders {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 38:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; GetList&amp;lt;Order&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;Orders&lt;/span&gt;&amp;quot;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 39:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 40:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Person(Session sesson) : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(sesson) { }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 41: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 42: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Order : BaseObject {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 43:     DateTime orderDate;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 44:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime OrderDate {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 45:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; orderDate; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 46:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;DateTime&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;OrderDate&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; orderDate, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 47:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 48:     Person employee;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 49:     [Association(&amp;quot;&lt;span style="color:#8b0000;"&gt;Person-Orders&lt;/span&gt;&amp;quot;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 50:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Person Employee {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 51:         &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; employee; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 52:         &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;Person&amp;gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;Employee&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt; employee, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 53:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 54:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Order(Session session) : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(session) { }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 55:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ToString() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 56:         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&amp;quot;&lt;span style="color:#8b0000;"&gt;Order - {0};&lt;/span&gt;&amp;quot;, OrderDate);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 57:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 58: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 59: &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Now, let’s drop the &lt;em&gt;ListBox&lt;/em&gt; (listBox1) and &lt;em&gt;Button&lt;/em&gt; (button1) components onto the form and handle the &lt;em&gt;Click&lt;/em&gt; event for button1. Additionally, we will modify the form’s code as follows:&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:800px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo.Helpers;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: ...
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; partial &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Window1 : Window {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:     UnitOfWork uowCommon;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7:     Person personToBind;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8:     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Window1() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9:         InitializeComponent();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10:         XpoDefault.DataLayer = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SimpleDataLayer(
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11:             &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; InMemoryDataStore(AutoCreateOption.DatabaseAndSchema)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12:         );
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13:         XpoDefault.Session = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14:         PrepareObjects();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15:         uowCommon = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UnitOfWork();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16:         personToBind = uowCommon.FindObject&amp;lt;Person&amp;gt;(&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17:         &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(personToBind != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;){
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18:             listBox1.ItemsSource = personToBind.Orders;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21:     &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22:         &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(personToBind != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; personToBind.Orders.Count &amp;gt; 0){
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23:             personToBind.Orders[0].Employee = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26:     &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; PrepareObjects() {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27:         &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (UnitOfWork uow = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UnitOfWork()) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28:             Person p = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Person(uow);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29:             p.FirstName = &amp;quot;&lt;span style="color:#8b0000;"&gt;Jhon&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30:             p.LastName = &amp;quot;&lt;span style="color:#8b0000;"&gt;Smith&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 31:             p.Age = 25;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 32:             DateTime now = DateTime.Now;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 33:             &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 10; i++) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 34:                 Order o = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Order(uow);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 35:                 o.Employee = p;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 36:                 o.OrderDate = now.AddDays(i).AddSeconds(i * 12312);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 37:             }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 38:             uow.CommitChanges();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 39:         }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 40:     }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 41: }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 42: &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Now we are done. If we run the application, we will see the following results: 
  &lt;br /&gt;&lt;object&gt;
 &lt;param name="movie" value="/blogs/xpo/WpfXpoBinding.swf"&gt;
 &lt;embed src="http://community.devexpress.com/blogs/xpo/WpfXpoBinding.swf" width="400" height="350"&gt;
 &lt;/embed&gt;
 &lt;/object&gt;

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Happy XPOing!&lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_08CE807D.png" /&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=344579" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1/default.aspx">11.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/WPF/default.aspx">WPF</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/data+binding/default.aspx">data binding</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPObservableAssociationList/default.aspx">XPObservableAssociationList</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>XPO – 11.1 Sneak Peek - Profile it!</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/05/04/xpo-11-1-sneak-peek-profile-it.aspx</link><pubDate>Wed, 04 May 2011 03:10:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:343485</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=343485</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=343485</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/05/04/xpo-11-1-sneak-peek-profile-it.aspx#comments</comments><description>&lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;We have one more amazing &lt;a href="http://community.devexpress.com/blogs/xpo/default.aspx"&gt;piece of news&lt;/a&gt; for our XPO customers. In version v2011 vol 1, we have implemented &lt;strong&gt;XPO Profiler&lt;/strong&gt; - an external profiling tool for XPO-based business applications, allowing you to track internal events in the underlying XPO layer, such as session methods calls and database interaction commands. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;"&gt;XPOProfiler&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt; will be initially released as a &lt;strong&gt;Beta&lt;/strong&gt;, and once you install the new version of the Suite, you &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;"&gt;will find it in &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;the &lt;em style="mso-bidi-font-style:normal;"&gt;Developer Express v2011 vol 1 | Components | Tools&lt;/em&gt; folder under the Start menu:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/1_3EF11881.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;MARGIN:10px auto 0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;PADDING-TOP:0px;" title="1" border="0" alt="1" src="http://community.devexpress.com/blogs/xpo/1_thumb_2FDA39A7.png" width="235" height="324" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;br /&gt;In this blog I am going to overview some of its features, demonstrate different profiling modes and finally, show you a practical example on using this tool.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Getting started&lt;/h3&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;First, you should modify the application configuration file (this is the App.config file in case of a Windows Forms application or the Web.config file in case of an ASP.NET application) and specify the profiling settings in a special section, as follows: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;COLOR:blue;FONT-SIZE:8pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre style="BORDER-BOTTOM:#cecece 1px solid;BORDER-LEFT:#cecece 1px solid;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#fbfbfb;MIN-HEIGHT:40px;PADDING-LEFT:5px;WIDTH:800px;PADDING-RIGHT:5px;OVERFLOW:auto;BORDER-TOP:#cecece 1px solid;BORDER-RIGHT:#cecece 1px solid;PADDING-TOP:5px;"&gt;&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  1: &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;&lt;span style="COLOR:#0000ff;"&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  2: &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;configuration&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  3:     &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;configSections&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  4:         &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;section&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  5:                  &lt;span style="COLOR:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;DevExpressXpoProfiler&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  6:                  &lt;span style="COLOR:#ff0000;"&gt;type&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;DevExpress.Xpo.Logger.ProfilerConfigSection, DevExpress.Data.v11.1, Version=11.1.1.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  7:                  &lt;span style="COLOR:#ff0000;"&gt;allowLocation&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  8:                  &lt;span style="COLOR:#ff0000;"&gt;allowDefinition&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;Everywhere&amp;quot;&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  9:     &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;configSections&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 10:     &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;DevExpressXpoProfiler&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 11:         &lt;span style="COLOR:#ff0000;"&gt;serverType&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;DevExpress.Xpo.Logger.Transport.LogServer&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 12:         &lt;span style="COLOR:#ff0000;"&gt;serverAssembly&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;DevExpress.Xpo.v11.1, Version=11.1.1.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 13:         &lt;span style="COLOR:#ff0000;"&gt;categories&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;SQL;Session&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 14:         &lt;span style="COLOR:#ff0000;"&gt;port&lt;/span&gt;=&lt;span style="COLOR:#0000ff;"&gt;&amp;quot;52934&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 15:     &lt;span style="COLOR:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#800000;"&gt;DevExpressXpoProfiler&lt;/span&gt;&lt;span style="COLOR:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p align="justify"&gt;Take special note that the &lt;span&gt;&lt;span class="input"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms228256.aspx"&gt;configSections&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; element must be the first child element of the &lt;span&gt;&lt;span class="input"&gt;configuration&lt;/span&gt;&lt;/span&gt; element. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;I anticipate that you already thought that&amp;nbsp; patching&amp;nbsp; the&amp;nbsp; configuration file manually is inconvenient.&amp;nbsp; Well, we have already considered this! &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;XPOProfiler can also update your configuration file automatically. Just choose the corresponding command in the main menu, and select your configuration file in the opened dialog window:&lt;/span&gt;&lt;/span&gt; 
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#000000;"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/2_00A84E10.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;PADDING-TOP:0px;" title="2" border="0" alt="2" src="http://community.devexpress.com/blogs/xpo/2_thumb_1B74741C.png" width="365" height="287" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://community.devexpress.com/blogs/xpo/3_45747244.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;PADDING-TOP:0px;" title="3" border="0" alt="3" src="http://community.devexpress.com/blogs/xpo/3_thumb_18EB425E.png" width="407" height="287" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Now all XPO log messages from our application will be transferred to the port we specified. It is also possible to profile several applications at the same time. In order to do this, you can set different port numbers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;XPOProfiler can work in two profiling modes: local and remote. The first mode can be used for profiling client applications on a local machine when the latter is valuable for profiling services hosted on a remote machine.&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Local profiling mode&lt;/h3&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;If you profile a local application, you should set the &lt;/span&gt;&lt;strong style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;COLOR:windowtext;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;Server name&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt; to &lt;strong style="mso-bidi-font-weight:normal;"&gt;localhost&lt;/strong&gt; and specify the port number according to the profiled application settings: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/4_62A68A17.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="4" border="0" alt="4" src="http://community.devexpress.com/blogs/xpo/4_thumb_53FBDE32.png" width="337" height="194" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;After that, you will be able to see profiling messages in the invoked page of the XPOProfiler window: &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/5_733E8505.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="5" border="0" alt="5" src="http://community.devexpress.com/blogs/xpo/5_thumb_2E623B04.png" width="806" height="486" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Remote profiling mode&lt;/h3&gt;
&lt;p style="LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;To profile your application remotely, you will need an additional tool called &lt;strong style="mso-bidi-font-weight:normal;"&gt;XPOProfilerProxy&lt;/strong&gt;. By default, it is located in the &lt;em style="mso-bidi-font-style:normal;"&gt;%PROGRAMFILES%\DevExpress 2011.1\Components\Tools\DXperience\&lt;/em&gt; folder. This program must be run on the same computer as your profiled application. You can start XPOProfilerProxy.exe either as a console application or as a service, using the following command line options: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;em style="mso-bidi-font-style:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;/c – start as console application; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;em style="mso-bidi-font-style:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;/i – install as service; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;em style="mso-bidi-font-style:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;/u – uninstall service. &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;The configuration file of the profiled remote application should also be modified as described above. Port number &lt;strong&gt;52927&lt;/strong&gt; is reserved for service purposes, so you cannot specify this number for communications. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;Once you are done, create a new profiling page in the XPOProfiler. Then, in the &lt;/span&gt;&lt;strong style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;COLOR:windowtext;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;Server name&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt; field, specify the name of the computer your application is running on and the port number, according to the profiled application settings: &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/6_7AB9CEA5.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="6" border="0" alt="6" src="http://community.devexpress.com/blogs/xpo/6_thumb_6C0F22C0.png" width="337" height="194" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;After that, you will be able to see profiling messages in the invoked page of the XPOProfiler window. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Practical usage&lt;/h3&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Finally, we would like to show a practical use of the profiler, to easily resolve problems in your XPO application. Let us take a Windows Forms project and declare a persistent class - Person, in it: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#000000;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="BORDER-BOTTOM:#cecece 1px solid;BORDER-LEFT:#cecece 1px solid;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#fbfbfb;MIN-HEIGHT:40px;PADDING-LEFT:5px;WIDTH:800px;PADDING-RIGHT:5px;OVERFLOW:auto;BORDER-TOP:#cecece 1px solid;BORDER-RIGHT:#cecece 1px solid;PADDING-TOP:5px;"&gt;&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  1: &lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  2: 
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  3: &lt;span style="COLOR:#0000ff;"&gt;namespace&lt;/span&gt; SampleApp {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  4:     &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;class&lt;/span&gt; Person : XPObject {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  5:         &lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; firstName;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  6:         &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; FirstName {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  7:             &lt;span style="COLOR:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; firstName; }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  8:             &lt;span style="COLOR:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="COLOR:#8b0000;"&gt;FirstName&lt;/span&gt;&amp;quot;, &lt;span style="COLOR:#0000ff;"&gt;ref&lt;/span&gt; firstName, &lt;span style="COLOR:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  9:         }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 10:         &lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; lastName;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 11:         &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; LastName {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 12:             &lt;span style="COLOR:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; lastName; }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 13:             &lt;span style="COLOR:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="COLOR:#8b0000;"&gt;LastName&lt;/span&gt;&amp;quot;, &lt;span style="COLOR:#0000ff;"&gt;ref&lt;/span&gt; lastName, &lt;span style="COLOR:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 14:         }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 15:         &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt; age;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 16:         &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt; Age {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 17:             &lt;span style="COLOR:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="COLOR:#0000ff;"&gt;return&lt;/span&gt; age; }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 18:             &lt;span style="COLOR:#0000ff;"&gt;set&lt;/span&gt; { SetPropertyValue&amp;lt;&lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;(&amp;quot;&lt;span style="COLOR:#8b0000;"&gt;Age&lt;/span&gt;&amp;quot;, &lt;span style="COLOR:#0000ff;"&gt;ref&lt;/span&gt; age, &lt;span style="COLOR:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 19:         }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 20:         &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; Person(Session session) : &lt;span style="COLOR:#0000ff;"&gt;base&lt;/span&gt;(session) { }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 21:         &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; Person() : &lt;span style="COLOR:#0000ff;"&gt;base&lt;/span&gt;(Session.DefaultSession) { }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 22:     }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt; 23: }&lt;/pre&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;There will be also a form with the &lt;a href="http://documentation.devexpress.com/#WindowsForms/CustomDocument3455"&gt;GridControl&lt;/a&gt; (gridControl1), &lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument2022"&gt;Session&lt;/a&gt; (session1), &lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument2068"&gt;XPView&lt;/a&gt; (xpView1) and &lt;a href="http://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsSimpleButtontopic"&gt;SimpleButton&lt;/a&gt; (simpleButton1) components. The XPView object is bound to the GridControl and linked to the Session. The ObjectClassInfo property of the XPView object is set to our Person class. The Session is connected to the local MS SQL Server instance. &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;The screenshot below shows what they look like together at design time: &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/7_0B51C994.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="7" border="0" alt="7" src="http://community.devexpress.com/blogs/xpo/7_thumb_2F2A7B21.png" width="820" height="681" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Now, we will handle the Click event of our &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;SimpleButton and write the following code in its &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;Click event handler:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="BORDER-BOTTOM:#cecece 1px solid;BORDER-LEFT:#cecece 1px solid;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#fbfbfb;MIN-HEIGHT:40px;PADDING-LEFT:5px;WIDTH:800px;PADDING-RIGHT:5px;OVERFLOW:auto;BORDER-TOP:#cecece 1px solid;BORDER-RIGHT:#cecece 1px solid;PADDING-TOP:5px;"&gt;&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  1: &lt;span style="COLOR:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;void&lt;/span&gt; simpleButton1_Click(&lt;span style="COLOR:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e) {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#80ff80;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  2:     Person person = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; Person();
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  3:     person.FirstName = &amp;quot;&lt;span style="COLOR:#8b0000;"&gt;New first name&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  4:     person.LastName = &amp;quot;&lt;span style="COLOR:#8b0000;"&gt;New last name&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  5:     person.Age = 27;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  6:     person.Save();
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  7:     xpView1.Reload();
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  8: }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  9: &lt;/pre&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;This code is intended to create a new object and reload the XPView to display the changes in the GridControl. However, if you run the application and test this code, you will notice that it does not work – there are simply no new objects appearing in the grid, after the button is clicked. &lt;/span&gt;&lt;/span&gt;
&lt;p align="justify"&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;What is wrong in our code? Let’s find the answer with the help of XPOProfier! &lt;/span&gt;&lt;/span&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;First launch the tool and connect it to our application as we described above (local profiling mode) and retest the problematic area. The following information will appear on the profiler page: &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/8_7462D24A.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="8" border="0" alt="8" src="http://community.devexpress.com/blogs/xpo/8_thumb_3A738F5E.png" width="266" height="249" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Take special note that there are two Sessions, not one (you will remember that we set only one at design time): &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/9_1260E03F.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="9" border="0" alt="9" src="http://community.devexpress.com/blogs/xpo/9_thumb_7C2AC4EC.png" width="688" height="446" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;The first Select request is done through the Session object, which is using &lt;a href="http://documentation.devexpress.com/#XPO/clsDevExpressXpoDBMSSqlConnectionProvidertopic"&gt;MSSqlConnectionProvider&lt;/a&gt;. Everything functions as expected here and the problem is probably with the second session: &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/10_3DC50139.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="10" border="0" alt="10" src="http://community.devexpress.com/blogs/xpo/10_thumb_35612BE2.png" width="680" height="473" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Our assumption is correct, because the Insert request is done through the Session, using &lt;a href="http://documentation.devexpress.com/#XPO/clsDevExpressXpoDBAccessConnectionProvidertopic"&gt;AccessConnectionProvider&lt;/a&gt;. You will remember that most likely this session is &lt;/span&gt;&lt;a href="http://documentation.devexpress.com/#XPO/DevExpressXpoSession_DefaultSessiontopic"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="COLOR:#0000ff;"&gt;Session.DefaultSession&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="COLOR:#000000;"&gt;. After that, we see that we violated &lt;/span&gt;&lt;a href="http://www.devexpress.com/kb=A2944"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="COLOR:#0000ff;"&gt;the first XPO best practice&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="COLOR:#000000;"&gt; and created a new Person object with the default constructor, by mistake.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Let’s fix this bug as follows: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style="BORDER-BOTTOM:#cecece 1px solid;BORDER-LEFT:#cecece 1px solid;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#fbfbfb;MIN-HEIGHT:40px;PADDING-LEFT:5px;WIDTH:800px;PADDING-RIGHT:5px;OVERFLOW:auto;BORDER-TOP:#cecece 1px solid;BORDER-RIGHT:#cecece 1px solid;PADDING-TOP:5px;"&gt;&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  1: &lt;span style="COLOR:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;void&lt;/span&gt; simpleButton1_Click(&lt;span style="COLOR:#0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e) {
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#80ff80;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  2:     Person person = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; Person(session1);
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  3:     person.FirstName = &amp;quot;&lt;span style="COLOR:#8b0000;"&gt;New first name&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  4:     person.LastName = &amp;quot;&lt;span style="COLOR:#8b0000;"&gt;New last name&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  5:     person.Age = 27;
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  6:     person.Save();
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  7:     xpView1.Reload();
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  8: }
&lt;/pre&gt;&lt;pre style="BACKGROUND-COLOR:#fbfbfb;MARGIN:0em;WIDTH:100%;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;FONT-SIZE:12px;"&gt;  9: &lt;/pre&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Then start our application and retest the fixed code: &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/11_5F612A0A.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;PADDING-TOP:0px;" title="11" border="0" alt="11" src="http://community.devexpress.com/blogs/xpo/11_thumb_0C09E3E4.png" width="487" height="346" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Of course, it is now working as expected. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal" align="justify"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;Although the example here is quite straightforward, and the test mistake in our code might be solved without the profiler, i.e. by just remembering some XPO specifics or detecting an Access database near the executable file, there are of course lots of other and more complex cases, where profiling XPO internals is vital. XPOProfiler can help you save a significant amount of time when solving problems in these kinds of scenarios, or finding bottlenecks in your application. For instance, one more noticeable feature of the XPO profiler is that it automatically detects and informs you of situations when a single Session is accessed from multiple threads.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;As always, we are eager to hear your thoughts on this addition to the XPO suite!&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;TEXT-INDENT:0in;MARGIN:0in 0in 0pt;" class="MsoNormal"&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;, &amp;#39;sans-serif&amp;#39;;FONT-SIZE:8pt;mso-fareast-font-family:arial;mso-bidi-font-family:arial;"&gt;&lt;span style="COLOR:#000000;"&gt;&lt;strong&gt;Happy XPO-profiling!&lt;img style="BORDER-BOTTOM-STYLE:none;BORDER-LEFT-STYLE:none;BORDER-TOP-STYLE:none;BORDER-RIGHT-STYLE:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_0AC54B05.png" /&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=343485" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/SQL/default.aspx">SQL</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1/default.aspx">11.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/performance/default.aspx">performance</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/profiling+tool/default.aspx">profiling tool</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/bottleneck/default.aspx">bottleneck</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011+vol1/default.aspx">v2011 vol1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO – 11.1 Sneak Peek – Data caching improvements</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/04/21/xpo-11-1-sneak-peek-data-caching-improvements.aspx</link><pubDate>Thu, 21 Apr 2011 12:30:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:342389</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=342389</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=342389</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/04/21/xpo-11-1-sneak-peek-data-caching-improvements.aspx#comments</comments><description>&lt;h3&gt;Introduction&lt;/h3&gt;  &lt;blockquote&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;    &lt;p class="MsoNormal"&gt;&lt;span&gt;First, we would like to refresh your memory and return to the distant past and our old posts about data caching in XPO: &lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/archive/2006/04/13/xpo-is-good-for-distributed-applications.aspx"&gt;XPO is good for distributed applications&lt;/a&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/archive/2007/05/16/xpo-beta-feature-sqldependency-support.aspx"&gt;XPO Beta feature: SQLDependency support&lt;/a&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span&gt;Today is 2011, and we are excited to announce that in v2011 vol1, we greatly improved data caching support in XPO, and added additional functionality to it, allowing this feature to leave the “beta” state.&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Want data caching via WCF Services? – Now, it’s easy!&lt;/h3&gt;  &lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx"&gt;In the previous blog&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;, we already demonstrated how easy it is in 11.1 to create and use WCF Services for &lt;strong&gt;IDataStore&lt;/strong&gt;. If you want to take advantages of XPO data caching using this solution, then the only difference is in using the &lt;strong&gt;ICachedDataStore&lt;/strong&gt; interface and a respective base service class that implements this interface – &lt;em&gt;CachedDataStoreService&lt;/em&gt;.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Let’s demonstrate it in action (the exact steps on how to add a data store service can be taken from &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx"&gt;the previous blog&lt;/a&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;):&lt;/span&gt;&lt;/p&gt;  &lt;pre&gt;&lt;pre&gt;  1: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre&gt;  2: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre&gt;  3: …
&lt;/pre&gt;&lt;pre&gt;  4: &lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Service1 : CachedDataStoreService {
&lt;/pre&gt;&lt;pre&gt;  5:     &lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; ICachedDataStore MainDataStore;
&lt;/pre&gt;&lt;pre&gt;  6:     &lt;span&gt;static&lt;/span&gt; Service1() {
&lt;/pre&gt;&lt;pre&gt;  7:         &lt;span&gt;string&lt;/span&gt; connectionString = MSSqlConnectionProvider.GetConnectionString(&amp;quot;&lt;span&gt;localhost&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span&gt;ServiceDB&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre&gt;  8:         IDataStore dataStore = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
&lt;/pre&gt;&lt;pre&gt;  9:         MainDataStore = &lt;span&gt;new&lt;/span&gt; DataCacheRoot(dataStore);
&lt;/pre&gt;&lt;pre&gt; 10:     }
&lt;/pre&gt;&lt;pre&gt; 11:     &lt;span&gt;public&lt;/span&gt; Service1()
&lt;/pre&gt;&lt;pre&gt; 12:         : &lt;span&gt;base&lt;/span&gt;(MainDataStore) {
&lt;/pre&gt;&lt;pre&gt; 13:     }
&lt;/pre&gt;&lt;pre&gt; 14: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;span&gt;Of course, some modifications of the service binding in the web.config file are necessary as well:&lt;/span&gt;&lt;/p&gt;

&lt;pre&gt;&lt;pre&gt;  1: &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;system.serviceModel&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  2:  &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;services&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  3:    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;service&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;=&lt;span&gt;&amp;quot;WcfService1.Service1&amp;quot;&lt;/span&gt; &lt;span&gt;behaviorConfiguration&lt;/span&gt;=&lt;span&gt;&amp;quot;WcfService1.Service1Behavior&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  4:      &lt;span&gt;&amp;lt;!-- Service Endpoints --&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  5:      &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;endpoint&lt;/span&gt; &lt;span&gt;address&lt;/span&gt;=&lt;span&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span&gt;binding&lt;/span&gt;=&lt;span&gt;&amp;quot;basicHttpBinding&amp;quot;&lt;/span&gt; &lt;span&gt;contract&lt;/span&gt;=&lt;span&gt;&amp;quot;DevExpress.Xpo.DB.ICachedDataStoreService&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  6:        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;identity&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  7:          &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;dns&lt;/span&gt; &lt;span&gt;value&lt;/span&gt;=&lt;span&gt;&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  8:        &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;identity&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt;  9:      &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;endpoint&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 10:    &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;service&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 11:  &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;services&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 12:  &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;behaviors&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 13:    &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;serviceBehaviors&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 14:      &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;behavior&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;=&lt;span&gt;&amp;quot;WcfService1.Service1Behavior&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 15:        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;serviceMetadata&lt;/span&gt; &lt;span&gt;httpGetEnabled&lt;/span&gt;=&lt;span&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 16:        &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;serviceDebug&lt;/span&gt; &lt;span&gt;includeExceptionDetailInFaults&lt;/span&gt;=&lt;span&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 17:      &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;behavior&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 18:    &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;serviceBehaviors&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 19:  &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;behaviors&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 20: &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;system.serviceModel&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre&gt; 21: &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Fortunately, the client part does not need to be modified, because in our example, the service’s name did not change, and in addition, the “data caching domain” of our service is automatically detected by XPO.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Data caching configuration&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;After looking at how easy it is to implement, you may naturally ask how flexible it really is. Of course we did not forget about flexibility! &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;For example, it is possible for you to configure which tables need to be cached and which ones don’t. This option can be useful for tables, which are frequently changed – if they are changed a lot, it makes no sense to cache them. The code below demonstrates how the service above can be modified to configure the DataCacheRoot, to cache only the “Customer” table:&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;pre&gt;&lt;pre&gt;  1: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre&gt;  2: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre&gt;  3: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo.DB.Helpers;
&lt;/pre&gt;&lt;pre&gt;  4: …
&lt;/pre&gt;&lt;pre&gt;  5: &lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Service1 : CachedDataStoreService {
&lt;/pre&gt;&lt;pre&gt;  6:     &lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; ICachedDataStore MainDataStore;
&lt;/pre&gt;&lt;pre&gt;  7:     &lt;span&gt;static&lt;/span&gt; Service1() {
&lt;/pre&gt;&lt;pre&gt;  8:         &lt;span&gt;string&lt;/span&gt; connectionString = MSSqlConnectionProvider.GetConnectionString(&amp;quot;&lt;span&gt;localhost&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span&gt;ServiceDB&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre&gt;  9:         IDataStore dataStore = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.DatabaseAndSchema);
&lt;/pre&gt;&lt;pre&gt; 10:         DataCacheRoot dataCacheRoot = &lt;span&gt;new&lt;/span&gt; DataCacheRoot(dataStore);
&lt;/pre&gt;&lt;pre&gt; 11:         dataCacheRoot.Configure(
&lt;/pre&gt;&lt;pre&gt; 12:             &lt;span&gt;new&lt;/span&gt; DataCacheConfiguration(DataCacheConfigurationCaching.InList, &amp;quot;&lt;span&gt;Customer&lt;/span&gt;&amp;quot;)
&lt;/pre&gt;&lt;pre&gt; 13:         );
&lt;/pre&gt;&lt;pre&gt; 14:         MainDataStore = dataCacheRoot;
&lt;/pre&gt;&lt;pre&gt; 15:     }
&lt;/pre&gt;&lt;pre&gt; 16:     &lt;span&gt;public&lt;/span&gt; Service1()
&lt;/pre&gt;&lt;pre&gt; 17:         : &lt;span&gt;base&lt;/span&gt;(MainDataStore) {
&lt;/pre&gt;&lt;pre&gt; 18:     }
&lt;/pre&gt;&lt;pre&gt; 19: }
&lt;/pre&gt;&lt;pre&gt; 20: &lt;/pre&gt;&lt;/pre&gt;



&lt;h3&gt;Leveraging SQLDependency&lt;/h3&gt;

&lt;p&gt;&lt;span&gt;Another configuration option for data caching we would like to tell you about is using SqlDependency feature of MS SQL Server (&lt;a href="http://community.devexpress.com/blogs/xpo/archive/2007/05/16/xpo-beta-feature-sqldependency-support.aspx"&gt;see here for the background on that&lt;/a&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;)&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;Again, a modified service class demonstrates how this can be done:&lt;/span&gt;&lt;/p&gt;

&lt;pre&gt;&lt;pre&gt;  1: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo;
&lt;/pre&gt;&lt;pre&gt;  2: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo.DB;
&lt;/pre&gt;&lt;pre&gt;  3: &lt;span&gt;using&lt;/span&gt; DevExpress.Xpo.DB.Helpers;
&lt;/pre&gt;&lt;pre&gt;  4: …
&lt;/pre&gt;&lt;pre&gt;  5: &lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Service1 : CachedDataStoreService {
&lt;/pre&gt;&lt;pre&gt;  6:     &lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; ICachedDataStore MainDataStore;
&lt;/pre&gt;&lt;pre&gt;  7:     &lt;span&gt;static&lt;/span&gt; Service1() {
&lt;/pre&gt;&lt;pre&gt;  8:         &lt;span&gt;string&lt;/span&gt; connectionString = MSSqlConnectionProvider.GetConnectionString(&amp;quot;&lt;span&gt;localhost&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span&gt;ServiceDB&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre&gt;  9:         MSSqlConnectionProvider dataStore = (MSSqlConnectionProvider)XpoDefault.GetConnectionProvider(
&lt;/pre&gt;&lt;pre&gt; 10:             connectionString,
&lt;/pre&gt;&lt;pre&gt; 11:             AutoCreateOption.DatabaseAndSchema
&lt;/pre&gt;&lt;pre&gt; 12:         );
&lt;/pre&gt;&lt;pre&gt; 13:         MainDataStore = (ICachedDataStore)MSSql2005SqlDependencyCacheRoot.CreateSqlDependencyCacheRoot(
&lt;/pre&gt;&lt;pre&gt; 14:             dataStore,
&lt;/pre&gt;&lt;pre&gt; 15:             &lt;span&gt;new&lt;/span&gt; DataCacheConfiguration(DataCacheConfigurationCaching.InList, &amp;quot;&lt;span&gt;Customer&lt;/span&gt;&amp;quot;),
&lt;/pre&gt;&lt;pre&gt; 16:             &lt;span&gt;out&lt;/span&gt; objectsToDispose
&lt;/pre&gt;&lt;pre&gt; 17:         );
&lt;/pre&gt;&lt;pre&gt; 18:     }
&lt;/pre&gt;&lt;pre&gt; 19:     &lt;span&gt;public&lt;/span&gt; Service1()
&lt;/pre&gt;&lt;pre&gt; 20:         : &lt;span&gt;base&lt;/span&gt;(MainDataStore) {
&lt;/pre&gt;&lt;pre&gt; 21:     }
&lt;/pre&gt;&lt;pre&gt; 22: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;That’s it for this blog. Do you like what you see? Please let us know with your comments! &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;And happy XPOing&lt;img alt="Winking smile" src="http://community.devexpress.com/blogs/xpo/wlEmoticon-winkingsmile_1565C5CA.png" /&gt;, as always!;-)&lt;/span&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=342389" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1/default.aspx">11.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/IDataStore/default.aspx">IDataStore</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/distributed+applications/default.aspx">distributed applications</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/service/default.aspx">service</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/data+caching/default.aspx">data caching</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/SQLDependency/default.aspx">SQLDependency</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO – 11.1 Sneak Peek - WCF services for IDataStore</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx</link><pubDate>Tue, 19 Apr 2011 01:30:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:342125</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>25</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=342125</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=342125</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/04/19/xpo-11-1-sneak-peek-wcf-services-for-idatastore.aspx#comments</comments><description>&lt;p align="justify"&gt;In XPO v2011.1 vol 1, we added support for WCF Services. These improvements provide the capability to create service and client for IDataStore as easy as it can only be. &lt;/p&gt;  &lt;p align="justify"&gt;In order to support this feature, the &lt;strong&gt;DevExpress.Xpo&lt;/strong&gt; assembly will reference assemblies from .NET 3.0. Unfortunately, Visual Studio 2010 does not allow building projects whose Target Framework is set to 2.0, if they reference .NET 3.0 assemblies. To bypass this, it is necessary to set Target Framework to 3.0. Quite surprisingly, other Visual Studio versions do not demonstrate the above problem.     &lt;br /&gt;This does not mean that an application will not work on a machine that has only .NET 2.0 installed on it. If the project does not use the functionality of .NET 3.0, it will work just as before. Therefore, it should not affect your clients’ installations at all.&lt;/p&gt;  &lt;p align="justify"&gt;Let’s learn more about the implemented feature from a simple example.    &lt;br /&gt;For the beginning, we will create a new &lt;em&gt;WCF Service Application&lt;/em&gt; project. Then, we will add references to the &lt;em&gt;DevExpress.Data&lt;/em&gt; and &lt;em&gt;DevExpress.Xpo&lt;/em&gt; assemblies and remove files with auto-generated interfaces for the service.&lt;/p&gt;  &lt;p align="justify"&gt;The next step is modifying the service class as follows:&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; DevExpress.Xpo; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; DevExpress.Xpo.DB; &lt;/span&gt;&lt;/p&gt; &lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;namespace&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; WcfService1 { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;class&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Service1&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; : &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;DataStoreService&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;static&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;IDataStore&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; DataStore; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;static&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Service1() { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; connectionString = &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;MSSqlConnectionProvider&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.GetConnectionString(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;ServiceDB&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;DataStore = &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XpoDefault&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.GetConnectionProvider(connectionString, &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;AutoCreateOption&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.DatabaseAndSchema); &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Service1() &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;: &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;base&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;(DataStore) { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p align="justify"&gt;To finish with the service, we will need to change some binding properties in its web.config file:&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;services&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;service&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;name&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;WcfService1.Service1&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;WcfService1.Service1Behavior&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-family:consolas;color:green;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Service Endpoints &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;--&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;endpoint&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;address&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;binding&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;contract&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;DevExpress.Xpo.DB.IDataStoreService&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;identity&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;dns&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;value&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;localhost&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;/&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;identity&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;endpoint&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;service&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;services&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;behaviors&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;behavior&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;name&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;WcfService1.Service1Behavior&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;serviceMetadata&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;httpGetEnabled&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;true&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;/&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;serviceDebug&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:red;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;includeExceptionDetailInFaults&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;=&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;false&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;/&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;behavior&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;behaviors&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family:consolas;font-size:8pt;mso-fareast-font-family:consolas;"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Now our service is ready, and it is time to implement the client part.    &lt;br /&gt;&amp;#160; &lt;br /&gt;For the client, we will add a Console Application into our existing solution. Then, we will use the &lt;em&gt;Persistent Object&lt;/em&gt; item template for a&amp;#160; Customer class:     &lt;br /&gt;    &lt;br /&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:8pt;mso-fareast-font-family:consolas;"&gt;&lt;font color="#000000"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; DevExpress.Xpo;          &lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;namespace&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; ConsoleApplication1 { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;class&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Customer&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; : &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XPObject&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Customer(&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Session&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; session) : &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;base&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;(session) { } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _CompanyName; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; CompanyName { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;get&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;return&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _CompanyName; } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;set&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { SetPropertyValue(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;CompanyName&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ref&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _CompanyName, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;value&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _CompanyAddress; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; CompanyAddress { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;get&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;return&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _CompanyAddress; } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;set&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { SetPropertyValue(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;CompanyAddress&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ref&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _CompanyAddress, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;value&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _ContactName; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; ContactName { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;get&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;return&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _ContactName; } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;set&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { SetPropertyValue(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;ContactName&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ref&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _ContactName, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;value&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _Country; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Country { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;get&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;return&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _Country; } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;set&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { SetPropertyValue(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;Country&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ref&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _Country, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;value&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _Phone; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Phone { &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;get&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;return&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _Phone; } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;set&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { SetPropertyValue(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;Phone&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ref&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; _Phone, &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;value&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); } &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;    &lt;p style="text-align:justify;margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;span style="line-height:115%;font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;span style="line-height:115%;font-family:consolas;font-size:8pt;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;/p&gt;   The final step is to modify the Main() of our console application as shown in the code below:   &lt;br /&gt;  &lt;br /&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; System; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; DevExpress.Xpo; &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; DevExpress.Xpo.DB; &lt;/span&gt;&lt;/p&gt; &lt;/p&gt;    &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;namespace&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; ConsoleApplication1 { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;class&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Program&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;static&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;void&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Main(&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;string&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;[] args) { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XpoDefault&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.DataLayer = &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XpoDefault&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.GetDataLayer(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;http://localhost:64466/Service1.svc&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;AutoCreateOption&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.DatabaseAndSchema); &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XpoDefault&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.Session = &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;null&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; (&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;UnitOfWork&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; uow = &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;new&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;UnitOfWork&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;()) { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;using&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; (&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XPCollection&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Customer&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; customers = &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;new&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XPCollection&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Customer&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt;(uow)) { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;foreach&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; (&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Customer&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; customer &lt;/span&gt;&lt;span style="font-family:consolas;color:blue;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;in&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; customers) { &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Console&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.WriteLine(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;Company Name = {0}; ContactName = {1}&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;, customer.CompanyName, customer.ContactName); &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Console&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.WriteLine(&lt;/span&gt;&lt;span style="font-family:consolas;color:#a31515;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;Press any key...&amp;quot;&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:consolas;color:#2b91af;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Console&lt;/span&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;.ReadKey(); &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;color:windowtext;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-family:consolas;font-size:8pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;As you can see, we pass the address of our service into the &lt;em&gt;GetDataLayer&lt;/em&gt; method of the &lt;em&gt;XpoDefault&lt;/em&gt; class. It is very similar to what was already supported for &lt;a href="http://www.devexpress.com/kb=AK3911"&gt;Web Services&lt;/a&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;Now if we run the service and client parts, we will see the following output:    &lt;br /&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/screenshot_41E112F4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="screenshot" border="0" alt="screenshot" src="http://community.devexpress.com/blogs/xpo/screenshot_thumb_07859D13.png" width="697" height="362" /&gt;&lt;/a&gt;     &lt;br /&gt;Take special note that the port number in the connection string may be different. You can check it in the properties of the service project in the Solution Explorer:     &lt;br /&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/screenshot_6A304548.png"&gt;&lt;img style="display:inline;" title="screenshot" alt="screenshot" src="http://community.devexpress.com/blogs/xpo/screenshot_thumb_700AE8E1.png" width="592" height="384" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;Happy XPOing!&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=342125" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/IDataStore/default.aspx">IDataStore</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/WCF/default.aspx">WCF</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/distributed+applications/default.aspx">distributed applications</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/service/default.aspx">service</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO – 11.1 Sneak Peek – Support for the OUTER APPLY operator in SQL queries</title><link>http://community.devexpress.com/blogs/xpo/archive/2011/03/22/xpo-11-1-sneak-peek-support-for-the-outer-apply-operator-in-sql-queries.aspx</link><pubDate>Tue, 22 Mar 2011 08:00:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:339766</guid><dc:creator>Dennis (DevExpress Support)</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=339766</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=339766</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2011/03/22/xpo-11-1-sneak-peek-support-for-the-outer-apply-operator-in-sql-queries.aspx#comments</comments><description>&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;We have some good news for our XPO users. In v2011 vol1 we have improved our sql-generator by supporting the &lt;/span&gt;&lt;a href="http://www.mssqltips.com/tip.asp?tip=1958"&gt;&lt;span style="font-size:small;"&gt;OUTER APPLY&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt; operator. This SQL operator enables you to create an aggregate&amp;rsquo;s sub queries outside the &lt;span style="mso-bidi-font-style:italic;"&gt;WHERE&lt;/span&gt; clause and the SELECT expressions. For instance, it provides the capability to perform nested aggregates and aggregates in the group by list of the GROUP BY clause.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;How this support is useful for you? It is useful because Microsoft SQL Server and SQL Server Compact are limited &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;in performing aggregates in these scenarios. For instance, the following queries will throw an exception without the OUTER APPLY operator:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;1) Nested aggregate:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="line-height:115%;font-size:12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;text-indent:24pt;margin:0in 1.5pt 0pt -1.5pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;select N0.Oid,&lt;b style="mso-bidi-font-weight:normal;"&gt; &lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#b45f06;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;(&lt;span style="mso-bidi-font-weight:bold;"&gt;select max(N1.Date) from [Orders] N1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;text-indent:24pt;margin:0in 1.5pt 0pt 0.5in;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#b45f06;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;where N1.EmployeeId = N0.EmployeeId&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;text-indent:24pt;margin:0in 1.5pt 0pt 0.5in;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#b45f06;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;AND &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#cc0000;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;(select count(*) from [Orders] N2 where N2.CustomerId =&amp;nbsp;N1.CustomerId)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#660000;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#e69138;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;lt;= 2&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#e69138;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#b45f06;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;text-indent:24pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;from [Employees] N0&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-size:12pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;2) Aggregate in the group by list of a GROUP BY clause:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-size:12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;select (select count(*) as Res from &amp;quot;dbo&amp;quot;.&amp;quot;FreeClass&amp;quot; N2 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0.5in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;where (N0.&amp;quot;Data&amp;quot; = N2.&amp;quot;Data&amp;quot;)) &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;from &amp;quot;dbo&amp;quot;.&amp;quot;FreeClassSub&amp;quot; N0&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;group by &lt;/span&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#cc0000;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;(select count(*) as Res from &amp;quot;dbo&amp;quot;.&amp;quot;FreeClass&amp;quot; N3 &lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0.5in;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#cc0000;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;where (N0.&amp;quot;Data&amp;quot; = N3.&amp;quot;Data&amp;quot;))&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-size:12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;However, if we modify the above queries to use the OUTER APPLY operator, they will perform correctly:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;1) Nested aggregate:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-size:12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt -1.5pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;select N0.Oid, &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;OA0.Res&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#660000;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt -1.5pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;from [Employees] N0&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt 34.5pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;outer apply &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt 34.5pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;(&lt;b&gt;select max(N1.Date) as Res from [Orders] N1 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt 70.5pt;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#0b5394;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;outer apply &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt 0.5in;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#0b5394;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;(select count(*) as Res from [Orders] N2 where N2.CustomerId =&amp;nbsp;N1.CustomerId) OA1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:24pt;margin:0in 1.5pt 0pt 0.5in;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;where N1.EmployeeId = N0.EmployeeId AND &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#0b5394;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;OA1.Res&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt; &amp;lt;= 2&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;)) OA0&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;color:#38761d;font-size:12pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;color:#38761d;font-size:12pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;2) Aggregate in the group by list of a GROUP BY clause:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-size:12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;select&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt; OA0.Res &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;from &amp;quot;dbo&amp;quot;.&amp;quot;FreeClassSub&amp;quot; N0&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;outer apply &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;(select count(*) as Res from &amp;quot;dbo&amp;quot;.&amp;quot;FreeClass&amp;quot; N3 where&amp;nbsp;(N0.&amp;quot;Data&amp;quot; = N3.&amp;quot;Data&amp;quot;))&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt; OA0&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:22.5pt;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;group by &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:#38761d;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;OA0.Res&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 1.5pt 0pt 0in;"&gt;&lt;span style="line-height:115%;font-size:12pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;The OUTER APPLY operator is supported by Microsoft SQL Server and SQL Server Compact. So starting from version 11.1, criteria and group properties (like &amp;ldquo;&lt;span style="color:#38761d;"&gt;[Orders][ &lt;/span&gt;&lt;span style="color:#0b5394;"&gt;[Customers][City = &amp;lsquo;London&amp;rsquo;].Count() &amp;gt; 10&lt;/span&gt;&lt;span style="color:#38761d;"&gt; ].Min(ShippedDate)&lt;/span&gt;&amp;rdquo;) can be performed on those DBMS without any problems. BTW, I recently saw one more practical example from a customer, who incurred the limit of the queries described above. I will post it here, just in case you have similar structures in your projects. So, here are his business classes:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 1.5pt 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;class&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ParentObject&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; : &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XPObject&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; {&lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Aggregated&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Association&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;Parent-Children&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;)]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XPCollection&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ChildObject&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;gt; ChildObjects { ... }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;PersistentAlias&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;ChildObjects[].Max(LastChange)&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;)]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;DateTime&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; LastChangeOfChildObjects {&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;get&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; { &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;return&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; (&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;DateTime&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;)EvaluateAlias(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;LastChangeOfChildObjects&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;); }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;class&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ChildObject&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; : &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;XPObject&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; {&lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;Association&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&amp;quot;Parent-Children&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;)]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;ParentObject&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; Parent { ... }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;DateTime&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt; LastChange { ... }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 1.5pt 0pt 0in;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 1.5pt 0pt 0in;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:windowtext;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;The ParentObject was bound to a grid control working in the server mode. If you try to group by the LastChangeOfChildObjects column (take special note of the expression in its &lt;/span&gt;&lt;a href="http://documentation.devexpress.com/#XPO/clsDevExpressXpoPersistentAliasAttributetopic"&gt;&lt;span style="font-size:small;"&gt;PersistentAlias&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt; attribute) in 10.2, it will not work, because of the described limitation. There are of course many other examples.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:justify;margin:0in 0in 0pt;"&gt;&lt;span style="font-size:small;"&gt;Finally, I should note that support for the OUTER APPLY operator is an internal improvement, and that means that XPO users will not require any additional actions to turn it on.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=339766" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/SQL/default.aspx">SQL</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/OUTER+APPLY/default.aspx">OUTER APPLY</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/11.1/default.aspx">11.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/v2011.1/default.aspx">v2011.1</category><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>XPO to Database Connectivity: Mastering Fork Etiquette</title><link>http://community.devexpress.com/blogs/xpo/archive/2010/07/06/xpo-to-database-connectivity-mastering-fork-etiquette.aspx</link><pubDate>Tue, 06 Jul 2010 13:24:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:313499</guid><dc:creator>Nick (DevExpress Support)</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=313499</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=313499</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2010/07/06/xpo-to-database-connectivity-mastering-fork-etiquette.aspx#comments</comments><description>&lt;p&gt;Check out this how-to article that shows a new way of setting up&amp;nbsp;&lt;a target="_blank" title="XPO" href="http://www.devexpress.com/xpo"&gt;XPO&lt;/a&gt;&amp;nbsp;to work with websites, where a large number of simultaneously connected users is a common occurrence. It may help you reduce server response latency for pages that depend on data supplied by eXpress Persistent Objects.&lt;br /&gt;&lt;img style="border:0;" src="http://community.devexpress.com/blogs/xpo/fork.jpg" alt="Mastering Fork Etiquette" /&gt;&lt;br /&gt;Let&amp;#39;s consider a standard approach to &lt;a href="http://documentation.devexpress.com/#XPO/CustomDocument2121" title="XPO data layer" target="_blank"&gt;XPO data layer&lt;/a&gt; creation in an &lt;a href="http://www.devexpress.com/kb=K18061" title="ASP.NET website" target="_blank"&gt;ASP.NET website&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="brush: csharp "&gt;// C#
using System.Configuration;
using System.Data.SqlClient;
using DevExpress.Xpo;
using DevExpress.Xpo.DB;
using DevExpress.Xpo.Metadata;

IDataLayer GetDataLayer() {
    ReflectionDictionary dict = new ReflectionDictionary();
    dict.CollectClassInfos(typeof(Person).Assembly);

    string connStr = ConfigurationManager.ConnectionStrings[&amp;quot;PrimaryConnection&amp;quot;].ConnectionString;
    SqlConnection conn = new SqlConnection(connStr);
    IDataStore store = new MSSqlConnectionProvider(conn, AutoCreateOption.SchemaAlreadyExists);

    return new ThreadSafeDataLayer(dict, store);
}

&lt;/pre&gt;
&lt;pre class="brush: vb "&gt;&amp;#39; VB.NET
Imports System.Data.SqlClient
Imports DevExpress.Xpo
Imports DevExpress.Xpo.DB
Imports DevExpress.Xpo.Metadata

Private Function GetDataLayer() As IDataLayer
    Dim dict As New ReflectionDictionary()
    dict.CollectClassInfos(GetType(Person).Assembly)

    Dim connStr As String = Configuration.ConfigurationManager.ConnectionStrings(&amp;quot;PrimaryConnection&amp;quot;).ConnectionString
    Dim conn As New SqlConnection(connStr)
    Dim store As IDataStore = New MSSqlConnectionProvider(conn, AutoCreateOption.SchemaAlreadyExists)

    Return New ThreadSafeDataLayer(dict, store)
End Function
&lt;/pre&gt;
&lt;p&gt;A single &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.idbconnection.aspx" title="database connection object" target="_blank"&gt;database connection object&lt;/a&gt; is created in the code snippet above, which is then used by XPO for data access.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Generally, an ASP.NET application is a multi-user application. The situation when two users are requesting a webpage simultaneously is quite common. &lt;a href="http://www.iis.net/overview" title="IIS" target="_blank"&gt;IIS&lt;/a&gt; and ASP.NET support &lt;a href="http://en.wikipedia.org/wiki/Multithreading" title="multithreading" target="_blank"&gt;multithreading&lt;/a&gt;. Said differently, two user requests can be processed in parallel. However, when it comes to querying the database, the second user is kept waiting while the first user&amp;#39;s query is being processed, because a single database connection object has been created for the XPO data layer.&lt;/p&gt;
&lt;p&gt;Creating a separate XPO data layer for each user or even for each page request is one possible solution here. This solution, however, is not perfect: XPO layer creation and establishing a database connection is a slow and resource expensive operation. Moreover, a &lt;a href="http://documentation.devexpress.com/#XPO/clsDevExpressXpoThreadSafeDataLayertopic" title="ThreadSafeDataLayer" target="_blank"&gt;ThreadSafeDataLayer&lt;/a&gt;, as it follows from its name, already supports multithreading. If one could create a pool of multiple connection objects and teach the XPO layer to select the first free available connection for the next database query, that would be really cool.&lt;/p&gt;
&lt;p&gt;Fortunately, ThreadSafeDataLayer already can handle a connection pool called &lt;strong&gt;DataStoreFork&lt;/strong&gt;. That is to say, you create an &lt;a href="http://devexpress.com/Products/NET/ORM/SessionManagementCaching.xml" title="IDataStore" target="_blank"&gt;IDataStore&lt;/a&gt; object array, instantiate a DataStoreFork, which is then passed to the ThreadSafeDataLayer constructor:&lt;/p&gt;
&lt;pre class="brush: csharp "&gt;// C#
IDataStore GetDataStore() {
    string connStr = ConfigurationManager.ConnectionStrings[&amp;quot;PrimaryConnection&amp;quot;].ConnectionString;
    SqlConnection conn = new SqlConnection(connStr);
    IDataStore store = new MSSqlConnectionProvider(conn, AutoCreateOption.SchemaAlreadyExists);
    return store;
}

IDataLayer GetDataLayer() {
    ReflectionDictionary dict = new ReflectionDictionary();
    dict.CollectClassInfos(typeof(Person).Assembly);

    const int maxConnections = 3;
    IDataStore[] stores = new IDataStore[maxConnections];
    for(int i = 0; i &amp;lt; maxConnections; i++)
        stores[i] = GetDataStore();

    return new ThreadSafeDataLayer(dict, new DataStoreFork(stores));
}

&lt;/pre&gt;
&lt;pre class="brush: vb "&gt;&amp;#39; VB.NET
Private Function GetDataStore() As IDataStore
    Dim connStr As String = Configuration.ConfigurationManager.ConnectionStrings(&amp;quot;PrimaryConnection&amp;quot;).ConnectionString
    Dim conn As New SqlConnection(connStr)
    Dim store As IDataStore = New MSSqlConnectionProvider(conn, AutoCreateOption.SchemaAlreadyExists)
    Return store
End Function

Private Function GetDataLayer() As IDataLayer
    Dim dict As New ReflectionDictionary()
    dict.CollectClassInfos(GetType(Person).Assembly)

    Const maxConnections As Integer = 3
    Dim stores(maxConnections - 1) As IDataStore
    For i As Integer = 0 To maxConnections - 1
        stores(i) = GetDataStore()
    Next i

    Return New ThreadSafeDataLayer(dict, New DataStoreFork(stores))
End Function
&lt;/pre&gt;
&lt;p&gt;How many connections should one create for DataStoreFork? We dare say that the number of connections must not exceed the number of &lt;a href="http://en.wikipedia.org/wiki/Multiprocessing" title="processors" target="_blank"&gt;processors&lt;/a&gt; (CPUs) installed on a given server, where the database is running.&lt;/p&gt;
&lt;p&gt;We also want you to be aware that the use of DataStoreFork may result in not any noticeable effect at all. Usually, the most common database queries in ASP.NET - &lt;a href="http://beginner-sql-tutorial.com/sql-commands.htm" title="SELECT and UPDATE" target="_blank"&gt;SELECT and UPDATE&lt;/a&gt; - are processed with lightning speed, while data is transferred via fast LAN, to say nothing about situations where IIS and a database server are running on one and the same system. If users of your website experience performance issues, do not immediately introduce DataStoreFork, but execute thorough performance profiling to discover any bottlenecks.&lt;/p&gt;
&lt;p&gt;The use of DataStoreFork may make sense in other multiuser environments with a shared XPO data layer besides ASP.NET, e.g. in &lt;a href="http://www.devexpress.com/Support/Center/kb/p/AK3911.aspx" title="Web services" target="_blank"&gt;Web services&lt;/a&gt; or in 3-tier applications with &lt;a href="http://community.devexpress.com/blogs/xpo/archive/2006/10/13/388.aspx" title="XPO on the middle layer" target="_blank"&gt;XPO on the middle layer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=313499" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/xpo/archive/tags/XPO/default.aspx">XPO</category></item><item><title>ANN: DXCore XPO plugin 1.2.0.4</title><link>http://community.devexpress.com/blogs/xpo/archive/2009/10/02/ann-dxcore-xpo-plugin-1-2-0-4.aspx</link><pubDate>Fri, 02 Oct 2009 11:05:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:278346</guid><dc:creator>Oliver Sturm (DevExpress)</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/rsscomments.aspx?PostID=278346</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/xpo/commentapi.aspx?PostID=278346</wfw:comment><comments>http://community.devexpress.com/blogs/xpo/archive/2009/10/02/ann-dxcore-xpo-plugin-1-2-0-4.aspx#comments</comments><description>&lt;p&gt;Version 1.2.0.4 of the XPO plugin is now available, compiled against DXCore 9.2.6. Please download it here:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/xpo/CR_XPOFieldSync-1.2.0.4.zip"&gt;CR_XPOFieldSync-1.2.0.4.zip&lt;/a&gt; (22563 bytes)&lt;/p&gt;
&lt;p&gt;As always, if you&amp;#39;re not familiar with the purpose of the XPO plugin, please read &lt;a href="http://www.devexpress.com/Products/NET/ORM/SimplifiedCriteriaSyntax.xml"&gt;this description of the &amp;quot;Simplified Criteria Syntax&amp;quot; feature&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This version fixes two issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Changed undo unit handling for compatibility with DXCore 9.2.6 (fixes B140294)&lt;/li&gt;
&lt;li&gt;Fixed an issue where an exclusion created through the &amp;quot;red cross&amp;quot; UI in the editor wasn&amp;#39;t persisted correctly.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=278346" width="1" height="1"&gt;</description></item></channel></rss>
