<?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 : Silverlight, Microsoft, WPF</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/Microsoft/WPF/default.aspx</link><description>Tags: Silverlight, Microsoft, WPF</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>Quick Silverlight (and WPF) tip: How to write program without XAML</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/12/23/quick-silverlight-and-wpf-tip-how-to-write-program-without-xaml.aspx</link><pubDate>Tue, 23 Dec 2008 23:51:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:199696</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</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/quick-silverlight-and-wpf-tip-how-to-write-program-without-xaml/"&gt;http://khason.net/blog/quick-silverlight-and-wpf-tip-how-to-write-program-without-xaml/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;From the moment, &lt;a href="http://2009.visitmix.com/MIXtify/TenKGallery.aspx"&gt;10K MIX09 contest was launched&lt;/a&gt;, I got more, then 20 people, asking the same question: &lt;b&gt;Is it possible to have Silverlight program up and running without XAML at all?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/tamir/image_5432FC95.png" style="border:0px none;display:inline;" title="image" alt="image" width="315" border="0" height="289" /&gt; &lt;/p&gt;  &lt;p&gt;The answer is “&lt;b&gt;YES, IT IS&lt;/b&gt;”. Here is how:&lt;/p&gt;  &lt;p&gt;All you need for run WPF or Silverlight application is &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Class inherited from System.Windows.Application&lt;/li&gt;    &lt;li&gt;Class inherited from System.Windows.Controls.UserControl&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So, Let’s create new WPF or Silverlight application and delete all files from the project directory. Then add one file, named App.cs (or Foo.cs or Whatever.cs – the length of the file name is not included :) ) and write there :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;using System.Windows.Controls;     &lt;br /&gt;using System.Windows;&lt;/p&gt;    &lt;p&gt;public class App : Application {public App() {this.Startup += (s, e) =&amp;gt; { this.RootVisual = Foo.M; };}}&amp;nbsp; &lt;br /&gt;class Foo: UserControl {static Foo _b = new Foo();public static Board M { get { return _b; } }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;We done. F5, be happy. You just wrote first officially smallest Silverlight functional application. Good luck with Mix09 contest.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=199696" 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/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/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/fun/default.aspx">fun</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/Work+process/default.aspx">Work process</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DEV/default.aspx">DEV</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>Silverlight Bidi Controls Library RC0 and movement from Beta 2 to RC0</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/10/05/silverlight-bidi-controls-library-rc0-and-movement-from-beta-2-to-rc0.aspx</link><pubDate>Sun, 05 Oct 2008 16:31:23 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:150052</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/silverlight-bidi-controls-library-rc0-and-movement-from-beta-2-to-rc0/"&gt;http://khason.net/blog/silverlight-bidi-controls-library-rc0-and-movement-from-beta-2-to-rc0/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;Finally, I got free minute to convert &lt;a href="http://www.codeplex.com/SilverlightRTL/"&gt;Silverlight BiDi controls&lt;/a&gt; from Silverlight beta 2 to RC0 (you can download SL rc0 tools for VS2008 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=c22d6a7b-546f-4407-8ef6-d60c8ee221ed&amp;amp;displaylang=en"&gt;here&lt;/a&gt;) and as usual some breaking changes (the full list is &lt;a href="http://download.microsoft.com/download/6/f/e/6fe1f43d-9d0c-4346-ad08-602df9bcb3cf/BreakingChangesBetweenBeta2andRelease.doc"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Calendar and DatePicker moved from System.Windows.Controls.Extended into System.Windows.Controls – Extended namespace is now deprecated.&lt;/li&gt;    &lt;li&gt;CalendarButton is not inside System.Windows.Controls.Primitives&lt;/li&gt;    &lt;li&gt;TypeConverter.CanConvertFrom(Type sourceType) was changed and now it has new first parameter ITypeDescriptorContext context&lt;/li&gt;    &lt;li&gt;TypeConverter.CanConvertFrom(object value) was changed and now it has new first parameter ITypeDescriptorContext context and second parameter System.Globalization.CultureInfo culture&lt;/li&gt;    &lt;li&gt;TypeConverter.ConvertFromString is not virtual anymore&lt;/li&gt;    &lt;li&gt;TextDecorationCollectionConverter was removed&lt;/li&gt;    &lt;li&gt;generic.xaml should be placed into themes directory (as in WPF)&lt;/li&gt;    &lt;li&gt;VisualTransition.Duration is not VisualTransition.GeneratedDuration&lt;/li&gt;    &lt;li&gt;ContentPresenter has no HorizontalContentAlignment and VerticalContentAlignment. It has HorizontalAlignment and VerticalAlignment now. Also it has no Background, Padding,TextAlignment,TextDecorations and TextWrapping properties&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Those, basically, all changes done in Silverlight RTL support library. So, &lt;a href="http://www.codeplex.com/SilverlightRTL/Release/ProjectReleases.aspx"&gt;you can download and use the latest version&lt;/a&gt; within Silverlight RC0 version&lt;/p&gt;  &lt;p&gt;Have a nice day and be good people.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=150052" 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/source/default.aspx">source</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/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/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/DEV/default.aspx">DEV</category></item><item><title>Developers academy 3 - vote your choice</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/09/09/developers-academy-3-vote-your-choice.aspx</link><pubDate>Tue, 09 Sep 2008 11:57:09 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:136257</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>0</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/developers-academy-3-vote-your-choice/"&gt;http://khason.net/blog/developers-academy-3-vote-your-choice/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;If you&amp;#39;re &amp;quot;in&amp;quot; WPF and/or Silverlight development and want to learn more about high performance programming in WPF or your ability to develop once for WPF and Silverlight, you&amp;#39;re &lt;a href="http://www.dooblo.net/ip_wc/Survey.aspx?Ticket=T6K6OGBN"&gt;invited to vote for my session in Dev Academy 3&lt;/a&gt; and attend it:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;High performance programming with WPF in .NET framework 3.5 SP1&lt;br /&gt;&lt;/strong&gt;.NET 3.5 SP1 (Arrowhead) brings you full power of WPF by taking into account huge performance enhancements for Line-Of-Business by using data virtualization and high graphical applications by access to DirectX surfaces. This session will round up all new features to Arrowhead&lt;br /&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Unified development experience with Windows Presentation Foundation and Silverlight 2.0&lt;br /&gt;&lt;/strong&gt;Two years ago, Microsoft introduced Windows Presentation Foundation (WPF) to provide a unified platform for Rich Windows Client Applications development. A year later Silverlight was introduced as similar platform for Rich Internet Applications. Is it possible to use XAML based approach to share and reuse code for both frameworks? In this session we will learn how to develop reusable code base for productive, usable and well branded Client and Internet applications to wider distribution, demanded today.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Also, you can advice another session, you might be interested in via comments in this post&lt;/p&gt; &lt;p&gt;Thank you and see you there...&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=136257" 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/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/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/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/DevAcademy3/default.aspx">DevAcademy3</category></item><item><title>Expert days – last minute changes</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/08/08/expert-days-last-minute-changes.aspx</link><pubDate>Fri, 08 Aug 2008 08:08:56 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:129130</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>0</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/expert-days-%e2%80%93-last-minute-changes/"&gt;http://khason.net/blog/expert-days-%e2%80%93-last-minute-changes/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Next week we’ll starting &lt;a href="http://www.expertdays.co.il/"&gt;Expert Days&lt;/a&gt;, so you have a last chance &lt;a href="http://www.e4d.co.il/events/expertdays/Registration.aspx"&gt;to register&lt;/a&gt; for &lt;strong&gt;&lt;a href="http://www.e4d.co.il/events/expertdays/Course.aspx?CourseID=027&amp;amp;Course=Windows%20Presentation%20Foundation%20for%20fellow%20developers"&gt;Windows Presentation Foundation for fellow developers&lt;/a&gt;&lt;/strong&gt; (12-Aug) and &lt;strong&gt;&lt;a href="http://www.e4d.co.il/events/expertdays/Course.aspx?CourseID=020&amp;amp;Course=Mastering%20Microsoft%20Silverlight%202.0"&gt;Mastering Microsoft Silverlight 2.0&lt;/a&gt;&lt;/strong&gt; (13-Aug). Those sessions will take place in Bein-Thumi Herzeliya and start in 8:30. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.microsoft.com/israel/msdn/images/Expertd_days.gif" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;We have not enough participants to open &lt;strong&gt;&lt;a href="http://www.e4d.co.il/events/expertdays/Course.aspx?CourseID=011&amp;amp;Course=Advanced%20.NET%203.5%20SP1%20%E2%80%93%20Windows%20Presentation%20Foundation"&gt;Advanced .NET 3.5 SP1&lt;/a&gt;&lt;/strong&gt; (14-Aug) [not enough people know WPF so far in Israel?], thus I would like to propose another kind of session – something like we used to do in Dev Days. You’ll come with your WPF applications, prepare to ask questions about problems with those apps and we’ll solve it together during the day. I will not have slides for this session – it will be live QnA+Discussions meeting. This specific session will take place in Megamot college in Petah-Tikva (not in Bein-Thumi, like all others). What do you think? &lt;/p&gt;  &lt;p&gt;Last notice, if we will not have at least 26 attendees (currently for this session we have only 10), neither Advanced .NET 3.5 nor WPF QnA will be opened. Also, all people registered for those sessions will be refunded. So, now you will choose whether and which session about WPF we will open Thursday next week.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=129130" 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/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/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></item><item><title>Arabic and Hebrew languages bidirectional support for Silverlight 2.0 beta 2</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/07/17/arabic-and-hebrew-languages-bidirectional-support-for-silverlight-2-0-beta-2.aspx</link><pubDate>Thu, 17 Jul 2008 14:27:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:119417</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>34</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/arabic-and-hebrew-languages-bidirectional-support-for-silverlight-20-beta-2/"&gt;http://khason.net/blog/arabic-and-hebrew-languages-bidirectional-support-for-silverlight-20-beta-2/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;
&lt;p&gt;Those days, I’m, together with guys from Microsoft Egypt and &lt;a href="http://santeon.com"&gt;Santeon&lt;/a&gt;, finishing development of bidirectional input and output support for Silverlight. I want you to take part in alpha testing of this solution. Please see the test form here and try it.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://silverlight.services.live.com/invoke/17226/BidiTest2/iframe.html" style="width:500px;height:400px;" scrolling="no" frameborder="0"&gt;&amp;amp;amp;lt;noframes&amp;amp;amp;gt;Visit &amp;amp;amp;lt;a href=&amp;quot;http://blogs.microsoft.co.il/blogs/tamir/archive/2008/07/17/arabic-and-hebrew-languages-bidirectional-support-for-silverlight-2-0-beta-2.aspx&amp;quot;&amp;amp;amp;gt;original article&amp;amp;amp;lt;/a&amp;amp;amp;gt; to test&amp;amp;amp;lt;/noframes&amp;amp;amp;gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Also, you can download &lt;a href="http://www.codeplex.com/SilverlightRTL/SourceControl/ListDownloadableCommits.aspx"&gt;latest development build&lt;/a&gt; or &lt;a href="http://www.codeplex.com/SilverlightRTL/Release/ProjectReleases.aspx"&gt;compiled binary version with debug symbols&lt;/a&gt; and try it yourself. Please, if you’re in any issue, report it, by using &lt;a href="http://www.codeplex.com/SilverlightRTL/WorkItem/List.aspx"&gt;issue tracker in CodePlex&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In order to use it, all you have to do is to use custom namespace within your project and then, you’ll be able to get almost all controls, you know, but with Arabic and Hebrew RTL and LTR support. You have to set one property: FlowDirection to change the rendering method (exactly as in WPF). Here an example of usage.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;UserControl x:Class=&amp;quot;BidiTest2.Page&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation%22"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml%22"&gt;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/a&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:l=&amp;quot;clr-namespace:System.Windows.BidiControls;assembly=BidiControls&amp;quot;&amp;gt; &lt;br /&gt;… &lt;br /&gt;&amp;lt;l:TextBlock FlowDirection=&amp;quot;LeftToRight&amp;quot; Text=&amp;quot;שלום עולם&amp;quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;l:TextBox FlowDirection=&amp;quot;RightToLeft&amp;quot; Text=&amp;quot;{Binding Text, Mode=TwoWay}&amp;quot;/&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That’s all. Thank you for your cooperation.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/ArabicandHebrewlanguagesbidirecti.0beta2_92E8/image_160565ad-72a1-4fed-8640-a3d2142a2b95.png" title="image" alt="image" width="258" border="0" height="184" /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=119417" 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/source/default.aspx">source</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/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/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/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/Windows+Live/default.aspx">Windows Live</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></item><item><title>TechEd preparation session + other announcements</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/07/14/teched-preparation-session-other-announcements.aspx</link><pubDate>Mon, 14 Jul 2008 14:19:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:116461</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</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/teched-preparation-session-other-announcements/"&gt;http://khason.net/blog/teched-preparation-session-other-announcements/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;If you want to attend my preparations &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/06/13/presenting-at-teched-developers-south-africa-2008-durban.aspx"&gt;before TechEd&lt;/a&gt;, you’re invited to attend 27-Jul in Microsoft Ra’anana. &lt;/p&gt;  &lt;p&gt;What is preparation session? This is the training for myself. I’ll present all four session (each one is an hour + one hour rep.) This is your chance to hear live my &lt;a href="http://www.tech-ed.co.za/"&gt;TechEd South Africa&lt;/a&gt; sessions, &lt;u&gt;without&lt;/u&gt; paying the fee (ZAR 4,500 which is about $600)&lt;/p&gt; &lt;p&gt;Please note, that &lt;b&gt;all lectures are in English&lt;/b&gt; (not in Hebrew)&lt;/p&gt; &lt;p&gt;Here the agenda for &lt;strong&gt;27-Jul (Sunday)&lt;/strong&gt;. It will take place in &lt;strong&gt;Microsoft Israel building&lt;/strong&gt; in &lt;strong&gt;2, Ha&amp;#39;Pnina st. Ranana, Israel&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;&lt;em&gt;Time&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;em&gt;Session title&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;em&gt;Conference room&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;8:30-10:30&lt;/td&gt;        &lt;td valign="top"&gt;Creating Rich Applications with Windows Presentation Foundation (300)&lt;/td&gt;        &lt;td valign="top"&gt;Media Center&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;11:00-13:00&lt;/td&gt;        &lt;td valign="top"&gt;WPF Performance (400)&lt;/td&gt;        &lt;td valign="top"&gt;Visual Studio&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;14:30-16:30&lt;/td&gt;        &lt;td valign="top"&gt;Game Development Using Microsoft’s Latest Technologies (300)&lt;/td&gt;        &lt;td valign="top"&gt;Vista&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;17:00-19:00&lt;/td&gt;        &lt;td valign="top"&gt;Understanding Reflection (400)&lt;/td&gt;        &lt;td valign="top"&gt;Vista&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.tech-ed.co.za/"&gt;&lt;img title="clip_image002" border="0" alt="clip_image002" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/TechEdpreparationsessionotherannouncemen_910A/clip_image002_9a37273d-db57-4610-9325-ac04e81a48db.jpg" width="164" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also, be sure, you’re attending my session in Expert Days 11-14 August&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;12-Aug, &lt;a href="http://www.e4d.co.il/events/expertdays/Course.aspx?CourseID=027&amp;amp;Course=Windows%20Presentation%20Foundation%20for%20fellow%20developers"&gt;Windows Presentation Foundation for fellow developers – 027&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;13-Aug, &lt;a href="http://www.e4d.co.il/events/expertdays/Course.aspx?CourseID=020&amp;amp;Course=Mastering%20Microsoft%20Silverlight%202.0"&gt;Mastering Microsoft Silverlight 2.0 – 020&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;14-Aug, &lt;strong&gt;&lt;a href="http://www.e4d.co.il/events/expertdays/Course.aspx?CourseID=011&amp;amp;Course=Advanced%20.NET%203.5%20SP1%20%E2%80%93%20Windows%20Presentation%20Foundation"&gt;Advanced .NET 3.5 SP1 – Windows Presentation Foundation – 011&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And/or if you were not able to attend &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/05/20/silverlight-2-0-for-building-rich-internet-applications-local-event.aspx"&gt;Silverlight 2.0 for building Rich Internet Applications event&lt;/a&gt;, you are welcome &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032382418&amp;amp;culture=he-IL"&gt;to book the next session at 23-Jul&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That’s all for now, see ya…&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=116461" 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/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/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/teched/default.aspx">teched</category></item><item><title>Presenting at TechEd Developers South Africa 2008, Durban</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/06/13/presenting-at-teched-developers-south-africa-2008-durban.aspx</link><pubDate>Fri, 13 Jun 2008 17:23:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:103249</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>9</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/presenting-at-teched-developers-south-africa-2008-durban/"&gt;http://khason.net/blog/presenting-at-teched-developers-south-africa-2008-durban/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Save the date. &lt;a href="http://www.tech-ed.co.za/"&gt;TechEd Developers South Africa&lt;/a&gt; is around the corner (August 3rd through 6th). This year it will take place in &lt;a href="http://en.wikipedia.org/wiki/Durban"&gt;Durban&lt;/a&gt;, the third most populous city in South Africa. &lt;/p&gt;  &lt;p&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/PresentingatTechEdDevelopersSouthAfrica2_BC42/image_76034ac0-b10f-46ed-be99-1ce6b149a6f3.png" width="169" height="106" /&gt; &lt;/p&gt;  &lt;p&gt;This TechEd, there are four sessions assigned to me:&lt;/p&gt;  &lt;h3&gt;Creating Rich Applications with Windows Presentation Foundation (300)&lt;/h3&gt;  &lt;p&gt;Completely new session about how to enrich user experience, by decreasing development efforts with &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx"&gt;WPF&lt;/a&gt;. In order to do this, we’ll try to take some application and completely recreate it, by using XAML only without any single code line.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Target audience&lt;/em&gt;: Developers and decide makers, who what to understand what can be done with WPF and how easy you can do it. &lt;/p&gt;  &lt;h3&gt;Understanding Reflection (400)&lt;/h3&gt;  &lt;p&gt;This is also new session for lazy developers. It’s not only about what reflection is or what’s new about reflection in latest frameworks (including &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/.NET+3.5/default.aspx"&gt;.NET 3.5&lt;/a&gt; and &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/Silverlight/default.aspx"&gt;Silverlight&lt;/a&gt;), but also how to use it to make developer’s life easier. We’ll enter a bit into IL to understand what’s going on under the hoods, but most of session is about appliance of this technology for everyday developers’ tasks and challenges.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Target audience&lt;/em&gt;: Developers, have an experience with .NET programming&lt;/p&gt;  &lt;h3&gt;WPF Performance (400)&lt;/h3&gt;  &lt;p&gt;Session very similar to &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/12/17/wpf-for-developers-from-dev-academy-2-recordings.aspx"&gt;one, I had in Dev Academy 2&lt;/a&gt;. However this time it will focus on performance enhancements in .NET framework 3.5 SP1. I’ll speak about virtualization, parallel processing, DX surface direct access and more… &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Target audience&lt;/em&gt;: Developers, have an experience with WPF development.&lt;/p&gt;  &lt;h3&gt;Game Development Using Microsoft’s Latest Technologies (300)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/14/my-teched-08-presentation-slides-download.aspx"&gt;Fun session, I had in TechEd Israel&lt;/a&gt; with &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/09/teched-behind-the-scene-system-setup.aspx"&gt;very complicated setup&lt;/a&gt;. &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/04/teched-in-over-the-corner-and-we-are-ready-what-about-you.aspx"&gt;Here the sneak preview&lt;/a&gt; of how it looks like. It listed as a 300 level, because the fact, that except this session’s fun, you can learn a lot of new there.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Target audience&lt;/em&gt;: Everyone, who love technology and want to have fun hour in the morning before advanced sessions will begin. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;If you’re reading my blog, and you’re going &lt;a href="http://www.tech-ed.co.za/"&gt;TechEd Africa&lt;/a&gt;. Come and say me hello, ‘cos it would be really nice to see the faces of the people I’m writing to in this blog :)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;More information about other sessions in this TechEd &lt;a href="http://dotnet.org.za/ahmeds/archive/2008/05/16/what-is-happening-with-teched-africa.aspx"&gt;can be found in Ahmed Salijee blog&lt;/a&gt;, who is developer evangelist in Microsoft Africa and arranges this event.&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;  &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;&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;  &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;&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;  &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;&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;See you there.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=103249" 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/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/Silverlight/default.aspx">Silverlight</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/Microsoft/default.aspx">Microsoft</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></item><item><title>Quick note: New TechEd downloads</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/06/05/quick-note-new-teched-downloads.aspx</link><pubDate>Thu, 05 Jun 2008 15:25:15 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:99360</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</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/quick-note-new-teched-downloads/"&gt;http://khason.net/blog/quick-note-new-teched-downloads/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;There is TechEd in Orlando, and this means, that there are a lot of new announcements. Let’s fill up our download managers with &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/05/16/gas-price-windows-vista-sidebar-gadget-new-version-is-available-for-download.aspx"&gt;expensive fuel&lt;/a&gt; and start.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=3D6F581E-C093-4B15-AB0C-A2CE5BFFDB47&amp;amp;displaylang=en"&gt;New WM 6.1 images (both standard and professional)&lt;/a&gt; – absolutely required if you’re programming Windows Mobile&lt;/li&gt;    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/mef"&gt;Managed Extensibility Framework&lt;/a&gt; – I blogged about it a little in the past. Really cool approach for adding extensibility features to your applications. &lt;a href="http://blogs.msdn.com/kcwalina/archive/2008/04/25/MEF.aspx"&gt;Krzysztof explains&lt;/a&gt; new features there.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://windowslivewriter.spaces.live.com/blog/cns!D85741BB5E0BE8AA!1508.entry"&gt;Windows Live Writer new CTP + new SDK&lt;/a&gt; – the best tool to post into your blog.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/cc655792.aspx"&gt;New CTP of Microsoft Project Codename “Velocity”&lt;/a&gt; – great approach for development applications, using high performance in memory cache. &lt;a href="http://blogs.msdn.com/velocity/archive/2008/06/02/introducing-project-codename-velocity.aspx"&gt;Here the deep explanations&lt;/a&gt; in the team blog + &lt;a href="http://code.msdn.microsoft.com/velocity"&gt;quick start and samples&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Silverlight 2.0 beta 2 + Microsoft Expression Blend 2.5 June preview will be available for download very soon. Keep watching. Meanwhile, you can start learn about &lt;a href="http://timheuer.com/blog/archive/2008/06/04/silverlight-2-introduces-tabcontrol.aspx"&gt;new TabControl&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/archive/2008/06/04/silverlight-introduces-visual-state-manager-vsm.aspx"&gt;VisualStateManager&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/archive/2008/06/04/skinning-silverlight-controls-made-easier.aspx"&gt;new templating system&lt;/a&gt; and &lt;a href="http://timheuer.com/blog/archive/2008/06/03/use-silverlight-with-any-feed-without-cross-domain-files.aspx"&gt;cross-domain policy&lt;/a&gt; from Tim Heuer’s blog. Also there are &lt;a href="http://silverlight.net/blogs/jesseliberty/archive/2008/06/03/beta-2-event-bubbling.aspx"&gt;some news about event bubbling&lt;/a&gt; in beta 2 in Jesse’s blog.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=99360" 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/Mobile/default.aspx">Mobile</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/download/default.aspx">download</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/Windows+Live+Writer/default.aspx">Windows Live Writer</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/teched/default.aspx">teched</category></item><item><title>Silverlight accessibility and CEO support for beta 2</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/06/04/silverlight-accessibility-and-ceo-support-for-beta-2.aspx</link><pubDate>Thu, 05 Jun 2008 00:01:39 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:99021</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/silverlight-accessibility-and-ceo-support-for-beta-2/"&gt;http://khason.net/blog/silverlight-accessibility-and-ceo-support-for-beta-2/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;Yesterday, beta 2 of Silverlight was officially announced in TechEd Orlando. There are a lot of interesting changes. One of most significant changes, I want to notice and accessibility support in Silverlight. See yourself (if you do not know what this image about, see &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2007/05/29/WPF-_2B00_-UISpy-_3D00_-Accessibility-testing.aspx"&gt;this post&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/SilverlightaccessibilityandCEOsupportfor_11999/image_34a654b0-fe72-4c6a-804f-620b5d18e532.png" width="601" height="279" /&gt; &lt;/p&gt;  &lt;p&gt;What should you do in order this to happen? &lt;strong&gt;Absolutely nothing&lt;/strong&gt;. This is build in feature in Silverlight 2.0 b2. It’s not like &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/WPF/default.aspx"&gt;WPF&lt;/a&gt;, where you should use Automation namespace boundary. This just works. You can read the Silverlight content with screen narrators. Great respect to dev team.&lt;/p&gt;  &lt;p&gt;Why this CEO friendly? Come to &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/05/20/silverlight-2-0-for-building-rich-internet-applications-local-event.aspx"&gt;my Silverlight half day session at July, 30&lt;/a&gt; to learn why.&lt;/p&gt;  &lt;p&gt;Regarding other features, there is new templating model in Silverlight, named VisualStateManager. It can save your time in controls development. Do you remember me speaking about State oriented programming in Silverlight, rather, then KeyFrames oriented programming in Flesh? That what is it.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;if (SomethingHappened) {     &lt;br /&gt; VisualStateManager.GoToState(this, “SomeState”, true);      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Also, there is TabControl, text wrapping and scrollbars for TextBox. Regarding DataGrid it become much faster and enhanced by Reordering, Autosize and Sort capabilities.&lt;/p&gt;  &lt;p&gt;There are also some security enhancements for Cross-Domain networking and duplex communication. If you not sure about what is it, see &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/22/networking-raw-sockets-in-silverlight-and-wpf-messaging-in-general.aspx"&gt;this&lt;/a&gt; and &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/24/networking-and-sockets-in-silverlight-1-0-mobile-to.aspx"&gt;this&lt;/a&gt; post.&lt;/p&gt;  &lt;p&gt;Also now you can work with LINQ-to-JSON, ASO.NET DS and SOAP-based data sources.&lt;/p&gt;  &lt;p&gt;In additional, there is new XML-based format for DeepZoom MultiScaleTileSource and MultiScaleImage controls.&lt;/p&gt;  &lt;p&gt;Have a nice day and be good people.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=99021" 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/events/default.aspx">events</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/Accessibility/default.aspx">Accessibility</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/teched/default.aspx">teched</category><category domain="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Action required: Smart client users group</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/05/22/action-required-smart-client-users-group.aspx</link><pubDate>Fri, 23 May 2008 01:44:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:91573</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>8</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/action-required-smart-client-users-group/"&gt;http://khason.net/blog/action-required-smart-client-users-group/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;Recently I browsed &lt;a href="http://ineta.org" target="_blank"&gt;INETA&lt;/a&gt; to seek for some group and was really surprising. There is no Smart Client user group registered there. Maybe there is a reason? Let’s understand what Smart Client is? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Smart_client" target="_blank"&gt;According wikipedia&lt;/a&gt;, the term &amp;quot;Smart Client&amp;quot; is meant to refer to simultaneously capturing the benefits of a &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Thin_client"&gt;thin client&lt;/a&gt;&amp;quot; (zero-install, auto-update) and a &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Fat_client"&gt;fat client&lt;/a&gt;&amp;quot; (high performance, high productivity). However, I think, that this term is much wider. It is not only thin-fat client application, it’s also most of applications we’re using today. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/ActionrequiredSmartclientusersgroup_13148/image_9b0168ec-d360-436a-a934-f287471e7222.png" title="image" alt="image" border="0" height="315" width="453" /&gt; &lt;/p&gt;  &lt;h3&gt;Thick Client&lt;/h3&gt;  &lt;p&gt;We always want to provide our users with best experience and increase their performance. However we are (as developers) want to avoid complicated development and deployment. This why we should know as much as possible about user’s system, when users do not want to have real footprint in their systems. That’s dilemma. Is it possible to solve it? Let’s look deeper…&lt;/p&gt;  &lt;p&gt;Are we really need installation? Most of old software installations put things in registry. It because you were never sure what client has in his system and were our application can put files or temporary data. Today, when we have local application or user isolated storage, so we not really need to use registry. Maybe only for our own ego – this is cool to have something like “HKLM/Software/MYNAME” in 1,000,000 user’s computers…&lt;/p&gt;  &lt;p&gt;No installation is good, but what to me with maintenance. We want our system connected…&lt;/p&gt;  &lt;h3&gt;Thin Client&lt;/h3&gt;  &lt;p&gt;Could you imagine your user to visit product site twice a week to see what’s going on? I can not. However I know, that if I’ll ask him first about automatic updates and he’ll agree to forget about application maintenance, his experience will be much better.&lt;/p&gt;  &lt;p&gt;So,we are connected. What now? I want to make time reporting system. Web service? Maybe some kind of distributed application. Maybe, even &lt;a href="http://twitter.com/tamir" target="_blank"&gt;Twitter&lt;/a&gt;? This way we can be sure, that our data is safe and if user reinstall whole system, he do not really need to care about backups. &lt;/p&gt;  &lt;p&gt;But users not always have internet access. Sometimes they are offline. How to solve the problem of occasionally connected users? I do not want him every lunch want for two minutes, until I realize, that there is no internet connection and will not even give him a chance to use the application?&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/ActionrequiredSmartclientusersgroup_13148/image_10278991-02bf-4f23-9df9-d51332414509.png" title="image" alt="image" border="0" height="412" width="632" /&gt; &lt;/p&gt;  &lt;p&gt;So, we also want our system to be useful offline. But what’s up with Web 10.0? We want millions. We want very broad reach for our application. Also we want to be able to manage application updates remotely?&lt;/p&gt;  &lt;p&gt;Let’s take a look into other pan of application development. Do you like JavaScript? I do not! I think it’s too complicated to develop things for web. We should invest into at least 50% of coverage and integration tests, while giving customers pretty poor user experience. What is we want to provide the same look and feel everywhere? In web, desktop, mobile and other devices? Our customers want the application everywhere?&lt;/p&gt;  &lt;h3&gt;Summary&lt;/h3&gt;  &lt;p&gt;This is exactly what Smart client designed for. Technologies such as .NET, WPF, Silverlight from Microsoft, Flex, Thermo from Adobe and others tries to make you to be there with your application. But how to do it? How to answer all those hard questions, I asked?&lt;/p&gt;  &lt;p&gt;I want to announce new (currently virtual) user group, dedicated to Smart Client development. I do not want to restrict this group geographically, due to fact, that current infrastructures allows us to forget about distances and be together. Join today “Smart Client development” user group.&lt;/p&gt;  &lt;p&gt;In order to join, just send me an email to &lt;i&gt;tamir [at] khason.biz&lt;/i&gt; with information about you. I put the request to create this user group in INETA. Once it will be opened, I’ll send everyone email to register and connect them selves to this group.&lt;/p&gt;  &lt;p&gt;Be in touch.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=91573" 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/Mobile/default.aspx">Mobile</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/thoughts/default.aspx">thoughts</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/blogging+general/default.aspx">blogging general</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/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></item><item><title>My TechEd ‘08 presentation slides download</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/14/my-teched-08-presentation-slides-download.aspx</link><pubDate>Mon, 14 Apr 2008 23:10:45 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:78436</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</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/my-teched-%e2%80%9808-presentation-slides-download/"&gt;http://khason.net/blog/my-teched-%e2%80%9808-presentation-slides-download/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;I do not know why, but for some reason in &lt;a href="http://www.microsoft.com/israel/techedevent/list.aspx#e" target="_blank"&gt;development section of TechEd website&lt;/a&gt; there are only two recording and no presentations. I do not want to wait for them to upload (we sent all presentations a while ago), so here it comes. &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/04/teched-in-over-the-corner-and-we-are-ready-what-about-you.aspx" target="_blank"&gt;My TechEd presentation&lt;/a&gt; &lt;a href="http://cid-4e39ecd492e4eec1.skydrive.live.com/self.aspx/TechEd/DEV335.ppt" target="_blank"&gt;DEV335 - Game Development Using Microsoft&amp;#8217;s Latest Technologies&lt;/a&gt;. I have no recordings by now (so pity), so you&amp;#8217;ll have to wait for Microsoft to encode and upload it. Upon it will be done, I&amp;#8217;ll publish it here.    &lt;br /&gt;There is no real reason to upload samples &amp;#8211; they will not work without &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/09/teched-behind-the-scene-system-setup.aspx" target="_blank"&gt;all environment we had there&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cid-4e39ecd492e4eec1.skydrive.live.com/self.aspx/TechEd/DEV335.ppt" target="_blank"&gt;Download full slides from my TechEd presentation (PPT 7,165 KB) &amp;gt;&amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions, feel free to contact me by using &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/contact.aspx" target="_blank"&gt;contact form&lt;/a&gt; or &lt;a href="http://www.linkedin.com/in/tamirk" target="_blank"&gt;LinkedIn profile&lt;/a&gt;. You also can &lt;a href="http://twitter.com/tamir" target="_blank"&gt;send me a message by twitter&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img border="0" alt="te08" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/MyTechEd08presentationslidesdownload_10DAE/te08_994f0207-06b9-43ae-a53e-8629ba9d38db.jpg" width="473" height="252" /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=78436" 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/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/Microsoft/default.aspx">Microsoft</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/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Networking and sockets in Silverlight 1.0 (mobile to?)</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/24/networking-and-sockets-in-silverlight-1-0-mobile-to.aspx</link><pubDate>Mon, 24 Mar 2008 14:08:05 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:69276</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/networking-and-sockets-in-silverlight-10-mobile-to/"&gt;http://khason.net/blog/networking-and-sockets-in-silverlight-10-mobile-to/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;Well, well, well. Two days ago, &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/22/networking-raw-sockets-in-silverlight-and-wpf-messaging-in-general.aspx"&gt;we spoke about using sockets within Silverlight 2.0 and WPF&lt;/a&gt;. Today, we&amp;#8217;ll make a step ahead and will use TCP or UDP client-server connection within Silverlight 1.0. Yes, 1.0 (the one with JavaScript only and no sockets). So, let&amp;#8217;s start Rock &amp;#8216;n Roll.&lt;/p&gt;  &lt;p&gt;&lt;img border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/NetworkingandsocketsinSilverli.0mobileto_8E67/image_cc46d8e5-3ab0-4269-818c-f319237ad7db.png" width="606" height="600" /&gt; &lt;/p&gt;  &lt;p&gt;Oh, baby &amp;#8211; it cannot be done! Just kidding :) Silverlight 1.0 itself cannot use sockets, however ASP.NET can. We&amp;#8217;ll reuse our socket library (from the previous post) and reference it to the ASP.NET page, that hosts our Silverlight 1.0 application. &lt;/p&gt;  &lt;p&gt;So, on page load we&amp;#8217;ll create our client channel and fully reuse the way we worked within WPF and WinForms. The only difference is that we&amp;#8217;ll have three static web methods within our ASP.NET C# code&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[System.Web.Services.WebMethod]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static string GetHoursAngle()       &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 ((msg.Hours * 30) + (12 * msg.Minutes / 60)).ToString();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [System.Web.Services.WebMethod]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static string GetMinutesAngle()       &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 (msg.Minutes * 6).ToString();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [System.Web.Services.WebMethod]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static string GetSecondsAngle()       &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 (msg.Seconds * 6).ToString();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Those methods can be used (almost) from client side. In order to do it we should register ScriptManager and enable PageMethods on the page&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;lt;asp:ScriptManager ID=&amp;quot;manager&amp;quot; EnablePageMethods=&amp;quot;True&amp;quot;&amp;#160; runat=&amp;quot;server&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then, create simple Javascript to call to our web methods&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; function UpdateHoursHand(angle)       &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; updateClockHand(&amp;#39;hTransform&amp;#39;,angle);       &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; function UpdateMinutesHand(angle)       &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; updateClockHand(&amp;#39;mTransform&amp;#39;,angle);       &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; function UpdateSecondsHand(angle)       &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; updateClockHand(&amp;#39;sTransform&amp;#39;,angle);       &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;lt;/script&amp;gt;&amp;#160;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;There is no problem to access Silverlight from the hosting webpage, so we&amp;#8217;ll add following method to the Silverlight javascript &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;      &lt;br /&gt;if (!window.Silverlight1Client)       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Silverlight1Client = {}       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;Silverlight1Client.Page = function()      &lt;br /&gt;{       &lt;br /&gt;}       &lt;br /&gt;Silverlight1Client.Page.prototype =       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; handleLoad: function(control, userContext, rootElement)       &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; this.control = control;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; canvas = rootElement;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;var canvas;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // the root canvas &lt;/p&gt;    &lt;p&gt;function updateClockHand(element, value)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160; hand = canvas.findName(element);       &lt;br /&gt;&amp;#160; hand.Angle = value;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;if (!window.Silverlight)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Silverlight = {};       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;Silverlight.createDelegate = function(instance, method) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return function() {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return method.apply(instance, arguments);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now, we have prototype, that can access our Silverlight control, we have web methods, that can bring us information from the server side the only thing we should do is to enable server-side (where we actually receive&amp;#160; update notification) to call client side javascript in order to update layout. And this cannot be done due to the nature of client-server web architecture.&lt;/p&gt;  &lt;p&gt;But who told, that we cannot force client side to tickle server side upon the event? We can &amp;#8211; not very nice solution, but it works &amp;#8211; set timer.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;function UpdateClockHands()      &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; PageMethods.GetHoursAngle(UpdateHoursHand);       &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; PageMethods.GetMinutesAngle(UpdateMinutesHand);       &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; PageMethods.GetSecondsAngle(UpdateSecondsHand);       &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; setTimeout(&amp;quot;UpdateClockHands()&amp;quot;,1000);&amp;#160; &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 add timer recursively to call client side javascript one a second and how it works. &lt;/p&gt;  &lt;p&gt;At the end the small diamond for upcoming &lt;strong&gt;DEV335&lt;/strong&gt;: &lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/tags/teched/default.aspx"&gt;Game Development Using Microsoft&amp;#8217;s Latest Technologies&lt;/a&gt;&amp;#8230;&lt;/p&gt;  &lt;p&gt;&lt;embed width="448" height="361" type="application/x-shockwave-flash" wmode="transparent" src="http://i71.photobucket.com/player.swf?file=http://vid71.photobucket.com/albums/i149/dedushka_jo/24032008094150.flv"&gt;&lt;/p&gt; &lt;/embed&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=69276" 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/Tips+and+Tricks/default.aspx">Tips and Tricks</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/Silverlight/default.aspx">Silverlight</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/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/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Running WPF on gas pump (or other Windows CE devices)?</title><link>http://blogs.microsoft.co.il/blogs/tamir/archive/2008/03/13/running-wpf-on-gas-pump-or-other-windows-ce-devices.aspx</link><pubDate>Thu, 13 Mar 2008 20:06:07 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:65881</guid><dc:creator>Tamir Khason</dc:creator><slash:comments>2</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/running-wpf-on-gas-pump-or-other-windows-ce-devices/"&gt;http://khason.net/blog/running-wpf-on-gas-pump-or-other-windows-ce-devices/&lt;/a&gt;]&lt;/h3&gt;&lt;hr /&gt;&lt;p&gt;What do you think, is it possible to run WPF on Windows CE enabled devices (e.g. gas pumps, GPS systems, robots, game or automatic teller machines or, even, scientific calculators)? Let&amp;#39;s see following code:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;StackPanel panel = new StackPanel(Orientation.Horizontal);     &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; Ellipse ellipse = new Ellipse(10, 10);      &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; ellipse.Fill = new SolidColorBrush(Colors.Red);      &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; ellipse.Stroke = new Pen(Color.Black);      &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; Rectangle rect = new Rectangle();      &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; rect.Width = 40;      &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; rect.Height = 40;      &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; Line l = new Line(20, 20);      &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; Polygon polygon = new Polygon(new int[] { 0, 0, 20, 0, 20, 20, 0, 20 });      &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; panel.Children.Add(ellipse);      &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; panel.Children.Add(rect);      &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; panel.Children.Add(l);      &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; panel.Children.Add(polygon); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; panel.AddHandler(Buttons.ButtonUpEvent, (ButtonEventHandler)delegate     &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;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; panel.Orientation = panel.Orientation == Orientation.Horizontal ? Orientation.Vertical : Orientation.Horizontal;      &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; }, false);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Or even this code&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;void OnButtonHeld(object o)     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Button b = (Button)o;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dispatcher.Invoke(TimeSpan.FromTicks(10), (ButtonHeldDelegate)delegate(Button btn)      &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; while (Buttons.IsButtonDown(btn))      &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; switch (btn)      &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;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; case Button.Left: p.X--; break;      &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; case Button.Up: p.Y--; break;      &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; case Button.Right: p.X++; break;      &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; case Button.Down: p.Y++; break;      &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; case Button.Select: p.X = mainWindow.Width / 2; p.Y = mainWindow.Height / 2; break;      &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;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; moveMouse();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }, b);      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;void moveMouse()     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; host.DrawRectangle(Colors.Black,2,p.X,p.Y, 100, 100,0,0,Colors.Red,0,0,Colors.Blue,100,100,255);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; host.Flush();      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This code will run on any Windows CE device. And it is not WPF :) It&amp;#39;s &lt;a href="http://msdn2.microsoft.com/en-us/embedded/bb267253.aspx" target="_blank"&gt;.NET Micro Framework&lt;/a&gt;. Actually, when we&amp;#39;re looking for it&amp;#39;s syntax, it looks like WPF/Silverlight and .NET Micro Framework have the same architect. However, it cannot use hardware acceleration and has very limited number of objects. All this because of it&amp;#39;s purpose &amp;quot;platform to devices that do not need the fuller functionality available in the .NET Framework and the .NET Compact Framework&amp;quot;. I would add Windows Presentation Foundation as well.&lt;/p&gt;  &lt;p&gt;The application model of .NET Micro Framework is very similar to WPF. It has native CLR/PAL and HAL and managed libraries. &lt;/p&gt;  &lt;p&gt;&lt;img height="324" alt="image" src="http://blogs.microsoft.co.il/blogs/tamir/WindowsLiveWriter/RunningWPFongaspumporotherWindowsCEdevic_E251/image_8d1277cc-3f51-4b8d-8b2b-e91d3bea8037.png" width="503" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Sufficient number of components in CLR - types, threads and timers, reflection, serialization, GC, networking, other connectivities etc., enables you to create, even games, that will run on even &lt;a href="http://blogs.microsoft.co.il/blogs/zivraf/archive/2008/03/13/a-heart-device-is-found-vulnerable-to-hacker-attacks.aspx" target="_blank"&gt;Heart Device&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Other words, cool technology and possible cool appliance for your programming skills.&amp;#160; &lt;/p&gt;  &lt;p&gt;How to start? First of all, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EB0EF2A6-03E2-402C-89A4-A636BD0080C5&amp;amp;displaylang=en" target="_blank"&gt;download .NET Micro Framework v2.5&lt;/a&gt; (VS2005, you can also add Microsoft.SPOT assemblies into your regular VS2008 project) and start programming. It&amp;#39;s really simple (I build snake game for less, then hour)&lt;/p&gt;  &lt;p&gt;See your applications, running on embedded devices. BTW, I&amp;#39;ll probably present something, developed with this framework in my TechEd session aside with WPF, Silverlight and XNA... Keep tuned and have a nice day&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=65881" 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/Mobile/default.aspx">Mobile</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/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/blogging+general/default.aspx">blogging general</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/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/Micro+Framework/default.aspx">Micro Framework</category></item></channel></rss>