<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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>Projections</title><link>http://blogs.msdn.com/alexdan/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Enabling network connectivity on a Windows Mobile device emulator</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/25/enabling-network-connectivity-on-a-windows-mobile-device-emulator.aspx</link><pubDate>Tue, 25 Aug 2009 10:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868779</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9868779.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9868779</wfw:commentRss><description>&lt;P&gt;I’ve been experimenting with writing programs for Windows Mobile. I write the code in Visual Studio and use it to run the program in a Windows Mobile device emulator. The app I’m working on needs an internet connection but it is not obvious on how to configure the emulator to make that happen. I came across the following instructions on how the emulator can access the same network connection as the host (dev) machine and though I’d share. 
&lt;P&gt;Note: see the end of this post for info on prerequisites and even how to write a managed Windows Mobile application. 
&lt;P&gt;&lt;STRONG&gt;Enabling Network Co&lt;/STRONG&gt;&lt;A title=Networking name=Networking&gt;&lt;/A&gt;&lt;STRONG&gt;nnectivity on the Device Emulator&lt;/STRONG&gt; 
&lt;P&gt;When Device Emulator is started, it starts like a device that is not cradled. In this state, it has no connectivity to the Internet. There is no data plan provided by a mobile operator. Therefore, the Device Emulator also lacks over-the-air connectivity. There are two ways to enable network connectivity by using Device Emulator: 
&lt;UL&gt;
&lt;LI&gt;By cradling it by using Windows Mobile Device Center (or ActiveSync in Windows XP)&lt;/LI&gt;
&lt;LI&gt;By enabling virtual networking by using the virtual machine network services driver&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Note&amp;nbsp;&amp;nbsp; If the emulator is running inside a virtual PC, see &lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=4968&amp;amp;postid=9868779#VirtualPC" mce_href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=4968&amp;amp;postid=9868779#VirtualPC"&gt;To enable network connectivity on an emulator running inside a Virtual PC&lt;/A&gt;. 
&lt;P&gt;The following steps describe how to connect the emulator to the Internet by cradling it. This method connects to the Internet by using an ActiveSync pass-through. 
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width="100%"&gt;
&lt;P&gt;&lt;B&gt;To cradle the emulator by using Windows Mobile Device Center (or ActiveSync)&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width="100%"&gt;
&lt;OL&gt;
&lt;LI&gt;Start Windows Mobile Device Center (ActiveSync 4.5 in Windows XP).&lt;/LI&gt;
&lt;LI&gt;Under Mobile Device Settings, click Connection Settings.&lt;/LI&gt;
&lt;LI&gt;In the Connection Settings dialog box, make sure that the Allow Connections to one of the following check box is selected, and that DMA is selected as the option in the list.&lt;/LI&gt;
&lt;LI&gt;Click OK.&lt;/LI&gt;
&lt;LI&gt;On the Tools menu, click Device Emulator Manager.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;A green arrow appears next to the emulator that is currently running.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Right-click the emulator instance that is currently running and click Cradle.&lt;/LI&gt;
&lt;LI&gt;In Windows Mobile Device Center, create a guest partnership between the desktop and the device.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;- or - 
&lt;P&gt;Select Setup your device. 
&lt;P&gt;After it is connected, the emulator will have Internet connectivity.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;The following steps describe how to connect the emulator to the Internet by using the virtual machine network services driver.&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width="100%"&gt;
&lt;P&gt;&lt;B&gt;To connect to the Internet by using the virtual machine network services driver&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width="100%"&gt;
&lt;OL&gt;
&lt;LI&gt;Install the &lt;A href="http://go.microsoft.com/fwlink/?LinkId=134687" mce_href="http://go.microsoft.com/fwlink/?LinkId=134687"&gt;Virtual PC 2007 SP1&lt;/A&gt; client.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;This installs the virtual machine network services driver and binds the driver to your primary network card.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;In Device Emulator, on the File menu, click Configure.&lt;/LI&gt;
&lt;LI&gt;Click the Network tab.&lt;/LI&gt;
&lt;LI&gt;Select the Enable NE2000 PCMCIA network adapter and bind to check box.&lt;/LI&gt;
&lt;LI&gt;In the list, select Connected network card.&lt;/LI&gt;
&lt;LI&gt;Click OK. &lt;/LI&gt;&lt;/OL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;If the emulator is running &lt;A title=VirtualPC name=VirtualPC&gt;&lt;/A&gt;inside a virtual PC, you must perform additional steps to enable network connectivity. We will refer to the physical machine as the host machine and to the operating system running inside Virtual PC as the virtual machine. These instructions assume that the virtual machine is installed and ready to run on the host machine.&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width="100%"&gt;
&lt;P&gt;&lt;B&gt;To enable network connectivity on an emulator running inside a Virtual&lt;/B&gt; &lt;B&gt;PC&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width="100%"&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=135955" mce_href="http://go.microsoft.com/fwlink/?LinkId=135955"&gt;Install the Microsoft Loopback Adapter&lt;/A&gt; on the host machine.&lt;/LI&gt;
&lt;LI&gt;On the host machine, start Microsoft Virtual PC.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;The Virtual PC Console appears.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Click Settings to change network settings before starting the virtual machine.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;The Settings dialog box appears.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Select Networking and then enable two network adapters. Map one of the adapters to the Microsoft Loopback Adapter and the other to the normal adapter (the adapter that is connected to the network).&lt;/LI&gt;
&lt;LI&gt;Click Start to start the virtual machine.&lt;/LI&gt;
&lt;LI&gt;Install the &lt;A href="http://go.microsoft.com/fwlink/?LinkId=134687" mce_href="http://go.microsoft.com/fwlink/?LinkId=134687"&gt;Virtual PC 2007 SP1&lt;/A&gt; on the virtual machine.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;This installs the virtual machine network services driver and binds the driver to your primary network card.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=135955" mce_href="http://go.microsoft.com/fwlink/?LinkId=135955"&gt;Install the Microsoft Loopback Adapter&lt;/A&gt; on the virtual machine.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Make sure that the host and virtual machines are now connected through the Microsoft Loopback adaptor. You can now to connect the emulator to the Internet by using the virtual machine network services driver.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;For reference, writing a managed Windows Mobile application can be done as follows:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Install required software (these or the latest versions)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Visual Studio 2008 Professional with &lt;A href="http://go.microsoft.com/fwlink/?LinkID=120192" mce_href="http://go.microsoft.com/fwlink/?LinkID=120192"&gt;Service Pack 1&lt;/A&gt;, or a later version of Visual Studio Professional &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=134662" mce_href="http://go.microsoft.com/fwlink/?LinkId=134662"&gt;Windows Mobile 6 Professional SDK&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46f72df1-e46a-4a5f-a791-09f07aaa1914&amp;amp;displaylang=en&amp;amp;Hash=Ge460FnaXQB0u0gYQz6L3L%2bDBplf9cVK8yguzSv%2bXgOru9j1utU%2bP96akpOagt2PNBiqv3GP09rpJ4JXLMCMbA%3d%3d" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46f72df1-e46a-4a5f-a791-09f07aaa1914&amp;amp;displaylang=en&amp;amp;Hash=Ge460FnaXQB0u0gYQz6L3L%2bDBplf9cVK8yguzSv%2bXgOru9j1utU%2bP96akpOagt2PNBiqv3GP09rpJ4JXLMCMbA%3d%3d"&gt;Windows Mobile Device Center 6.1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=134665" mce_href="http://go.microsoft.com/fwlink/?LinkId=134665"&gt;Windows Mobile 6.1.4 Emulator Images&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Enable network connectivity&lt;/LI&gt;
&lt;LI&gt;Follow walkthrough on creating a simple app in managed code at &lt;A href="http://msdn.microsoft.com/en-us/library/bb158524.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb158524.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb158524.aspx&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868779" width="1" height="1"&gt;</description></item><item><title>Adding client-side helpers to service-defined contracts</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/19/adding-client-side-helpers-to-service-defined-contracts.aspx</link><pubDate>Wed, 19 Aug 2009 10:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9869007</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9869007.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9869007</wfw:commentRss><description>&lt;P class=MsoNormal&gt;Summary: When a client adds a service reference to a service, the generated classes are marked as &lt;B style="mso-bidi-font-weight: normal"&gt;partial&lt;/B&gt;, which lets the client add additional helper methods and local functionality to the classes. &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;When a client generates a contract from a service, only the data and method signatures are included (and not the method implementation). The constructor is not part of the contract either. Here’s an example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;The service, running in Windows Azure, defines a&lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; LatLongLocation&lt;/SPAN&gt; contract. It looks like&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[&lt;SPAN style="COLOR: #2b91af"&gt;DataContract&lt;/SPAN&gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;LatLongLocation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; LatLongLocation(&lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; latitude, &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; longitude)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Latitude = latitude;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Longitude = longitude;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: #2b91af"&gt;DataMember&lt;/SPAN&gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; Latitude { &lt;SPAN style="COLOR: blue"&gt;get&lt;/SPAN&gt;; &lt;SPAN style="COLOR: blue"&gt;set&lt;/SPAN&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: #2b91af"&gt;DataMember&lt;/SPAN&gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; Longitude { &lt;SPAN style="COLOR: blue"&gt;get&lt;/SPAN&gt;; &lt;SPAN style="COLOR: blue"&gt;set&lt;/SPAN&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;The contract (as defined by the service) has a constructor to make it easy (for the service) to construct this object, however this constructor is never sent over the wire. When a client consumes this contract (by adding a reference to the service), only the data members (and method signatures) are generated (see below). Pay special attention to the fact that this is a &lt;B style="mso-bidi-font-weight: normal"&gt;partial&lt;/B&gt; class, which will be useful later on for the client.&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[System.Runtime.Serialization.&lt;SPAN style="COLOR: #2b91af"&gt;DataContractAttribute&lt;/SPAN&gt;(Name=&lt;SPAN style="COLOR: #a31515"&gt;"LatLongLocation"&lt;/SPAN&gt;, Namespace=&lt;SPAN style="COLOR: #a31515"&gt;"http://schemas.datacontract.org/2004/07/PresenceService"&lt;/SPAN&gt;)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[System.&lt;SPAN style="COLOR: #2b91af"&gt;SerializableAttribute&lt;/SPAN&gt;()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;LatLongLocation&lt;/SPAN&gt; : &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt;, System.Runtime.Serialization.&lt;SPAN style="COLOR: #2b91af"&gt;IExtensibleDataObject&lt;/SPAN&gt;, System.ComponentModel.&lt;SPAN style="COLOR: #2b91af"&gt;INotifyPropertyChanged&lt;/SPAN&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;[System.Runtime.Serialization.&lt;SPAN style="COLOR: #2b91af"&gt;OptionalFieldAttribute&lt;/SPAN&gt;()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; LatitudeField;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;[System.Runtime.Serialization.&lt;SPAN style="COLOR: #2b91af"&gt;OptionalFieldAttribute&lt;/SPAN&gt;()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; LongitudeField;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;[System.Runtime.Serialization.&lt;SPAN style="COLOR: #2b91af"&gt;DataMemberAttribute&lt;/SPAN&gt;()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; Latitude {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;get&lt;/SPAN&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.LatitudeField;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;set&lt;/SPAN&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; ((&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.LatitudeField.Equals(&lt;SPAN style="COLOR: blue"&gt;value&lt;/SPAN&gt;) != &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.LatitudeField = &lt;SPAN style="COLOR: blue"&gt;value&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.RaisePropertyChanged(&lt;SPAN style="COLOR: #a31515"&gt;"Latitude"&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;[System.Runtime.Serialization.&lt;SPAN style="COLOR: #2b91af"&gt;DataMemberAttribute&lt;/SPAN&gt;()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; Longitude {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;get&lt;/SPAN&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.LongitudeField;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;set&lt;/SPAN&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; ((&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.LongitudeField.Equals(&lt;SPAN style="COLOR: blue"&gt;value&lt;/SPAN&gt;) != &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.LongitudeField = &lt;SPAN style="COLOR: blue"&gt;value&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.RaisePropertyChanged(&lt;SPAN style="COLOR: #a31515"&gt;"Longitude"&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;The client wants to consume the &lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocation&lt;/SPAN&gt; contract. The client is a program running on a laptop with a GPS sensor. It can use the Windows 7 location platform to get the current location and then send it to the Azure service. The location platform returns data as a &lt;SPAN style="COLOR: #2b91af; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocationReport&lt;/SPAN&gt; and this needs to be converted into a &lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocation&lt;/SPAN&gt; so the service can consume it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;The client program has added a reference to the Azure service. The service metadata is downloaded when adding a reference using Visual Studio and the contract is generated from it. To the client code, the following &lt;B style="mso-bidi-font-weight: normal"&gt;partial&lt;/B&gt; class is added as a convenience to construct &lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocation&lt;/SPAN&gt; objects. &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// The LatLongLocation type is defined by the Presence Service, but &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// the generated reference to the service only contains data members (by design).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// This adds a new type of constructor to use with data from &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// the Win7 location platform.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;partial&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;LatLongLocation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; LatLongLocation(Windows7.Location.&lt;SPAN style="COLOR: #2b91af"&gt;LatLongLocationReport&lt;/SPAN&gt; report)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Latitude = report.Latitude;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Longitude = report.Longitude;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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 style="COLOR: blue"&gt;public&lt;/SPAN&gt; LatLongLocation(&lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; latitude, &lt;SPAN style="COLOR: blue"&gt;double&lt;/SPAN&gt; longitude)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Latitude = latitude;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Longitude = longitude;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; 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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;BR style="mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;(Note that the &lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocation&lt;/SPAN&gt; (latitude, longitude) constructor is duplicated from the service definition out of necessity and is only added as a convenience for the client-side code. In fact the client may not even be aware that the same constructor ever existed on the service-side).&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;This shows a client can add additional local functionality (&lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocationReport&lt;/SPAN&gt;) to the service-side defined contract (&lt;SPAN style="FONT-FAMILY: consolas; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;LatLongLocation&lt;/SPAN&gt;). The functionality added on the client side won’t be sent over the wire and affect the service either. In addition, if the generated contract ever needs to be regenerated, it won’t wipe out the additional code added on the client-side. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9869007" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/.NET+Services/default.aspx">.NET Services</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Adding a service reference for non-http bindings</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/18/adding-a-service-reference-for-non-http-bindings.aspx</link><pubDate>Tue, 18 Aug 2009 10:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868747</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9868747.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9868747</wfw:commentRss><description>&lt;P&gt;In Visual Studio it’s easy to add (or discover) a service that uses an http binding. What about adding a reference for some other binding (e.g. a TCP binding) that uses the .NET Service Bus? It’s easy – just add a reference to the MEX endpoint. 
&lt;P&gt;For example, a reference may look like “sb://solutionname.servicebus.windows.net/ServiceName/mex”&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868747" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/.NET+Services/default.aspx">.NET Services</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Debugging FaultException: authN failed: ‘…’ of PasswordCredential</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/17/debugging-faultexception-authn-failed-of-passwordcredential.aspx</link><pubDate>Mon, 17 Aug 2009 10:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868745</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9868745.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9868745</wfw:commentRss><description>&lt;P&gt;Ever see “FaultException: authN failed: ‘…’ of PasswordCredential” when trying to call a method that uses Windows Azure and the Access Control Service? The issue is simply that the password is not correct. 
&lt;P&gt;For example, here’s a snippet of a client trying to call a method in a Windows Azure service (“MyEndpoint”), which will throw the FaultException. (Assume that my solution name is “PineCreek”, and my Live Id account for the ACS control panel is &lt;A href="mailto:timber@example.com" mce_href="mailto:timber@example.com"&gt;timber@example.com&lt;/A&gt;).&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;ServiceClient proxy = new ServiceClient("MyEndpoint"); &lt;BR&gt;proxy.ClientCredentials.UserName.UserName = "PineCreek"; &lt;BR&gt;proxy.ClientCredentials.UserName.Password = "badpassword"; &lt;BR&gt;proxy.DoMethod(); // this will throw FaultException: authN failed &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;As shown, the the wrong password was entered. The user name and password used here is the same as the .NET Services solution name and password (which is also different than the Live ID used to log in to the Access Control Service control panel). 
&lt;P&gt;The fixed code is as follows:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;ServiceClient proxy = new ServiceClient("MyEndpoint"); &lt;BR&gt;proxy.ClientCredentials.UserName.UserName = "PineCreek"; &lt;BR&gt;proxy.ClientCredentials.UserName.Password = "ValidPassword"; &lt;BR&gt;proxy.DoMethod(); // this will now succeed&lt;/BLOCKQUOTE&gt;
&lt;P&gt;(Again, this also shows that the Live Id account doesn’t get used in the code). 
&lt;P&gt;Note: the Access Control Service credential management page is at &lt;A href="https://accesscontrol.ex.azure.microsoft.com/ManageAccount.aspx" mce_href="https://accesscontrol.ex.azure.microsoft.com/ManageAccount.aspx"&gt;https://accesscontrol.ex.azure.microsoft.com/ManageAccount.aspx&lt;/A&gt; 
&lt;P&gt;For reference, the exception is as follows: &lt;BR&gt;System.ServiceModel.FaultException was unhandled &lt;BR&gt;Message="authN failed: 'PineCreek' of PasswordCredential (#6a4d0ffb-4c3b-1cd8-d284-11660ae4cb08)" &lt;BR&gt;Source="mscorlib" &lt;BR&gt;Action="&lt;A href="http://www.w3.org/2005/08/addressing/soap/fault" mce_href="http://www.w3.org/2005/08/addressing/soap/fault"&gt;http://www.w3.org/2005/08/addressing/soap/fault&lt;/A&gt;" &lt;BR&gt;StackTrace: &lt;BR&gt;Server stack trace: &lt;BR&gt;at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout) &lt;BR&gt;at System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetTokenCore(TimeSpan timeout) &lt;BR&gt;at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868745" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/Access+Control+Service/default.aspx">Access Control Service</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/.NET+Services/default.aspx">.NET Services</category></item><item><title>Debugging FaultException: matched scope not found (Access Control Service)</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/14/debugging-faultexception-matched-scope-not-found-access-control-service.aspx</link><pubDate>Fri, 14 Aug 2009 10:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868735</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9868735.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9868735</wfw:commentRss><description>&lt;P&gt;FaultException: matched scope not found: applies-to-address is ‘…’ 
&lt;P&gt;This can occur when trying to use a client that uses a service that uses the Access Control Service. The following snippet shows the code around the exception: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;ServiceClient proxy = new ServiceClient("CalculatorEndpoint"); &lt;BR&gt;proxy.ClientCredentials.UserName.UserName = "user"; &lt;BR&gt;proxy.ClientCredentials.UserName.Password = "pass"; &lt;BR&gt;proxy.DoSomething(); // exception occurs here &lt;/&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The issue is that the service that you’re writing still needs to be set up with the Access Control Service. The Access Control Service needs to know the “scope”, or address of the service for which the credentials apply. 
&lt;P&gt;For example, if a service is hosted at &lt;A href="http://example.com/MyService" mce_href="http://example.com/MyService"&gt;http://example.com/MyService&lt;/A&gt;, then the scope is simply “&lt;A href="http://example.com/MyService" mce_href="http://example.com/MyService"&gt;http://example.com/MyService&lt;/A&gt;”. The address can even be your local machine (e.g. your dev machine), if that’s where the service is deployed (for example, “&lt;A href="http://localhost:58260/Service.svc/ws" mce_href="http://localhost:58260/Service.svc/ws"&gt;http://localhost:58260/Service.svc/ws&lt;/A&gt;”). 
&lt;P&gt;Scopes can be set via the Access Control Service website at &lt;A href="https://accesscontrol.ex.azure.microsoft.com/ManageScopes.aspx" mce_href="https://accesscontrol.ex.azure.microsoft.com/ManageScopes.aspx"&gt;https://accesscontrol.ex.azure.microsoft.com/ManageScopes.aspx&lt;/A&gt; 
&lt;P&gt;(Scopes can be set programmatically – see the Management\AtomClient sample in the .NET Services SDK for an excellent example. On my machine it’s located at C:\Program Files\Microsoft .NET Services SDK (July 2009 CTP)\Samples\AccessControl\ExploringFeatures\Management\AtomClient\CS35 ) 
&lt;P&gt;From the Access Control Service management page: 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image001_2.png" mce_href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image001_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image001 border=0 alt=clip_image001 src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image001_thumb.png" width=646 height=223 mce_src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image001_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;First add a new scope by going to the Scopes page in the Access Control Service and clicking “Add Scope”. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image002_2.png" mce_href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image002_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image002 border=0 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image002_thumb.png" width=628 height=401 mce_src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image002_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;Add the scope name and save it. The scope URI is the same as the location of your service. (In this example, the address of the service is “&lt;A href="http://localhost:58260/Service.svc/ws" mce_href="http://localhost:58260/Service.svc/ws"&gt;http://localhost:58260/Service.svc/ws&lt;/A&gt;” so I enter that as the Scope URI). 
&lt;P&gt;Don’t forget to add the encryption certificate if needed, otherwise you’ll see an unhandled “FaultException: cert not found: applies-to-address is 'http://localhost:58260/Service.svc/ws” when trying to call a method on the proxy. 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image003_2.png" mce_href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image003_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image003 border=0 alt=clip_image003 src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image003_thumb.png" width=643 height=237 mce_src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image003_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;I’ve been using the certificate that comes with the .NET Services SDK 
&lt;P&gt;(on my machine it is located at C:\Program Files\Microsoft .NET Services SDK (July 2009 CTP)\Samples\AccessControl\GettingStarted\UserNamePasswordCalculatorService\CS35\Utils) 
&lt;P&gt;When done, the scopes for your solution will list the newly-added scope 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image004_2.png" mce_href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image004_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=clip_image004 border=0 alt=clip_image004 src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image004_thumb.png" width=642 height=272 mce_src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DebuggingFaultExceptionmatchedscopenotfo_B68F/clip_image004_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;Note that once the service has been deployed to the cloud and has a public address that a new scope will need to be added to match the new address of the deployment. 
&lt;P&gt;That’s it! 
&lt;P&gt;For reference, the exception is as follows: &lt;BR&gt;Error &lt;BR&gt;System.ServiceModel.FaultException was unhandled &lt;BR&gt;Message="matched scope not found: applies-to-address is 'http://localhost:58260/Service.svc/ws' (#e2d1d0ef-df30-6681-e1ca-d4cd48e3cb08)" &lt;BR&gt;Source="mscorlib" &lt;BR&gt;Action="&lt;A href="http://www.w3.org/2005/08/addressing/soap/fault" mce_href="http://www.w3.org/2005/08/addressing/soap/fault"&gt;http://www.w3.org/2005/08/addressing/soap/fault&lt;/A&gt;" &lt;BR&gt;StackTrace: &lt;BR&gt;Server stack trace: &lt;BR&gt;at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout) &lt;BR&gt;at System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetTokenCore(TimeSpan timeout) &lt;BR&gt;at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout) &lt;BR&gt;[etc] &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868735" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/Access+Control+Service/default.aspx">Access Control Service</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/.NET+Services/default.aspx">.NET Services</category></item><item><title>Dumping logs from the Azure Development Fabric</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/13/dumping-logs-from-the-azure-development-fabric2.aspx</link><pubDate>Thu, 13 Aug 2009 10:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868713</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9868713.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9868713</wfw:commentRss><description>&lt;DIV class=ExternalClass2A5F23CC05F64971982187F8BD7C69DB&gt;
&lt;P&gt;How to view Azure logs (&lt;SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;RoleManager&lt;/SPAN&gt;.WriteToLog&lt;/SPAN&gt; ) when running under the Development Fabric: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV&gt;Open the Development Fabric and get the deployment id. For example, if the deployment title reads "deployment(26)", the id is "26".&amp;nbsp; &lt;A href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DumpinglogsfromtheAzureDevelopmentFabric_B1B5/devfabric_2.png" mce_href="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DumpinglogsfromtheAzureDevelopmentFabric_B1B5/devfabric_2.png"&gt;&lt;BR&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=devfabric border=0 alt=devfabric src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DumpinglogsfromtheAzureDevelopmentFabric_B1B5/devfabric_thumb.png" width=652 height=492 mce_src="http://blogs.msdn.com/blogfiles/alexdan/WindowsLiveWriter/DumpinglogsfromtheAzureDevelopmentFabric_B1B5/devfabric_thumb.png"&gt;&lt;/A&gt; &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;To dump the logs to an xml file, from a command prompt run csrun.exe with the dumplogs flag &lt;/DIV&gt;
&lt;OL&gt;
&lt;LI&gt;For example, "csrun /dumplogs:26;." will dump the logs for the deployment (26) into the current directory (.) 
&lt;LI&gt;
&lt;DIV&gt;A log file will be created for each role. For example: &lt;/DIV&gt;
&lt;OL&gt;
&lt;LI&gt;deployment(26).PresenceCloud.PresenceService.0.xml 
&lt;LI&gt;deployment(26).PresenceCloud.PresenceService_Worker.0.xml &lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;
&lt;DIV&gt;The log contains XML where each &amp;lt;Event&amp;gt; tag corresponds to the calls made by RoleManager.WriteToLog(). For example, the contents of the log look like: &lt;/DIV&gt;&lt;BR&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt; &lt;BR&gt;&amp;lt;ServiceDiagnostics &lt;BR&gt;Service="deployment(26)" &lt;BR&gt;ServiceDeployment="deployment(26)" &lt;BR&gt;Role="PresenceService" &lt;BR&gt;RoleInstance="deployment(26).PresenceCloud.PresenceService.0"&amp;gt; &lt;BR&gt;&amp;lt;Events&amp;gt; &lt;BR&gt;&amp;lt;Event &lt;BR&gt;Time="2009-08-13T19:03:11.7620594Z" &lt;BR&gt;Name="Information" &lt;BR&gt;Severity="Info" &lt;BR&gt;ThreadId="5676"&amp;gt; &lt;BR&gt;&amp;lt;EventProperty &lt;BR&gt;Name="message"&amp;gt;Entered Constructor()&amp;lt;/EventProperty&amp;gt; &lt;BR&gt;&amp;lt;/Event&amp;gt; &lt;BR&gt;&amp;lt;Event &lt;BR&gt;Time="2009-08-13T19:03:11.7645300Z" &lt;BR&gt;Name="Information" &lt;BR&gt;Severity="Info" &lt;BR&gt;ThreadId="5676"&amp;gt; &lt;BR&gt;&amp;lt;EventProperty &lt;BR&gt;Name="message"&amp;gt;Returned from Constructor()&amp;lt;/EventProperty&amp;gt; &lt;BR&gt;&amp;lt;/Event&amp;gt; &lt;BR&gt;&amp;lt;/Events&amp;gt; &lt;BR&gt;&amp;lt;/ServiceDiagnostics&amp;gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;OL&gt;&lt;/OL&gt;
&lt;P&gt;Note: csrun.exe is a tool provided by the Windows Azure SDK. By default it is installed to C:\Program Files\Windows Azure SDK\v1.0\bin\csrun.exe &lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868713" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Viewing the contents of a MUI file</title><link>http://blogs.msdn.com/alexdan/archive/2009/08/01/viewing-the-contents-of-a-mui-file.aspx</link><pubDate>Sat, 01 Aug 2009 13:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868626</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9868626.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9868626</wfw:commentRss><description>&lt;DIV&gt;Need to look at the strings in a MUI file? Here's an easy was to do it with Visual Studio:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;EM&gt;In the VC file.open dialog boxes there is an "open as" or "open with" drop down.&lt;BR&gt;Select "resources" or "resource editor".&lt;BR&gt;It's also trivial to write a custom dumper yourself starting with&amp;nbsp; the EnumResource APIs...&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;EM&gt;&lt;/EM&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;(From Michael Kaplan's blog at &lt;A href="http://blogs.msdn.com/michkap/archive/2007/10/05/5284413.aspx"&gt;http://blogs.msdn.com/michkap/archive/2007/10/05/5284413.aspx&lt;/A&gt;&amp;nbsp;)&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/MUI/default.aspx">MUI</category></item><item><title>Investigation: Text Service Framework (TSF) and Keyboards</title><link>http://blogs.msdn.com/alexdan/archive/2009/07/31/investigation-text-service-framework-tsf-and-keyboards.aspx</link><pubDate>Fri, 31 Jul 2009 21:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9869033</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9869033.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9869033</wfw:commentRss><description>&lt;h4&gt;Overview&lt;/h4&gt; &lt;p&gt;Windows has an entire API for text input and interaction.  &lt;p&gt;The Text Services Framework (TSF) is a COM framework and API that supports advanced text input and text processing. It is designed to offer advanced language and word processing features to applications. It supports features such as multilingual support, keyboard drivers, handwriting recognition, speech recognition, as well as spell checking and other text and natural language processing functions.  &lt;h4&gt;Architecture&lt;/h4&gt; &lt;p&gt;The diagram is below but please see the details at &lt;a href="http://msdn.microsoft.com/en-us/library/ms538050(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms538050(VS.85).aspx&lt;/a&gt;  &lt;p&gt;&lt;img alt="Architecture of Text Services Framework" src="http://i.msdn.microsoft.com/ms538050.TSF_Arch(en-us,VS.85).gif" width="178" height="304"&gt;  &lt;h4&gt;Using TSF&lt;/h4&gt; &lt;p&gt;TSF can be implemented as an app or as a text service.  &lt;p&gt;For a keyboard, we’d be writing a TSF text service.  &lt;ul&gt; &lt;li&gt;A text service can obtain text from, and write text to, an application. A text service can also associate data and properties with a block of text. A text service is implemented as a COM in-proc server that registers itself with TSF. When registered, the user interacts with the text service using the language bar or keyboard shortcuts. Multiple text services can be installed.  &lt;li&gt;TSF-aware apps can provide the input context or scope (e.g. “url”, “name”, “address”)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;On the app side, extensibility is done by the app by implementing interfaces and registering them with TSF.  &lt;p&gt;TSF can read the current "context" from the application, which . The "context" is the characters on the screen around the insertion point.  &lt;p&gt;TSF and Managed Code: &lt;br&gt;Difficult since text service gets loaded into arbitrary processes, so they need to be small and lightweight, among other reasons. &lt;a href="http://blogs.msdn.com/tsfaware/archive/2007/04/19/tsf-and-managed-code.aspx"&gt;http://blogs.msdn.com/tsfaware/archive/2007/04/19/tsf-and-managed-code.aspx&lt;/a&gt;  &lt;p&gt;Legacy apps: &lt;br&gt;TSF has a table of controls for legacy apps that describes the input scope (e.g. the address bar control in IE5 takes a “url”)  &lt;p&gt;Other notes: &lt;br&gt;The Tablet PC TIP uses TSF to provide text to apps.  &lt;h4&gt;References&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;TSF on MSDN: &lt;a href="http://msdn.microsoft.com/en-us/library/ms629032(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms629032(VS.85).aspx&lt;/a&gt;  &lt;li&gt;Text Services Framework blog: &lt;a href="http://blogs.msdn.com/tsfaware/Default.aspx?p=2"&gt;http://blogs.msdn.com/tsfaware/Default.aspx?p=2&lt;/a&gt;  &lt;li&gt;Walkthrough on making an app work with TSF: &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc187238.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc187238.aspx&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9869033" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Win32/default.aspx">Win32</category></item><item><title>Access Control Service and UserNamePasswordCalculatorService</title><link>http://blogs.msdn.com/alexdan/archive/2009/02/20/access-control-service-and-usernamepasswordcalculatorservice.aspx</link><pubDate>Fri, 20 Feb 2009 21:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9436392</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9436392.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9436392</wfw:commentRss><description>&lt;P&gt;Having problems getting the Access Control Service UserNamePasswordCalculatorService sample to work due to certificate problems? The issue may be that InstallCerts.bat may not be installing the certificates correctly. See the following thread for how to fix it:&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://social.msdn.microsoft.com/Forums/en-US/netservices/thread/1d09fc5e-fbbc-4e98-b14b-ab69c0d9e1c4/" mce_href="http://social.msdn.microsoft.com/Forums/en-US/netservices/thread/1d09fc5e-fbbc-4e98-b14b-ab69c0d9e1c4/"&gt;http://social.msdn.microsoft.com/Forums/en-US/netservices/thread/1d09fc5e-fbbc-4e98-b14b-ab69c0d9e1c4/&lt;/A&gt; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Also, if you're using a beta version of IE8 with Vista and get a blank screen when associating a CardSpace card with your account, see this thread on showing the site in compatibility mode:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://social.msdn.microsoft.com/Forums/en-US/netservices/thread/30ba7abe-5808-4acc-9d10-20c585b8f3e2/"&gt;http://social.msdn.microsoft.com/Forums/en-US/netservices/thread/30ba7abe-5808-4acc-9d10-20c585b8f3e2/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9436392" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/Access+Control+Service/default.aspx">Access Control Service</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/.NET+Services/default.aspx">.NET Services</category></item><item><title>Media Center Gadgets Video Review</title><link>http://blogs.msdn.com/alexdan/archive/2008/12/14/media-center-gadgets-video-review.aspx</link><pubDate>Sun, 14 Dec 2008 03:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9212345</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9212345.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9212345</wfw:commentRss><description>
&lt;p&gt;jk on the Run points to a video review of the Media Center gadgets for Windows SideShow:&lt;a href="http://blogs.msdn.com/controlpanel/blogs/" mce_href="http://blogs.msdn.com/controlpanel/blogs/"&gt;http://www.jkontherun.com/2008/11/windows-mobil-1.html&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Have feedback about the gadgets? Please get in touch and let us know.&lt;/p&gt;

&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9212345" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/SideShow/default.aspx">SideShow</category></item><item><title>Automatically implementing classes in Visual Studio 2008</title><link>http://blogs.msdn.com/alexdan/archive/2008/11/10/automatically-implementing-classes-in-visual-studio-2008.aspx</link><pubDate>Mon, 10 Nov 2008 14:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9025455</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9025455.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9025455</wfw:commentRss><description>&lt;table dir="None" width="100%" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="ms-PostTitle"&gt;&lt;a href="http://my/personal/alexdan/Blog/Lists/Posts/Post.aspx?ID=27" mce_href="http://my/personal/alexdan/Blog/Lists/Posts/Post.aspx?ID=27"&gt;Automatically implementing classes in Visual Studio 2008&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="ms-PostBody"&gt;
&lt;div&gt;
&lt;div class="ExternalClassD49D34B924EC45848725DEE8838E49D2"&gt;
&lt;p&gt;VS2008 Tip:&lt;/p&gt;
&lt;p&gt;Automatically implement abstract interfaces&lt;/p&gt;
&lt;p&gt;1) Write derived class&lt;br&gt;public class DerivedClass : BaseClass&lt;br&gt;{&lt;br&gt;}&lt;/p&gt;
&lt;p&gt;2) Right click on "BaseClass" and select "Implement Abstract Class"&lt;/p&gt;
&lt;p&gt;3) Fill in your code&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9025455" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Binding to a MarkupExtension that Returns a Binding</title><link>http://blogs.msdn.com/alexdan/archive/2008/10/30/binding-to-a-markupextension-that-returns-a-binding.aspx</link><pubDate>Fri, 31 Oct 2008 01:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9025446</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9025446.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9025446</wfw:commentRss><description>&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Is it possible to bind properties to a MarkupExtension that returns a Binding? Yes! The MarkupExtension just needs to return a BindingExpression by returning binding.ProvideValue(serviceProvider):&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;SPAN style="COLOR: #2b91af"&gt;MarkupExtensionReturnType&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="BACKGROUND: yellow; COLOR: #2b91af; mso-highlight: yellow"&gt;BindingExpression&lt;/SPAN&gt;))]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;PhysicalLengthMarkupExtension&lt;/SPAN&gt; : &lt;SPAN style="COLOR: #2b91af"&gt;MarkupExtension&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; ProvideValue(&lt;SPAN style="COLOR: #2b91af"&gt;IServiceProvider&lt;/SPAN&gt; serviceProvider)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;Binding&lt;/SPAN&gt; physicalLengthBinding = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Binding&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; physicalLengthBinding.Source = _dpiProvider;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; physicalLengthBinding.Path = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;PropertyPath&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #a31515"&gt;"DPI"&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; physicalLengthBinding.Converter = _dpiConverter;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; physicalLengthBinding.ConverterParameter = _length;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; physicalLengthBinding&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;.ProvideValue(serviceProvider);&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;Which enables the ability to write&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 9pt"&gt; Width&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;Markup&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;PhysicalLengthMarkupExtension&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt; 3&lt;SPAN style="COLOR: blue"&gt;cm}"/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;instead of the more verbose and redundant &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;TextBlock.Width&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;Binding&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;&amp;nbsp;Source&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt; DpiProvider&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;}"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;&amp;nbsp;Path&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DPI"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;&amp;nbsp;Converter&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt; DpiConverter&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;}"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;&amp;nbsp;ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="2in"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;TextBlock.Width&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9pt"&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9pt"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT color=#000000 size=3 face=Calibri&gt;(Btw, I know that WPF takes DPI into account when doing layout calculations but let’s just use it as an example here.)&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9025446" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Media Center Gadgets for SideShow released!</title><link>http://blogs.msdn.com/alexdan/archive/2008/10/21/media-center-gadgets-for-sideshow-released.aspx</link><pubDate>Tue, 21 Oct 2008 23:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9010422</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/9010422.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=9010422</wfw:commentRss><description>&lt;P&gt;We've just relased the Windows Media Center gadgets for SideShow!&lt;/P&gt;
&lt;P&gt;There are four gadgets – TV, Music, Pictures + Videos, and Now Playing – that let you browse and control your Media Center PC from any SideShow remote control or device, or even a Windows Mobile phone (if it has the platform installed). The gadgets let you browse the TV guide and details, recorded shows, your photos, music (with cover art), and have playback controls to start/stop/record/etc media.&lt;/P&gt;
&lt;P&gt;It was a pleasure to work with the SideShow team on this project. Thanks to everyone in the community for your feedback via Microsoft Connect and community sites. We read every comment and used them to make the gadgets better or just used as feedback for the future.&lt;/P&gt;
&lt;P&gt;Download locations: &lt;BR&gt;&lt;A href="http://gallery.live.com/LiveItemDetail.aspx?li=f59c1163-2fa4-4899-a9a3-5955892ae7ee" mce_href="http://gallery.live.com/LiveItemDetail.aspx?li=f59c1163-2fa4-4899-a9a3-5955892ae7ee"&gt;Install the 32-bit version&lt;/A&gt; &lt;BR&gt;&lt;A href="http://gallery.live.com/LiveItemDetail.aspx?li=d9701551-677e-4cac-90fd-0060e8c51510" mce_href="http://gallery.live.com/LiveItemDetail.aspx?li=d9701551-677e-4cac-90fd-0060e8c51510"&gt;Install the 64-bit version&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;For more details, please see the SideShow blog at &lt;A href="http://blogs.msdn.com/sideshow/archive/2008/10/21/media-center-gadgets-for-sideshow-released-available-on-the-windows-live-gallery.aspx" mce_href="http://blogs.msdn.com/sideshow/archive/2008/10/21/media-center-gadgets-for-sideshow-released-available-on-the-windows-live-gallery.aspx"&gt;http://blogs.msdn.com/sideshow/archive/2008/10/21/media-center-gadgets-for-sideshow-released-available-on-the-windows-live-gallery.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9010422" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexdan/archive/tags/SideShow/default.aspx">SideShow</category><category domain="http://blogs.msdn.com/alexdan/archive/tags/Media+Center/default.aspx">Media Center</category></item><item><title>Hidden Forms Windows</title><link>http://blogs.msdn.com/alexdan/archive/2008/08/06/hidden-forms-windows.aspx</link><pubDate>Wed, 06 Aug 2008 02:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8835270</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/8835270.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=8835270</wfw:commentRss><description>&lt;P&gt;Trying to hide your forms window? Here are a couple sample solutions:&lt;/P&gt;
&lt;P&gt;One cumbersome solution is to override WndProc, listen for any window position changing messages (which includes z-order), and then not pass any show window flag on.&lt;/P&gt;
&lt;P&gt;public class MyForm : Form&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyForm()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Ensure that this is a hidden window&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.WindowState = FormWindowState.Minimized;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowInTaskbar = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.FormBorderStyle = FormBorderStyle.None;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void WndProc(ref Message m)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const uint WM_WINDOWPOSCHANGING = 0x0046; // WinUser.h&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const uint SWP_SHOWWINDOW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x0040; // WinUser.h&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m.Msg == WM_WINDOWPOSCHANGING)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Ensure the window is hidden by consuming any "show window" requests&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // (which can happen when pressing alt+tab)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Win32Api.WINDOWPOS windowPos = (Win32Api.WINDOWPOS)Marshal.PtrToStructure(m.LParam, typeof(Win32Api.WINDOWPOS));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; windowPos.flags &amp;amp;= unchecked(~SWP_SHOWWINDOW);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.StructureToPtr(windowPos, m.LParam, true);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.Result = (IntPtr)0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.WndProc(ref m);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;The better solution is to simply make the window not visible after it finishes loading:&lt;/P&gt;
&lt;P mce_keep="true"&gt;public class MyForm : Form&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyForm()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Ensure that this is a hidden window&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.WindowState = FormWindowState.Minimized;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ShowInTaskbar = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.FormBorderStyle = FormBorderStyle.None;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Load += new EventHandler(MyForm_Load);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void MyForm_Load(object sender, EventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Visible = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8835270" width="1" height="1"&gt;</description></item><item><title>Using IPC Channels and with Multiple Users</title><link>http://blogs.msdn.com/alexdan/archive/2008/08/02/using-ipc-channels.aspx</link><pubDate>Sat, 02 Aug 2008 02:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8803111</guid><dc:creator>alexdan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/alexdan/comments/8803111.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexdan/commentrss.aspx?PostID=8803111</wfw:commentRss><description>&lt;P&gt;When I'm working with a new technology or concept, I find that an ultra simple, bare bones code sample or app is one of the most useful things to use for getting started. When it comes to understanding how to work with IPC channels (named pipes), the best example I've see is at Ohad's blog at &lt;A href="http://weblogs.asp.net/israelio/archive/2005/01/04/346180.aspx" mce_href="http://weblogs.asp.net/israelio/archive/2005/01/04/346180.aspx"&gt;http://weblogs.asp.net/israelio/archive/2005/01/04/346180.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It is mentioned that config files can be used instead of manually coding up everything. In some cases writing up the code is necessary. For example, the project I'm working on can be run by multiple users and each user has both a IPC client as well as an app domain containing the IPC server. This means that multiple named pipes need to be created, and the channel names must be unique per user so that multiple users can run the program. (If the same pipe name is used for everyone then an AccessDenied remoting exception will be generated).&lt;/P&gt;
&lt;P&gt;From MSDN: "You cannot register a channel that listens on a specific port more than once. Even though channels are registered on a per-application-domain basis, different application domains on the same machine cannot register the same channel listening on the same port." &lt;A href="http://msdn.microsoft.com/en-us/library/dkfd3wha(VS.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dkfd3wha(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/dkfd3wha(VS.80).aspx&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;To keep the pipe names unique per user, I simply add the current user domain and name. For example, &lt;/P&gt;
&lt;P&gt;IDictionary props = new Hashtable();&lt;BR&gt;props["portName"] = "MyAppClientPort" + Environment.UserDomainName + Environment.UserName;&lt;BR&gt;props["name"] = "MyAppClientName" + Environment.UserDomainName + Environment.UserName;&lt;/P&gt;
&lt;P&gt;IpcChannel ipcChannel = new IpcChannel(props, null, null);&lt;BR&gt;ChannelServices.RegisterChannel(ipcChannel, false);&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8803111" width="1" height="1"&gt;</description></item></channel></rss>