<?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>Arik Poznanski&amp;#39;s Blog : C#</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx</link><description>Tags: C#</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>I’m a Microsoft MVP!</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/10/02/i-m-a-microsoft-mvp.aspx</link><pubDate>Sun, 02 Oct 2011 22:25:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:909733</guid><dc:creator>arik</dc:creator><slash:comments>9</slash:comments><description>&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp; &lt;img border="0" alt="MVP Logo" align="middle" src="http://blogs.microsoft.co.il/blogs/arik/MVP_FullColor_ForScreen_38247525.png" width="128" height="200" /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;I&amp;#39;ve recently received an email from Microsoft notifying me I&amp;#39;ve been awarded Microsoft MVP in Visual C# !&lt;/p&gt;
&lt;p&gt;I’d like to thank &lt;strong&gt;Microsoft&lt;/strong&gt; and specifically &lt;a href="http://blogs.microsoft.co.il/blogs/bursteg/"&gt;Guy Burstein&lt;/a&gt; for his guidance and excellent advice on finding ways to help the developers community. &lt;br /&gt;Also, a special thanks is in order for my managers at &lt;strong&gt;Sela Group&lt;/strong&gt;: David Bassa, Caro Segal and Ishai Ram for giving me the time to invest in the developers community.&lt;br /&gt;Lastly, I&amp;#39;d like to thank you, my blog readers.&lt;/p&gt;
&lt;p&gt;Now that I got this out, I can continue my Thailand honeymoon trip :) &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img border="0" alt="Thailand 2011" align="middle" src="http://blogs.microsoft.co.il/blogs/arik/thailand2011.jpg" width="640" height="480" /&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#39;s it for now,&lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=909733" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/MVP/default.aspx">MVP</category></item><item><title>Windows 8: What's New?</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/09/19/windows-8-what-s-new.aspx</link><pubDate>Mon, 19 Sep 2011 04:24:04 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:902624</guid><dc:creator>arik</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;Got back from &lt;a href="http://www.buildwindows.com/"&gt;Build conference&lt;/a&gt;. Since I expect many people will ask me &amp;quot;So, what&amp;#39;s new?&amp;quot; and since the answer is rather complex, I figured I should try to write a post about it, so here goes…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/build_logo_1A197150.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="build_logo" border="0" alt="build_logo" src="http://blogs.microsoft.co.il/blogs/arik/build_logo_thumb_1F87E1F4.png" width="252" height="90" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;General Information&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Windows 7 sold (i.e. legal copies) over 450,000,000 copies since it was released. &lt;/li&gt;    &lt;li&gt;Windows 7 bypassed Windows XP in world usage. &lt;/li&gt;    &lt;li&gt;Windows 8 will be used primary for tablets and other touch-based devices. &lt;/li&gt;    &lt;li&gt;Windows 8 can run on Intel-based processors or &lt;a href="http://en.wikipedia.org/wiki/ARM_architecture"&gt;ARM&lt;/a&gt;-based processors. &lt;/li&gt;    &lt;li&gt;Windows 8 consumes fewer resources than Windows 7 and has the same hardware requirements. &lt;/li&gt;    &lt;li&gt;Windows 8 has a new user interface, used primarily with touch screens but supports fallback to mouse and keyboard, applications that uses the new user interface are called &amp;quot;Metro-style applications&amp;quot;. &lt;/li&gt;    &lt;li&gt;All participants of the Build conference received a Samsung tablet with a preview release of Windows 8, that has the following spec:      &lt;ul&gt;       &lt;li&gt;Intel Core i5 &lt;/li&gt;        &lt;li&gt;4GB DDR3 &lt;/li&gt;        &lt;li&gt;64GB SSD &lt;/li&gt;        &lt;li&gt;11.6&amp;quot; diagonal, 1366x768 display &lt;/li&gt;        &lt;li&gt;Included dock and USB keyboard &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows 8 Developer Preview version can be downloaded &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516"&gt;here&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Windows 8 for Developers&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;There is a new way to expose Windows API named Windows Runtime or &lt;strong&gt;WinRT&lt;/strong&gt;.       &lt;ul&gt;       &lt;li&gt;WinRT is completely native and is built above COM with the addition of inheritance, generics, delegates and more. Basically WinRT = Modern COM. &lt;/li&gt;        &lt;li&gt;WinRT doesn&amp;#39;t cover all previous Win32 APIs. &lt;/li&gt;        &lt;li&gt;WinRT has can be used from C++, C#, VB.NET and JavaScript using &lt;u&gt;language projections&lt;/u&gt; which are auto-generated from the WinRT APIs and provide a natural and familiar experience for developers of the language. &lt;/li&gt;        &lt;li&gt;WinRT API follow a guideline that says that every API which might take more than 50ms should be async. As a result a lot of WinRT APIs are async. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/windows-8-platform-tools_0B8E4F5E.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="windows-8-platform-tools" border="0" alt="windows-8-platform-tools" src="http://blogs.microsoft.co.il/blogs/arik/windows-8-platform-tools_thumb_1592CABC.jpg" width="600" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;WinRT includes a native UI framework, XAML-based, for building Metro-style applications. &lt;/li&gt;    &lt;li&gt;The XAML of the new WinRT UI framework resembles Silverlight XAML rather than WPF XAML. &lt;/li&gt;    &lt;li&gt;Metro-style applications can be built in the following technologies:      &lt;ul&gt;       &lt;li&gt;C++ and XAML &lt;/li&gt;        &lt;li&gt;C# and XAML &lt;/li&gt;        &lt;li&gt;VB.NET and XAML &lt;/li&gt;        &lt;li&gt;JavaScript and HTML/CSS &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;A Metro-style application can collaborate with another Metro-style application without knowing him at all using several contracts that Windows 8 defines, e.g. share source contract and share target contract. &lt;/li&gt;    &lt;li&gt;Metro-style applications should define the &lt;u&gt;capabilities&lt;/u&gt; they use, similar to Windows Phone applications. At runtime these declarations are enforced. &lt;/li&gt;    &lt;li&gt;C++ has new extensions that allows easy integration with WinRT, these extensions follow a syntax similar to C++/CLI, only they are completely native. &lt;/li&gt;    &lt;li&gt;The next version of .NET Framework is 4.5, nothing too exciting there. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;IDE Improvements&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;There is a &lt;a href="http://www.microsoft.com/visualstudio/en-us/visual-studio-11"&gt;preview version&lt;/a&gt; &lt;strong&gt;Visual Studio 11 &lt;/strong&gt;and &lt;strong&gt;Expression Blend 5&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;New in Visual Studio 11:      &lt;ul&gt;       &lt;li&gt;Added new project templates for developing Metro-style applications in all the supported languages. &lt;/li&gt;        &lt;li&gt;Productivity Power Tools incorporated into Visual Studio 11. &lt;/li&gt;        &lt;li&gt;New features for agile development including: Sprint Planning, Managing Task Board, Performing Code Reviews. &lt;/li&gt;        &lt;li&gt;XAML properties editor is the same as the corresponding Blend editor. &lt;/li&gt;        &lt;li&gt;Deploy to the new Windows App Store directly from Visual Studio 11. &lt;/li&gt;        &lt;li&gt;Added tools for viewing and basic editing 3D models, images, textures and also for debugging DirectX based output. &lt;/li&gt;        &lt;li&gt;Added feature that allows searching for code duplication based on semantic tree instead of simple text search. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;New in Expression Blend 5:      &lt;ul&gt;       &lt;li&gt;Designing Metro-style HTML / CSS applications. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;TFS will be available as a service on the cloud. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Some General Insights:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;C++ is very much alive! I&amp;#39;ve been to an excellent lecture on modern C++ (the portable one, not MS specific), by Herb Sutter. Wow. So many C++ developers, the room was packed! &lt;/li&gt;    &lt;li&gt;Future of Silverlight is not clear. There &lt;u&gt;will&lt;/u&gt; be version 5 but there&amp;#39;s no information about what&amp;#39;s next. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Since all the videos are now available on the conference site, I strongly suggest you see the ones that are interesting for you. Note that there quite a lot.&lt;/p&gt;  &lt;p&gt;That&amp;#39;s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/09/19/windows-8-what-s-new.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/09/19/windows-8-what-s-new.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/09/19/windows-8-what-s-new.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/09/19/windows-8-what-s-new.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=902624" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Build/default.aspx">Build</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/PDC+2011/default.aspx">PDC 2011</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinRT/default.aspx">WinRT</category></item><item><title>New C# Forum for the Israeli Developers Community</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/17/new-c-forum-for-the-israeli-developers-community.aspx</link><pubDate>Thu, 18 Aug 2011 03:48:01 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:885789</guid><dc:creator>arik</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Following are some blog news:&lt;/p&gt;  &lt;h3&gt;New Israeli C# Forum&lt;/h3&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://blogs.microsoft.co.il/blogs/gilf/MSDN-Logo_0692FEAF.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;I&amp;#39;m proud to present a new MSDN forum in Hebrew for the &lt;strong&gt;C# developers community &lt;/strong&gt;in Israel, managed by yours truly. &lt;/p&gt;  &lt;p&gt;The forum is available on the following link: &lt;a title="http://social.msdn.microsoft.com/Forums/he-il/VisualCsharpil" href="http://social.msdn.microsoft.com/Forums/he-il/VisualCsharpil"&gt;http://social.msdn.microsoft.com/Forums/he-il/VisualCsharpil&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To all those nice developers who keep asking me C# related questions by mail, I strongly urge you to post your C# related questions on this forum.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOT because I don&amp;#39;t enjoy it! &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;On contrary, I love to help you and would even more enjoy it if even more people could enjoy the answers. Plus, there&amp;#39;s more people on this forum that can help, so you will probably get an answer sooner :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In other news..&lt;/p&gt;  &lt;h3&gt;New Windows 8 Blog&lt;/h3&gt;  &lt;p&gt;With &lt;a href="http://www.buildwindows.com/"&gt;Build conference&lt;/a&gt; approaching fast, Microsoft recently opened a new blog for Windows 8 behind the scenes details. Hopefully this is a sign that Microsoft is going to raise the curtain from the mysterious Windows 8. Follow the new blog &lt;a href="http://blogs.msdn.com/b/b8/"&gt;here&lt;/a&gt; or on their Twitter &lt;strong&gt;&lt;a href="https://twitter.com/#!/BuildWindows8"&gt;@BuildWindows8&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That&amp;#39;s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/17/new-c-forum-for-the-israeli-developers-community.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/17/new-c-forum-for-the-israeli-developers-community.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/17/new-c-forum-for-the-israeli-developers-community.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/17/new-c-forum-for-the-israeli-developers-community.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=885789" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Using Windows Phone As Windows 7 Accelerometer Sensor</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx</link><pubDate>Sat, 13 Aug 2011 15:54:20 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:883702</guid><dc:creator>arik</dc:creator><slash:comments>191</slash:comments><description>&lt;p&gt;I just had a cool idea! (actually I had it like 6 month ago, but bear with me).&lt;/p&gt;  &lt;p&gt;My idea involves mixing some of the features in Windows 7 with some of the features in Windows Phone 7, to create a glorious mix!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_6105F6E1.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_25DE2CE4.png" width="640" height="382" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Windows 7&lt;/h3&gt;  &lt;p&gt;One of the new features in Windows 7 is the &lt;a href="http://msdn.microsoft.com/en-us/library/dd318953(VS.85).aspx"&gt;Sensor API&lt;/a&gt; which provides a standard interface for accessing sensors of various types, like &lt;font style="background-color:#ffff00;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;accelerometer&lt;/strong&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;, etc..&lt;/p&gt;  &lt;p&gt;I &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/06/29/using-windows-7-light-sensor-in-your-application.aspx"&gt;wrote&lt;/a&gt; in the past about how you can consume this API from a C# application using &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack"&gt;Windows API Code Pack&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Windows Phone 7&lt;/h3&gt;  &lt;p&gt;Windows Phone 7 comes with a few sensors out of the box, among them: &lt;strong&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;accelerometer!&lt;/strong&gt;&lt;strong&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Idea&lt;/h3&gt;  &lt;p&gt;What if we use Windows Phone 7 accelerometer sensor as a standard device on Windows 7?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Roadmap&lt;/h3&gt;  &lt;p&gt;So how can we accomplish that? let&amp;#39;s break the idea to steps:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 1&lt;/u&gt;: Create a software driver &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I’ll start with creating a dummy software driver. This driver will implement what&amp;#39;s necessary to be a standard Windows 7 Accelerometer sensor, but at this stage will simply return constant data.&lt;/p&gt;  &lt;p&gt;In order to write a sensor driver for Windows 7 I’ll need to use &lt;a href="http://www.microsoft.com/whdc/driver/wdf/umdf.mspx"&gt;User Mode Driver Framework&lt;/a&gt; (UMDF), a COM-like, C++ framework for writing user-mode drivers in Windows 7.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 2&lt;/u&gt;: Transfer Windows Phone 7 sensor data into the PC&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The next step is to find a way to transfer the accelerometer data from a Windows Phone device into the PC. One possible way of doing this implementing a local WCF service on the desktop that the Phone will keep calling with accelerometer data. This will require an application to run on the phone to keep the data flowing.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 3&lt;/u&gt;: Consume the WCF service from the phone&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Using the service from the previous step we can now consume it in a simple Windows Phone application that all it does is getting the accelerometer sensor data using the phone API and call the WCF service with the latest data.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 4&lt;/u&gt;: Make the software driver consume the Windows Phone 7 data&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now that I have a software driver that returns dummy accelerometer data and a way to get real accelerometer data from the Windows Phone, all I need to do is connecting the dots and make my accelerometer driver return the real data. To do this I&amp;#39;ll need some kind of inter process communication to transfer the data from the WCF service to the driver.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Long Story Short…&lt;/h3&gt;  &lt;p&gt;I present to you the &lt;strong&gt;Windows Phone Accelerometer Driver for Windows 7&lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;The full source code for this project can be found on the &lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;a href="http://wp7accelerometer.codeplex.com/"&gt;CodePlex project site&lt;/a&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Some Implementation Details&lt;/h3&gt;  &lt;p&gt;The actual driver was fairly easy to implement since I used the CodeProject article &amp;quot;&lt;a href="http://www.codeproject.com/KB/system/wiisensor.aspx"&gt;Writing a Sensor Driver for the Wiimote on Windows 7&lt;/a&gt;&amp;quot; by &lt;a href="http://blogorama.nerdworks.in/entry-WritingasensordriverfortheWiim.aspx"&gt;Rajasekharan Vengalil&lt;/a&gt; as a base for my Windows Phone 7 driver. You can find the driver source code in the project named &lt;strong&gt;WP7AccelerometerDriver&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;As mentioned earlier I&amp;#39;ve implemented a simple local WCF service for transferring the accelerometer data from the phone to the driver. You can find the service source code in the project named &lt;strong&gt;WP7AccelerometerService&lt;/strong&gt;. The service uses named pipes to communicate with the driver.&lt;/p&gt;  &lt;p&gt;The phone application is a very simple one that consumes the WCF service and call it whenever a new accelerometer value is available. You can find its source code in the project named &lt;strong&gt;WP7AccelerometerClient&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Finally, if you want to check the functionality of the accelerometer driver you can use either the &lt;strong&gt;SensorDiagnostics &lt;/strong&gt;project or the more fun &lt;strong&gt;PlaneDemo&lt;/strong&gt; project, which I borrowed for &lt;a href="http://weblogs.asp.net/sergeyzwezdin/archive/2009/07/01/windows-7-sensor-and-location-platform-sensors-programming-part-2-3.aspx"&gt;Sergey Zwezdin blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;How to Install?&lt;/h3&gt;  &lt;p&gt;1. Download and extract project binaries or source from the &lt;a href="http://wp7accelerometer.codeplex.com/releases/view/71672"&gt;CodePlex project site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;2. Open &lt;strong&gt;CMD&lt;/strong&gt; &lt;u&gt;as administrator &lt;/u&gt;&lt;/p&gt;  &lt;p&gt;3. Go to the folder &lt;strong&gt;\Driver\Install\&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;4. According to the bitness of your OS Run &lt;strong&gt;install_wp7_driver_32bit.bat &lt;/strong&gt;or &lt;strong&gt;install_wp7_driver_64bit.bat&lt;/strong&gt; to install the driver. &lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_25322462.png"&gt;     &lt;br /&gt;      &lt;br /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_25322462.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_71799236.png" width="600" height="490" /&gt;&lt;/a&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. When the following notification appears, select &amp;quot;&lt;strong&gt;Install this driver software anyway&lt;/strong&gt;&amp;quot;: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image11_1F04C4AD.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image11_thumb_250BC5AE.png" width="600" height="344" /&gt;&lt;/a&gt;     &lt;br /&gt;This should take around 1-2 minutes to complete. &lt;/p&gt;  &lt;p&gt;6. Enable installed Sensor in the &lt;strong&gt;Control Panel&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_5B6F12A5.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_18336EAB.png" width="600" height="374" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;7. Run the WCF service from &lt;u&gt;as administrator&lt;/u&gt;. If you run it from Visual Studio, make sure you ran Visual Studio as administrator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_7191B5D2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_7B963130.png" width="600" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;8. Run the Windows Phone client on a real device while connected to the PC and enter your PC (LAN) IP &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_574126E1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_23F4C7AB.png" width="330" height="600" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;9. That&amp;#39;s it! you can now sit back and enjoy the ride using the &lt;strong&gt;PlaneDemo&lt;/strong&gt; application or &lt;strong&gt;SensorDiagnostics&lt;/strong&gt;, or any other software that uses the accelerometer sensor. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_0DAE868C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_7E8781E4.png" width="500" height="600" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_6EF44A48.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_05C2F5F8.png" width="600" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;How to Uninstall? &lt;/h3&gt;  &lt;p&gt;If you want to uninstall the driver simply go to the &lt;strong&gt;Device Manager&lt;/strong&gt;, select the &amp;quot;&lt;strong&gt;WP7 Accelerometer Sensor&lt;/strong&gt;&amp;quot; device from the &lt;strong&gt;Sensors &lt;/strong&gt;category, select uninstall from the context menu and &lt;strong&gt;make sure you mark the checkbox to delete the driver&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_32C7BCF9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_1B005FC6.png" width="466" height="287" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Final Note&lt;/h3&gt;  &lt;p&gt;I&amp;#39;ve seen the project works both on a real device and using the phone emulator, however it&amp;#39;s not a one-click install. I expect users to have problems with the installation. If you encounter some problems, please post on the &lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;a href="http://wp7accelerometer.codeplex.com/discussions"&gt;CodePlex project site forum&lt;/a&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt; page and I&amp;#39;ll do my best to help. &lt;/p&gt;  &lt;p&gt;Also, if you want to improve the source code (maybe adding GPS support?) or the installation procedure, I&amp;#39;ll be happy to include your improvements and even include you as one of the project members on CodePlex.&lt;/p&gt;  &lt;p&gt;This project was pure fun since it combines many useful technologies to create real value. Among the technologies you can find: C++, COM, UMDF, C#, WCF, WP7, etc..&lt;/p&gt;  &lt;p&gt;That&amp;#39;s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=883702" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/COM/default.aspx">COM</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Accelerometer/default.aspx">Accelerometer</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/UMDF/default.aspx">UMDF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Driver/default.aspx">Driver</category></item><item><title>Spelling and Grammar Checking Plugin for Windows Live Writer</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/10/spelling-and-grammar-checking-plugin-for-windows-live-writer.aspx</link><pubDate>Sat, 11 Jun 2011 02:04:42 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:842047</guid><dc:creator>arik</dc:creator><slash:comments>9</slash:comments><description>&lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;In my &lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/08/c-library-for-grammar-and-spell-checking.aspx"&gt;previous post&lt;/a&gt; I’ve presented “&lt;a href="http://www.afterthedeadline.com/development.slp"&gt;After the Deadline&lt;/a&gt;”, a spelling and grammar checking web service and my .&lt;a href="http://afterthedeadline.codeplex.com/"&gt;NET wrapper library&lt;/a&gt;. This library allows you to integrate spell and grammar checking in your .NET application. The library was written in C# using .NET 4.&lt;/p&gt;  &lt;p&gt;Also, back in &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application.aspx"&gt;this post&lt;/a&gt;, I’ve presented how one can use a .NET 4 DLL from a .NET 2 executable.&lt;/p&gt;  &lt;p&gt;All of this was just preparations for writing my own grammar checker plugin for &lt;a href="http://www.google.co.il/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CB8QFjAA&amp;amp;url=http%3A%2F%2Fexplore.live.com%2Fwindows-live-writer%3Fos%3Dother&amp;amp;ei=zWXpTarvCcXDswbqn63oCg&amp;amp;usg=AFQjCNGXsRHp4X869Dns9bZwu-abBwYRmQ&amp;amp;sig2=I01nRSWYSeIFjz6LpYY2qw"&gt;Windows Live Writer&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Now, I know what you’re thinking.. “Doesn’t WLW already have a spell checker?”    &lt;br /&gt;Answer: it does, but its grammar checking abilities are quite limited.&lt;/p&gt;  &lt;p&gt;Obviously, I’ve used my “After the Deadline” wrapper library for the grammar checking. And since Windows Live Writer plugins must be written in .NET 2, I’ve used the same techniques mentioned in my previous article mentioned above. &lt;/p&gt;  &lt;h3&gt;Where can I get this awesome plugin?&lt;/h3&gt;  &lt;p&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;Well, both the source code and an MSI installer can be downloaded from the downloads section in the new &lt;a href="http://grammarcheckerplugin.codeplex.com/"&gt;CodePlex project&lt;/a&gt; I’ve created.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h3&gt;Using the spelling and grammar checker plugin&lt;/h3&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&lt;/u&gt; Select the text you want to check&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_1281C49C.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_614E502F.png" width="640" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/u&gt;: Go to the “Insert” tab and select “Grammar Checker” from the listed plugins&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_4444DFC0.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_6346EF5F.png" width="640" height="422" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/u&gt;: Correct the presented errors using the “Spelling and Grammar” dialog&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_19B44F0A.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_0C3A0238.png" width="640" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/u&gt;: Repeat step 3 until a completed message appears&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_49C69E5A.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_062AD939.png" width="640" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;P.S.&lt;/h3&gt;  &lt;p&gt;Somehow, merely 2 days after I&amp;#39;ve created the CodePlex project there were &lt;a href="http://lehsys.blogspot.com/2011/06/windows-live-writer-2011-now-has-spell.html"&gt;three&lt;/a&gt; &lt;a href="http://www.labnol.org/software/grammar-in-windows-live-writer/19498/"&gt;blog&lt;/a&gt; &lt;a href="http://www.instantfundas.com/2011/06/deadline-grammarspell-checker-plugin.html"&gt;posts&lt;/a&gt; about it. WOW. I guess this plugin was needed more than I thought.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/10/spelling-and-grammar-checking-plugin-for-windows-live-writer.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/10/spelling-and-grammar-checking-plugin-for-windows-live-writer.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/10/spelling-and-grammar-checking-plugin-for-windows-live-writer.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/10/spelling-and-grammar-checking-plugin-for-windows-live-writer.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=842047" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Plug-in/default.aspx">Plug-in</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/After+the+Deadline/default.aspx">After the Deadline</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Grammar+Checker/default.aspx">Grammar Checker</category></item><item><title>C# Library for Grammar and Spell Checking</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/08/c-library-for-grammar-and-spell-checking.aspx</link><pubDate>Wed, 08 Jun 2011 20:54:24 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:841669</guid><dc:creator>arik</dc:creator><slash:comments>6</slash:comments><description>&lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;I recently had the idea to create a plug-in for &lt;a href="http://explore.live.com/windows-live-writer?os=other"&gt;Windows Live Writer&lt;/a&gt; that will provide grammar checks in addition to the built-in spell checks.&lt;/p&gt;  &lt;p&gt;As I’ve showed before, &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/07/17/live-writer-plug-in-for-sharing-technical-post.aspx"&gt;creating&lt;/a&gt; &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/12/04/how-to-implement-a-windows-live-writer-plug-in-that-checks-for-missing-tags.aspx"&gt;plug-ins&lt;/a&gt; for Windows Live Writer is easy, the problem was to get the code for doing the grammar checking.&lt;/p&gt;  &lt;p&gt;I’ve found this wonderful site named “&lt;a href="http://afterthedeadline.com/"&gt;After the Deadline&lt;/a&gt;” that provides a web based &lt;a href="http://www.afterthedeadline.com/development.slp"&gt;API&lt;/a&gt; for both grammar and spell checking, free for non-commercial use!&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://curiouslittleperson.com/wp-content/uploads/2010/10/After-the-Deadline-logo.jpg" width="261" height="64" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;The site also provides several wrapper libraries for using these APIs. Unfortunately, C# (or any other .NET language) is not among them. Until now.&lt;/p&gt;  &lt;p&gt;I present you a C# wrapper library for easily using the “After the Deadline” APIs from any .NET application.    &lt;br /&gt;I’ve uploaded the C# wrapper to &lt;a href="http://afterthedeadline.codeplex.com/"&gt;CodePlex&lt;/a&gt; and I’ll try to publish it also on the official &lt;a href="http://afterthedeadline.com/"&gt;AtD site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Features&lt;/h3&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Check both grammar and spelling of a given document &lt;/li&gt;      &lt;li&gt;Check only grammar of a given document (faster) &lt;/li&gt;      &lt;li&gt;Get extra information (in HTML format) about specific errors &lt;/li&gt;      &lt;li&gt;Get general statistics on a given document &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;APIs&lt;/h3&gt;  &lt;p&gt;These previously mentioned features are exposed by the following simple interface:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2c1993e0-aee9-4356-9ce3-949eb2bc0192" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; Initializes the After the Deadline service&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;param name=&amp;quot;applicationKey&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The application key.&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;param name=&amp;quot;userKey&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The user key.&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; InitService(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; applicationKey, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; userKey);&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; Checks a document and returns errors and suggestions&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;param name=&amp;quot;data&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The data to check&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;Enumerable of error objects&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Error&lt;/span&gt;&amp;gt; CheckDocument(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; data);&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; Checks a document (sans spelling) returns errors and suggestions&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;param name=&amp;quot;data&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The data to check&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;Enumerable of error objects&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Error&lt;/span&gt;&amp;gt; CheckGrammar(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; data);&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; Returns HTML describing an error&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;param name=&amp;quot;text&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The text that triggered an error&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The HTML response&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Info(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; text);&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; Returns statistics about the writing quality of a document&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#808080;"&gt;///&lt;/span&gt;&lt;span style="color:#008000;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;param name=&amp;quot;data&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;The data to check&lt;/span&gt;&lt;span style="color:#808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Metric&lt;/span&gt;&amp;gt; Stats(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; data);&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;The &lt;strong&gt;InitService &lt;/strong&gt;method just sets an application key and user key you should generate according to the &lt;a href="http://www.afterthedeadline.com/api.slp"&gt;following&lt;/a&gt; instructions. &lt;/p&gt;  &lt;p&gt;The most useful method is &lt;strong&gt;CheckDocument &lt;/strong&gt;which accepts the text to check and returns a collection of error objects.&lt;/p&gt;  &lt;p&gt;Since this is simply a wrapper around the original REST API, I strongly suggest you check out the original API documentation to get more details about the parameters and return values.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Can you provide some details about the implementation?&lt;/h3&gt;  &lt;p&gt;Sure. The &lt;a href="http://www.afterthedeadline.com/development.slp"&gt;API&lt;/a&gt; which is exposes by “After the Deadline” site is based on REST and XML responses.&lt;/p&gt;  &lt;p&gt;I simply use &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx"&gt;WebClient&lt;/a&gt;’s &lt;a href="http://msdn.microsoft.com/en-us/library/ms144200.aspx"&gt;DownloadString&lt;/a&gt; method to get access to the REST interface and then parse the XML using &lt;a href="http://msdn.microsoft.com/en-us/library/bb387098.aspx"&gt;LINQ to XML&lt;/a&gt;. Nice and easy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;What&amp;#39;s next?&lt;/h3&gt;  &lt;p&gt;On my next post I&amp;#39;ll show you a cool implementation of a plugin for Windows Live Writer that uses this library to provide grammar checking.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/08/c-library-for-grammar-and-spell-checking.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/08/c-library-for-grammar-and-spell-checking.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/08/c-library-for-grammar-and-spell-checking.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/06/08/c-library-for-grammar-and-spell-checking.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=841669" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/AfterTheDeadline/default.aspx">AfterTheDeadline</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Grammar+Check/default.aspx">Grammar Check</category></item><item><title>How To Use a .NET 4 Based DLL From .NET 2 Based Application?</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application.aspx</link><pubDate>Mon, 30 May 2011 23:50:01 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:838795</guid><dc:creator>arik</dc:creator><slash:comments>23</slash:comments><description>&lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;The official answer is you can’t. Even with the &lt;a href="http://msdn.microsoft.com/en-us/library/ee518876.aspx"&gt;In-Process Side by Side execution&lt;/a&gt; (SxS) feature, introduced in .NET 4.&lt;/p&gt;  &lt;p&gt;The SxS feature was intended to be used when &lt;a href="http://en.wikipedia.org/wiki/Component_Object_Model"&gt;COM&lt;/a&gt; is involved. For example, if you got an application that loads plugins, like outlook, and it loads 2 COM plugins, one is using .NET 4 and the other is using .NET 2.0 then it will load two versions of the CLR into the process using the new SxS feature.&lt;/p&gt;  &lt;p&gt;What if I simply have a .NET 2 application or DLL that needs to access a .NET 4 DLL?&lt;/p&gt;  &lt;p&gt;Personally I’ve encountered two scenarios when I had to solve this problem:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I had a 3rd-party control that would load only in a .NET 3.5 application, but I had to use it in a .NET 4 application. &lt;/li&gt;    &lt;li&gt;I wanted to write a plug-in for Windows Live Writer, which must use .NET 2.0, but I needed to use in my plug-in a .NET 4 DLL. &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;So, what can we do if no COM is involved?&lt;/h3&gt;  &lt;p&gt;Well, simply add &lt;strong&gt;COM&lt;/strong&gt; to the mixture..&lt;/p&gt;  &lt;p&gt;The idea is that you can expose the required classes from your DLL (which uses .NET Framework X) as COM classes (using &lt;a href="http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx"&gt;COM Interop&lt;/a&gt;), and then use those classes from your other DLL (which uses .NET Framework Y). Since you are crossing a COM interface, in-process SxS will kick in and work its magic.&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;Steps to work around the problem&lt;/h3&gt;  &lt;h4&gt;Create a .NET 4 DLL&lt;/h4&gt;  &lt;p&gt;Suppose we have a .NET 4 DLL which does some .NET 4 functionality. In the attached example our .NET 4 class prints the CLR version, which should be 4. This DLL is compiled with .NET Framework 4.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0b45f197-9090-44a4-b6ee-ecafda3ffe93" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Net4Assembly&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; DoNet4Action()&lt;br /&gt;         {&lt;br /&gt;             &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;CLR version from DLL: {0}&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Environment&lt;/span&gt;.Version);&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Create a .NET 2 EXE&lt;/h4&gt;  &lt;p&gt;Here we create a .NET 2 EXE which will eventually call the .NET 4 DLL, currently all it does is write it’s own CLR version.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ab6cdda1-f32a-407c-83d3-d60f7d30ecb1" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Net2Assembly&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Program&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;         {&lt;br /&gt;             &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;CLR version from EXE: {0}&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Environment&lt;/span&gt;.Version);&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Create a .NET 4 to .NET 2 adapter&lt;/h4&gt;  &lt;p&gt;Here we create a .NET 4 DLL that exposes the same functionality we need from our original .NET 4 DLL only it exposes it in a COM-friendly way. In this example, it only needs to delegate the call to the original implementation, but in more advanced scenarios it should translate the parameters to something more COM friendly. In addition to changing the parameters the classes also implement interfaces (as required by COM) and are marked with &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.comvisibleattribute.aspx"&gt;ComVisible&lt;/a&gt; &lt;/strong&gt;and &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.guidattribute.aspx"&gt;Guid&lt;/a&gt; &lt;/strong&gt;attributes to allow access using COM.&lt;/p&gt;  &lt;p&gt;Here is our COM visible interface:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6028544e-e566-4257-a2dc-d4923faf5709" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Net4ToNet2Adapter&lt;br /&gt; {&lt;br /&gt;     [&lt;span style="color:#2b91af;"&gt;ComVisible&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;br /&gt;     [&lt;span style="color:#2b91af;"&gt;Guid&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;E36BBF07-591E-4959-97AE-D439CBA392FB&amp;quot;&lt;/span&gt;)]&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IMyClassAdapter&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; DoNet4Action();&lt;br /&gt;     }&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;And our COM visible class, which delegates its calls to the original class.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a9a5f024-78a7-4614-a696-4b995d1dab20" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; Net4Assembly;&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Net4ToNet2Adapter&lt;br /&gt; {&lt;br /&gt;     [&lt;span style="color:#2b91af;"&gt;ComVisible&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;br /&gt;     [&lt;span style="color:#2b91af;"&gt;Guid&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;A6574755-925A-4E41-A01B-B6A0EEF72DF0&amp;quot;&lt;/span&gt;)]&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyClassAdapter&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;IMyClassAdapter&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt; _myClass = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;();&lt;br /&gt; &lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; DoNet4Action()&lt;br /&gt;         {&lt;br /&gt;             _myClass.DoNet4Action();&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;u&gt;Note&lt;/u&gt;: we could have combined &lt;strong&gt;Net4Assembly.MyClass &lt;/strong&gt;and &lt;strong&gt;Net4ToNet2Adapter.MyClassAdapter&lt;/strong&gt; into the same class but I wanted to keep the example general. In real life application you often can’t change the original object and thus you are forced to create a wrapper.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Add support to the adapter for registration-free COM activation&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Important note&lt;/u&gt;: this part is not really necessary for the .NET 4 to .NET 2 interop to work. But without it you will need to start using he registry for registering your .NET COM components and most projects would rather to avoid it if possible. If this is not a problem just register your objects in the registry and move to the next step.&lt;/p&gt;  &lt;p&gt;To add support for registration-free COM we need to create two application manifest files.&lt;/p&gt;  &lt;p&gt;The first application manifest specifies dependent assemblies for the client executable. Note that since this manifest replaces the default .NET manifest I’ve added some extra standard manifest stuff (trustinfo), but only the first part is really needed for the registration-free COM to work. To add it, add a file to the client project named &lt;strong&gt;app.manifest &lt;/strong&gt;(“Add new item” –&amp;gt; “Application Manifest”) and change the project properties to use this file. &lt;/p&gt;  &lt;p&gt;Following is the content of &lt;strong&gt;app.manifest&lt;/strong&gt; for the &lt;strong&gt;Net2Aseembly.exe&lt;/strong&gt; client in our example:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fd25b59c-b95d-4edf-83d6-4189e5d4c4d3" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;UTF-8&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;standalone&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;yes&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assembly&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;urn:schemas-microsoft-com:asm.v1&lt;/span&gt;&amp;quot;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;manifestVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assemblyIdentity&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; = &lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;win32&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; = &lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Net2Assembly&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; = &lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0.0.0&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dependency&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dependentAssembly&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assemblyIdentity&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;win32&lt;/span&gt;&amp;quot;&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Net4ToNet2Adapter&lt;/span&gt;&amp;quot;&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0.0.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dependentAssembly&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dependency&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;trustInfo&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;urn:schemas-microsoft-com:asm.v2&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;security&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;requestedPrivileges&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;urn:schemas-microsoft-com:asm.v3&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000;"&gt; UAC Manifest Options&lt;/span&gt;&lt;br /&gt;             &lt;span style="color:#008000;"&gt;If you want to change the Windows User Account Control level replace the &lt;/span&gt;&lt;br /&gt;             &lt;span style="color:#008000;"&gt;requestedExecutionLevel node with one of the following.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;         &lt;span style="color:#008000;"&gt;&amp;lt;requestedExecutionLevel  level=&amp;quot;asInvoker&amp;quot; uiAccess=&amp;quot;false&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:#008000;"&gt;&amp;lt;requestedExecutionLevel  level=&amp;quot;requireAdministrator&amp;quot; uiAccess=&amp;quot;false&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:#008000;"&gt;&amp;lt;requestedExecutionLevel  level=&amp;quot;highestAvailable&amp;quot; uiAccess=&amp;quot;false&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;             &lt;span style="color:#008000;"&gt;If you want to utilize File and Registry Virtualization for backward &lt;/span&gt;&lt;br /&gt;             &lt;span style="color:#008000;"&gt;compatibility then delete the requestedExecutionLevel node.&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:#008000;"&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;requestedExecutionLevel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;level&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;asInvoker&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;uiAccess&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;requestedPrivileges&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;security&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;trustInfo&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assembly&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The second application manifest, describes the COM components which are exposed in the assembly. It needs to be set as the application manifest which resides as a native Win32 resource inside the DLL.&amp;#160; &lt;/p&gt;  &lt;p&gt;Unfortunately, this can’t be done as easily as the previous manifest. In &lt;strong&gt;Visual Studio 2010&lt;/strong&gt;, the relevant field in the project properties is disabled when the project is of type &lt;strong&gt;Class Library&lt;/strong&gt;. So we must go to the &lt;strong&gt;Net4ToNet2Adapter.csproj &lt;/strong&gt;file and change it ourselves. The change is easy, just add the following lines in the relevant place:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:596c139f-afc7-4ed5-ab42-93b8fac80331" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ApplicationManifest&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;app.manifest&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ApplicationManifest&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Following is the content of &lt;strong&gt;app.manifest&lt;/strong&gt; for the &lt;strong&gt;Net4ToNet2Adapter.dll&lt;/strong&gt; in our example:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:da581a66-7533-494e-9bea-4a66d521b9e4" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;UTF-8&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;standalone&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;yes&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assembly&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;urn:schemas-microsoft-com:asm.v1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;manifestVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assemblyIdentity&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;win32&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Net4ToNet2Adapter&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1.0.0.0&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;clrClass&lt;/span&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;clsid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;{&lt;span style="color:#0000ff;"&gt;A6574755-925A-4E41-A01B-B6A0EEF72DF0}&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;progid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Net4ToNet2Adapter.MyClassAdapter&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;threadingModel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Both&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Net4ToNet2Adapter.MyClassAdapter&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;runtimeVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;v4.0.30319&lt;/span&gt;&amp;quot;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assembly&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Use our .NET 4 DLL via COM&lt;/h4&gt;  &lt;p&gt;Now all you need to do is create an instance of your .NET 4 class from your .NET 2 executable using COM:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0851afe8-181d-4621-9f6a-127c2683bcb5" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; Net4ToNet2Adapter;&lt;br /&gt; &lt;br /&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; Net2Assembly&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Program&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;         {&lt;br /&gt;             &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;CLR version from EXE: {0}&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Environment&lt;/span&gt;.Version);&lt;br /&gt;             &lt;br /&gt;             &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt; myClassAdapterType = &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt;.GetTypeFromProgID(&lt;span style="color:#a31515;"&gt;&amp;quot;Net4ToNet2Adapter.MyClassAdapter&amp;quot;&lt;/span&gt;);&lt;br /&gt;             &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; myClassAdapterInstance = &lt;span style="color:#2b91af;"&gt;Activator&lt;/span&gt;.CreateInstance(myClassAdapterType);&lt;br /&gt;             &lt;span style="color:#2b91af;"&gt;IMyClassAdapter&lt;/span&gt; myClassAdapter = (&lt;span style="color:#2b91af;"&gt;IMyClassAdapter&lt;/span&gt;)myClassAdapterInstance;&lt;br /&gt;             myClassAdapter.DoNet4Action();&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;u&gt;Note&lt;/u&gt;: Since the interface &lt;strong&gt;IMyClassAdapter&lt;/strong&gt; should be duplicated in the client, I’ve added the source file &lt;strong&gt;IMyClassAdapter.cs &lt;/strong&gt;as a link to the client project.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;The result&lt;/h4&gt;  &lt;p&gt;The result of running this simple console application is:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_19C9C67B.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_22F5DBEF.png" width="843" height="549" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I think the image speaks for itself.&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;I’ve uploaded the full source of this example to &lt;a href="http://code.msdn.microsoft.com/Using-a-NET-4-Based-DLL-bb141db3"&gt;MSDN Code Gallery&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/30/how-to-use-a-net-4-based-dll-from-net-2-based-application.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=838795" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/COM/default.aspx">COM</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DLL/default.aspx">DLL</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/CLR/default.aspx">CLR</category></item><item><title>Sela Haifa Open House: Windows 7 features and Multi-Touch Session – Slide Deck and Demos</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/24/sela-haifa-open-house-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx</link><pubDate>Wed, 25 May 2011 02:27:13 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:837373</guid><dc:creator>arik</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Today (24.05.2011) I’ve delivered two sessions about “&lt;strong&gt;Using Windows 7 Features in .NET applications&lt;/strong&gt;” in Sela Haifa Open House which was presented in Philips building in Haifa.&lt;/p&gt;  &lt;p&gt;Dear Philips (and other) developers, I had a great time presenting today&amp;#39;s Windows 7 sessions. Thank you for coming!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" alt="" src="http://blogs.microsoft.co.il/blogs/arik/image_5EF24134.png" /&gt;&lt;/p&gt;  &lt;p&gt;In the sessions I talked about how to use new Windows 7 features like the new Taskbar, sensors API, the Ribbon control supplied with Windows 7, Application restart and Recovery and plenty of Multi-Touch.    &lt;br /&gt;We’ve seen numerous examples, mainly in C++ Win32, WinForms and WPF.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" alt="" src="http://blogs.microsoft.co.il/blogs/arik/image_775D7EEB.png" width="640" height="121" /&gt;&lt;/p&gt;  &lt;p&gt;You can download both the presentations and the demos &lt;a href="http://cid-552e8ea12a93deba.office.live.com/browse.aspx/.Public/Win7%20Sela%20Haifa%20Open%20House?uc=3"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/24/sela-haifa-open-house-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/24/sela-haifa-open-house-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/24/sela-haifa-open-house-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/24/sela-haifa-open-house-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=837373" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Touch/default.aspx">Touch</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela+Open+House/default.aspx">Sela Open House</category></item><item><title>.NET User Group: Windows 7 features and Multi-Touch Session – Slide Deck and Demos</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/20/net-user-group-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx</link><pubDate>Fri, 20 May 2011 06:22:46 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:836550</guid><dc:creator>arik</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://blogs.microsoft.co.il/blogs/arik/image_5EF24134.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Yesterday (18.05.2011) I’ve delivered two sessions about “&lt;strong&gt;Using Windows 7 Features in .NET applications&lt;/strong&gt;” in the Israeli .NET User Group, at Microsoft offices in Ra’anana.&lt;/p&gt;  &lt;p&gt;I want to thank all the attendees who came to hear the sessions, I truly enjoyed it.&lt;/p&gt;  &lt;p&gt;In the sessions I talked about how to use new Windows 7 features like the new Taskbar, sensors API, the Ribbon control supplied with Windows 7, Application restart and Recovery and plenty of Multi-Touch.    &lt;br /&gt;We’ve seen numerous examples in C++ Win32, C# WinForms, C# WPF and C# Silverlight.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/arik/image_775D7EEB.png" width="640" height="121" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Since we were a little short on time, I couldn’t answer everyone&amp;#39;s questions. So if you got an unanswered question, feel free to contact me by mail (find it on my blog left panel) or using the blog contact form.&lt;/p&gt;  &lt;p&gt;You can download both the presentations and the demos &lt;a href="http://cid-552e8ea12a93deba.office.live.com/browse.aspx/.Public/Win7%20.NET%20User%20Group?uc=3"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/20/net-user-group-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/20/net-user-group-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/20/net-user-group-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/20/net-user-group-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=836550" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Touch/default.aspx">Touch</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET+User+Group/default.aspx">.NET User Group</category></item><item><title>Coming session: Using Windows 7 Features in .NET Applications, at Sela Haifa in Israel</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/14/coming-session-using-windows-7-features-in-net-applications-at-sela-haifa-in-israel.aspx</link><pubDate>Sat, 14 May 2011 23:51:06 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:835215</guid><dc:creator>arik</dc:creator><slash:comments>1</slash:comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/14/coming-session-using-windows-7-features-in-net-applications-at-sela-haifa-in-israel.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;In case you missed one of my previous Windows 7 sessions, here is your chance to catch it.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://blogs.microsoft.co.il/blogs/arik/sela_logo.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;On May 24th I’ll be giving two sessions about “&lt;strong&gt;Using Windows 7 Features in .NET Applications&lt;/strong&gt;”, as part of &lt;strong&gt;Sela Haifa Open House&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;On the first session “&lt;strong&gt;The 7 Show: From XP to Win 7&lt;/strong&gt;” we will talk about new features in Windows 7 that will modernize your application.     &lt;br /&gt;We will learn how to work with the new Taskbar, how to work with Sensors, how to use the Ribbon interface and more.     &lt;br /&gt;The session will be rich with examples in .NET, WPF and WinForms.&lt;/p&gt;  &lt;p&gt;On the second session “&lt;strong&gt;Touch Everywhere&lt;/strong&gt;” we will see how to use the Multi-touch feature which comes out of the box in Windows 7.     &lt;br /&gt;We will learn about the possible level of support (Good, Better &amp;amp; Best) and learn about helper libraries that provide a convenient API when working with multi-touch devices.     &lt;br /&gt;The session will include many examples in all the common UI technologies: C++, WinForms, WPF and Silverlight.&lt;/p&gt;  &lt;p&gt;The entrance is free, but requires &lt;a href="https://webcast.you-niversity.com/youtools/companies/registration/registerForm.asp?affiliateId=145&amp;amp;programId=789&amp;amp;tzOffset=-3&amp;amp;tzOffsetRgn=EEST"&gt;registration&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=835215" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Touch/default.aspx">Touch</category></item><item><title>Coming session: Using Windows 7 Features in .NET Applications, at .NET User Group in Israel</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/07/coming-session-using-windows-7-features-in-net-applications-at-net-user-group-in-israel.aspx</link><pubDate>Sun, 08 May 2011 03:54:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:833678</guid><dc:creator>arik</dc:creator><slash:comments>1</slash:comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/arik/archive/2011/05/07/coming-session-using-windows-7-features-in-net-applications-at-net-user-group-in-israel.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="" src="http://image.test.exacttarget.com/lib/fef71779766603/m/1/WWE_Email_Header.png" /&gt;&lt;/p&gt;  &lt;p&gt;On May 18th I’ll be giving two sessions about “&lt;strong&gt;Using Windows 7 Features in .NET Applications&lt;/strong&gt;”, as part of the monthly .NET User Group sessions, in Microsoft offices, Ra’anana, Israel.&lt;/p&gt;  &lt;p&gt;On the first session “&lt;strong&gt;The 7 Show: From XP to Win 7&lt;/strong&gt;” we will talk about new features in Windows 7 that will modernize your application.     &lt;br /&gt;We will learn how to work with the new Taskbar, how to work with Sensors, how to use the Ribbon interface and more.     &lt;br /&gt;The session will be rich with examples in .NET, WPF and WinForms.&lt;/p&gt;  &lt;p&gt;On the second session “&lt;strong&gt;Touch Everywhere&lt;/strong&gt;” we will see how to use the Multi-touch feature which comes out of the box in Windows 7.     &lt;br /&gt;We will learn about the possible level of support (Good, Better &amp;amp; Best) and learn about helper libraries that provide a convenient API when working with multi-touch devices.     &lt;br /&gt;The session will include many examples in all the common UI technologies: C++, WinForms, WPF and Silverlight.&lt;/p&gt;  &lt;p&gt;The entrance is free, but requires &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032486579&amp;amp;Culture=he-IL"&gt;registration&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=833678" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Touch/default.aspx">Touch</category></item><item><title>MSDN Event: Windows 7 features and Multi-Touch Session - Slide Deck and Demos</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/09/msdn-event-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx</link><pubDate>Sat, 09 Apr 2011 21:41:19 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:817285</guid><dc:creator>arik</dc:creator><slash:comments>3</slash:comments><description>&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_5EF24134.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_1CDAEA7F.png" width="480" height="360" /&gt;&lt;/a&gt;   &lt;p&gt;Last Thursday (07.04.2011) I’ve delivered an MSDN session about&amp;#160; “&lt;strong&gt;Using Windows 7 Features in .NET applications&lt;/strong&gt;” at Microsoft Ra’anana.&lt;/p&gt;  &lt;p&gt;I want to thank all the attendees who came to hear the session, I truly enjoyed it.&lt;/p&gt;  &lt;p&gt;In the session I talked about how to use new Windows 7 features like the new Taskbar, sensors API, the Ribbon control supplied with Windows 7, Application restart and Recovery and plenty of Multi-Touch.    &lt;br /&gt;We’ve seen numerous examples in C++ Win32, C# WinForms, C# WPF and C# Silverlight.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_775D7EEB.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_6ABFAC02.png" width="864" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can download both the presentations and the demos &lt;a href="http://cid-552e8ea12a93deba.office.live.com/browse.aspx/.Public/Win7%20MSDN%20Event?uc=3"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/09/msdn-event-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/09/msdn-event-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/09/msdn-event-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/09/msdn-event-windows-7-features-and-multi-touch-session-slide-deck-and-demos.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=817285" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Touch/default.aspx">Touch</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>WPF Single Instance Application – Update</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/04/wpf-single-instance-application-update.aspx</link><pubDate>Tue, 05 Apr 2011 03:36:40 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:816367</guid><dc:creator>arik</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Back in &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/05/28/wpf-single-instance-application.aspx"&gt;this post&lt;/a&gt; I’ve presented some code that make sure you only have one instance of your application.&lt;/p&gt;  &lt;p&gt;As I’ve said before, I didn’t wrote this code, I just presented it since I came across it in a Microsoft reference application and didn’t want this gem to remain hidden.&lt;/p&gt;  &lt;p&gt;Microsoft recently released a Windows 7 Recipe named “&lt;a href="http://code.msdn.microsoft.com/Windows-7-Taskbar-Single-4120eafd"&gt;Windows 7 Taskbar Single Instance&lt;/a&gt;”, which despite its taskbar-related name is simply a revised implementation of the single instance feature in both .NET and C++. There are well documented samples for both cases. The credit for this recipe goes to &lt;a href="http://blogs.microsoft.co.il/blogs/stiller/"&gt;Eran Stiller&lt;/a&gt; and &lt;a href="http://windowsteamblog.com/members/yochay-kiriaty/"&gt;Yochay Kiriaty&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I advise anyone who needs this feature to work with the new recipe.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/04/wpf-single-instance-application-update.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/04/wpf-single-instance-application-update.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/04/wpf-single-instance-application-update.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/04/04/wpf-single-instance-application-update.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=816367" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Single+Instance/default.aspx">Single Instance</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Recipe/default.aspx">Recipe</category></item><item><title>Coming session: Using Windows 7 Features in .NET Applications, in Microsoft Israel</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/28/coming-session-using-windows-7-features-in-net-applications-in-microsoft-israel.aspx</link><pubDate>Tue, 29 Mar 2011 03:33:43 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:814841</guid><dc:creator>arik</dc:creator><slash:comments>1</slash:comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/28/coming-session-using-windows-7-features-in-net-applications-in-microsoft-israel.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://image.test.exacttarget.com/lib/fef71779766603/m/1/WWE_Email_Header.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Next Thursday, 07.04.2011, I’ll be giving two sessions about “&lt;strong&gt;Using Windows 7 Features in .NET Applications&lt;/strong&gt;”, in Microsoft offices, Ra’anana, Israel.&lt;/p&gt;  &lt;p&gt;On the first session “&lt;strong&gt;The 7 Show: From XP to Win 7&lt;/strong&gt;” we will talk about new features in Windows 7 that will modernize your application.     &lt;br /&gt;We will learn how to work with the new Taskbar, how to work with Sensors, how to use the Ribbon interface and more.     &lt;br /&gt;The session will be rich with examples in .NET, WPF and WinForms.&lt;/p&gt;  &lt;p&gt;On the second session “&lt;strong&gt;Touch Everywhere&lt;/strong&gt;” we will see how to use the Multi-touch feature which comes out of the box in Windows 7.     &lt;br /&gt;We will learn about the possible level of support (Good, Better &amp;amp; Best) and learn about helper libraries that provide a convenient API when working with multi-touch devices.     &lt;br /&gt;The session will include many examples in all the common UI technologies: C++, WinForms, WPF and Silverlight.&lt;/p&gt;  &lt;p&gt;The entrance is free, but requires &lt;a href="https://msevents.microsoft.com/cui/EventDetail.aspx?EventID=1032480994&amp;amp;culture=he-IL"&gt;registration&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=814841" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Touch/default.aspx">Touch</category></item><item><title>Beginner’s Guide for Programming in C# - Hebrew</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/21/beginner-s-guide-for-programming-in-c-hebrew.aspx</link><pubDate>Mon, 21 Mar 2011 13:29:40 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:811618</guid><dc:creator>arik</dc:creator><slash:comments>5</slash:comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/arik/archive/2011/03/21/beginner-s-guide-for-programming-in-c-hebrew.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;I&amp;#39;ve recently published a series of posts in Hebrew on the great site &lt;a title="http://www.webmaster.org.il/" href="http://www.webmaster.org.il"&gt;www.webmaster.org.il&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The posts can be used as a &lt;strong&gt;beginner&amp;#39;s guide for programming in C#.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Following are the links for the different posts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=646"&gt;C# Guide - Part 01 – Installation&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=648"&gt;C# Guide - Part 02 - First Program&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=647"&gt;C# Guide - Part 03 - Input Output&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=649"&gt;C# Guide - Part 04 - Basic Variables&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=650"&gt;C# Guide - Part 05 - Arithmetic Operators&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=651"&gt;C# Guide - Part 06 - Boolean Operators&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=652"&gt;C# Guide - Part 07 - Binary Operators&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=653"&gt;C# Guide - Part 08 - If Statement&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=654"&gt;C# Guide - Part 09 - Nested If&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=655"&gt;C# Guide - Part 10 - For Loop&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=656"&gt;C# Guide - Part 11 - While Loop&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=657"&gt;C# Guide - Part 12 - Do Loop&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=658"&gt;C# Guide - Part 13 - Switch Statement&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=659"&gt;C# Guide - Part 14 - Continue Statement&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=661"&gt;C# Guide - Part 15 - Nested Loops&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=662"&gt;C# Guide - Part 16 – Functions&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=663"&gt;C# Guide - Part 17 - Passing Parameters&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=664"&gt;C# Guide - Part 18 - Out and Ref Parameters&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=673"&gt;C# Guide - Part 19 – Arrays&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=674"&gt;C# Guide - Part 20 - Multi Dimensional Arrays&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=675"&gt;C# Guide - Part 21 - Foreach Loop&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=669"&gt;C# Guide - Part 22 – String&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=672"&gt;C# Guide - Part 23 – DateTime&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=671"&gt;C# Guide - Part 24 – Enum&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.webmaster.org.il/article.asp?id=670"&gt;C# Guide - Part 25 – Struct&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;That’s it for now,     &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=811618" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/webmaster.org.il/default.aspx">webmaster.org.il</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Hebrew/default.aspx">Hebrew</category></item></channel></rss>