<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/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>Just code - Tamir Khason : WCF</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx</link><description>Tags: WCF</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>New year – new blog or how to migrate Community Server to any other engine, supports XML-RPC</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2009/01/01/new-year-new-blog-or-how-to-migrate-community-server-to-any-other-engine-supports-xml-rpc.aspx</link><pubDate>Fri, 02 Jan 2009 02:33:04 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:205248</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Please update your bookmarks, because the new url of this blog is &lt;a href="http://khason.net/"&gt;http://khason.net/&lt;/a&gt; (you have not update RSS feeds, it will be done automatically). Why I did it? Why I decided to go to “stand-alone”… Well. there are some reasons. Generally, I do not want to explain all those here, but trust me, there are some. The main reason is, that there is no responsible person in charge for this blog platform in Microsoft Israel. This why, if your blog is popular and you have a respect to your blog visitors, you cannot host it here… Take a look into new comments notifications in my inbox. Would you answer your readers with such “small amount” of SPAM and capcha, that cannot be fixed already for three years in this platform? This how my inbox looks like for last three years. So now, you should not ask me, why I not answered your email or comments. Aren’t you? :)&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Capture" border="0" alt="Capture" src="http://blogs.microsoft.co.il/blogs/tamir/Capture_1D7350A7.jpg" width="354" height="397" /&gt; &lt;/p&gt;  &lt;p&gt;Currently, all comments in this blog are disabled, so if you want to comment, please use new url of posts (this will appear shortly in the beginning of each post). Also, this post will not be syndicated in RSS.&lt;/p&gt;  &lt;p&gt;So, this post is the last. I loved this platform, and loved people started it. But, unfortunately, it seemed, that bloggers community is not important enough for new platform managers. &lt;/p&gt;  &lt;p&gt;Also, If you want to learn &lt;a target="_blank" href="http://khason.net/dev/how-to-migrate-from-cs2007-to-wordpress-movable-type-or-any-other-blog-engine-supports-xml-rpc-with-c/"&gt;how to use C# and XML-RCP to migrate from CS2007, used in this platform, visit my new home&lt;/a&gt; :)&lt;/p&gt;  &lt;p&gt;Have a great year and, as always, be good people. This post marked with all possible tags automatically. Sorry.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=205248" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/soft/default.aspx">soft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/blogging+tools/default.aspx">blogging tools</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/tutorial/default.aspx">tutorial</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF+crossbow/default.aspx">WPF crossbow</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/source/default.aspx">source</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Mobile/default.aspx">Mobile</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/help/default.aspx">help</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+Gadgets/default.aspx">Windows Gadgets</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/thoughts/default.aspx">thoughts</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/tools/default.aspx">tools</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/events/default.aspx">events</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/demos/default.aspx">demos</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/download/default.aspx">download</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/jobs/default.aspx">jobs</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Accessibility/default.aspx">Accessibility</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Blogging+rules/default.aspx">Blogging rules</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/blogging+general/default.aspx">blogging general</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/fun/default.aspx">fun</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista+Battery+Saver/default.aspx">Vista Battery Saver</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/SkyDrive/default.aspx">SkyDrive</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+Live+Writer/default.aspx">Windows Live Writer</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+Live/default.aspx">Windows Live</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Dell/default.aspx">Dell</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DevAcademy2/default.aspx">DevAcademy2</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF+quiz/default.aspx">WPF quiz</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/x64/default.aspx">x64</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/SVG/default.aspx">SVG</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/XPS/default.aspx">XPS</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/TechedIsrael2008/default.aspx">TechedIsrael2008</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/teched/default.aspx">teched</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/XNA/default.aspx">XNA</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/PLINQ/default.aspx">PLINQ</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Micro+Framework/default.aspx">Micro Framework</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/SAP/default.aspx">SAP</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/XLINQ/default.aspx">XLINQ</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DirectX/default.aspx">DirectX</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Work+process/default.aspx">Work process</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Linux/default.aspx">Linux</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Mono/default.aspx">Mono</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DevAcademy3/default.aspx">DevAcademy3</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Math/default.aspx">Math</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/GIS/default.aspx">GIS</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Algorithms/default.aspx">Algorithms</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Charity/default.aspx">Charity</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Interop/default.aspx">Interop</category></item><item><title>Programming for Windows 7</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/11/09/programming-for-windows-7.aspx</link><pubDate>Sun, 09 Nov 2008 17:12:38 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:163503</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>3</slash:comments><description>&lt;h3&gt;[This blog was migrated. You will not be able to comment here.&lt;br /&gt;The new URL of this post is &lt;a href="http://khason.net/blog/programming-for-windows-7/"&gt;http://khason.net/blog/programming-for-windows-7/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;Well, Windows 7 is going to be released by the end of next year. This is great news, because it seemed, that Microsoft finally understand how to get the best of Windows Vista and make it to work not only on &lt;a href="http://www.top500.org/"&gt;monster machines&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/ProgrammingforWindows7_10DE0/image_3.png" width="600" height="397" /&gt; &lt;/p&gt; &lt;p&gt;It even works on new brandy my wife&amp;#39;s pinky machine. And if it works there and my wife is happy with it, this OS going to be very impressive.&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/ProgrammingforWindows7_10DE0/image_58bf6973-bdc1-44d9-8649-f24e6255e65f.png" width="529" height="397" /&gt; &lt;/p&gt; &lt;p&gt;But from the other hand, we, as developers should be ready today to developer Windows 7 ready application (by the way, &lt;a target="_blank" href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista+Battery+Saver/default.aspx"&gt;Vista Battery Saver&lt;/a&gt; works for Windows 7 as well as for Windows Vista, in spite of the fact, that power management in Windows 7 was improved dramatically). So let&amp;#39;s start!&lt;/p&gt; &lt;p&gt;First thing we need is to read big &lt;a target="_blank" href="http://code.msdn.microsoft.com/Win7DeveloperGuide/Release/ProjectReleases.aspx"&gt;Windows 7 Developer Guide&lt;/a&gt;. This document will explain most of new features for developers to build applications right. What is includes?&lt;/p&gt; &lt;h3&gt;Windows Driver Kit (WDK) 3.0&lt;/h3&gt; &lt;p&gt;Basically, Windows 7 works with Vista drivers, however, hibernation, power management, networking, PREfast will work much better. You also will have new WMI access for reliability monitors and ACPI. &lt;/p&gt; &lt;h3&gt;Management and deployment&lt;/h3&gt; &lt;p&gt;By default Windows 7 uses PowerShell 2.0 and Windows Installer. For PowerShell it includes enhanced cmdlets to manage Active Directory, IIS, etc. For Windows Installer, you finally can build &amp;quot;chainers&amp;quot; by yourself (the same approach, used for latest deployment of Microsoft products such as &lt;a target="_blank" href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx"&gt;Silverlight&lt;/a&gt;, &lt;a target="_blank" href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Visual+Studio/default.aspx"&gt;Visual Studio 2008 SP1&lt;/a&gt; etc.) Also, you can get advantage by using Windows Filtering Platform (Firewall) and User Account Control (UAC) from inside your application by using new APIs. &lt;/p&gt; &lt;h3&gt;Performance&lt;/h3&gt; &lt;p&gt;The most significant change in Windows 7 for end-user point of view is improved performance. Windows 7 kernel is much smaller, that kernel of Windows Vista. Also it uses specific patterns to decrease background activities on low power, based on system triggers. New user-mode and kernel-mode APIs are used by Windows Drivers Foundation much more efficiently. Also system services are much smarter. For example, DCIA starts only when you connect new hardware. After drivers were installed the service shuts down. The same approach used by domain join, GP changes, new IP fetching etc. Windows 7 knows to run and stop services, based on system events, which decreases average work load and enhances whole system performance. &lt;/p&gt; &lt;h3&gt;Multi-touch gestures and Interia API and used interface in general&lt;/h3&gt; &lt;p&gt;Yes, you can use this API for your applications. Finally we can have more, then just mouse. And it is not only about multiple mouse devices. We can use single finder panning, raw touch input data, internal multitouch ink recognition, which is also supports math. Also it uses build-in MathML export feature. &lt;/p&gt; &lt;p&gt;There are a lot of other enhancements, such as smart bars, windows&amp;#39; stacking, gadget desktop (it does not eat battery as external process anymore), system ribbon menu integration. etc&lt;/p&gt; &lt;h3&gt;Graphics&lt;/h3&gt; &lt;p&gt;Direct 11, new Direct2D, DirectWrite (we can turn text anti-aliasing for small fonts, hurrah!), improved WIC, DX/GDI interoperability on system level with automatic fallback for weak hardware (yes, you should not be worry about it anymore). Also new video and audio format support with &lt;u&gt;human readable interfaces&lt;/u&gt;. Yes, no more DirectDraw hacks. We can use new high level interfaces such as MFPlay to manage playbacks, Source Reader for decoding, Sink Writer for transcoders and re-coding compressions.&lt;/p&gt; &lt;h3&gt;Web and communication&lt;/h3&gt; &lt;p&gt;WCF is inside, as well as distributed routing table for peer-to-peer operations. BranchCache - new technology to reduce WAN traffic and latency. &lt;/p&gt; &lt;p&gt;Also Windows 7 is compatible with &lt;a target="_blank" href="http://www.opensearch.org"&gt;OpenSearch&lt;/a&gt; (I told, that Microsoft does not know to build search engines). Sharepoint integration and environment sensors platform, that can be used either for desktop and web applications. &lt;/p&gt; &lt;p&gt;There are much more features, that makes Windows 7 to pretend to be very good operation system. If you want to learn more about all those Windows 7 new features, I highly advice you to &lt;a target="_blank" href="http://code.msdn.microsoft.com/Win7DeveloperGuide/Release/ProjectReleases.aspx"&gt;download and read this document&lt;/a&gt;. It includes most of new features of new OS with explanations and screenshots to make your learn and understand what can your future application do with all those new features.&lt;/p&gt; &lt;p&gt;Have a nice day and be good people.&lt;/p&gt; &lt;p&gt;BTW, if you have PDC version of Windows 7 and want to unlock it for using of some cool features, &lt;a target="_blank" href="http://channel9.msdn.com/pdc2008/KYN02/"&gt;introduced during keynotes&lt;/a&gt;, it worth &lt;a target="_blank" href="http://www.withinwindows.com/2008/11/02/flashy-windows-7-bits-protected-by-elaborate-scheme-workaround/"&gt;to visit here&lt;/a&gt; and learn how to :)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Download &lt;/strong&gt;&lt;a href="http://code.msdn.microsoft.com/Win7DeveloperGuide"&gt;&lt;strong&gt;Windows 7 Developer Guide&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; and start programming.&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=163503" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/tutorial/default.aspx">tutorial</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/demos/default.aspx">demos</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/download/default.aspx">download</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/blogging+general/default.aspx">blogging general</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista+Battery+Saver/default.aspx">Vista Battery Saver</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/XPS/default.aspx">XPS</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DirectX/default.aspx">DirectX</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>.NET 3.5 SP1 is RTM and available for download</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/08/11/net-3-5-sp1-is-rtm-and-available-for-download.aspx</link><pubDate>Mon, 11 Aug 2008 15:12:48 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:129731</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>3</slash:comments><description>&lt;h3&gt;[This blog was migrated. You will not be able to comment here.&lt;br /&gt;The new URL of this post is &lt;a href="http://khason.net/blog/net-35-sp1-is-rtm-and-available-for-download/"&gt;http://khason.net/blog/net-35-sp1-is-rtm-and-available-for-download/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;For all those who asked, .NET 3.5 SP1 is final and available for download. What’s inside?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ASP.NET Dynamic data&lt;/li&gt;    &lt;li&gt;Core improvements for CLR&lt;/li&gt;    &lt;li&gt;A lot of performance improvements in WPF&lt;/li&gt;    &lt;li&gt;ClickOnce enhancements&lt;/li&gt;    &lt;li&gt;ADO.NET with Data Services and Entity Framework&lt;/li&gt;    &lt;li&gt;LINQ2SQL and Data Provider for SQL Server 2008, that was released last week&lt;/li&gt;    &lt;li&gt;WCF with easier DataContract serialization&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Download it with &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;DisplayLang=en"&gt;Web Installation&lt;/a&gt; or as &lt;a href="http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe"&gt;Full Package&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For more information, please see &lt;a href="http://www.microsoft.com/downloads/info.aspx?na=40&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;u=http%3a%2f%2fgo.microsoft.com%2ffwlink%2f%3fLinkId%3d122089"&gt;Read Me&lt;/a&gt; and &lt;a href="http://www.microsoft.com/downloads/info.aspx?na=40&amp;amp;p=2&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;u=http%3a%2f%2fsupport.microsoft.com%2fkb%2f951847"&gt;KB&lt;/a&gt; about .NET 3.5 SP1 RTM. If you faced with any issue, please provide us with feedback &lt;a href="https://connect.microsoft.com/VisualStudio"&gt;via MS Connect&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=129731" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF+crossbow/default.aspx">WPF crossbow</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/tools/default.aspx">tools</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/download/default.aspx">download</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>How to consume WCF or Webservice from Vista Sidebar gadget by using Silverlight?</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/06/23/how-to-consume-wcf-or-webservice-from-vista-sidebar-gadget-by-using-silverlight.aspx</link><pubDate>Tue, 24 Jun 2008 01:37:10 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:107795</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>7</slash:comments><description>&lt;h3&gt;[This blog was migrated. You will not be able to comment here.&lt;br /&gt;The new URL of this post is &lt;a href="http://khason.net/blog/how-to-consume-wcf-or-webservice-from-vista-sidebar-gadget-by-using-silverlight/"&gt;http://khason.net/blog/how-to-consume-wcf-or-webservice-from-vista-sidebar-gadget-by-using-silverlight/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;The challenge today is really simple. All we have to do is to write &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx"&gt;Silverlight&lt;/a&gt;&amp;#160;&lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+Gadgets/default.aspx"&gt;Vista Sidebar Gadget&lt;/a&gt;, that consumes either &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx"&gt;WCF&lt;/a&gt;, &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/ASP.NET/default.aspx"&gt;ASMX&lt;/a&gt; or &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Web/default.aspx"&gt;REST&lt;/a&gt; based service. Really simple, isn’t it? Let’s start&lt;/p&gt;  &lt;p&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/HowtoconsumeWCForWebservicefromVistaSide_13000/image_b882e2d3-27ca-43d7-8549-cf3f0e48d342.png" width="401" height="103" /&gt; &lt;/p&gt;  &lt;h3&gt;Build server side services&lt;/h3&gt;  &lt;p&gt;We should start from services. This is very straight forward mission. Here the logic I want to implement&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;public string Echo(string input)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return string.Format(&amp;quot;ACK from {0}&amp;quot;, input);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Well, WCF? We should mark service and operation contracts. That’s all&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[ServiceContract(Namespace = &amp;quot;&amp;quot;)]     &lt;br /&gt;public class EchoService      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [OperationContract]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public string Echo(string input)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return string.Format(&amp;quot;ACK from WCF with {0}&amp;quot;, input);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt; }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This does not works. Why? Silverlight knows only consumes ASP.NET compatible (simplified) web services, thus we should add following attribute to the our class attributes collection&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[ServiceContract(Namespace = &amp;quot;&amp;quot;)]     &lt;br /&gt;[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]      &lt;br /&gt;public class EchoService      &lt;br /&gt;{&lt;/p&gt; &lt;/blockquote&gt;  &lt;div&gt;   &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;Now, the service is discoverable and accessible by Silverlight. Great news. Now let’s put it into our shared host. Hmm, we got strange error: “Deploying WCF Services: This collection already contains an address with scheme http.” What the hell is it?&lt;/p&gt;    &lt;p&gt;This is shared hosting problem. Your host provider uses virtual IP and host addresses and has number of different web services, sitting on the same shared host. How to solve it? &lt;/p&gt;    &lt;p&gt;Simple, all you have to do is to specify your own service host factory. Here the example of classes to put into code behind&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;class SLHostFactory : ServiceHostFactory       &lt;br /&gt;{        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SLHost customServiceHost =        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new SLHost(serviceType, new Uri(&amp;quot;[Your URL goes here]&amp;quot;,UriKind.Absolute));        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return customServiceHost;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;} &lt;/p&gt;      &lt;p&gt;class SLHost : ServiceHost       &lt;br /&gt;{        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public SLHost(Type serviceType, params Uri[] baseAddresses)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : base(serviceType, baseAddresses)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { }        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected override void ApplyConfiguration()        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.ApplyConfiguration();        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;}&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;And one attribute into your service tag&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;Factory=&amp;quot;SLHostFactory&amp;quot; &lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Now it works. So what’s next? Build ASMX web service. This is even simpler&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;[WebMethod]       &lt;br /&gt;public string Echo(string input)        &lt;br /&gt;{        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return string.Format(&amp;quot;ACK from web service with {0}&amp;quot;, input);        &lt;br /&gt;}&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;We done, now either WCF and Web services are accessible from your Silverlight application. So, add Service reference and consume it&lt;/p&gt;    &lt;h3&gt;Building client side&lt;/h3&gt;    &lt;p&gt;Inside code behind of your Silverlight project, you should define two proxies – one for Web Service and another for WCF service. Bother services implements the same interface, so it should not be a problem&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;ServerEcho.EchoServiceClient proxy;       &lt;br /&gt;WebServiceEcho.EchoWebServiceSoapClient wsProxy;        &lt;br /&gt;private void UserControl_Loaded(object sender, RoutedEventArgs e)        &lt;br /&gt;{        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; proxy = new ServerEcho.EchoServiceClient();        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; proxy.EchoCompleted += new EventHandler&amp;lt;ServerEcho.EchoCompletedEventArgs&amp;gt;(proxy_EchoCompleted); &lt;/p&gt;      &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; wsProxy = new SLGadget.WebServiceEcho.EchoWebServiceSoapClient();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; wsProxy.EchoCompleted += new EventHandler&amp;lt;SLGadget.WebServiceEcho.EchoCompletedEventArgs&amp;gt;(wsProxy_EchoCompleted);        &lt;br /&gt;}&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Silverlight work only asynchronously, thus you should begin to understand, that synchronous programming is for pussies :). Consume it&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;private void WCF_Click(object sender, RoutedEventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; proxy.EchoAsync(txt.Text);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;      &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void WS_Click(object sender, RoutedEventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; wsProxy.EchoAsync(txt.Text);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;And Update output&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;void wsProxy_EchoCompleted(object sender, SLGadget.WebServiceEcho.EchoCompletedEventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txt.Text = e.Error == null ? e.Result : (e.Error.InnerException != null ? e.Error.InnerException.ToString() : e.Error.Message);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;      &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; void proxy_EchoCompleted(object sender, ServerEcho.EchoCompletedEventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txt.Text = e.Error == null ? e.Result : (e.Error.InnerException != null ? e.Error.InnerException.ToString() : e.Error.Message);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Now let’s run it. What? Another error? Security? Access denied? Of cause you have no crossdomain.xml. &lt;/p&gt;    &lt;blockquote&gt;     &lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM &amp;quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;
&amp;lt;cross-domain-policy&amp;gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;What? You have it and still getting the same error? Look into sniffer. You application is looking for other file, named clientaccesspolicy.xml. Why? According the documentation, you can use either… Hm, another bug with WCF consuming. Never mind, let’s put it too&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;access-policy&amp;gt;
  &amp;lt;cross-domain-access&amp;gt;
    &amp;lt;policy&amp;gt;
      &amp;lt;allow-from http-request-headers=&amp;quot;*&amp;quot;&amp;gt;
        &amp;lt;domain uri=&amp;quot;*&amp;quot;/&amp;gt;
      &amp;lt;/allow-from&amp;gt;
      &amp;lt;grant-to&amp;gt;
        &amp;lt;resource path=&amp;quot;/&amp;quot; include-subpaths=&amp;quot;true&amp;quot;/&amp;gt;
      &amp;lt;/grant-to&amp;gt;&lt;/pre&gt;

    &lt;pre&gt;    &amp;lt;/policy&amp;gt;
  &amp;lt;/cross-domain-access&amp;gt;
&amp;lt;/access-policy&amp;gt;&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Very well, now we are ready to run our application. It works! So, the only thing we should do is to pack it into MyGadget.gadget directory and put inside &lt;em&gt;%userprofile%\appdata\local\microsoft\windows sidebar\gadgets&lt;/em&gt; together with gadget.xml manifest. &lt;/p&gt;

  &lt;p&gt;But… It stopped working… What’s the problem?&lt;/p&gt;

  &lt;h3&gt;Very client side networking in Silverlight&lt;/h3&gt;

  &lt;p&gt;The problem is, that SideBar executes it’s gadgets with local path, not with network path. Silverlight cannot use any network provider, when running locally. Why? Actually I do not know (maybe to prevent local applications development). so what to do?&lt;/p&gt;

  &lt;p&gt;Simple! Microsoft SideBar knows to run cross domain AJAX without any warnings and problems. So why not to use external XmlHttp from JavaScript for network access. Let’s do it&lt;/p&gt;

  &lt;p&gt;First we should initialize XMLHttpRequest object in JavaSctipt&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;var xObj;
      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; function getEchoWCF(text) {

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(xObj == null) {&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xObj = new XMLHttpRequest();

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else if(xObj) {

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xObj.abort();

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Then create SOAP request to WCF or WebService&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;var sURL = &amp;quot;[Path yo your service]&amp;quot;;
      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Build SOAP

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var sReq = &amp;quot;&amp;lt;s:Envelope xmlns:s=\&amp;quot;http://schemas.xmlsoap.org/soap/envelope/\&amp;quot;&amp;gt;&amp;lt;s:Body&amp;gt;&amp;lt;Echo&amp;gt;&amp;lt;input&amp;gt;&amp;quot;+text+&amp;quot;&amp;lt;/input&amp;gt;&amp;lt;/Echo&amp;gt;&amp;lt;/s:Body&amp;gt;&amp;lt;/s:Envelope&amp;gt;&amp;quot;;

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xObj.open(&amp;quot;POST&amp;quot;, sURL, true);

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xObj.setRequestHeader( &amp;quot;Content-Type&amp;quot;, &amp;quot;text/xml; charset=utf-8&amp;quot; );

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xObj.setRequestHeader( &amp;quot;Cache-Control&amp;quot;, &amp;quot;no-cache&amp;quot; );

      &lt;br /&gt;…

      &lt;br /&gt;xObj.send(sReq);&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;After the request created and send we should handle result. So we need an access from HTML page, hosting Silverlight object to Silverlight. Simple. “ScriptableMember - ScriptableType”, remember?&lt;/p&gt;

  &lt;p&gt;[ScriptableType]
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public partial class Page : UserControl

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {

    &lt;br /&gt;…

    &lt;br /&gt;&lt;/p&gt;

  &lt;p&gt;[ScriptableMember]
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void UpdateResponse(string result)

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;

  &lt;p&gt;Now return the result&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;xObj.onreadystatechange = function() {
      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (xObj.readyState === 4) {

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (xObj.status &amp;amp;&amp;amp; xObj.status === 200) {&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var control = document.getElementById(&amp;quot;silverlightControl&amp;quot;);

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; control.Content.Page.UpdateResponse(xObj.responseText);

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;But this is not enough. We also should know to call Javascript from Silverlight… This is really simple&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;private void JS_Click(object sender, RoutedEventArgs e)
      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HtmlPage.Window.Invoke(&amp;quot;getEchoWCF&amp;quot;, txt.Text);

      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;We done. Now you can pack your &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx"&gt;Silverlight control&lt;/a&gt;, together with hosting HTML and Javascript into &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+Gadgets/default.aspx"&gt;windows sidebar gadget&lt;/a&gt; and use it even with external network support.&lt;/p&gt;

  &lt;p&gt;Have a good day and be nice people.&lt;/p&gt;

  &lt;p&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=107795" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/tutorial/default.aspx">tutorial</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Windows+Gadgets/default.aspx">Windows Gadgets</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Silverlight 2.0 for building Rich Internet Applications (local event)</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/05/20/silverlight-2-0-for-building-rich-internet-applications-local-event.aspx</link><pubDate>Tue, 20 May 2008 19:23:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:90720</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>10</slash:comments><description>&lt;h3&gt;[This blog was migrated. You will not be able to comment here.&lt;br /&gt;The new URL of this post is &lt;a href="http://khason.net/blog/silverlight-20-for-building-rich-internet-applications-local-event/"&gt;http://khason.net/blog/silverlight-20-for-building-rich-internet-applications-local-event/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;If you are developing rich internet applications, web sites or just want to learn &lt;strong&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032379874&amp;amp;culture=he-IL" target="_blank"&gt;what’s new in Silverlight 2.0&lt;/a&gt;&lt;/strong&gt;, you are invited to attend&amp;#160; local (Israel) Microsoft Event &lt;strong&gt;30-June 8:30 AM- 12:30 PM &lt;/strong&gt;in ILDC (new Microsoft R&amp;amp;D offices in Herzliya).&lt;/p&gt;  &lt;p&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/Sil.0forbuildingRichInternetApplications_D882/image_c66f0029-e65a-4b72-bada-0315ca465f6d.png" width="299" height="221" /&gt; &lt;/p&gt;  &lt;p&gt;I’ll speak about what is Silverlight 2.0 and what are differences between SL 1.0 and SL 2.0. How to build RIA with Silverlight 2.0. What is DeepZoom and some cool parts of this new internet technology. How to use DataBinding, LINQ and Microsoft Media Encoder. As small bonus for this part of the event, we’ll compare different technologies with Silverlight such as Flex, Flash 10, Thermo and SVG to make you understand differences, “pros and cons” of using each one of those technologies for specific and identifiable &lt;b&gt;&lt;/b&gt;needs. &lt;/p&gt;  &lt;p&gt;Then we’ll deep dive into DataBinding and learn about DataTemplates, Styles, Accessibility, Authoring and Usability (including differences between Silverlight and WPF approaches). We’ll also take a look into LINQ-to-SQL and SEO of Silverlight applications.&lt;/p&gt;  &lt;p&gt;Third part of this event will be dedicated to networking and interoperability. We’ll speak about internet protocols such as ATOM, RSS, REST, JSON, XMLWS, etc and usage of those protocols by Silverlight applications. We’ll understand how WCF can assist us to make our live easier. We’ll also touch security issues of Silverlight deployment and networking such as Cross Domain Policy, progressive download and deploy-on-demand.&lt;/p&gt;  &lt;p&gt;I can make you sure, that if ”you are in” new web technologies and want to start using (or if you already using) Silverlight 2.0 for development of your applications – come and see me. Will be fun!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note&lt;/em&gt;: Only a limited number of places available, so do not wait for MS newsletter (by the end of this month). &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032379874&amp;amp;culture=he-IL" target="_blank"&gt;Book now&lt;/a&gt; and come to attend this event – it’s free! (there is parking lot in floor -2)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032379874&amp;amp;culture=he-IL" target="_blank"&gt;I want to attend “Silverlight 2.0 introduction for building rich internet applications” event&lt;/a&gt; (30-June 8:30 AM – 12:30 PM, ILDC Herzelia, 5, Gav-Yam str, floor L2 13,Shenkar str)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;See you there…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPD 29-Jun:&lt;/b&gt; Next session will take place at &lt;b&gt;23 July, 8:30 AM-12:30 PM&lt;/b&gt;. Register by visiting Microsoft events web application at &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032382418&amp;amp;culture=he-IL" target="_blank"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032382418&amp;amp;culture=he-IL&lt;/a&gt; and sign up.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=90720" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/events/default.aspx">events</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF_2F00_E/default.aspx">WPF/E</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Accessibility/default.aspx">Accessibility</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Blogging+rules/default.aspx">Blogging rules</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Microsoft .NET framework 3.5 beta exams</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/01/18/microsoft-net-framework-3-5-beta-exams.aspx</link><pubDate>Fri, 18 Jan 2008 16:29:02 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:51441</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>1</slash:comments><description>&lt;h3&gt;[This blog was migrated. You will not be able to comment here.&lt;br /&gt;The new URL of this post is &lt;a href="http://khason.net/blog/microsoft-net-framework-35-beta-exams/"&gt;http://khason.net/blog/microsoft-net-framework-35-beta-exams/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;Do you want to be the first, who&amp;#39;ll judge &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/06/16/That_2700_s-over_2C00_-men_2C00_-that_2700_s-over.aspx"&gt;my work last summer&lt;/a&gt;? Participate 71-502 - Microsoft.NET Framework 3.5 - Windows Presentation Foundation beta exams. You can participate until 24-Jan &lt;a href="http://www.microsoft.com/learning/exams/70-502.mspx"&gt;here&lt;/a&gt;. Possible, that this exams will be even poorer, then &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/11/18/70-552-should-be-removed-or-at-least-changed.aspx"&gt;70-552&lt;/a&gt;, however, who knows? You tell us! Register at &lt;a href="http://www.register.prometric.com/ClientInformation.asp"&gt;http://www.register.prometric.com/ClientInformation.asp&lt;/a&gt;. No guarantee of a seat, not avaliable in China, India and Pakistan.&lt;/p&gt;  &lt;p&gt;If you do not want to pass WPF, you can participate beta of &lt;a href="http://www.microsoft.com/learning/exams/70-503.mspx%20"&gt;WCF&lt;/a&gt; or &lt;a href="http://www.microsoft.com/learning/exams/70-504.mspx"&gt;WF&lt;/a&gt;. Before taking those, read &lt;a href="http://vishaljoshi.blogspot.com/2005/11/microsoft-beta-exams.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.microsoft.com/learning/mcpexams/status/beta.asp"&gt;here&lt;/a&gt;. Also, you are more, then invited to feedback &lt;a href="http://blogs.msdn.com/gerryo"&gt;Gerry&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Good luck!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=51441" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/events/default.aspx">events</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WF/default.aspx">WF</category></item><item><title>Visual Studio "Orcas" June 2007 CTP is available</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2007/07/06/Visual-Studio-_2200_Orcas_2200_-June-2007-CTP-is-available.aspx</link><pubDate>Fri, 06 Jul 2007 16:56:35 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:18351</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</slash:comments><description>[This blog was migrated. You will not be able to comment here. The new URL of this post is http://khason.net/blog/visual-studio-orcas-june-2007-ctp-is-available/ ] After a limited beta Visual Studio 2008 (&amp;quot;Orcas&amp;quot;) June CTP VPC is available to wide public. A lot of bugs fixed (thank you all those who tested it), some new features added. Nice work! Download VS2008 June 2007 CTP VPC Technorati Tags: orcas , visual Studio.beta , VSTS , download , CTP , .NET framework 3.5 , WPF , WCF , WF...(&lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/07/06/Visual-Studio-_2200_Orcas_2200_-June-2007-CTP-is-available.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=18351" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/soft/default.aspx">soft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/download/default.aspx">download</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Orcas June CTP for limited beta is available</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2007/07/04/Orcas-June-CTP-for-limited-beta-is-available.aspx</link><pubDate>Wed, 04 Jul 2007 19:33:37 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:18092</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</slash:comments><description>[This blog was migrated. You will not be able to comment here. The new URL of this post is http://khason.net/blog/orcas-june-ctp-for-limited-beta-is-available/ ] After releasing June CTP of .NET framework 3.5, June CTP bits of Visual Studio 2008 (Team Suite and Visual Web Developer) are also ready for limited beta as Layout or VPC image. If you want to test it, please let me know via comments or by contacting me directly. Technorati Tags: Orcas , Visual Studio , VSTS , beta , download , CTP , .NET...(&lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/07/04/Orcas-June-CTP-for-limited-beta-is-available.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=18092" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/soft/default.aspx">soft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/promo/default.aspx">promo</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/download/default.aspx">download</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category></item><item><title>WPF binding to WCF and more</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2007/05/28/WPF-binding-to-WCF-and-more.aspx</link><pubDate>Tue, 29 May 2007 01:34:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:13817</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>3</slash:comments><description>[This blog was migrated. You will not be able to comment here. The new URL of this post is http://khason.net/blog/wpf-binding-to-wcf-and-more/ ] Windows foundations are great. But how to make them work together. Today, I decided to explain how to build simple WPF application, with data, achieved from WCF OperationContracts (Methods) with simple and complicated parameters. So, let&amp;#39;s start. First of all, we&amp;#39;ll create simple WPF application, then we&amp;#39;ll add WCF Service Library to our solution...(&lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/05/28/WPF-binding-to-WCF-and-more.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=13817" width="1" height="1"&gt;</description><enclosure url="http://blogs.microsoft.co.il/blogs/tamir/attachment/13817.ashx" length="72434" type="application/x-zip-compressed" /><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/tutorial/default.aspx">tutorial</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/source/default.aspx">source</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WCF/default.aspx">WCF</category></item></channel></rss>