﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Jani Järvinen's Personal Weblog</title>
    <link>http://www.saunalahti.fi/janij/blog/</link>
    <description>This is my personal weblog mostly about Windows software development. The views represented here are strictly my own, and do not necessarily reflect those of my employer.</description>
    <language>en-us</language>
    <pubDate>Sat, 01 Jan 2011 09:07:36 GMT</pubDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>1440</ttl>
    <item>
      <title>Happy New Year, and remember to change the blog URL!</title>
      <link>http://www.saunalahti.fi/janij/blog/</link>
      <description>&lt;p&gt;It's time to wish everyone Happy New Year 2011! And as has happened all the New Year's since 2003, the address of this blog is again going to change. The new URL for the next year will be:&lt;/p&gt;

&lt;pre&gt;
http://www.saunalahti.fi/janij/blog/2011.xml
&lt;/pre&gt;

&lt;p&gt;See you again next year!&lt;/p&gt;</description>
      <pubDate>Fri, 31 Dec 2010 14:44:52 GMT</pubDate>
      <guid isPermaLink="false">1bb03707-bf5f-4d5b-b385-f34aee357976</guid>
    </item>
    <item>
      <title>Another new article: Submitting Your Windows Phone 7 Application to the Windows Marketplace</title>
      <link>http://www.devx.com/RIA/Article/46191</link>
      <description>&lt;p&gt;The end of the year has been busy with article writing, and on Monday, DevX.com published my latest article about &lt;a href="http://www.devx.com/RIA/Article/46191"&gt;Windows Phone 7 development and application certification&lt;/a&gt;. The application is titled "Submitting Your Windows Phone 7 Application to the Windows Marketplace".&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Wed, 29 Dec 2010 17:14:46 GMT</pubDate>
      <guid isPermaLink="false">a800b715-cb67-454f-9fdd-1dfac730f51b</guid>
    </item>
    <item>
      <title>New article published: Bing maps with Silverlight</title>
      <link>http://www.codeguru.com/csharp/csharp/cs_misc/article.php/c18305</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest .NET development article titled "&lt;a href="http://www.codeguru.com/csharp/csharp/cs_misc/article.php/c18305"&gt;Working with Bing Maps in Silverlight and Windows Phone 7 Applications&lt;/a&gt;". As the title says, this article gives you an introduction on how to get started with Bing maps in your Silverlight and Windows Phone 7 application.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Mon, 27 Dec 2010 20:40:10 GMT</pubDate>
      <guid isPermaLink="false">59f9d238-19b2-4399-87a3-42cfe1c710f6</guid>
    </item>
    <item>
      <title>Merry Christmas and Season's Greetings!</title>
      <link>http://www.santaclaus.fi/</link>
      <description>&lt;p&gt;This year has flown fast, and it is again Christmas time! Thus, it is time to put the computer to a rest for a couple of days, and enjoy the holiday season.&lt;/p&gt;

&lt;p&gt;With that: &lt;a href="http://www.santaclaus.fi/"&gt;Merry Christmas&lt;/a&gt; and Season's Greetings to everyone!&lt;/p&gt;

&lt;p&gt;PS. Remember, that when the year changes, the URL of this blog will change again. The current URL is this: http://www.saunalahti.fi/janij/blog/2010.xml. The new URL will obviously be: http://www.saunalahti.fi/janij/blog/2011.xml&lt;/p&gt;</description>
      <pubDate>Fri, 24 Dec 2010 13:14:08 GMT</pubDate>
      <guid isPermaLink="false">4c30006f-f48a-4084-abc5-1a4ecbfd9ac4</guid>
    </item>
    <item>
      <title>Be more productive with the Visual Studio Productivity Power Tools</title>
      <link>http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef</link>
      <description>&lt;p&gt;If you are using Visual Studio from day to day, you might be thinking of ways to improve your productivity: do more with less time, or better yet, do the same amount of work in a shorter time.&lt;/p&gt;

&lt;p&gt;If you are ready to buy this thinking, then the free &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;Visual Studio 2010 Productivity Power Tools&lt;/a&gt; might be the answer to your needs.&lt;/p&gt;

&lt;p&gt;Microsoft descibes the package thus: "A set of extensions to Visual Studio Professional (and above) which improves developer productivity. In this third major release of the Power Tools we have made significant improvements to the Solution Navigator and the Tab Well to address our top customer requests."&lt;/p&gt;

&lt;p&gt;To get the tools, visit this &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;download page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 21 Dec 2010 20:36:22 GMT</pubDate>
      <guid isPermaLink="false">be8ea101-3b7b-48b0-98b2-e606e37c9597</guid>
    </item>
    <item>
      <title>Mark your calendar: Finnish TechDays 2011 in March/April</title>
      <link>https://msevents.microsoft.com/CUI/default.aspx?culture=fi-FI</link>
      <description>&lt;p&gt;Microsoft Finland is going to to arrange a "&lt;a href="https://msevents.microsoft.com/CUI/default.aspx?culture=fi-FI"&gt;TechDays&lt;/a&gt;" event (the name might still change?) on March 31 and April 1 of 2011 (Thursday &amp; Friday) in Helsinki. I was unable to find event information on the web presently, but I suppose it is coming.&lt;/p&gt;

&lt;p&gt;Nonetheless, the preliminary information indicates that lots of interesting sessions will again be held at the event. I'm possibly going to talk about C# 5.0 and Windows Phone 7 development, but that is yet to be confirmed.&lt;/p&gt;

&lt;p&gt;Mark you calendar and stay tuned for more information!&lt;/p&gt;</description>
      <pubDate>Sat, 18 Dec 2010 07:34:49 GMT</pubDate>
      <guid isPermaLink="false">26abfadf-f920-439f-b75a-458dd6cd7848</guid>
    </item>
    <item>
      <title>A quick tip for Windows Phone 7 developers: work with your keyboard in the emulator</title>
      <link>http://msdn.microsoft.com/en-us/library/ff754352(VS.92).aspx</link>
      <description>&lt;p&gt;Continuing on the "tip hotline" trend, it is today time for a Windows Phone 7 developer tip when working with Visual Studio 2010 and the phone emulator. You've probably noticed that by default, you need to use the software input panel (SIP) to enter text. But, you can also use your computer's keyboard to type in text much faster, thanks to a handy hidden feature in the emulator.&lt;/p&gt;

&lt;p&gt;The tip is simply this: to enable &lt;a href="http://msdn.microsoft.com/en-us/library/ff754352(VS.92).aspx"&gt;computer keyboard input&lt;/a&gt;, press PgUp. To work with a SIP again, press PgDn.&lt;/p&gt;

&lt;p&gt;Note that the same MSDN help topic linked above has many more keyboard shortcuts listed, so it is recommended reading. The topic is fresh; it was published yesterday.&lt;/p&gt;</description>
      <pubDate>Thu, 16 Dec 2010 17:55:36 GMT</pubDate>
      <guid isPermaLink="false">96ac8f53-9cbd-43e7-98e3-e45ed48488a3</guid>
    </item>
    <item>
      <title>Quick SQL Server Management Studio tip: edit more than 200 lines of table data</title>
      <link>http://technet.microsoft.com/en-us/library/cc280381.aspx</link>
      <description>&lt;p&gt;If you have been using SQL Server Management Studio (SSMS) for a long time, you will probably remember the time from few years back where you would have the feature to load a full table into the manager, and edit them all if you wanted.&lt;/p&gt;

&lt;p&gt;Now with SSMS version 2008 and onwards, the command to do this is called "Edit Top 200 Rows", but as the command name says, by default you can only edit 200 first lines. This can cause the occasional scare at times: where did my data go? Luckily, the data is still in the table, but you just cannot see it. At least by default.&lt;/p&gt;

&lt;p&gt;What seems to go missing by many users is that you can easily change the limit of 200 to something else, usually larger. In SSMS, look to the right for the Properties panel (press F4 if you cannot see it). At the bottom of this panel, you have the setting that says "Top Specification". You can simply disable this setting, or change the value. Remember to re-execute your query by pressing the red exclamation mark on the toolbar or by pressing F5.&lt;/p&gt;

&lt;p&gt;If you find yourself constantly changing the value to something else, a better way is to go to SSMS' &lt;a href="http://technet.microsoft.com/en-us/library/cc280381.aspx"&gt;options window&lt;/a&gt; and change the settings under "SQL Server Object Explorer/Commands". There is the setting "Value for Edit Top &amp;lt;n&amp;gt; Rows command", for instance.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Dec 2010 18:24:36 GMT</pubDate>
      <guid isPermaLink="false">39418ed7-3e54-4d71-9975-e1c89d0a6218</guid>
    </item>
    <item>
      <title>ASP.NET MVC 3 close to ready: Release Candidate 2 announced</title>
      <link>http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx</link>
      <description>&lt;p&gt;The ASP.NET team has been busy with new development work, even in December. Yesterday, the team announced the newest release candidate of the forth-coming &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx"&gt;ASP.NET MVC 3&lt;/a&gt;. The new RC2 version contains bug fixes, some syntax additions and T4 text template improvements, among others.&lt;/p&gt;

&lt;p&gt;For a full list and a quick tutorial, check out Scott Guthrie's &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx"&gt;blog entry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To get the new release, visit this &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=955d593e-cbd1-4ed1-88eb-02ff79dd74d8&amp;displaylang=en"&gt;download page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 11 Dec 2010 13:15:29 GMT</pubDate>
      <guid isPermaLink="false">46394eec-43f9-4fc6-af86-fdd558bab517</guid>
    </item>
    <item>
      <title>Hyper-V management tip: separating virtual machines to their own private network</title>
      <link>http://technet.microsoft.com/en-us/library/cc732470(WS.10).aspx</link>
      <description>&lt;p&gt;Today, I'm using Microsoft's &lt;a href="http://technet.microsoft.com/en-us/library/cc732470(WS.10).aspx"&gt;Hyper-V virtualization&lt;/a&gt; should I need virtual machines for testing work during development (and that is often). Recently, I've been working with an Active Directory based testing environment with multiple client machines. Since I don't want to disturb my normal network, I've separated my AD based virtual machines into their own private network.&lt;/p&gt;

&lt;p&gt;The solution is simple: in Hyper-V manager, go to the settings of the virtual machine(s) you wish to connect to their own network, and under Network Adapter, simply select your private test network. You can configure these under the server-level settings using the Virtual Network Manager feature.&lt;/p&gt;

&lt;p&gt;The immediate drawback of this solution is that the private networked virtual machines cannot access the Internet if you only have a single network card on your server. But if you have multiple, this should not be an issue. At home, you could use a regular ADSL/cable conneciton for your main network, and for instance a cheap 3G wireless connection for the private network.&lt;/p&gt;</description>
      <pubDate>Wed, 08 Dec 2010 18:35:24 GMT</pubDate>
      <guid isPermaLink="false">b9b32ff9-52ef-431a-bd50-d1a365c0383f</guid>
    </item>
    <item>
      <title>Delphi features I'd like to see in Visual Studio</title>
      <link>http://msdn.microsoft.com/en-US/vstudio</link>
      <description>&lt;p&gt;For the past week, I've spent my days in Norway with Delphi trainings. Although I don't personally use Delphi much anymore (I've switched over to &lt;a href="http://msdn.microsoft.com/en-US/vstudio"&gt;Visual Studio, C# and .NET&lt;/a&gt; mostly), there are still some things &lt;a href="http://www.embarcadero.com/products/delphi"&gt;Delphi&lt;/a&gt; does better than Visual Studio.&lt;/p&gt;

&lt;p&gt;Especially in the code editor, I'd like to see two features Delphi has: easy one-key shortcut keys for commeting and uncommenting lines, and a feature called Sync Edit.&lt;/p&gt;

&lt;p&gt;Let me clarify. In Visual Studio's code editor, you can comment and uncomment lines with a keyboard shortcut combination like Ctrl+E,C (depending on your selected environment settings) and Ctrl+E,U. Although this is okay, it is not as convenient as Delphi's Ctrl+' (Ctrl and quotation mark). This is also a toggle, which is very easy to work with. Take heed, Microsoft.&lt;/p&gt;

&lt;p&gt;Second favorite is Delphi's Sync Edit feature. Select an area in the code editor, activate the feature, and simply replace symbol names or text, and the symbol name is edited simultaneously in multiple places. Thus, Sync Edit is somewhat in between a true Rename refactoring and a search and replace, but faster and more intelligent and a dump search and replace.&lt;/p&gt;

&lt;p&gt;If you are or have been using Delphi, what features do you miss in Visual Studio?&lt;/p&gt;</description>
      <pubDate>Sun, 05 Dec 2010 08:50:56 GMT</pubDate>
      <guid isPermaLink="false">19237a76-d36f-4916-b179-44a64ac5f42f</guid>
    </item>
    <item>
      <title>Silverlight 5 announced!</title>
      <link>http://weblogs.asp.net/scottgu/archive/2010/12/02/announcing-silverlight-5.aspx</link>
      <description>&lt;p&gt;Even though there has been recent talk about Silverlight and its future especially together with the forth-coming HTML5 (HTML 5) standard. But Microsoft itself, despite some slips of tongue, believes firmly on the technology. As an assurance, the company &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/02/announcing-silverlight-5.aspx"&gt;just today announced&lt;/a&gt; the future version of the product, Silverlight 5.&lt;/p&gt;

&lt;p&gt;The list of new features is again long, but some highlights include better hardware acceleration, full Platform Invoke (P/Invoke) support, and 64-bit support.&lt;/p&gt;

&lt;p&gt;A beta of the next version should emerge H1 (first half) of 2011 and the final product later next year.&lt;/p&gt;</description>
      <pubDate>Thu, 02 Dec 2010 19:04:52 GMT</pubDate>
      <guid isPermaLink="false">21fedbc1-0e25-4ea7-a71b-e3f968c8198b</guid>
    </item>
    <item>
      <title>Windows Phone 7 developer event in Helsinki</title>
      <link>http://create.msdn.com/en-US/</link>
      <description>&lt;p&gt;Today was the first day of the Microsoft-arranged Finnish Windows Phone 7 developer event. There were about 15 developers today at the computer class in Helsinki, and all received a brand-new LG E900 phone ("Optimus 7") on their hands.&lt;/p&gt;

&lt;p&gt;During the half-day event, I had the chance to give the audience a quick walkthrough of the development for this new platform. The attendees also had a chance to test their simple applications on a real phone (thanks JW). We will run a similar event tomorrow morning.&lt;/p&gt;

&lt;p&gt;For more information about Windows Phone 7 development, check out the Microsoft &lt;a href="http://create.msdn.com/en-US/"&gt;App Hub&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 29 Nov 2010 23:00:31 GMT</pubDate>
      <guid isPermaLink="false">08933781-ef8f-4c81-b8ff-37bc64feb120</guid>
    </item>
    <item>
      <title>How to manually replace a set of files on TFS?</title>
      <link>http://msdn.microsoft.com/en-us/vstudio/bb898913.aspx</link>
      <description>&lt;p&gt;If you are traveling a lot and are sometimes unable to work online (for example, while on a plane), you might have run into a problem with Visual Studio and Team Foundation Server (TFS): how should you work offline?&lt;/p&gt;

&lt;p&gt;If you are lucky enough to be able to start your offline work by simply checking out files from TFS, then there is nothing special: you can simply check in your files once you return the office or where ever you have a network connection.&lt;/p&gt;

&lt;p&gt;However, if you simply have an offline copy of the latest source (say, a ZIP file) and just load the project into Visual Studio, Visual Studio will ask whether you want to work without version control. Answer yes, and do your development normally.&lt;/p&gt;

&lt;p&gt;When you return to the office, go ahead and check out the whole set of project files, for instance the whole project node. Then, using Windows Explorer, replace the files that you checked out with the versions you edited, and check in everything. Team Foundation Server will include only changed files in the changeset; thus there is no risk in replacing everything, including files that you did not edit.&lt;/p&gt;

&lt;p&gt;Problem solved. As an additional tip on how to work offline, check out &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb898913.aspx"&gt;this video on MSDN&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 26 Nov 2010 18:05:23 GMT</pubDate>
      <guid isPermaLink="false">4a97e3bd-0b02-45f3-acd8-6598e1f7747d</guid>
    </item>
    <item>
      <title>Lync Server announced</title>
      <link>http://www.microsoft.com/Presspass/press/2010/nov10/11-17MicrosoftLyncPR.mspx</link>
      <description>&lt;p&gt;Just few days ago, Microsoft &lt;a href="http://www.microsoft.com/Presspass/press/2010/nov10/11-17MicrosoftLyncPR.mspx"&gt;announced&lt;/a&gt; that their newest communication product, &lt;a href="http://lync.microsoft.com/"&gt;called Lync&lt;/a&gt; will become available in December. The company itself calls the product "the future of communications", and there are grounds to that: video conferencing, chat and online availability information, and VOIP calls.&lt;/p&gt;

&lt;p&gt;All this sounds great, and for developers, this product could help teams and customers communicate. Personally, I'm much looking forward to Office 365, of which Lync will be part of.&lt;/p&gt;

&lt;p&gt;Another thing is that Lync can be readily extended. Watch for the forth-coming Lync SDK kit. I might run an article on CodeGuru.com on this sometime next year, so stay tuned.&lt;/p&gt;</description>
      <pubDate>Tue, 23 Nov 2010 19:34:06 GMT</pubDate>
      <guid isPermaLink="false">f46e7634-ae6e-46c7-9464-d16726c291d4</guid>
    </item>
    <item>
      <title>Branching tips and more TFS best practices</title>
      <link>http://tfsbranchingguideiii.codeplex.com/</link>
      <description>&lt;p&gt;Recently, TFS (Microsoft Team Foundation Server) has gotten lots of lift, and this can be seen here in Finland as well. More and more companies (and individuals!) are starting to use TFS, which in my opinion is a good thing – especially if TFS replaces the older Visual SourceSafe version control.&lt;/p&gt;

&lt;p&gt;However, starting to work with TFS often raises questions about code sharing between (team) projects, branching, and merging. For example, a common need seems to be to decide how to divide common code between several other team projects. Basically, there are two ways to do this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Branching. In this method, common code from the "Common" team project is branched to other team projects (such as "Application 1" and "Application 2". After this, the common code starts to have a life of its own inside the two applications, but can later on be merged back with the base.&lt;/li&gt;
&lt;li&gt;Workspace sharing. In this option, the common code and the application code is mapped to a local workspace so that the application code projects can reference the assemblies of the common code. In this method, both applications always have the latest version of the common code available.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To read more about the best practices, check out the "&lt;a href="http://tfsbranchingguideiii.codeplex.com/"&gt;Visual Studio TFS Branching Guide 2010&lt;/a&gt;" on CodePlex.&lt;/p&gt;</description>
      <pubDate>Sun, 21 Nov 2010 13:13:42 GMT</pubDate>
      <guid isPermaLink="false">71afcb88-4476-4855-b3dc-baa65a013440</guid>
    </item>
    <item>
      <title>Short SQL Azure web portal walkthrough screencast published</title>
      <link>http://www.internet.com/player/index.php?bcpid=86842592001&amp;bclid=87185324001&amp;bctid=672196413001</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest screencast about working with Microsoft's SQL Azure cloud computing web portal. The screencast is &lt;a href="http://www.internet.com/player/index.php?bcpid=86842592001&amp;bclid=87185324001&amp;bctid=672196413001"&gt;available here&lt;/a&gt; and titled "Working with the SQL Azure Web Portal".&lt;/p&gt;

&lt;p&gt;Length of the screencast is 3:56 minutes. Enjoy!&lt;/p&gt;</description>
      <pubDate>Thu, 18 Nov 2010 19:00:22 GMT</pubDate>
      <guid isPermaLink="false">b418c3f1-334e-4c4a-bdc7-a5b3d34a9da2</guid>
    </item>
    <item>
      <title>Zune software for Windows Phone 7 development available; plus October update for the WP7 development tools</title>
      <link>http://www.zune.net/en-US/products/software/download/default.htm</link>
      <description>&lt;p&gt;If you are interested in Windows Phone 7 (WP7) development and are committed enough to work with a real phone device (instead of the free emulator), you will need some software in addition to Visual Studio 2010 and the Windows Phone developer tools to get going.&lt;/p&gt;

&lt;p&gt;Firstly, you will need the &lt;a href="http://www.zune.net/en-US/products/software/download/default.htm"&gt;Zune software package&lt;/a&gt;, which allows you to connect your development PC with the WP7 device. Think the Zune software as of being the "ActiveSync" that you need to communicate properly with the device.&lt;/p&gt;

&lt;p&gt;However, the Zune alone is not enough. Instead, to test features such as media choosers on the phone, you will need to stop Zune as Zune locks for example playing media on the phone while it is connected to the PC via the USB connection. But how can you work with the device if you cannot keep Zune running?&lt;/p&gt;

&lt;p&gt;The answer is a utility called &lt;a href="http://msdn.microsoft.com/en-us/library/gg180729(v=VS.92).aspx"&gt;Windows Phone Connect Tool&lt;/a&gt;, which is part of the October 2010 refresh of the Windows Phone 7 development tools, &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=49b9d0c5-6597-4313-912a-f0cca9c7d277"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thanks JW for the tip!&lt;/p&gt;</description>
      <pubDate>Mon, 15 Nov 2010 19:13:00 GMT</pubDate>
      <guid isPermaLink="false">0c64e418-9254-4b29-af08-3e60454563ea</guid>
    </item>
    <item>
      <title>Recent free e-books in PDF format: Windows Phone 7 development, Windows Server 2008 R2 Virtualization with Hyper-V, and more</title>
      <link>http://www.microsoft.com/mspress</link>
      <description>&lt;p&gt;In this business, knowledge is power in that leads to better decisions, allows you to complete tasks faster and improve the quality of your results. Of course, this requires reading, and often reading a lot.&lt;/p&gt;

&lt;p&gt;Recently, Microsoft has been kind enough to &lt;a href="http://www.microsoft.com/mspress"&gt;publish many professional books&lt;/a&gt; as freely downloadable PDF files, i.e. ebooks. Here are three recent books that I can recommend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Charles Petzold: &lt;a href="http://download.microsoft.com/download/5/0/A/50A39509-D015-410F-A8F2-A5511E5A988D/Microsoft_Press_ebook_Programming_Windows_Phone_7_PDF.pdf"&gt;Programming Windows Phone 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ross Mistry and Stacia Misner: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=189147"&gt;Introducing Microsoft SQL Server 2008 R2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Charlie Russel and Craig Zacker: &lt;a href="http://download.microsoft.com/download/5/C/0/5C0BD0AB-040D-4C56-A60B-661001012DDA/Windows_Server_2008_R2_e-book.pdf"&gt;Introducing Windows Server 2008 R2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other nice books include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Joseph Albahari: &lt;a href="http://www.albahari.info/threading/threading.pdf"&gt;Threading in C#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CodePlex: &lt;a href="http://tfsbranchingguideiii.codeplex.com/"&gt;Visual Studio TFS Branching Guide 2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Sat, 13 Nov 2010 07:30:07 GMT</pubDate>
      <guid isPermaLink="false">6bd565df-ecf8-4444-9bcf-bd33fed733a4</guid>
    </item>
    <item>
      <title>SQL Server’s future version: Denali</title>
      <link>http://www.microsoft.com/sqlserver/en/us/product-info/future-editions.aspx</link>
      <description>&lt;p&gt;Currently, the latest SQL Server version is 2008 R2, but Microsoft is already actively planning the next release, currently &lt;a href="http://www.microsoft.com/sqlserver/en/us/product-info/future-editions.aspx"&gt;codenamed Denali&lt;/a&gt;. I would guess this new release would become available sometime next year, but of course, schedule is open at this point.&lt;/p&gt;

&lt;p&gt;New features planned for the Denali release are better uptime with the AlwaysOn feature, improved query performance especially in interactive applications, even more Business Intelligence (BI) support, and for developers, beyond-relational data types (think spatial, etc.) and above all, the codename "Juneau".&lt;/p&gt;

&lt;p&gt;Juneau will be an improved set of developer tools for database applications. Also, Juneau will aim to integrate the experiences of developing for locally-installed SQL Server and SQL Azure. The buzzwords of Juneau are: "Declarative Database Definition, Dynamically Edit Existing Databases, Round-Trip Code Refactoring, and Targeted Database Deployment".&lt;/p&gt;

&lt;p&gt;Hopefully we will see a CTP or beta version of Denali soon. Especially the SQL Azure part sounds nice to me.&lt;/p&gt;</description>
      <pubDate>Wed, 10 Nov 2010 17:06:26 GMT</pubDate>
      <guid isPermaLink="false">f7fce2f3-2e7d-4828-9678-23eb5e188281</guid>
    </item>
    <item>
      <title>Next year’s Microsoft developer events in Sweden and Helsinki</title>
      <link>http://www.microsoft.com/sverige/techdays/</link>
      <description>&lt;p&gt;If you are living in either Finland or Sweden and have an interest in Microsoft (developer) technology, then be sure to mark your calendar. Microsoft TechDays are coming again, and will be held in &lt;a href="http://www.microsoft.com/sverige/techdays/"&gt;Sweden&lt;/a&gt; on March 29th and 30th. Finland is immediately after this, and will be held in &lt;a href="http://web.finnexpo.fi/"&gt;Helsinki&lt;/a&gt; on March 31st and April 1st.&lt;/p&gt;

&lt;p&gt;Be sure to be there! Registration will probably open later in the year once content has been arranged.&lt;/p&gt;</description>
      <pubDate>Sun, 07 Nov 2010 16:34:33 GMT</pubDate>
      <guid isPermaLink="false">693dbc6a-3025-4117-ba8d-1a3917301915</guid>
    </item>
    <item>
      <title>F# becomes open source</title>
      <link>http://www.fsharp.net/</link>
      <description>&lt;p&gt;The F# development team at Microsoft Research made a great announcement &lt;a href="http://blogs.msdn.com/b/dsyme/archive/2010/11/04/announcing-the-f-compiler-library-source-code-drop.aspx"&gt;just a few days ago&lt;/a&gt;: the F# compiler and the class library will become open source. This allows others to improve the language, but on the other hand, the F# will still be an integral part of Visual Studio.&lt;/p&gt;

&lt;p&gt;Says the announcement: "we have a clear vision for F#, indeed a ground-breaking one, and are investing in it, and we are deeply committed to shipping F# ‘in the box'. That is the real focus of F#: a quality experience of functional programming in Visual Studio, and that is what our team are driven to achieve and what we live for."&lt;/p&gt;

&lt;p&gt;This sounds very good to me. Even with the announcement, the best place to get started with functional programming in .NET and Visual Studio is &lt;a href="http://www.fsharp.net/"&gt;fsharp.net&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Nov 2010 21:18:18 GMT</pubDate>
      <guid isPermaLink="false">6f70b798-e880-476d-bdd1-41ee6b3f1167</guid>
    </item>
    <item>
      <title>A Windows Phone 7 developer event in Helsinki: get a Windows Phone 7 device from LG</title>
      <link>http://www.windowsphone.com/</link>
      <description>&lt;p&gt;Microsoft Finland and my employer are hosting an exciting &lt;a href="http://www.windowsphone.com/"&gt;Windows Phone 7&lt;/a&gt; developer event in Helsinki at the end of November. Actually, there are two half-day events on Monday, 29th at afternoon and on Tuesday, 30th in the morning. These events cost 350 € without taxes, and from the event you receive a brand new LG Optimus with 16 GB of memory.&lt;/p&gt;

&lt;p&gt;I'm speaking at the event myself, and will give an overview of the development technologies used for developing Windows Phone 7 applications, and you will also gain hands-on experience in getting your "Hello World" application to run on your own phone.&lt;/p&gt;

&lt;p&gt;There's only space for 15 attendees per session, so space fills up fast. If you are interested, send me an e-mail.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;</description>
      <pubDate>Mon, 01 Nov 2010 18:23:31 GMT</pubDate>
      <guid isPermaLink="false">8dfa7741-60ff-432e-af68-c4f59928ffd2</guid>
    </item>
    <item>
      <title>Where to get latest version of the Dependency Walker utility?</title>
      <link>http://www.dependencywalker.com/</link>
      <description>&lt;p&gt;If you have ever had trouble in launching certain applications or have wanted to know which (static) DLLs are required by a Windows application, then you will want to use a utility called Dependency Walker. Dependency Walker (depends.exe) comes with for example Visual Studio, but the version might not be the latest one, currently 2.2. Also, Visual Studio might only include the 32-bit version which cannot be used to test 64-bit applications.&lt;/p&gt;

&lt;p&gt;To get the latest version, navigate to &lt;a href="http://www.dependencywalker.com/"&gt;www.dependencywalker.com&lt;/a&gt;. This is how the utility looks like:&lt;/p&gt;

&lt;img src="/janij/blog/images/2010_oct_dependency_walker.png" alt="Dependency Walker" /&gt;

&lt;p&gt;Nowadays, this little tool gives lots of valuable information, and during the past fifteen or so years, I've needed it dozens of times. Last time was yesterday, when I needed the 64-bit edition.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Oct 2010 04:51:06 GMT</pubDate>
      <guid isPermaLink="false">f7bcea83-5002-442a-ac78-ec8d1f63532d</guid>
    </item>
    <item>
      <title>Binding an ADO.NET Entities Framework data source to a WPF DataGrid control</title>
      <link>http://msdn.microsoft.com/en-us/library/ee340709.aspx</link>
      <description>&lt;p&gt;If you happen to be writing database applications with WPF (Windows Presentation Foundation) and want to display data in a DataGrid component, then you are in good hands. Especially with Visual Studio 2010 and .NET 4.0, there isn't much code you need to write if you want to display data from an Entity Data Model (EDM) in the grid.&lt;/p&gt;

&lt;p&gt;Shortly put, a WPF DataGrid control contains a property called ItemsSource (notice the double-S in the name) to which you can assign any ADO.NET Entity Framework entity object, LINQ query results, and so on. For instance, if you started an empty WPF project and wanted to display the Customers table data in a blank DataGrid, you might be tempted in writing code like this:&lt;/p&gt;

&lt;pre&gt;
// take #1
NorthwindEntities entities = new NorthwindEntities();
dataGrid1.ItemsSource = entities.Customers;
&lt;/pre&gt;

&lt;p&gt;However, if you run the above code, you will get no errors, but the datagrid stays empty. Why? This happens because the datagrid cannot directly work with entity data model "table" entities, and thus, you need a slight addition to the above code (note the end of the last line):&lt;/p&gt;

&lt;pre&gt;
// take #2
NorthwindEntities entities = new NorthwindEntities();
dataGrid1.ItemsSource = entities.Customers.ToList();
&lt;/pre&gt;

&lt;p&gt;However, this again runs, but the grid still stays empty. Why? Because you didn't ask the grid to render any columns. To do this, you would either need to create a set of columns manually, or ask the grid to do the work for you using the AutoGenerateColumns Boolean property.&lt;/p&gt;

&lt;p&gt;That said, here is the final, working code:&lt;/p&gt;

&lt;pre&gt;
// take #3, a success
NorthwindEntities entities = new NorthwindEntities();
dataGrid1.AutoGenerateColumns = true;
dataGrid1.ItemsSource = entities.Customers.ToList();
&lt;/pre&gt;

&lt;p&gt;On MSDN, there's a more &lt;a href="http://msdn.microsoft.com/en-us/library/ee340709.aspx"&gt;elaborate version&lt;/a&gt; of this short tutorial. Good luck!&lt;/p&gt;</description>
      <pubDate>Wed, 27 Oct 2010 14:28:35 GMT</pubDate>
      <guid isPermaLink="false">3e0c8b28-0f00-47f2-a1ac-03241f3d96f6</guid>
    </item>
    <item>
      <title>Forming of a Finnish F# user group</title>
      <link>http://www.meetup.com/FSharpHelsinki/</link>
      <description>&lt;p&gt;Finnish .NET developer Tuomas Hietanen has formed a virtual F# programming user group to which both novices and experts are welcome. Locally, the group operates at the the Greater Helsinki metropolitan area.&lt;/p&gt;

&lt;p&gt;The group is available at Meetup.com (&lt;a href="http://www.meetup.com/FSharpHelsinki/"&gt;http://www.meetup.com/FSharpHelsinki/&lt;/a&gt;), but also in LinkedIn and Facebook. Feel free to join the group!&lt;/p&gt;</description>
      <pubDate>Mon, 25 Oct 2010 14:07:31 GMT</pubDate>
      <guid isPermaLink="false">318f78d3-acf3-471f-8abb-b3171a1d4465</guid>
    </item>
    <item>
      <title>Fixing WSDL import errors with WCF services running on Windows Azure</title>
      <link>http://windows.azure.com/</link>
      <description>&lt;p&gt;Developing WCF services with Visual Studio 2010 is a breeze, but sometimes when deploying your ready-made solution to Microsoft's &lt;a href="http://windows.azure.com/"&gt;cloud platform Azure&lt;/a&gt; can cause challenges. One challenge is when you are writing your client application for the WCF service running on Azure: when you try to add a service reference to your WCF service by point to its WSDL document, you will get an error.&lt;/p&gt;

&lt;p&gt;The error message shown by Visual Studio is to the following effect:&lt;/p&gt;

&lt;pre&gt;
An error (Details) occurred while attempting to find services at 'http://myapp.cloudapp.net/Service.svc'
&lt;/pre&gt;

&lt;p&gt;And, if you click the Details hyperlink, your will get the following message:&lt;/p&gt;

&lt;pre&gt;
The document at the url http://myapp.cloudapp.net/Service.svc was not recognized as a known document type.
&lt;/pre&gt;

&lt;p&gt;Although this conclusion is not completely correct, the list following the error message points you to the right direction:&lt;/p&gt;

&lt;pre&gt;
The remote name could not be resolved: 'rd00145d3706c7'
&lt;/pre&gt;

&lt;p&gt;This is the true reason for this error. In fact if you take a look at the raw WSDL document, you will see that it contains references to addresses such as http://rd00145d3706c7:20000/. These are internal host addresses (server names) used by Azure. For the WSDL document to be correct to the outside world, you should instead use your public DNS name like http://myapp.cloudapp.net/. Technically speaking, this is the load-balancer address for your WCF service/Azure web application.&lt;/p&gt;

&lt;p&gt;How then would you fix this problem with .NET 3.5? Firstly, you will need to install a hotfix to your development machine and/or the build computer used to create the published packages. Then, you will need to add a single element to your WCF service's web.config file.&lt;/p&gt;

&lt;p&gt;The hotfix is discussed in Microsoft's Knowledge Base &lt;a href=" http://support.microsoft.com/kb/977420"&gt;article 977420&lt;/a&gt; and for example for Windows 7, the patch can be &lt;a href="http://code.msdn.microsoft.com/KB981002"&gt;downloaded here&lt;/a&gt;. Once you have installed this hotfix, return to Visual Studio and open your project's web.config file. Look for the serviceBehaviors element (usually at the end of the file), and then add the following data:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;behaviors&amp;gt;
  &amp;lt;serviceBehaviors&amp;gt;
    &amp;lt;behavior name="MyWebRole.MyServiceBehavior"&amp;gt;
      &amp;lt;serviceMetadata httpGetEnabled="true" /&amp;gt;
      &amp;lt;serviceDebug includeExceptionDetailInFaults="false" /&amp;gt;
      &amp;lt;useRequestHeadersForMetadataAddress&amp;gt;
        &amp;lt;defaultPorts&amp;gt;
          &amp;lt;add scheme="http" port="81" /&amp;gt;
          &amp;lt;add scheme="https" port="444" /&amp;gt;
        &amp;lt;/defaultPorts&amp;gt;
      &amp;lt;/useRequestHeadersForMetadataAddress&amp;gt;
    &amp;lt;/behavior&amp;gt;
  &amp;lt;/serviceBehaviors&amp;gt;
&amp;lt;/behaviors&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Here, the useRequestHeadersForMetadataAddress element and its subelements are the ones you should add. Shortly put, the hotfix enables the support for this element (Visual Studio doesn't know about it), and after you build and publish (deploy) your new version of the WCF service, the WSDL problem is gone.&lt;/p&gt;

&lt;p&gt;The final step is of course to retry adding the service reference to your client project. This should now succeed just fine.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Fri, 22 Oct 2010 13:54:37 GMT</pubDate>
      <guid isPermaLink="false">5f9c670c-4354-4f1c-9d8a-8cf8b665dc19</guid>
    </item>
    <item>
      <title>TFS as a service from DiscountASP.NET</title>
      <link>http://www.discountasp.net/tfs/</link>
      <description>&lt;p&gt;If you have been planning on using Microsoft's ALM solution Team Foundation Server (TFS), but don't have the hardware or will to host the solution yourself, there's good news: DiscountASP.NET, the U.S. based service provider, now offers &lt;a href="http://www.discountasp.net/tfs/"&gt;TFS as a hosted service&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The prices are very reasonable as well. Check it out.&lt;/p&gt;</description>
      <pubDate>Wed, 20 Oct 2010 20:49:03 GMT</pubDate>
      <guid isPermaLink="false">d5035b84-4246-44bd-abbc-dbfe03b47990</guid>
    </item>
    <item>
      <title>How to edit existing tables with SQL Server 2008 when changes would require recreating the table?</title>
      <link>http://www.microsoft.com/express/database/</link>
      <description>&lt;p&gt;If you have been using SQL Server Management Studio to maintain your database tables, suchas by deleting and adding fields (which often happens during development), you might have noticed that &lt;a href="http://www.microsoft.com/express/database/"&gt;SQL Server 2008 and 2008 R2&lt;/a&gt; do not anymore allow you to alter your tables in design mode as freely as before.&lt;/p&gt;

&lt;p&gt;For instance, when adding a new field, Management Studio might inform you: "Saving changes is not permitted. The changes you have made require the following table to be dropped and re-created". However, the same change used to work with SQL Server 2005 (and its management tools). What should you do?&lt;/p&gt;

&lt;p&gt;The quick solution is to remember that you can still add new fields by right-clicking your table and choosing Design, but you cannot add new fields to the middle. You can however freely add new fields at the bottom. Yes, this is not perfect, but works nonetheless. In your application code and your SQL or LINQ queries, you can specify the order of returned fields and/or the order in which you process them.&lt;/p&gt;</description>
      <pubDate>Sun, 17 Oct 2010 11:23:28 GMT</pubDate>
      <guid isPermaLink="false">c9f0f9ec-2e3d-469e-8d09-0acc06048350</guid>
    </item>
    <item>
      <title>Where to find developer material for Bing Maps?</title>
      <link>http://www.microsoft.com/maps/developers/web.aspx</link>
      <description>&lt;p&gt;If you are interested in using Microsoft's Bing Maps in your own applications, for instance in Silverlight or Windows Phone 7 applications, you are in good hands. The &lt;a href="http://www.microsoft.com/maps/developers/web.aspx"&gt;Bing Developer Portal&lt;/a&gt; has good information about topics such as the Bing Maps API documentation, AJAX SDK, licensing, and more.&lt;/p&gt;

&lt;p&gt;Be sure to check the site out!&lt;/p&gt;</description>
      <pubDate>Thu, 14 Oct 2010 15:09:33 GMT</pubDate>
      <guid isPermaLink="false">0e92232e-cd8b-4e0d-a947-634b4df4c777</guid>
    </item>
    <item>
      <title>Windows Phone 7 launched in New York</title>
      <link>http://www.microsoft.com/windowsphone/en-us/default.aspx</link>
      <description>&lt;p&gt;Good news: &lt;a href="http://www.microsoft.com/windowsphone/en-us/default.aspx"&gt;Windows Phone 7&lt;/a&gt; launched today in New York. Initially, phones will become available from Samsung, LG, Dell, and HTC. In the U.S., AT&amp;T will be the major carrier; I'm waiting for details for Europe (and Finland of course).&lt;/p&gt;

&lt;p&gt;To start developing applications, visit the &lt;a href="http://developer.windowsphone.com/"&gt;developer portal&lt;/a&gt; for Windows Phone 7. The tools are free and already reliable for professional use.&lt;/p&gt;

&lt;p&gt;The major tools are Visual Studio 2010 Express for Windows Phone and Blend 4 Express for Windows Phone. The developer tools include an emulator with which initial testing can be made. Currently the C# language is supported out of the box; however Visual Basic support is coming soon.&lt;/p&gt;

&lt;p&gt;The developer marketplace registration costs currently $99 in the U.S. and 75 € in the Euro region. European private persons need to pay a 15 % VAT tax, making the total 86.25 €. This is a yearly fee.&lt;/p&gt;

&lt;p&gt;The rumors are already that a Windows Phone 7 "1.1" update is in the works, and scheduled for the first half of 2011.&lt;/p&gt;</description>
      <pubDate>Mon, 11 Oct 2010 19:02:22 GMT</pubDate>
      <guid isPermaLink="false">09a71e18-53d8-4510-82dc-c1557b531e16</guid>
    </item>
    <item>
      <title>Restoring a SQL Server full backup to a new database</title>
      <link>http://msdn.microsoft.com/en-us/library/ms186858.aspx</link>
      <description>&lt;p&gt;Assume you are in either of these two situations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You have an existing database (say, "test") which you want to move to another database (say, "development"), or&lt;/li&gt;
&lt;li&gt;You have a full backup file of a database, and you must create a new database from this database.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Basically, working with SQL Server databases is quite simple if you are able to detach or shutdown the database server. In this case, you can simply copy the .mdf and .ldf files, rename them, and attach them to SQL Server. But, if the source system (where the original database is) is always in production or you don't have the permission to detach for example, you need to work with backups.&lt;/p&gt;

&lt;p&gt;Here's the quick summary: create a full backup of the source database, and then run a &lt;a href="http://msdn.microsoft.com/en-us/library/ms186858.aspx"&gt;RESTORE DATABASE&lt;/a&gt; command specifying the new destination name (and .mdf/.ldf file locations) for the database to be created. Except for security settings, it doesn't matter to which database server you make the restore to.&lt;/p&gt;

&lt;p&gt;Here's an example situation: you have a single database server in which you are running a database named "NorthwindTest". This database is constantly in use (say, by other developers in your team), so you cannot detach it, and thus the .mdf file is also locked. But, you can take a full backup of the database. This is good.&lt;/p&gt;

&lt;p&gt;Now you have a .bak file from the NorthwindTest database, and from it, you want to create a new database called "NorthwindDevelopment". Efficiently, this new database will become a copy of the original source database. The next step is to run the RESTORE DATABASE command. Assuming the .bak file is at "C:\Backups\NorthwindTest.bak" and you want the new .mdf file to be stored at "C:\Database\NorthwindDevelopment.mdf", the command would be:&lt;/p&gt;

&lt;pre&gt;
RESTORE DATABASE [NorthwindDevelopment]
FROM DISK = 'C:\Backups\NorthwindTest.bak'
WITH MOVE 'NorthwindTest' TO 'C:\Database\NorthwindDevelopment.mdf',
MOVE 'NorthwindTest_log' TO 'C:\Database\NorthwindDevelopment.ldf'
&lt;/pre&gt;

&lt;p&gt;This is simple, but the "MOVE" parameters can cause trouble. The parameter immediately after the MOVE word refers to the source databases' &lt;em&gt;logical name&lt;/em&gt; and the log name that were specified when the database was created (if you created the database interactively using SQL Server Management Studio [SSMS], the logical names are usually "mydata" and "mydata_log" respectively). If you are unsure, you can simply view the properties of the source database, or issue the command:&lt;/p&gt;

&lt;pre&gt;RESTORE FILELISTONLY&lt;/pre&gt;

&lt;p&gt;This command lists the logical names inside the backup file, and you can think of it as being a query statement. Then, you would substitute these names next to the MOVE parameters in the above RESTORE DATABASE command. Also note that the MOVE parameters have nothing to do with the backup &lt;em&gt;filename&lt;/em&gt; but instead what's inside the backup file.&lt;/p&gt;

&lt;p&gt;Remember, that this quick tip cannot discuss all the related security details such as backup permissions, user roles, and so on. With the newly created database that was restored from the backup, you will have to check manually whether the security settings are correct.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Sun, 10 Oct 2010 12:43:23 GMT</pubDate>
      <guid isPermaLink="false">549fa1db-d8ff-4ea8-b3c4-b034348164f7</guid>
    </item>
    <item>
      <title>Finnish Visual Studio Team System User Group meeting next Wednesday in Espoo</title>
      <link>https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464221&amp;Culture=fi-FI</link>
      <description>&lt;p&gt;The Finnish user group for &lt;a href="http://www.itpro.fi/jasenyhteisot/vstsug/default.aspx"&gt;Visual Studio Team System and ALM&lt;/a&gt; is going to host an event that introduces Team Foundation Server (TFS) to small and medium businesses, and shows how to get started.&lt;/p&gt;

&lt;p&gt;The event will be held at Moonsoft's office in Espoo on Wednesday 13th of October. Seats are available for the first 30 most active people, and a LiveMeeting session will be hosted live for others. I'm speaking at the event myself, giving an introduction about TFS.&lt;/p&gt;

&lt;p&gt;The attend, visit the &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464221&amp;Culture=fi-FI"&gt;event pages&lt;/a&gt;. Welcome, and see you there!&lt;/p&gt;</description>
      <pubDate>Thu, 07 Oct 2010 18:51:55 GMT</pubDate>
      <guid isPermaLink="false">e42bb672-c490-4c00-821b-e16112f85bd1</guid>
    </item>
    <item>
      <title>What is EMET and why should I care?</title>
      <link>http://blogs.technet.com/b/srd/archive/2010/09/02/enhanced-mitigation-experience-toolkit-emet-v2-0-0.aspx</link>
      <description>&lt;p&gt;If you are a professional developer, software security and vulnerability avoidance should be second nature to you. Even so, security issues can sometimes creep into software, and the more publicity your application gathers, the more disastrous the results can be, should a programming error show up.&lt;/p&gt;

&lt;p&gt;The help you find (certain kinds) of security issues, Microsoft has just few days ago announced s new version of its EMET tool. EMET stands for "Enhanced Mitigation Experience Toolkit", and now a &lt;a href="http://blogs.technet.com/b/srd/archive/2010/09/02/enhanced-mitigation-experience-toolkit-emet-v2-0-0.aspx"&gt;new version 2.0 is available&lt;/a&gt;. The tool "...provides users with the ability to deploy security mitigation technologies to arbitrary applications.  This helps prevent vulnerabilities in those applications (especially line of business and 3rd party apps) from successfully being exploited."&lt;/p&gt;

&lt;p&gt;That said, especially if you are developing native code applications, be sure to give EMET 2.0 a spin. You never know what it might find.&lt;/p&gt;</description>
      <pubDate>Mon, 04 Oct 2010 17:51:42 GMT</pubDate>
      <guid isPermaLink="false">ab6d40d9-a446-489e-b782-47b9c4bf8913</guid>
    </item>
    <item>
      <title>Microsoft SQL Server 2008 Service Pack 2 now available</title>
      <link>http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&amp;displaylang=en</link>
      <description>&lt;p&gt;Although the most ventured users and developers have already started using SQL Server 2008 R2, lots of SQL Server 2008 installations are still in product (not to talk about the 2000 and 2005 versions), and the good news is that SQL Server 2008 Service Pack 2 is now &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&amp;displaylang=en"&gt;available here&lt;/a&gt; in x86 and x64 forms, the size being around 300 MB.&lt;/p&gt;

&lt;p&gt;Says Microsoft: "Service Pack 2 contains updates for SQL Server Utility, Data-Tier Application (DAC), as well as integration capability for Microsoft Reporting Services with the Microsoft SharePoint 2010 Technologies. Service Pack 2 introduces support for a maximum of 15,000 partitions in a database, and includes SQL Server 2008 SP1 Cumulative Update 1 to 8."&lt;/p&gt;

&lt;p&gt;Sounds good to me. Now grab &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&amp;displaylang=en"&gt;your copy&lt;/a&gt;. A ReadMe document is also provided.&lt;/p&gt;</description>
      <pubDate>Fri, 01 Oct 2010 19:24:16 GMT</pubDate>
      <guid isPermaLink="false">bf79c2b4-a79d-47cb-951e-4dc21250d093</guid>
    </item>
    <item>
      <title>BizTalk Server 2010 is ready</title>
      <link>http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/09/22/biztalk-server-2010-released-for-manufacturing.aspx</link>
      <description>&lt;p&gt;Just few days ago, Microsoft announced a new version of BizTalk Server: &lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/09/22/biztalk-server-2010-released-for-manufacturing.aspx"&gt;BizTalk Server 2010&lt;/a&gt;. The beta of BizTalk 2010 has already been available for a while, and I also recently wrote an article about &lt;a href=""&gt;getting started with development&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are interesting the taking the RTM version to a spin, stay tuned for the MSDN downloads, and a trial version.&lt;/p&gt;

&lt;p&gt;Microsoft's official &lt;a href="http://www.microsoft.com/biztalk/en/us/default.aspx"&gt;product pages&lt;/a&gt; are also worth visiting.&lt;/p&gt;</description>
      <pubDate>Tue, 28 Sep 2010 18:22:57 GMT</pubDate>
      <guid isPermaLink="false">a2c8a413-be4f-4216-b9f6-82465323a3a5</guid>
    </item>
    <item>
      <title>Visual Basic developers will get access to Windows Phone 7 development</title>
      <link>http://blogs.msdn.com/b/somasegar/archive/2010/09/23/windows-phone-vb-developers-great-mobile-apps.aspx</link>
      <description>&lt;p&gt;Good news if you are a Visual Basic .NET developer: from now on, you can write Windows Phone 7 (WP7) applications, too! Previosly, support for WP7 application development was limited to C# developers only.&lt;/p&gt;

&lt;p&gt;The Visual Basic support was announced by Somasegar &lt;a href="http://blogs.msdn.com/b/somasegar/archive/2010/09/23/windows-phone-vb-developers-great-mobile-apps.aspx"&gt;just few days ago&lt;/a&gt;. Says the blog:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Starting today, you can download Microsoft Visual Basic CTP for Windows Phone Developer Tools.  This is a great milestone as it enables our Visual Basic developers to be able to build applications for Windows Phone."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So if you are a VB developer, be sure to &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a808a69d-6119-47b7-b858-262be5c49915&amp;displaylang=en"&gt;get the CTP&lt;/a&gt; today.&lt;/p&gt;</description>
      <pubDate>Sun, 26 Sep 2010 12:48:28 GMT</pubDate>
      <guid isPermaLink="false">7a5b19a4-d572-48f2-8e31-138f0af24869</guid>
    </item>
    <item>
      <title>Free Microsoft antivirus for small businesses with less than ten PCs</title>
      <link>http://blogs.msdn.com/b/mssmallbiz/archive/2010/09/22/announcing-microsoft-security-essentials-available-free-to-small-businesses-in-october.aspx</link>
      <description>&lt;p&gt;If you are working in a small company with less than 10 computers and are using Microsoft operating systems, then there are good news for you: Micorosoft is now offering its Security Essentials malware and antivirus product for free. The only limitation is ten PCs, but that ought to be plenty if you are working for a small (micro?) company.&lt;/p&gt;

&lt;p&gt;For more details about the offer, see &lt;a href="http://blogs.msdn.com/b/mssmallbiz/archive/2010/09/22/announcing-microsoft-security-essentials-available-free-to-small-businesses-in-october.aspx"&gt;here on the SMB Partner Blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The free version will become available early October, so in just few weeks. Stay tuned.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Sep 2010 19:07:32 GMT</pubDate>
      <guid isPermaLink="false">68955142-e86d-46a1-ab23-7a9e4b58d562</guid>
    </item>
    <item>
      <title>The Model-View-Presenter model</title>
      <link>http://www.wildcrest.com/Potel/Portfolio/mvp.pdf</link>
      <description>&lt;p&gt;Today's recommended reading is about application architectures, and more specifically the Model-View-Presenter (MVP) model, which is especially suitable for .NET WPF desktop applications and ASP.NET web applications. As you might guess, the MVP model is an adaption of the familiar MVC model, but with some nice tweaks.&lt;/p&gt;

&lt;p&gt;Once of the best sources of information on MVP is an older research paper titled "MVP: Model-View-Presenter -- The Taligent Programming Model for C++ and Java". It is available in PDF format &lt;a href="http://www.wildcrest.com/Potel/Portfolio/mvp.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recommended reading, despite the fact that it has been written with C++ and Java developers in mind.&lt;/p&gt;</description>
      <pubDate>Tue, 21 Sep 2010 18:19:52 GMT</pubDate>
      <guid isPermaLink="false">f978c12f-7b8a-4344-947d-f746e108906c</guid>
    </item>
    <item>
      <title>Internet Explorer 9 developer guidance</title>
      <link>http://msdn.microsoft.com/en-us/ie/ff468705.aspx</link>
      <description>&lt;p&gt;Earlier this week, Microsoft made available the first beta of the forth-coming &lt;a href="http://ie.microsoft.com/testdrive/"&gt;Internet Explorer 9 browser&lt;/a&gt;. Previously, the releases were technical previews, often without an user interface.&lt;/p&gt;

&lt;p&gt;IE9 contains many interesting additions, for example better HTML5 support, hardware accelerated graphics, and more. As a developer, you are probably interested in learning how these new features can be accessed from your web pages and (ASP.NET) applications. For that, Microsoft has published a document titled "&lt;a href="http://msdn.microsoft.com/en-us/ie/ff468705.aspx"&gt;Internet Explorer 9 Beta Guide for Developers&lt;/a&gt;". It is available on MSDN.&lt;/p&gt;

&lt;p&gt;Recommended reading!&lt;/p&gt;</description>
      <pubDate>Sat, 18 Sep 2010 09:56:28 GMT</pubDate>
      <guid isPermaLink="false">ab84b0e9-2641-47e0-a4e5-f967675aca7e</guid>
    </item>
    <item>
      <title>Windows Phone 7 tools now ready</title>
      <link>http://developer.windowsphone.com/windows-phone-7/</link>
      <description>&lt;p&gt;Microsoft has just released RTM versions of Windows Phone 7 tools. You can find the tools here: http://developer.windowsphone.com/windows-phone-7/.&lt;/p&gt;

&lt;p&gt;Be sure to check them out!&lt;/p&gt;</description>
      <pubDate>Thu, 16 Sep 2010 19:08:30 GMT</pubDate>
      <guid isPermaLink="false">fc3d3500-54ae-42c3-99ef-84ef0d3183e9</guid>
    </item>
    <item>
      <title>Good 64-bit native code migration tips from Intel</title>
      <link>http://software.intel.com/en-us/articles/collection-of-examples-of-64-bit-errors-in-real-programs/</link>
      <description>&lt;p&gt;If you happen to work with native code from time to time like I do (not everything is .NET, you see), or if you happen to be interested in processor's inner workings, Intel's developer blog is a nice stream to follow. Recently, there has been a very nice article titled "&lt;a href=""&gt;A Collection of Examples of 64-bit Errors in Real Programs&lt;/a&gt;" that I suggest reading.&lt;/p&gt;

&lt;p&gt;The article deals with migration issues of C++ code from 32-bit to 64-bit world. Of course, this applies to any native code language that supports pointers.&lt;/p&gt;

&lt;p&gt;Recommended reading!&lt;/p&gt;</description>
      <pubDate>Tue, 14 Sep 2010 20:04:50 GMT</pubDate>
      <guid isPermaLink="false">c7925030-2586-435d-98f0-22e2cd7ae0f6</guid>
    </item>
    <item>
      <title>Combining Silverlight 4 and SharePoint: a PDF ebook</title>
      <link>http://msinetpub.vo.llnwd.net/d1/keithcombs/books/Silverlight4_SharePoint2010_Integration/Chapter1.pdf</link>
      <description>&lt;p&gt;I've recently received multiple questions on the possibilities of combining Silverlight to SharePoint sites. It is indeed possible, and now Microsoft has made available a free ebook in PDF format, titled "Microsoft Silverlight 4 and SharePoint 2010 Integration". This 42 page PDF shows you how to get started, and gives you tips on how to work efficiently in a SharePoint environment.&lt;/p&gt;

&lt;p&gt;The PDF is available directly &lt;a href="http://msinetpub.vo.llnwd.net/d1/keithcombs/books/Silverlight4_SharePoint2010_Integration/Chapter1.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Mon, 13 Sep 2010 14:34:07 GMT</pubDate>
      <guid isPermaLink="false">20f32c9f-15cc-43c7-a36d-6baa26a15a9d</guid>
    </item>
    <item>
      <title>ITPro.fi bootcamp next weekend</title>
      <link>http://www.itpro.fi/</link>
      <description>&lt;p&gt;The Finnish IT professional association &lt;a href="http://www.itpro.fi/"&gt;ITpro.fi&lt;/a&gt; is again meeting at Lehmonkärki, the traditional southern Finland location for yet another bootcamp. I'm looking forward to the camp, especially as this time we are combining active members from the SANKO Finnish .NET user group. In total, there will be almost ten software developers (in addition to our household Soft Boyz team of five) at the meeting, which must be a high score so far, if not counting the software architects that once visited the ITpro.fi bootcamp.&lt;/p&gt;

&lt;p&gt;Edit: We will also see the Finnish premier for seeing Windows Phone 7 hardware with the RTM bits. Great!&lt;/p&gt;

&lt;p&gt;See you there!&lt;/p&gt;</description>
      <pubDate>Sat, 11 Sep 2010 07:51:31 GMT</pubDate>
      <guid isPermaLink="false">e1db227b-96b5-497a-b469-1c2ad44f42ce</guid>
    </item>
    <item>
      <title>Fetch data from a WCF Data Service and displaying it on Windows Forms DataGridView component</title>
      <link>http://msdn.microsoft.com/en-us/data/bb931106.aspx</link>
      <description>&lt;p&gt;The OData protocol and &lt;a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;WCF (Windows Communication Foundation) Data Services&lt;/a&gt; technology are an exciting combination for many .NET developers. However, most examples I've seen on the Internet about these technologies simply talk about Silverlight. This is cool, true, but then again, you might have older applications using WinForms (Windows Forms) technologies that could still benefit from these technologies. The purpose of this blog post is to change the situation, and provide you quick step-by-step instructions on how to get started.&lt;/p&gt;

&lt;p&gt;Firstly, start a new WinForms project. I'm assuming you are using Visual Studio 2008 or 2010 or later here. With the OData endpoint URL copied to the clipboard (try http://services.odata.org/Northwind/Northwind.svc/ for a quick test), add a Service Reference to your project, and let Visual Studio know your endpoint URL. The result should be an entity (object) model that resembles the data model published by OData.&lt;/p&gt;

&lt;p&gt;Now, open a form in Visual Studio. You might be tempted to drag just an empty DataGridView component, write a LINQ query against the entity model, and assign the query results to DataSource property of the grid. Well, it compiles, but doesn't work as there are no columns to display, and thus no data shown.&lt;/p&gt;

&lt;p&gt;Instead, let Visual Studio create the columns for you. Open the Data Sources window in Visual Studio, and you should see your data model. Drag a suitable table (such as the Customers table in the above URL) to your form, and Visual Studio will create a nice data grid for you, with associated components.&lt;/p&gt;

&lt;p&gt;Then, add for instance a button to the form, and to the button click event handler, write your favorite LINQ query using the ServiceReference1.NorthwindEntities object. Once you have the results in a C# variable (using the var keyword is convenient), simply assign the results to the DataGridView's DataSource property.&lt;/p&gt;

&lt;p&gt;There you have it!&lt;/p&gt;</description>
      <pubDate>Wed, 08 Sep 2010 19:11:24 GMT</pubDate>
      <guid isPermaLink="false">6764e441-ba7f-4c6a-8ada-060cc499de21</guid>
    </item>
    <item>
      <title>How to set up a quick HTTPS connection to Team Foundation Server version control</title>
      <link>http://msdn.microsoft.com/en-us/library/aa833873(VS.90).aspx</link>
      <description>&lt;p&gt;A quick tip for those of you wishing to quickly connect to your TFS server through a secured HTTPS connection: to allow Visual Studio to successfully connect to your TFS server with a self-signed certificate, you will need to first install the certificate to your Internet Explorer's (IE) digital certificate store on each computer you will be using the HTTPS connection with.&lt;/p&gt;

&lt;p&gt;A little more elaborate version. The communication between TFS server and your Visual Studio client happens through the HTTP protocol, which can be easily secured with HTTPS. Furthermore, HTTPS for your TFS server is easy to enable in IIS settings, but unless you have purchased a valid, verified certificate for around $500 or more, you must use a self-signed certificate. As far as the transferred TCP/IP packets are concerned, the data is in just as safe hands with either of these certificates.&lt;/p&gt;

&lt;p&gt;However, the problem is that Visual Studio will not let you connect through HTTPS to a TFS server, unless you have indicated you trust the certificate. If you try this, you will get an error message saying:&lt;/p&gt;

&lt;pre&gt;
TF31002: Unable to connect to this Team Foundation Server: https://192.168.0.10:8081/tfs.
...
Technical information (for administrator):

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
&lt;/pre&gt;

&lt;p&gt;Adding the certificate and marking it trusted is done using IE's settings. Browse normally to your TFS server, and then open the properties for the certificate from the address bar. Then, install the certificate (for details, see here) and you are set. Restart Visual Studio, and create your connection.&lt;/p&gt;

&lt;p&gt;Now you have a working HTTPS connection to your TFS server. This works well in small environments, larger environment probably want tighter security and easier management. See here for &lt;a href="http://msdn.microsoft.com/en-us/library/aa833873(VS.90).aspx"&gt;details on an MSDN walkthrough article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Sun, 05 Sep 2010 08:49:50 GMT</pubDate>
      <guid isPermaLink="false">33cef81a-c64a-47cb-889d-25a774cc1839</guid>
    </item>
    <item>
      <title>Using Visual Studio 2010 on Windows XP? Make your VS run faster</title>
      <link>http://support.microsoft.com/kb/981741</link>
      <description>&lt;p&gt;Welcome, September! In case you are still using Windows XP on (some) of your development machine(s) and have already started to work with Visual Studio 2010, then there's a tip worth checking out: Microsoft's Knowledge Base &lt;a href="http://support.microsoft.com/kb/981741"&gt;article #981741&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This article, promisingly titled "Visual Studio 2010 runs faster when the Windows Automation API 3.0 is installed" reminds you to install Windows Automation API 3.0. This update, not present natively on Windows XP, can significantly decrease the speed of IntelliSense, for instance.&lt;/p&gt;

&lt;p&gt;Download links for the updates are provided in the &lt;a href="http://support.microsoft.com/kb/981741"&gt;KB article&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 02 Sep 2010 16:43:27 GMT</pubDate>
      <guid isPermaLink="false">d45bc8b2-5252-4e01-8745-d696a134f139</guid>
    </item>
    <item>
      <title>New article about BizTalk 2010 available</title>
      <link>http://www.codeguru.com/csharp/.net/net_general/article.php/c17845/Development-101-with-Microsoft-BizTalk-Server-2010.htm</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest article about Microsoft's business integration application BizTalk. The article is titled "&lt;a href="http://www.codeguru.com/csharp/.net/net_general/article.php/c17845/Development-101-with-Microsoft-BizTalk-Server-2010.htm"&gt;Development 101 with Microsoft BizTalk Server 2010&lt;/a&gt;", and talks about the basics of developing applications for BizTalk.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Tue, 31 Aug 2010 18:41:23 GMT</pubDate>
      <guid isPermaLink="false">e1935faa-4ebe-469c-b361-b98eec7bd321</guid>
    </item>
    <item>
      <title>New web development and designing subsite on MSDN</title>
      <link>http://msdn.microsoft.com/en-us/scriptjunkie/default.aspx</link>
      <description>&lt;p&gt;MSDN has now had for few days a welcome addition: the new "&lt;a href="http://msdn.microsoft.com/en-us/scriptjunkie/default.aspx"&gt;scriptjunkie{}&lt;/a&gt;" site. This site is for web developers and designers, wishing to improve their craft. For instance, you can read about latest web technologies, cross-browser issues, JavaScript, HTML 5, and so on.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Sun, 29 Aug 2010 16:29:50 GMT</pubDate>
      <guid isPermaLink="false">bb9e0941-7186-4728-936f-878e9b023130</guid>
    </item>
    <item>
      <title>Need to remotely connect to multiple computers? RDCMan could be your solution</title>
      <link>http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=4603c621-6de7-4ccb-9f51-d53dc7e48047</link>
      <description>&lt;p&gt;Are you often working with multiple remote computers (workstations and/or servers) and connecting to them with Remote Desktop Connection (RDC, mstsc.exe)? If using RDC is your daily routine, then you might benefit from a free tool &lt;a href="http://msexchangeteam.com/archive/2010/06/11/455115.aspx"&gt;called RDCMan&lt;/a&gt;, or Remote Desktop Connection Manager. Latest version is 2.2 currently.&lt;/p&gt;

&lt;p&gt;Says Microsoft: "RDCMan is a central place where you can organize, group, and manage your various Remote Desktop connections. This is particularly useful for system administrators, developers, testers, and lab managers who maintain groups of computers and connect to them frequently".&lt;/p&gt;

&lt;p&gt;Sounds good to me! Get it &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=4603c621-6de7-4ccb-9f51-d53dc7e48047"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 27 Aug 2010 10:10:29 GMT</pubDate>
      <guid isPermaLink="false">fa7e4db8-ad23-4a00-8d12-bbf934e8ecfa</guid>
    </item>
    <item>
      <title>Microsoft Remix2010 in Helsinki at the end of September</title>
      <link>https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032458634&amp;Culture=fi-FI</link>
      <description>&lt;p&gt;Microsoft Finland is arranging a nice event next month: ReMix2010. This event aims at bringing the best part of the original Mix2010 event held in Las Vegas to Helsinki.&lt;/p&gt;

&lt;p&gt;To register, visit the &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032458634&amp;Culture=fi-FI"&gt;REMIX2010 pages&lt;/a&gt; on Microsoft.fi. See you there!&lt;/p&gt;</description>
      <pubDate>Tue, 24 Aug 2010 13:16:44 GMT</pubDate>
      <guid isPermaLink="false">1957d13f-a6cc-485e-ae71-10b28c8c72db</guid>
    </item>
    <item>
      <title>Finnish translation of the ISO 9241-151 web usability standard</title>
      <link>http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=37031</link>
      <description>&lt;p&gt;If you happen to be a Finnish web developer or designed, then you should be aware of a newly translated ISO standard &lt;a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=37031"&gt;9241-151&lt;/a&gt;. The translation is available from the Finnish Standardization Organization's &lt;a href="http://sales.sfs.fi/servlets/ProductServlet?action=showproduct&amp;productid=236957"&gt;web site here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are on the other hand a non-Finnish web developer/designer, the original ISO standard in English is worth reading. It is titled "Ergonomics of human-system interaction -- Part 151: Guidance on World Wide Web user interfaces".&lt;/p&gt;

&lt;p&gt;The original English language ISO standard specification is from 2008, so the Finnish translation now made available does not contain the very latest technologies, but nonetheless, it is worth reading.&lt;/p&gt;</description>
      <pubDate>Mon, 23 Aug 2010 08:02:16 GMT</pubDate>
      <guid isPermaLink="false">ce2fb52b-4a23-41e2-8906-387b47cb12e0</guid>
    </item>
    <item>
      <title>Quick Windows Phone 7 tip: navigating from page to page</title>
      <link>http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx</link>
      <description>&lt;p&gt;Lately, I've been focusing on developing applications for the Windows Phone 7. One of the very fundamental features of Windows Phone 7 applications (those written with Silverlight at least) is navigation between pages. However, if you are starting from scratch, then finding the correct way to move from one page to another can be difficult.&lt;/p&gt;

&lt;p&gt;Even so, the solution is simple: just use the Navigate method of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx"&gt;NavigationService&lt;/a&gt; class. For instance, if you are currently in MainPage.xaml, and want to move to AnotherPage.xaml, then use the following code in C#:&lt;/p&gt;

&lt;pre&gt;
NavigationService.Navigate(new Uri("/AnotherPage.xaml", UriKind.Relative));
&lt;/pre&gt;

&lt;p&gt;Although this is easy, it is not very convenient to type. To help yourself, write for example the following C# helper method:&lt;/p&gt;

&lt;pre&gt;
internal static void NavigateTo(this NavigationService service, string page)
{
  service.Navigate(new Uri("/" + page + ".xaml", UriKind.Relative));
}
&lt;/pre&gt;

&lt;p&gt;With this method in place (use a static class as the container for this method), you can simply say:&lt;/p&gt;

&lt;pre&gt;
NavigationService.NavigateTo("AnotherPage");
&lt;/pre&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Fri, 20 Aug 2010 13:27:11 GMT</pubDate>
      <guid isPermaLink="false">e2ce991f-b950-433d-92f9-443dcb380214</guid>
    </item>
    <item>
      <title>Windows Phone 7 Jump Start training videos</title>
      <link>http://channel9.msdn.com/posts/egibson/Windows-Phone-7-Jump-Start-Session-1-of-12-Introduction/</link>
      <description>&lt;p&gt;Last Sunday, I blogged about newly published Windows Phone 7 developer material. Now even more material is available: a 12-part video tutorial for developing Windows Phone 7 applications with Silverlight and XNA. The videos are available &lt;a href="http://channel9.msdn.com/posts/egibson/Windows-Phone-7-Jump-Start-Session-1-of-12-Introduction/ "&gt;through Channel 9&lt;/a&gt;, and the example code and PDF slides are &lt;a href="http://borntolearn.mslearn.net/wp7/m/classresources/default.aspx"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Wed, 18 Aug 2010 08:17:00 GMT</pubDate>
      <guid isPermaLink="false">f6440dc7-f467-47ff-96b1-69822bdd3d6f</guid>
    </item>
    <item>
      <title>Good Windows Phone 7 guidelines</title>
      <link>http://developer.windowsphone.com/</link>
      <description>&lt;p&gt;New information about Windows Phone 7 is starting to emerge. Now, several interesting developer guides are available: the &lt;a href="http://go.microsoft.com/?linkid=9730558"&gt;Windows Phone 7 Application Certification Requirements&lt;/a&gt;, the &lt;a href="http://go.microsoft.com/?linkid=9713252"&gt;Windows Phone UI Design and Interaction Guide&lt;/a&gt; and &lt;a href="http://developer.windowsphone.com/windows-phone-7/"&gt;more&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are interested in developing applications for Windows Phone 7, then start with these documents. Happy reading!&lt;/p&gt;</description>
      <pubDate>Sun, 15 Aug 2010 09:41:05 GMT</pubDate>
      <guid isPermaLink="false">bbbdc612-323c-4697-a500-1d8d90753fc0</guid>
    </item>
    <item>
      <title>IIS web server, ISAPI extensions and form posting default caching size of 48K</title>
      <link>http://msdn.microsoft.com/en-us/library/ms525310(VS.90).aspx</link>
      <description>&lt;p&gt;If you are developing especially native code applications for Microsoft's IIS web server, you might in certain cases run into a difficult to debug issue with IIS' default upload/form processing. By default, IIS has a property called &lt;a href="http://msdn.microsoft.com/en-us/library/ms525310(VS.90).aspx"&gt;UploadReadAheadSize&lt;/a&gt; which has the value of 49152, or 48K. This setting affects how ISAPI extensions process data that is uploaded to the server, either as file attachments or (large) form fields.&lt;/p&gt;

&lt;p&gt;If this setting is too small for your application, then you might see missing upload information, truncated form data, or similar. This can lead you to think it is a bug in your application, while instead it could be a simple issue of reconfiguring IIS.&lt;/p&gt;

&lt;p&gt;This setting is &lt;a href="http://msdn.microsoft.com/en-us/library/ms525310(VS.90).aspx"&gt;documented on MSDN&lt;/a&gt;, and can be changed for example using an ADSI script. Alternatively, if you are using IIS 7 or 7.5 (Windows Server 2008 and Windows 7), then you can also change this setting using the management console. Go to the application's configuration editor settings, and navigate to the path System.WebServer
-&gt; Server Runtime -&gt; uploadReadAheadSize. Change the value to something larger (for example 200K), and hit Apply. You're all set!&lt;/p&gt;</description>
      <pubDate>Sat, 14 Aug 2010 12:57:09 GMT</pubDate>
      <guid isPermaLink="false">05ab6900-f630-4c62-ae78-b8c8ab1b0077</guid>
    </item>
    <item>
      <title>What does Hosted Exchange service look like?</title>
      <link>http://blogs.technet.com/b/keithcombs/archive/2010/08/03/exchange-online-overview-domain-and-user-setup.aspx</link>
      <description>&lt;p&gt;If you are working on a small development company that focuses on Microsoft technology, chances are you are also using Exchange Server as your e-mail platform. This is a fine product, but for many small companies, it can be quite difficult to install, keep running and maintain. I'm not saying that it is impossible by any means, but again, it requires dedication and resources.&lt;/p&gt;

&lt;p&gt;Since e-mail and calendar sharing is a quite simple set of features anyway, you might wish to investigate how online versions (hosted versions) of Microsoft Exchange work. Microsoft sells you this kind of service for a low price, but still you might wonder how it works. The good news is that there's plenty of information available.&lt;/p&gt;

&lt;p&gt;For instance, check out &lt;a href="http://blogs.technet.com/b/keithcombs/archive/2010/08/03/exchange-online-overview-domain-and-user-setup.aspx"&gt;this blog post&lt;/a&gt; by a Microsoft program manager. It gives you information and several videos on how Hosted Exchange works. I might upgrade my POP3/SMTP server to hosted Exchange someday.&lt;/p&gt;</description>
      <pubDate>Wed, 11 Aug 2010 18:53:11 GMT</pubDate>
      <guid isPermaLink="false">c6a2e1f2-75cb-4335-bbc8-bc9d1b0b8ab4</guid>
    </item>
    <item>
      <title>Support library for OpenID and OAuth: DotNetOpenAuth</title>
      <link>http://www.dotnetopenauth.net/</link>
      <description>&lt;p&gt;Lately, I've received several questions on how to quickly implement OpenID and OAuth in your .NET applications. It's now that either of these protocols would be terribly difficult, but its that often developer time is better spent elsewhere than in utility classes.&lt;/p&gt;

&lt;p&gt;Although there are other alternatives as well, it is easy to point .NET developers for example writing ASP.NET web applications with C# to the &lt;a href="http://www.dotnetopenauth.net/"&gt;DotNetOpenAuth library&lt;/a&gt;. This library supports both OpenID 1.x/2.0 and OAuth 1.0a.&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</description>
      <pubDate>Sun, 08 Aug 2010 15:50:40 GMT</pubDate>
      <guid isPermaLink="false">4169096a-1112-4294-a1de-dacd04f3ea61</guid>
    </item>
    <item>
      <title>Visual Studio LightSwitch announced</title>
      <link>http://www.microsoft.com/visualstudio/en-us/lightswitch</link>
      <description>&lt;p&gt;Eager to build business applications into the web, but want to get started easily without much programming? In that case, &lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;Visual Studio LightSwitch&lt;/a&gt; might be for you. Says Microsoft: "...Visual Studio LightSwitch Beta helps you solve specific business needs by enabling you to quickly create professional-quality business applications, regardless of your development skills".&lt;/p&gt;

&lt;p&gt;For more information, check out the &lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;web pages dedicated&lt;/a&gt; to the product.&lt;/p&gt;</description>
      <pubDate>Fri, 06 Aug 2010 14:40:37 GMT</pubDate>
      <guid isPermaLink="false">e11c3957-3f8f-4f63-a1f3-4c7e66f50b87</guid>
    </item>
    <item>
      <title>ADO.NET internals and background information from a research paper</title>
      <link>http://www.pmg.lcs.mit.edu/~adya/pubs/adonet-industrial_sigmod07.pdf</link>
      <description>&lt;p&gt;If you are using ADO.NET Entity Framework (EF) in your .NET applications, then you might be interested in learning more on how the system ticks, and what influenced the framework's design. I recently found out about a research paper titled "&lt;a href=" http://www.pmg.lcs.mit.edu/~adya/pubs/adonet-industrial_sigmod07.pdf"&gt;Anatomy of the ADO.NET Entity Framework&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;The 12-page paper is written by members of the ADO.NET Entity Framework team at Microsoft, and is an interesting read. Check it out &lt;a href="http://www.pmg.lcs.mit.edu/~adya/pubs/adonet-industrial_sigmod07.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 03 Aug 2010 15:12:22 GMT</pubDate>
      <guid isPermaLink="false">73615da5-0357-439b-aa2a-04b3e08d8754</guid>
    </item>
    <item>
      <title>Diagnosing your Azure applications</title>
      <link>http://msdn.microsoft.com/en-us/magazine/ff714589.aspx</link>
      <description>&lt;p&gt;If you are writing applications for Microsoft's Azure, then from time to time, you might also need to diagnose problems within your application or the cloud infrastructure. To help you in this process, the MSDN Magazine June 2010 article "&lt;a href="http://msdn.microsoft.com/en-us/magazine/ff714589.aspx"&gt;Cloud Diagnostics: Take Control of Logging and Tracing in Windows Azure&lt;/a&gt;" shows you how you can trace and log information from your own Azure applications.&lt;/p&gt;

&lt;p&gt;Recommended reading!&lt;/p&gt;</description>
      <pubDate>Sun, 01 Aug 2010 13:27:54 GMT</pubDate>
      <guid isPermaLink="false">7404547a-0a1d-4467-b2a0-48abd960ae6f</guid>
    </item>
    <item>
      <title>Good Active Directory troubleshooting flowcharts</title>
      <link>http://deuby.com/adtroubleshooting/Active%20Directory%20Troubleshooting.pdf</link>
      <description>&lt;p&gt;In case you need to be working with Active Directory (AD), and it happens that something goes wrong, good troubleshooting information can become very valuable. In case of trouble, you can benefit from two nice troubleshooting charts, available from deuby.com &lt;a href="http://deuby.com/adtroubleshooting/Active%20Directory%20Troubleshooting.pdf"&gt;here&lt;/a&gt; and &lt;a href="http://deuby.com/adtroubleshooting/Active%20Directory%20Recovery.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The first flowchart starts from simple things like network troubleshooting, but quickly points out more advanced issues. In case you need to restore your Active Directory installation (I hope you don't), then the other recovery flowchart is useful.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Thu, 29 Jul 2010 16:23:34 GMT</pubDate>
      <guid isPermaLink="false">94b7c413-103a-49db-8835-913f775d9651</guid>
    </item>
    <item>
      <title>ASP.NET MVC Preview 3 Preview 1</title>
      <link>http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx</link>
      <description>&lt;p&gt;Microsoft has been busy with web technologies this summer for sure. One indication of this the first preview release of ASP.NET MVC 3, which contains many interesting and useful enhancements.&lt;/p&gt;

&lt;p&gt;As has become the custom, Scott Guthrie has written &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx"&gt;a blog entry&lt;/a&gt; detailing the new release and showing its main features. Be sure to check this post out.&lt;/p&gt;

&lt;p&gt;The ASP.NET MVC 3 Preview 1 can be downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cb42f741-8fb1-4f43-a5fa-812096f8d1e8"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 27 Jul 2010 18:13:50 GMT</pubDate>
      <guid isPermaLink="false">586c2c49-0dce-4591-9725-22843f14c9ec</guid>
    </item>
    <item>
      <title>Windows Phone 7 and Windows Mobile 6.5 special reports</title>
      <link>http://www.codeguru.com/vb/mobile/article.php/c17611/Special-Report-The-Definitive-Guide-to-Windows-Phone-7.htm</link>
      <description>&lt;p&gt;CodeGuru.com has published two mobile articles of mine: one about &lt;a href="http://www.codeguru.com/vb/mobile/article.php/c17615/How-Windows-Mobile-65-Stacks-Up-to-the-Competition-A-Comprehensive-Guide.htm"&gt;Windows Phone 6.5&lt;/a&gt; and another about &lt;a href="http://www.codeguru.com/vb/mobile/article.php/c17611/Special-Report-The-Definitive-Guide-to-Windows-Phone-7.htm"&gt;Windows Phone 7&lt;/a&gt;. These articles investigate both of these platforms, their future and the development possibilities and tools.&lt;/p&gt;

&lt;p&gt;The articles are titled "How Windows Mobile 6.5 Stacks Up to the Competition: A Comprehensive Guide" and "Special Report: The Definitive Guide to Windows Phone 7".&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Sat, 24 Jul 2010 18:38:19 GMT</pubDate>
      <guid isPermaLink="false">9839c230-f38a-43f2-8704-e0535a05c0f9</guid>
    </item>
    <item>
      <title>Visual Studio Scrum 1.0 is ready</title>
      <link>http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e</link>
      <description>&lt;p&gt;Microsoft has announced good news for all Scrum developers using Visual Studio: a Team Foundation Server (TFS) aka Team System process template is now available. Called Visual Studio Scrum 1.0, the new template contains a process model, reports and work items to help supporting Scrum development in your .NET work.&lt;/p&gt;

&lt;p&gt;The package is downloadable from the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e"&gt;Visual Studio Code Gallery&lt;/a&gt;. An announcement can be &lt;a href="http://blogs.msdn.com/b/somasegar/archive/2010/07/20/visual-studio-scrum-1-0.aspx"&gt;found here&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/aaronbjork/archive/2010/07/19/announcing-microsoft-visual-studio-scrum-1-0.aspx"&gt;Q&amp;A information&lt;/a&gt; can be found from the developer's blog. Reference material is also already available &lt;a href="http://msdn.microsoft.com/en-us/library/ff731587.aspx"&gt;on MSDN&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Go ahead and download the template today!&lt;/p&gt;</description>
      <pubDate>Wed, 21 Jul 2010 16:42:31 GMT</pubDate>
      <guid isPermaLink="false">0f8ca0ef-ca1f-48f6-88da-2606f2b5ecd8</guid>
    </item>
    <item>
      <title>New article about Dynamics AX development with .NET and X++</title>
      <link>http://www.codeguru.com/csharp/.net/net_general/article.php/c17597/Developing-Applications-for-Microsoft-Dynamics-AX-with-X-and-the-NET-Framework.htm</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest article about development with Microsoft's ERP system, Dynamics AX. The article, titled "&lt;a href="http://www.codeguru.com/csharp/.net/net_general/article.php/c17597/Developing-Applications-for-Microsoft-Dynamics-AX-with-X-and-the-NET-Framework.htm"&gt;Developing Applications for Microsoft Dynamics AX with X++ and the .NET Framework&lt;/a&gt;", talks about the basics of custom development work in this environment, and shows how to get started with coding in the X++ language (the one used by Dynamics AX internally) and of course, C# and .NET.&lt;/p&gt;

&lt;p&gt;For .NET developers, Dynamics AX is a nice environment, as it can be easily customized from for instance C# applications. However, the problem seems to be that there isn't much publicly available information on this. Now there's at least one more resource. Check out my article "Developing Applications for Microsoft Dynamics AX with X++ and the .NET Framework" at CodeGuru.com.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Tue, 20 Jul 2010 18:07:27 GMT</pubDate>
      <guid isPermaLink="false">452193bf-650c-4c7b-9079-6872c6caf3c5</guid>
    </item>
    <item>
      <title>Short Q&amp;A on ADO.NET Entity Framework query parameters</title>
      <link>http://msdn.microsoft.com/en-us/library/bb399572.aspx</link>
      <description>&lt;p&gt;It seems that this year, &lt;a href="http://msdn.microsoft.com/en-us/library/bb399572.aspx"&gt;ADO.NET Entity Framework&lt;/a&gt; (EF) has really gotten into the hearts and minds of .NET developers. Developers have sent many questions to me asking about miscellaneous ADO.NET EF things, but one area that seems to be common is how to dynamically build LINQ query parameters, i.e. how to create those "WHERE" clauses at runtime from user-specified data.&lt;/p&gt;

&lt;p&gt;With that, here are three common questions and answers to them. These resolve around datetimes and strings. I'm assuming you are using SQL Server as your database in the answers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q1.&lt;/strong&gt; I have a SQL Server orders table with &lt;em&gt;datetime&lt;/em&gt; fields, that is fields with a date and a time value. I want to retrieve orders created on a particular date, but when I do so, I do not get any orders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A1.&lt;/strong&gt; The problem is that you are asking Entity Framework (and SQL Server) to retrieve on a given date, but since you are not giving a time value, no matching records are returned. Remember that a datetime contains both a date and a time value. Try to execute a query like this in C#:&lt;/p&gt;

&lt;pre&gt;
var matching = from o in entities.Orders
               where (o.OrderDate.Value.Year == matchDate.Year) &amp;&amp;
               (o.OrderDate.Value.Month == matchDate.Month) &amp;&amp;
               (o.OrderDate.Value.Day == matchDate.Day)
               select o;
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Q2.&lt;/strong&gt; I want to retrieve orders from my SQL Server date between two dates. How would I do that with LINQ and ADO.NET EF?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A2.&lt;/strong&gt; The problem is related to Q1, and the solution is based on the same ideas. To retrieve orders between different dates, for instance 2010-05-12 and 2010-05-24, you would need to construct two datetime values: 2010-05-12 0:00:00 and 2010-05-24 23:59:59. This way, it is easy to query the order values. Again, example in C#:&lt;/p&gt;

&lt;pre&gt;
DateTime dateFrom = new DateTime(2010, 5, 12);
DateTime dateTo = new DateTime(2010, 5, 24);
NorthwindEntities entities = new NorthwindEntities();

// create a date that ends at 23:59:59 o'clock
DateTime adjustedDateTo = dateTo.AddDays(1).AddSeconds(-1); 
var matching = from o in entities.Orders
               where (o.OrderDate.Value &gt;= dateFrom) &amp;&amp;
               (o.OrderDate.Value &lt;= adjustedDateTo)
               select o;
&lt;/pre&gt;

&lt;p&gt;Note how this is somewhat like an SQL "BETWEEN" query, but LINQ to Entities does not use a BETWEEN query when calling SQL Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q3.&lt;/strong&gt; I have a customer table in SQL Server, and each customer is identified with a unique string ID. I want my customer to dynamically select several of these IDs, and then query customer information for all these IDs in a single query. How would I do that? I'm using Visual Studio 2008 and .NET 3.5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A3.&lt;/strong&gt; What you need to do in SQL terms is creating an WHERE clause with OR search criteria. LINQ to Entities 3.5 doesn't support building these "OR queries" directly, but you can create some helper methods to get started.&lt;/p&gt;

&lt;p&gt;Assume you would have the user-selected customer IDs in a list of strings, for example:&lt;/p&gt;

&lt;pre&gt;
List&lt;string&gt; custIds = new List&lt;string&gt;()
  {
    "BLAUS",
    "FAMIA",
    "QUEDE",
    "WARTH",
    "VINET"
  };
&lt;/pre&gt;

&lt;p&gt;Now, your first attempt might be a query like this:&lt;/p&gt;

&lt;pre&gt;
// this won’t work
var matching = entities.Customers.Where(
      c =&gt; custIds.Contains(c.CustomerID));
&lt;/pre&gt;

&lt;p&gt;Although this looks very convenient, the problem is that it doesn't work with ADO.NET Entities 3.5. Instead, you will get an exception at runtime:&lt;/p&gt;

&lt;pre&gt;
System.NotSupportedException: LINQ to Entities does not recognize the
method 'Boolean Contains(System.String)' method, and this method cannot be translated into a store expression.
&lt;/pre&gt;

&lt;p&gt;However, although your first attempt didn't work, there's always something more to try. Let's write a quick helper method (thanks AJ) the you can use:&lt;/p&gt;

&lt;pre&gt;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
...
internal static Expression&lt;Func&lt;TElement, bool&gt;&gt;
    BuildLinqOrExpression&lt;TElement, TValue&gt;(
        Expression&lt;Func&lt;TElement, TValue&gt;&gt; valueSelector,
        IEnumerable&lt;TValue&gt; values)
{
    // check parameter values
    if (null == valueSelector)
        throw new ArgumentNullException("valueSelector");
    if (null == values)
        throw new ArgumentNullException("values");
    // start to create an lambda expression
    ParameterExpression p = valueSelector.Parameters.Single();
    if (!values.Any())
        return e =&gt; false;
    var equals = values.Select(value =&gt;
        (Expression)Expression.Equal(
             valueSelector.Body,
             Expression.Constant(
                 value, typeof(TValue)
             )
        )
    );
    var body = equals.Aggregate&lt;Expression&gt;(
             (accumulate, equal) =&gt; Expression.Or(accumulate, equal));
    return Expression.Lambda&lt;Func&lt;TElement, bool&gt;&gt;(body, p);
}
&lt;/pre&gt;

&lt;p&gt;That's long chunck of code, but what it does is it implements a static helper method called BuildLinqOrExpression. This method takes in as parameters a enumerable list (for instance, a List&lt;string&gt;) and builds a LINQ expression with OR clauses in the query search criteria.&lt;/p&gt;

&lt;p&gt;Here's how you would use this new method (you could make it part of your utilities or your data access classes):&lt;/p&gt;

&lt;pre&gt;
NorthwindEntities entities = new NorthwindEntities();
var matching = entities.Customers.Where(
      MyUtilities.BuildLinqOrExpression&lt;Customers, string&gt;(
        c =&gt; c.Customer, psnValues));
&lt;/pre&gt;

&lt;p&gt;That's it! Now you have a nice way of creating queries like "CustomerId = 'ALFKI' OR CustomerId = 'WILMA'" etc. This is by the way much more efficient than first fetching all customer records to the client, and then filtering the data in memory.&lt;/p&gt;

&lt;p&gt;Keywords: ADO.NET EF, dynamic query parameters with LINQ problem, OR clauses in WHERE, how to combine multiple query parameters.&lt;/p&gt;</description>
      <pubDate>Sun, 18 Jul 2010 19:46:47 GMT</pubDate>
      <guid isPermaLink="false">ab2fd174-884c-4653-8353-5d23fc9284ef</guid>
    </item>
    <item>
      <title>New Windows Phone 7 tools available</title>
      <link>http://weblogs.asp.net/scottgu/archive/2010/07/12/windows-phone-7-developer-tools-beta-released.aspx</link>
      <description>&lt;p&gt;Microsoft has been busy during this summer, it seems. Just yesterday, the company published a new release of the Windows Phone 7 developer tools. The version jumped from CTP to beta, and the main tool is now officially called Visual Studio 2010 Express for Windows Phone 7 Beta. You can download it directly. Again, Scott Guthrie has an excellent summary post about the new tools &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/12/windows-phone-7-developer-tools-beta-released.aspx"&gt;in his blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By the way, I'm currently preparing a report for QuinStreet (Internet.com) on Windows Phone 7 platform and the tools available. Stay tuned for the announcement once it is ready.&lt;/p&gt;</description>
      <pubDate>Thu, 15 Jul 2010 14:00:42 GMT</pubDate>
      <guid isPermaLink="false">96ca0a84-5f12-4256-952b-fdc4da0cc42e</guid>
    </item>
    <item>
      <title>SharePoint 2010 learning material for developers and IT professionals</title>
      <link>http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=22882429-ee80-40bb-ba8d-ff55d6e33959</link>
      <description>&lt;p&gt;SharePoint 2010 has been already available for a while, and summer is great time to learn new tricks. If you are interested in SharePoint 2010 developer and IT professional material, the good news is that there are two sets of training kits just waiting for you.&lt;/p&gt;

&lt;p&gt;This material has been authored by Microsoft Finland's consultant Vesa Juvonen, and it is available from Microsoft downloads. The titles are "&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=22882429-ee80-40bb-ba8d-ff55d6e33959"&gt;SharePoint Server 2010: Advanced Developer Training&lt;/a&gt;" and "&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=d765b362-2772-400f-b8a8-1f4e7f0e150b"&gt;SharePoint Server 2010 Advanced IT Pro Training&lt;/a&gt;". Although all the different PowerPoints and other documents are available separately, I suggest downloading a zipped archive which contains all the material. These zips are around 30-35 MB in size.&lt;/p&gt;

&lt;p&gt;You might also find usefult the links to "&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=64B55569-2168-4545-8B7C-F185B2CF967D&amp;displaylang=en"&gt;Developing Applications for SharePoint 2010&lt;/a&gt;" and the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=83A80A0F-0906-4D7D-98E1-3DD6F58FF059&amp;displaylang=en"&gt;Sharepoint 2010 Developer Training Kit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy studying!&lt;/p&gt;</description>
      <pubDate>Tue, 13 Jul 2010 13:33:37 GMT</pubDate>
      <guid isPermaLink="false">b36f3cd2-1293-4bfb-af5e-ba3c78891117</guid>
    </item>
    <item>
      <title>Where to test .NET regular expressions quickly</title>
      <link>http://regexhero.net/tester/</link>
      <description>&lt;p&gt;Say you are writing a .NET application with C#, and you need to use some regular expressions to validate your input. If you have used regular expressions before, then you already probably &lt;a href="http://www.regular-expressions.info/"&gt;know the basics&lt;/a&gt;, but for more complex ones, you might need to study the references.&lt;/p&gt;

&lt;p&gt;At the same time, you might also wish to quickly test your regular expression against given input. You could do this in code, but if the testing must be done deep inside the application, then you might prefer a faster testing alternative.&lt;/p&gt;

&lt;p&gt;One good solution to this problem is a web site called &lt;a href="http://regexhero.net/tester/"&gt;Regex Hero Tester&lt;/a&gt;. This is a web site with a playground for different regular expressions, and it is free to use.&lt;/p&gt;

&lt;p&gt;Recommended!&lt;/p&gt;</description>
      <pubDate>Sun, 11 Jul 2010 16:12:40 GMT</pubDate>
      <guid isPermaLink="false">43a8149b-2020-4f79-9cd0-4b7925f38aff</guid>
    </item>
    <item>
      <title>Two new publications: article about Visual Studio 2010 profiling and a screencast about SL4 and Office</title>
      <link>http://www.codeguru.com/csharp/.net/net_general/article.php/c17501/Parallel-Application-Profiling-Improvements-in-Microsoft-Visual-Studio-2010.htm</link>
      <description>&lt;p&gt;I'm happy to announce that CodeGuru.com has published two of my latest articles/screencasts. The first one, an article titled "Parallel Application Profiling Improvements in Microsoft Visual Studio 2010" is &lt;a href="http://www.codeguru.com/csharp/.net/net_general/article.php/c17501/Parallel-Application-Profiling-Improvements-in-Microsoft-Visual-Studio-2010.htm"&gt;available here&lt;/a&gt;. This article talks about the parallel application profiling improvements in Visual Studio 2010.&lt;/p&gt;

&lt;p&gt;The second new material available is titled "Integrating Office Applications with Silverlight 4 " and is available as a short &lt;a href="http://www.internet.com/player/index.php?bcpid=86842592001&amp;bclid=87185324001&amp;bctid=110236512001"&gt;screencast here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sat, 10 Jul 2010 11:30:44 GMT</pubDate>
      <guid isPermaLink="false">40c09e01-41a3-46be-8525-9719e7b20c0c</guid>
    </item>
    <item>
      <title>An interesting approach to unit test web application user interfaces using jQuery</title>
      <link>http://elijahmanor.com/webdevdotnet/post/BDD-Style-QUnit-Testing-ASPNET-MVCe28099s-jQuery-Validation.aspx</link>
      <description>&lt;p&gt;I recently ran across a web site showing an example of how to unit test ASP.NET MVC web application user interfaces. The solution in this case relies heavily on JavaScript and jQuery, as it common nowadays. The approach shown can be said to be based on BDD (Behavior Driven Development).&lt;/p&gt;

&lt;p&gt;If you are writing unit tests for ASP.NET MVC today and are interested in spicing up your tests to cover the user interface as well, then be sure to check out the post on elijahmanor.com.&lt;/p&gt;</description>
      <pubDate>Fri, 09 Jul 2010 14:10:27 GMT</pubDate>
      <guid isPermaLink="false">90c58ecb-1cb3-46ad-b61d-f2761ff6ab64</guid>
    </item>
    <item>
      <title>What is IIS Express? What is WebMatrix? And what is ASP.NET “Razor”?</title>
      <link>http://weblogs.asp.net/scottgu/archive/2010/07/06/introducing-webmatrix.aspx</link>
      <description>&lt;p&gt;Just in the last couple of days, lots of things have happened in regards to Microsoft's web development tools. Again, Scott Guthrie has announced a really &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/06/introducing-webmatrix.aspx"&gt;nice set of new technologies and tools&lt;/a&gt;, which are called IIS Express, WebMatrix, and ASP.NET "Razor".&lt;/p&gt;

&lt;p&gt;Let's take each of these quickly in turn. Firstly, there's IIS Express. You might have noticed that when you install Visual Studio, along with the development environment you get a nifty little web server, too. This is called the ASP.NET Development Server, or just Cassini for the old codename.&lt;/p&gt;

&lt;p&gt;But, this small server — while useful for small applications — is not the same as full-blown IIS web server. If you wanted to develop more advanced applications to benefit from IIS' features, you had to install IIS, and this wasn't always easy.&lt;/p&gt;

&lt;p&gt;To meet this need, Microsoft has developed IIS Express, which is the core IIS functionality, but in an easy-to-install package. Currently, a beta is available, and can be found here. The aim with IIS Express is to allow more advanced development, but with the ease of using ASP.NET Development Server. Sounds like a plan to me.&lt;/p&gt;

&lt;p&gt;The next announcement is WebMatrix. This application seems to be aimed at web developers, who don't actually need the full Visual Studio functionality, but still want to do some development work, mostly perhaps customizations to existing web applications or solutions. WebMatrix can then be seen as a product that sits between Expression Web and Visual Studio. WebMatrix allows some web development work (for instance, to connect to a database), but it is still not a full ASP.NET development like Visual Studio is.&lt;/p&gt;

&lt;p&gt;Finally, there's ASP.NET "Razor", which is at least in my opinion the most interesting announcement of these three. Shortly put, "Razor" is the codename for a new ASP.NET view engine, i.e. a processor of server-side .aspx file code. The default ASP.NET view engine that we've all used for many years uses a syntax like the following:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;ul id="products"&amp;gt;
  &amp;lt;% foreach(var p in products) { %&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;%= p.Name %&amp;gt;: &amp;lt;%= p.Price %&amp;gt; €&amp;lt;/li&amp;gt;
  &amp;lt;% } %&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;

&lt;p&gt;However, Razor brings a much simplified syntax, along with lots of other goodies:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;ul id="products"&amp;gt;
  @foreach(var p in products) {
    &amp;lt;li&amp;gt;@p.Name: @p.Price €&amp;lt;/li&amp;gt;
  }
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;

&lt;p&gt;If you ever wanted to have cleaner syntax for example in your ASP.NET MVC applications, then Razor is the way to go. It is currently in beta, just like the other two technologies I mentioned previously, but it is coming.&lt;/p&gt;

&lt;p&gt;For more details and sample usage along with screenshots, check out Scott's blog posts about &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx"&gt;IIS Express&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/06/introducing-webmatrix.aspx"&gt;WebMatrix&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx"&gt;Razor&lt;/a&gt;. These look great!&lt;/p&gt;</description>
      <pubDate>Thu, 08 Jul 2010 14:04:39 GMT</pubDate>
      <guid isPermaLink="false">6a3ccf0e-f164-4dec-bc8f-e514174fe62f</guid>
    </item>
    <item>
      <title>What are the future directions of Microsoft’s data technologies like LINQ, OData and ADO.NET Entity Framework?</title>
      <link>http://msdn.microsoft.com/en-us/data/bb525059.aspx</link>
      <description>&lt;p&gt;Oftentimes, developer and architects ask about the planned future if a given technology. Lately, Microsoft has published a FAQ details some insights into the future of Microsoft's data access technologies in .NET. The FAQ is titled "Top Ten Questions and Answers on Data" and is &lt;a href="http://msdn.microsoft.com/en-us/data/bb525059.aspx"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The FAQ talks about technologies such as LINQ to SQL, ADO.NET Entity Framework, WCF Data Services and OData. Check it out!&lt;/p&gt;</description>
      <pubDate>Mon, 05 Jul 2010 17:51:08 GMT</pubDate>
      <guid isPermaLink="false">7d230f8c-0ccc-4d2a-b30d-3ff85a01936a</guid>
    </item>
    <item>
      <title>PivotViewer Silverlight control now available</title>
      <link>http://www.microsoft.com/silverlight/pivotviewer/</link>
      <description>&lt;p&gt;Good news for anybody wanting to visualize lots of information: the Pivot applications demonstrated &lt;a href=""&gt;earlier at TED&lt;/a&gt; is now available as a Silverlight control called &lt;a href="http://www.microsoft.com/silverlight/pivotviewer/"&gt;PivotViewer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This control allows you to manipulate massive amounts of data with a very visual approach. Live, production application examples are &lt;a href="http://www.hitched.co.uk/wedding-venues/visual-search.htm"&gt;already available&lt;/a&gt;; this example is an English web site for wedding planning. You can also view &lt;a href="http://netflixpivot.cloudapp.net/"&gt;NetFlix's videos&lt;/a&gt; using the same technology.&lt;/p&gt;

&lt;p&gt;I think it's best to see this control in action to understand its value.&lt;/p&gt;</description>
      <pubDate>Fri, 02 Jul 2010 19:33:43 GMT</pubDate>
      <guid isPermaLink="false">3af43a91-0171-418b-8653-0510eebc9c5c</guid>
    </item>
    <item>
      <title>Accessing WCF Data Services from ASP.NET applications</title>
      <link>http://msdn.microsoft.com/en-us/data/bb931106.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;WCF Data Services&lt;/a&gt; (previously called ADO.NET Data Services) is a very nice technology that allows you to publish a data source (such as an SQL Server database) to the Internet using the HTTP/HTTPS protocols. Data can be retrieved in multiple formats, by default in Atom-based XML format.&lt;/p&gt;

&lt;p&gt;So far, all material that I've seen has been discussing WCF Data Services along with Silverlight applications. However, nobody said that WCF Data Services could not be used to supply data to a (distributed) ASP.NET web application, whether using WebForms or MVC.&lt;/p&gt;

&lt;p&gt;Of course, the need to use WCF Data Services from ASP.NET applications is more limited because usually, both the web application and the SQL database are running if not on the same server, on the same LAN at least, which allows the ASP.NET application to access the database directly. But, this is not always the case.&lt;/p&gt;

&lt;p&gt;Here's a quick rundown on how to access your WCF Data Services. First, you need to create your WCF Data Service server part normally (check out &lt;a href="http://www.silverlight.net/learn/tutorials/sqldatagrid-cs/"&gt;this tutorial&lt;/a&gt; or my &lt;a href="http://www.internet.com/player/index.php?bcpid=86842592001&amp;bclid=87185324001&amp;bctid=87286857001"&gt;previous screencast&lt;/a&gt; for tips). Alternatively, you could use the demo endpoint at http://services.odata.org/Northwind/Northwind.svc/ to retrieve ready-made Northwind data.&lt;/p&gt;

&lt;p&gt;After you have the URL for the exposed WCF Data Service endpoint, create your intermediate ASP.NET web application, and add a service reference to this endpoint. You should now have access to the data source objects, such as NorthwindEntities and the accompanying database tables.&lt;/p&gt;

&lt;p&gt;At this point, it's only a matter of using the created entities object to access the data. For example, to retrieve data using LINQ, you could simply use the data source much in the same way you would use ADO.NET Entity Framework, for instance. Here's a quick example using the synchronous method:&lt;/p&gt;

&lt;pre&gt;
string url = "http://services.odata.org/Northwind/Northwind.svc/";NorthwindEntities entities =
  new NorthwindEntities(new Uri(url));

var finnishCusts = from c in entities.Customers
                   where c.Country == "Finland"
                   select c;
GridView1.DataSource = finnishCusts;
GridView1.DataBind();
&lt;/pre&gt;

&lt;p&gt;As you can see, it could not get much easier than this. The bottom line is that a WCF Data Service can be added to your "client" project (whether a real client like a Silverlight application or an ASP.NET web application) just like any other service reference would.&lt;/p&gt;</description>
      <pubDate>Tue, 29 Jun 2010 16:09:39 GMT</pubDate>
      <guid isPermaLink="false">2c00c714-a2c0-41ba-8652-b5e70530ee9d</guid>
    </item>
    <item>
      <title>What is the Microsoft Digital Lens?</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=fdce1827-c76f-43b7-9645-ce988ce503ca&amp;displayLang=en</link>
      <description>&lt;p&gt;If you are working with user interface design, development or testing, then you might wish to take into consideration people with disabilities or for example low vision. Especially for low vision testing, Microsoft has written an application called &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fdce1827-c76f-43b7-9645-ce988ce503ca&amp;displayLang=en"&gt;Digital Lens&lt;/a&gt;, which is currently in technical preview.&lt;/p&gt;

&lt;p&gt;Says Microsoft about the Digital Lens: "...provides UI designers and developers the tools to view the visual design as it would be seen by vision impaired users. By emulating common impaired vision conditions, Digital Lens users are able to identify issues in the UI and fix them before the product is released."&lt;/p&gt;

&lt;p&gt;Thanks to SL for the link tip!&lt;/p&gt;</description>
      <pubDate>Sun, 27 Jun 2010 08:42:32 GMT</pubDate>
      <guid isPermaLink="false">37f8b5cd-607d-4c69-bb37-9652dd042210</guid>
    </item>
    <item>
      <title>Internet Explorer 9 Preview 3 is now available</title>
      <link>http://ie.microsoft.com/testdrive/</link>
      <description>&lt;p&gt;Microsoft has just recently updated the preview build of Internet Explorer 9. As of yesterday, the Preview Build 3 is now available for all who are interested in giving IE a &lt;a href="http://ie.microsoft.com/testdrive/"&gt;test drive&lt;/a&gt;. On the Test Drive site (see the previous link), you can also find demos that show some of the new features in the product.&lt;/p&gt;

&lt;p&gt;Also, for additional details, be sure to check out the &lt;a href="http://msdn.microsoft.com/en-us/ie/ff468705.aspx"&gt;Internet Explorer Platform Preview Guide for Developers&lt;/a&gt; which is available on MSDN.&lt;/p&gt;

&lt;p&gt;Happy testing!&lt;/p&gt;</description>
      <pubDate>Thu, 24 Jun 2010 15:18:33 GMT</pubDate>
      <guid isPermaLink="false">605970b8-8240-4c9d-a6ec-00af438ba879</guid>
    </item>
    <item>
      <title>Two new articles published: WCF RIA Services and Visual Studio 2010 Code Editor</title>
      <link>http://www.codeguru.com/csharp/.net/article.php/c17175</link>
      <description>&lt;p&gt;CodeGuru.com has recently published two of my articles, one about Silverlight applications and &lt;a href="http://www.codeguru.com/csharp/.net/article.php/c17175"&gt;WCF RIA Services&lt;/a&gt; and another about Visual Studio 2010's &lt;a href="http://www.codeguru.com/csharp/article.php/c17385"&gt;new features in the code editor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The articles are titled "Building Business Applications With Silverlight 4 and WCF RIA Services" and "New Features in the Microsoft Visual Studio 2010 Code Editor" respectively. Happy reading, and remember to give feedback!&lt;/p&gt;</description>
      <pubDate>Tue, 22 Jun 2010 15:23:49 GMT</pubDate>
      <guid isPermaLink="false">40626e99-368e-40ef-9105-11456b26d8dd</guid>
    </item>
    <item>
      <title>An update to the Azure training kit for Visual Studio</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en</link>
      <description>&lt;p&gt;Microsoft has just recently updated the Windows &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en"&gt;Azure Platform Training Kit&lt;/a&gt;. The latest version is dated 7th of June, and is about 230 MB in size. The kit has been updated to better support Visual Studio 2010, and now also contains video tutorials.&lt;/p&gt;

&lt;p&gt;Be sure to check this training kit out if you are interested in cloud application development.&lt;/p&gt;</description>
      <pubDate>Sun, 20 Jun 2010 05:18:34 GMT</pubDate>
      <guid isPermaLink="false">1b60e17e-df08-49d6-9049-3621834b2215</guid>
    </item>
    <item>
      <title>Capacity planning is important for the big names, too</title>
      <link>http://www.twitter.com/</link>
      <description>&lt;p&gt;It probably doesn't happen that often, but even the big names in our industry can run out of steam sometimes. A recent example from &lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt;, which ran over capacity in the morning U.S. time few days ago. Here's a screenshot of how it looked like:&lt;/p&gt;

&lt;p&gt;&lt;img src="images/2010_jun_twitter_over_capacity.png" alt="Twitter over capacity" /&gt;&lt;/p&gt;

&lt;p&gt;Yes, such an error message can be considered bad, but in this case, it was well managed. Something to remember even if you are developing sites for a smaller audience; the ASP.NET Yellow Screen of Death for instance or the basic IIS message probably isn't best PR possible.&lt;/p&gt;</description>
      <pubDate>Thu, 17 Jun 2010 14:46:48 GMT</pubDate>
      <guid isPermaLink="false">bc79e67b-4171-4272-b57d-848c73b5e9dd</guid>
    </item>
    <item>
      <title>Choosing between ASP.NET WebForms and ASP.NET MVC</title>
      <link>http://www.asp.net/mvc</link>
      <description>&lt;p&gt;I had the chance to speak at the first &lt;a href="http://www.facebook.com/sanko.net"&gt;SANKO&lt;/a&gt; event on 8th of June at Microsoft Finland, and there my topic was to talk about when to choose ASP.NET WebForms and when to choose &lt;a href="http://www.asp.net/mvc"&gt;ASP.NET MVC&lt;/a&gt;. Shortly put, I don't feel developers should put these two technologies against each other; instead, these technologies complement themselves, and can be thought of as different tools for the job.&lt;/p&gt;

&lt;p&gt;Also, the fact that it is possible to combine ASP.NET MVC and WebForms functionality in the same web application furthermore dispels the black and white contrast of these two. Furthermore, whether you should use WebForms or MVC depends on your (or your team's) experience, knowledge in web technologies, the need to have complex user interfaces, and what level of testability and maintainability you prefer.&lt;/p&gt;

&lt;p&gt;In my opinion, WebForms is well suited if you don't have much experience in web application development; on the other hand, MVC is for you if you know the different HTTP protocol verbs and are familiar with HTML forms and JavaScript. WebForms continues to be used in many projects for a long time, and thus there is no rush in moving to it, even though everybody is talking about it.&lt;/p&gt;

&lt;p&gt;But if you feel the pain in WebForms (for example, when it comes to application structure), then by all means try ASP.NET MVC.&lt;/p&gt;</description>
      <pubDate>Tue, 15 Jun 2010 15:35:53 GMT</pubDate>
      <guid isPermaLink="false">81410dac-a10c-4853-b6b8-6a803eccf7a1</guid>
    </item>
    <item>
      <title>New article in Tietokone magazine about Microsoft Exchange 2010</title>
      <link>http://www.microsoft.com/exchange/2010/</link>
      <description>&lt;p&gt;The latest issue of Tietokone (6/2010) contains my feature article "Postimiehen uusi vuosimalli" about &lt;a href="http://www.microsoft.com/exchange/2010/"&gt;Exchange 2010&lt;/a&gt; and what's new in this release of the well-known e-mail and collaboration server.&lt;/p&gt;

&lt;p&gt;New features include new-from-the-group-up scaling and high availability features, improvements in Unified Messaging and Outlook Web App, and more. When you combine Exchange 2010 with Outlook 2010, you get access to nice new features such as the Conversation View, which I personally enjoy.&lt;/p&gt;</description>
      <pubDate>Sun, 13 Jun 2010 06:13:04 GMT</pubDate>
      <guid isPermaLink="false">7932918b-2c4c-408d-aca1-eb49505279ad</guid>
    </item>
    <item>
      <title>For the record (and reminder): Microsoft NNTP newsgroups ceasing</title>
      <link>http://www.microsoft.com/communities/default.mspx</link>
      <description>&lt;p&gt;If you have been following the Microsoft newsgroups ("Usenet groups") using and NTTP reader such as Outlook or FreeAgent, then you might have noticed that Microsoft is about to stop supporting these newsgroups in the near future.&lt;/p&gt;

&lt;p&gt;Personally, I think it is a shame, because offline reading with a proper reader application is much more efficient than using a web interface. While the web is great for casual use (no installs, no setups), for day-to-day usage and using without an Internet connection (yes, that is my case almost daily), the web interface just won't work. For the record, here's the message Microsoft is sending:&lt;/p&gt;

&lt;pre&gt;
From: nntp@microsoft.com
Subject: Reminder - Microsoft Responds to the Evolution of Community
Newsgroups: microsoft.public.dotnet.xml
Date: Wed, 19 May 2010 21:58:25 -0700
NNTP-Posting-Host: tide548.microsoft.com 131.107.0.118

What is Happening?
This message is to inform you that Microsoft will soon begin discontinuing
newsgroups and transitioning users to Microsoft forums.

Why?
As you may know, newsgroups have existed for many years now; however, the
traffic in the Microsoft newsgroups has been steadily decreasing for the
past several years while customers and participants are increasingly finding
solutions in the forums on Microsoft properties and third party sites.  This
move will unify the customer experience, centralize content, make it easier
for active contributors to retain their influence, mitigate redundancies and
make the content easier to find by customers and search engines through
improved indexing.  Additionally, forums offer a better user and spam
management platform that will improve customer satisfaction by encouraging a
healthy discussion in a clean community space.  To this end, Microsoft will
begin to progressively shift available resources to the forums technology
and discontinue support for newsgroups.

In addition to offering a compelling online browser experience, for those
users who prefer to use an NNTP (newsgroup) reader to participate in the
newsgroups community, we have developed a solution called the NNTP Bridge
which allows a user to connect a variety of supported NNTP readers to the
forums they would like to participate in and continue having the NTTP reader
functionality.  You can find instructions on how to download and set up the
NNTP Bridge here: http://connect.microsoft.com/MicrosoftForums/

Which Newsgroups Are Affected by this Shutdown?
All public newsgroups will eventually be closed between June 1, 2010 and
October 1, 2010.  Microsoft will be closing newsgroups in a phased approach,
starting with the least active newsgroups and moving eventually to more
active ones throughout the course of the next six months.

Where Should I go with the Closure of this Newsgroup?
In an effort to enhance and improve your experience, this newsgroup is
scheduled for closure in the upcoming months and we would like to invite
you to participate at
http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/threads forum(s).
An exact date will be posted in advance as plans are finalized. 

Should you want to visit the other Microsoft Forums, please go to
http://www.microsoft.com/communities/forums/default.mspx

Who Should I Contact with any Questions?
Send any questions about the process, recommended forums and timing to NNTP@microsoft.com
&lt;/pre&gt;

&lt;p&gt;I haven't yet tried the mentioned &lt;a href="http://connect.microsoft.com/MicrosoftForums/"&gt;NNTP Bridge&lt;/a&gt;, available through Microsoft's Connect site, but hopefully it will be a solution for my needs. But it seems the NNTP newsgroups in general are about to be replaced with a web interface. Usually, I'm for new technologies replacing older ones, but when it comes to NNTP, I prefer them over web interfaces at least today. Compare Outlook native client with Outlook Web App (OWA), for instance. The former is much better, even though OWA isn't bad either.&lt;/p&gt;</description>
      <pubDate>Thu, 10 Jun 2010 19:00:03 GMT</pubDate>
      <guid isPermaLink="false">08db6a02-e465-4fa2-946f-f53ee83325d8</guid>
    </item>
    <item>
      <title>Expression Studio 4 is now ready</title>
      <link>http://www.microsoft.com/expression/</link>
      <description>&lt;p&gt;Good news especially for all WPF and Silverlight developers: &lt;a href="http://www.microsoft.com/expression/"&gt;Expression Studio 4&lt;/a&gt; is now available and can be downloaded from MSDN. New features are listed here, and for example in Expression Blend, they include support for WPF 4 and Silverlight 4. Other Expression products have had their share of new features, too.&lt;/p&gt;

&lt;p&gt;Be sure to check out the new release.&lt;/p&gt;</description>
      <pubDate>Tue, 08 Jun 2010 16:49:07 GMT</pubDate>
      <guid isPermaLink="false">f2f7ae8f-1b69-49f7-ab65-db5737775807</guid>
    </item>
    <item>
      <title>Using Scrum with Visual Studio Team Foundation Server</title>
      <link>http://www.scrumforteamsystem.com/</link>
      <description>&lt;p&gt;If your team is using agile methodologies and especially Scrum, then there's a new process template available for Visual Studio Team System (VSTS) and Team Foundation Server. The template is available at a web site called &lt;a href="http://www.scrumforteamsystem.com/"&gt;Scrum for Team System&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The site is worth checking is you are currently using or plan to use Scrum in the future and you are already working with VSTS/TFS.&lt;/p&gt;</description>
      <pubDate>Sun, 06 Jun 2010 07:52:53 GMT</pubDate>
      <guid isPermaLink="false">a49afa5f-9dfb-4c92-9d31-a586904e03d4</guid>
    </item>
    <item>
      <title>A free PDF component for .NET and ASP.NET web developers</title>
      <link>http://www.pdfsharp.com/PDFsharp/</link>
      <description>&lt;p&gt;Developers often ask me what PDF component I could suggest for their .NET development needs. Of course, by doing a quick search on "pdf component .net" reveals dozens of different components, free and commercial, good and bad. The problem is that it takes time to evaluate all these components, so a recommendation would point to the correct direction.&lt;/p&gt;

&lt;p&gt;During the years, I've been using many different PDF components, but lately, I've been using a free PDF component called &lt;a href="http://www.pdfsharp.com/PDFsharp/"&gt;PDFSharp&lt;/a&gt;. This component is free for both private and commercial usage, and it works well in my experience.&lt;/p&gt;

&lt;p&gt;This component is what I would call a "low-level PDF component", meaning that you have to be somewhat familiar on how PDF files work and what the internal structure is. But since I've been creating PDF files manually as well, this was not a problem.&lt;/p&gt;

&lt;p&gt;In practice, you need to use X, Y coordinates to output text and graphics using a canvas, but if this works for you, then this component is easy to use in both traditional desktop applications and ASP.NET web applications. Deployment is also a matter of distributing a couple of DLL files (assemblies) along with your application.&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</description>
      <pubDate>Fri, 04 Jun 2010 21:26:09 GMT</pubDate>
      <guid isPermaLink="false">94883cc2-849d-4e93-a0df-25f1b2bbb649</guid>
    </item>
    <item>
      <title>Reminder: A SANKO meeting on 8th of June</title>
      <link>http://www.facebook.com/l.php?u=https%3A%2F%2Fmsevents.microsoft.com%2FCUI%2FEventDetail.aspx%3FEventID%3D1032451598%26Culture%3Dfi-FI&amp;h=cab53</link>
      <description>&lt;p&gt;Within a week or so, the first SANKO ("Finland's active .NET developers") meeting will be held at Microsoft's offices in Espoo, Finland.&lt;/p&gt;

&lt;p&gt;For more information about the event, check the &lt;a href="http://www.facebook.com/l.php?u=https%3A%2F%2Fmsevents.microsoft.com%2FCUI%2FEventDetail.aspx%3FEventID%3D1032451598%26Culture%3Dfi-FI&amp;h=cab53"&gt;event registration page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Be there or be...!&lt;/p&gt;</description>
      <pubDate>Tue, 01 Jun 2010 19:42:05 GMT</pubDate>
      <guid isPermaLink="false">35a2cb61-1253-47c0-8560-60f5d88c00d8</guid>
    </item>
    <item>
      <title>F# PowerPack available</title>
      <link>http://fsharppowerpack.codeplex.com/</link>
      <description>&lt;p&gt;If you are interested in developing code with functional languages and especially F#, then you might find the new &lt;a href="http://fsharppowerpack.codeplex.com/"&gt;F# PowerPack&lt;/a&gt; worth your time. The PowerPack is available from CodePlex, and contains code and libraries written by the F# development team at Microsoft.&lt;/p&gt;

&lt;p&gt;The code had not the chance to be part of the official product, but this way, all developers can take advantage of the additions like matrix calculations, lexical analysis and parsing features available in the PowerPack.&lt;/p&gt;</description>
      <pubDate>Fri, 28 May 2010 17:49:45 GMT</pubDate>
      <guid isPermaLink="false">b0a355a5-bfbd-49e5-8538-0b837d2a284c</guid>
    </item>
    <item>
      <title>How to register your MSDN Azure account</title>
      <link>http://blogs.msdn.com/b/ericgolpe/archive/2010/01/05/step-by-step-windows-azure-signup-for-msdn-subscribers.aspx</link>
      <description>&lt;p&gt;Most MSDN subscribers are aware that their MSDN subscription contains a limited Azure account, which allows a certain number of free computing time and other resources on Microsoft's cloud computing infrastructure.&lt;/p&gt;

&lt;p&gt;However, you will need to register your Azure account to get access to it, and this is a somewhat complicated procedure. Luckily, there's a nice &lt;a href="http://blogs.msdn.com/b/ericgolpe/archive/2010/01/05/step-by-step-windows-azure-signup-for-msdn-subscribers.aspx"&gt;blog post along with screenshots&lt;/a&gt; that walk you through this process. This makes the registration a really easy-to-follow one.&lt;/p&gt;

&lt;p&gt;Good luck, and happy cloud computing!&lt;/p&gt;</description>
      <pubDate>Tue, 25 May 2010 18:09:35 GMT</pubDate>
      <guid isPermaLink="false">be5f3e41-35e7-42af-abdd-be9b9ab0e754</guid>
    </item>
    <item>
      <title>Converting database data into an XML presentation with LINQ and ADO.NET Entity Framework</title>
      <link>http://msdn.microsoft.com/en-us/library/bb387098.aspx</link>
      <description>&lt;p&gt;Sometimes, you might need to export SQL database data into XML, for example for subsequent manipulation. Chances are you are already using an ADO.NET Entity Framework data model in your application to access the data on an SQL Server database. If this is the case, then using &lt;a href="http://msdn.microsoft.com/en-us/library/bb387098.aspx"&gt;LINQ to XML&lt;/a&gt; will nicely allow you to convert the data into XML. However, there are some caveats you should be aware.&lt;/p&gt;

&lt;p&gt;Firstly, LINQ to Entities isn't yet perfect, and doesn't support all operations that LINQ to Objects for example supports. Let's see how this looks like. Assume you needed to create an XML presentation of certain orders in the Northwind sample database's Orders table. Your XML target might be something like this:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;orders&amp;gt;
  &amp;lt;order&amp;gt;
    &amp;lt;date&amp;gt;1997-08-25&amp;lt;/date&amp;gt;
    ...
  &amp;lt;/order&amp;gt;
  &amp;lt;order&amp;gt;
    &amp;lt;date&amp;gt;1997-10-03&amp;lt;/date&amp;gt;
    ...
  &amp;lt;/order&amp;gt;
  &amp;lt;order&amp;gt;
    &amp;lt;date&amp;gt;1997-10-13&amp;lt;/date&amp;gt;
    ...
  &amp;lt;/order&amp;gt;
  ...
&amp;lt;/orders&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Your first attempt might be to use code similar to the following to construct the XML:&lt;/p&gt;

&lt;pre&gt;
XElement orderElement = new XElement("orders",
  from o in entities.Orders
  where o.CustomerID == "ALFKI"
  select new XElement("order",
    new XElement("date", o.OrderDate)));
&lt;/pre&gt;

&lt;p&gt;This code looks slick, and sure it is. However, the problem is that although the code compiles fine, it fails at runtime with the following exception:&lt;/p&gt;

&lt;pre&gt;System.NotSupportedException: Only parameterless constructors
and initializers are supported in LINQ to Entities.&lt;/pre&gt;

&lt;p&gt;What a shame! Maybe sometime, LINQ to Entities will support constructors with parameters, but with .NET 4.0 and Visual Studio 2010, it unfortunately doesn't.&lt;/p&gt;

&lt;p&gt;How could you fix this problem, then? Luckily, the solution is quite easy: first materialize ("evaluate") the database query results into a certain object, such as a list. Then, proceed to use LINQ to XML to create the actual XML elements. Like this, for instance:&lt;/p&gt;

&lt;pre&gt;
NorthwindEntities entities = new NorthwindEntities();
var matchingOrders =
    (from o in entities.Orders
    where o.CustomerID == "ALFKI"
    select o).ToList();

XElement orderElement = new XElement("orders",
    from o in matchingOrders
    select new XElement("order",
         new XElement("date", o.OrderDate)));

MessageBox.Show(orderElement.ToString());
&lt;/pre&gt;

&lt;p&gt;Now the code works, and it wasn't overly difficult. Great!&lt;/p&gt;</description>
      <pubDate>Sun, 23 May 2010 10:49:27 GMT</pubDate>
      <guid isPermaLink="false">7f243ad6-9cc1-4641-9f46-35d4317fb792</guid>
    </item>
    <item>
      <title>A local installation for the TED WPF Pivot application</title>
      <link>http://www.getpivot.com/download/</link>
      <description>&lt;p&gt;Few months ago in the TED conference, a presentation showing &lt;a href="http://www.ted.com/talks/gary_flake_is_pivot_a_turning_point_for_web_exploration.html"&gt;Pivot&lt;/a&gt; was given. If you enjoyed this presentation, then it's great to hear that you can now download and install your own local copy of Pivot. The download can be made at &lt;a href="http://www.getpivot.com/download/"&gt;www.getpivot.com&lt;/a&gt;. The installation package itself is around 28 MB in size.&lt;/p&gt;

&lt;p&gt;Note that now latest Excel version 2010 also contains a Pivot feature, but this is unrelated to the Pivot feature shown at TED. For clarity, this Pivot version could be called a "Live Labs Pivot".&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Thu, 20 May 2010 06:34:05 GMT</pubDate>
      <guid isPermaLink="false">1aa77bd9-cb3e-4029-8286-9a9605af772c</guid>
    </item>
    <item>
      <title>Quick tip: finding a text string in PowerShell output</title>
      <link>http://technet.microsoft.com/en-us/library/bb978526.aspx</link>
      <description>&lt;p&gt;Assume you are working with a &lt;a href="http://technet.microsoft.com/en-us/library/bb978526.aspx"&gt;PowerShell&lt;/a&gt; prompt (say, an Exchange Management Shell), and you are not sure which commands are available. The PowerShell command "get-command" (or in case of Exchange, "get-excommand") gives you this list, but if you only know parts of the proper command name, then you might try to use a DOS classic, the "find" command. For instance, if you were to search for commands containing the word "Debug", you might try the following command:&lt;/p&gt;

&lt;pre&gt;get-command | find "Debug"&lt;/pre&gt;

&lt;p&gt;Unluckily though, PowerShell will simply response the following:&lt;/p&gt;

&lt;pre&gt;FIND: Parameter format not correct&lt;/pre&gt;

&lt;p&gt;The error will not go away even if you remove the quotation marks.&lt;/p&gt;

&lt;p&gt;What could you try, then? One way to solve the problem is to change the command slightly: instead of "find", try "findstr" (for "find string"). This gives you the expected results:&lt;/p&gt;

&lt;pre&gt;
PS C:\&gt; get-command | findstr Debug
Cmdlet          Complete-Transaction           Complete-Transaction [-Verbose] [-Debug] [-Error...
Cmdlet          Debug-Process                  Debug-Process [-Name] &lt;String[]&gt; [-Verbose] [-De...
Cmdlet          Enable-PSRemoting              Enable-PSRemoting [-Force] [-Verbose] [-Debug] [...
Cmdlet          Exit-PSSession                 Exit-PSSession [-Verbose] [-Debug] [-ErrorAction...
Cmdlet          Get-Culture                    Get-Culture [-Verbose] [-Debug] [-ErrorAction &lt;A...
Cmdlet          Get-Host                       Get-Host [-Verbose] [-Debug] [-ErrorAction &lt;Acti...
Cmdlet          Get-Job                        Get-Job [[-Id] &lt;Int32[]&gt;] [-Verbose] [-Debug] [-...
Cmdlet          Get-PSCallStack                Get-PSCallStack [-Verbose] [-Debug] [-ErrorActio...
Cmdlet          Get-Transaction                Get-Transaction [-Verbose] [-Debug] [-ErrorActio...
Cmdlet          Get-UICulture                  Get-UICulture [-Verbose] [-Debug] [-ErrorAction ...
Cmdlet          Get-WSManCredSSP               Get-WSManCredSSP [-Verbose] [-Debug] [-ErrorActi...
Function        prompt                         $(if (test-path variable:/PSDebugContext) { '[DB...
Cmdlet          Set-PSDebug                    Set-PSDebug [-Trace &lt;Int32&gt;] [-Step] [-Strict] [...
Cmdlet          Stop-Transcript                Stop-Transcript [-Verbose] [-Debug] [-ErrorActio...
Cmdlet          Undo-Transaction               Undo-Transaction [-Verbose] [-Debug] [-ErrorActi...
Cmdlet          Write-Debug                    Write-Debug [-Message] &lt;String&gt; [-Verbose] [-Deb...
&lt;/pre&gt;

&lt;p&gt;With the "findstr" command, you can solve the problem of finding a string from the PowerShell output, which otherwise is object-based. But sometimes, a simple string search is what you are after.&lt;/p&gt;

&lt;p&gt;If you instead prefer a more PowerShell-like style, then you could use something like this:&lt;/p&gt;

&lt;pre&gt;get-command | where {$_.definition -like "*Debug*"}&lt;/pre&gt;

&lt;p&gt;As you can see, the "findstr" command is more convenient.&lt;/p&gt;</description>
      <pubDate>Mon, 17 May 2010 19:44:08 GMT</pubDate>
      <guid isPermaLink="false">d2850bf6-8650-411c-b1f5-f028a72c9e6c</guid>
    </item>
    <item>
      <title>Good Silverlight 4 training material</title>
      <link>http://channel9.msdn.com/learn/courses/Silverlight4/</link>
      <description>&lt;p&gt;From time to time developers try to find good information about Silverlight. Of course, there are many excellent sources of information, but one nice and compact solution is to download the "&lt;a href="http://channel9.msdn.com/learn/courses/Silverlight4/"&gt;Silverlight Training Course&lt;/a&gt;" from Microsoft's Channel 9 web site.&lt;/p&gt;

&lt;p&gt;The material contains sample applications, PowerPoint shows and more. If you are interested in learning Silverlight, make sure you get this package.&lt;/p&gt;</description>
      <pubDate>Sat, 15 May 2010 11:12:04 GMT</pubDate>
      <guid isPermaLink="false">8f560d0c-f686-456a-ac92-b5fff13cbc7b</guid>
    </item>
    <item>
      <title>New screencast about Windows Phone 7 development</title>
      <link>http://www.internet.com/player/index.php?bcpid=1431564240&amp;bclid=1433966034&amp;bctid=85113689001</link>
      <description>&lt;p&gt;Windows Phone 7 development is a hot topic, and especially so after the first phones start appearing on the shelves late this year. However, you can already get started with development to this new platform. I've authored a short screencast about using Silverlight to develop basic applications with Visual Studio 2010 Express for the Windows Phone (http://www.microsoft.com/express/Phone/). The screencast is available here (http://www.internet.com/player/index.php?bcpid=1431564240&amp;bclid=1433966034&amp;bctid=85113689001).&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Thu, 13 May 2010 07:17:56 GMT</pubDate>
      <guid isPermaLink="false">3cfb5ccd-2495-49a4-9298-e3a94bed5acc</guid>
    </item>
    <item>
      <title>Working with multiple, optional query parameters in LINQ</title>
      <link>http://msdn.microsoft.com/en-us/netframework/aa904594.aspx</link>
      <description>&lt;p&gt;Especially when developing interactive reporting solutions, the chances are you need to create &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ queries&lt;/a&gt; with optional query parameters. For instance, say you were working with a database similar to the Northwind database, and needed to list orders based on different selections.&lt;/p&gt;

&lt;p&gt;Let's say the user of your application could enter a city, region and country of filtering values for the order list. However, none of the fields is mandatory (in which case, every order would be listed), but on the other hand, all parameters could be entered simultaneously.&lt;/p&gt;

&lt;p&gt;In case of a single query parameter, it would be easy to run a LINQ query similar to the following:&lt;/p&gt;

&lt;pre&gt;
NorthwindEntities entities = new NorthwindEntities();
string cityFilter = "London";
string countyFilter = "United Kingdom";
var orders = from o in entities.Orders
             where o.ShipCity == cityFilter &amp;&amp;
             o.ShipCountry == countyFilter
             select o;
&lt;/pre&gt;

&lt;p&gt;However, if you had three possibly optional parameters, you could either try to play with NULL values and somewhat more complex WHERE statement, or you could take the simple but ineffective approach with different &lt;em&gt;If&lt;/em&gt; statements like this:&lt;/p&gt;

&lt;pre&gt;
NorthwindEntities entities = new NorthwindEntities();
string cityFilter = ""; // value or null
string regionFilter = "";
string countryFilter = "";
if ((cityFilter != null) &amp;&amp; (regionFilter != null) &amp;&amp; (countryFilter != null))
{
  var orders = from o in entities.Orders&lt;/p&gt;
               where (o.ShipCity == cityFilter) &amp;&amp;
               (o.ShipRegion == regionFilter) &amp;&amp;
               (o.ShipCountry == countryFilter)
               select o;
}
else if ((cityFilter != null) &amp;&amp;
         (regionFilter != null) &amp;&amp;
         (countryFilter == null))
{
  var orders = from o in entities.Orders
               where (o.ShipCity == cityFilter) &amp;&amp;
               (o.ShipRegion == regionFilter)
               select o;
}
else if (...
&lt;/pre&gt;

&lt;p&gt;As you can see, this works okay, but gets very tedious very quickly. For two parameters, this approach might still work, but for three or more, no thank you. Luckily, there is a better solution.&lt;/p&gt;

&lt;p&gt;The thing you need to remember about LINQ that it contains a lazy execution model. This means that the results are only fetched from the database when you start to enumerate ("touch") the query results. Thus, you can also combine query operators without needing to worry about that multiple queries are executed against the database.&lt;/p&gt;

&lt;p&gt;To do this, you need to switch to the method-based syntax of LINQ, and use the Where method with a proper lambda expression. In this case, your code with three optional parameters, you could write code like this:&lt;/p&gt;

&lt;pre&gt;
NorthwindEntities entities = new NorthwindEntities();
string cityFilter = "London";
string regionFilter = "South";
string countryFilter = "United Kingdom";

var orders = entities.Orders.AsQueryable(); // select all orders
if (cityFilter != null)
{
    orders = orders.Where(o =&gt; (o.ShipCity == cityFilter));
}
if (regionFilter != null)
{
    orders = orders.Where(o =&gt; (o.ShipRegion == regionFilter));
}
if (countryFilter != null)
{
    orders = orders.Where(o =&gt; (o.ShipCountry == countryFilter));
}

// done
return orders;
&lt;/pre&gt;

&lt;p&gt;With this approach, the code is greatly simplified, and you do not need to worry about introducing more optional parameters to the mix. Here is the SQL query that would be executed if only a single country filter is given:&lt;/p&gt;

&lt;pre&gt;
exec sp_executesql N'SELECT 
1 AS [C1], 
[Extent1].[OrderID] AS [OrderID], 
[Extent1].[OrderDate] AS [OrderDate], 
[Extent1].[RequiredDate] AS [RequiredDate], 
[Extent1].[ShippedDate] AS [ShippedDate], 
[Extent1].[Freight] AS [Freight], 
[Extent1].[ShipName] AS [ShipName], 
[Extent1].[ShipAddress] AS [ShipAddress], 
[Extent1].[ShipCity] AS [ShipCity], 
[Extent1].[ShipRegion] AS [ShipRegion], 
[Extent1].[ShipPostalCode] AS [ShipPostalCode], 
[Extent1].[ShipCountry] AS [ShipCountry], 
[Extent1].[CustomerID] AS [CustomerID], 
[Extent1].[EmployeeID] AS [EmployeeID], 
[Extent1].[ShipVia] AS [ShipVia]
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[ShipCity] = @p__linq__1',
N'@p__linq__1 nvarchar(6)',@p__linq__1=N'London'
&lt;/pre&gt;

&lt;p&gt;And here is the SQL query if all optional parameters are given:&lt;/p&gt;

&lt;pre&gt;
exec sp_executesql N'SELECT 
1 AS [C1], 
[Extent1].[OrderID] AS [OrderID], 
[Extent1].[OrderDate] AS [OrderDate], 
[Extent1].[RequiredDate] AS [RequiredDate], 
[Extent1].[ShippedDate] AS [ShippedDate], 
[Extent1].[Freight] AS [Freight], 
[Extent1].[ShipName] AS [ShipName], 
[Extent1].[ShipAddress] AS [ShipAddress], 
[Extent1].[ShipCity] AS [ShipCity], 
[Extent1].[ShipRegion] AS [ShipRegion], 
[Extent1].[ShipPostalCode] AS [ShipPostalCode], 
[Extent1].[ShipCountry] AS [ShipCountry], 
[Extent1].[CustomerID] AS [CustomerID], 
[Extent1].[EmployeeID] AS [EmployeeID], 
[Extent1].[ShipVia] AS [ShipVia]
FROM [dbo].[Orders] AS [Extent1]
WHERE ([Extent1].[ShipCity] = @p__linq__1) AND
([Extent1].[ShipRegion] = @p__linq__2) AND
([Extent1].[ShipCountry] = @p__linq__3)',
N'@p__linq__1 nvarchar(6),@p__linq__2 nvarchar(5),
@p__linq__3 nvarchar(14)',@p__linq__1=N'London',
@p__linq__2=N'South',@p__linq__3=N'United Kingdom'
&lt;/pre&gt;

&lt;p&gt;The statement might not be absolutely the most effective one, but is very close, and thus works well in practice.&lt;/p&gt;

&lt;p&gt;Happy LINQing!&lt;/p&gt;</description>
      <pubDate>Mon, 10 May 2010 15:41:12 GMT</pubDate>
      <guid isPermaLink="false">fb103a04-7bf8-4ce1-8d37-4730ab0ec2a2</guid>
    </item>
    <item>
      <title>The forming of SANKO, the Finnish .NET User Group</title>
      <link>http://www.facebook.com/sanko.net</link>
      <description>&lt;p&gt;Just recently, a new developer user group has been formed: SANKO, Finnish for "Finland's Active .NET Developer's Group". You are warmly welcome into this group if you are interested in developing applications with Visual Studio and .NET.&lt;/p&gt;

&lt;p&gt;Currently, you can join SANKO both at &lt;a href="http://www.facebook.com/sanko.net"&gt;Facebook&lt;/a&gt; and at LinkedIn. Our first live meeting and seminar session will in early June, 8th to be more precise. You can register here for this event; the event will be held at Microsoft's offices in Espoo.&lt;/p&gt;

&lt;p&gt;Be sure to join this new group!&lt;/p&gt;</description>
      <pubDate>Fri, 07 May 2010 16:22:47 GMT</pubDate>
      <guid isPermaLink="false">b77cad0a-fcce-4be6-8d5c-d087e90e6e80</guid>
    </item>
    <item>
      <title>How to get that Office 2010 Ribbon look into your WPF applications</title>
      <link>http://fluent.codeplex.com/</link>
      <description>&lt;p&gt;Now that Office 2010 is here, some developers have started to ask how they could emulate the (changed) Ribbon looks from Office 2010 in their own products. Currently, Microsoft has a solution that looks the same as Office 2007, but now that the new Office version is out, of course the older one is getting "old".&lt;/p&gt;

&lt;p&gt;I haven't investigated the timeframe that Microsoft is planning to update their own solutions, but in the mean time, I wanted to point out an open-source alternative at CodePlex. The CodePlex project is called "&lt;a href="http://fluent.codeplex.com/"&gt;Fluent Ribbon Control Suite&lt;/a&gt;", and is available at http://fluent.codeplex.com/. Currently, the project does not provide 100% implementation of all the Ribbon options, but it is very close. But the best thing is that this package already supports the Office 2010 looks.&lt;/p&gt;

&lt;p&gt;So, if you are interested in having the Fluent interface in your own WPF applications, check this project out.&lt;/p&gt;</description>
      <pubDate>Tue, 04 May 2010 18:16:05 GMT</pubDate>
      <guid isPermaLink="false">7b0322e6-ba49-45b3-a45c-b1ea5ebd79e1</guid>
    </item>
    <item>
      <title>Training kits and posters for Visual Studio 2010 and .NET 4.0 developers</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=752CB725-969B-4732-A383-ED5740F02E93&amp;displaylang=en</link>
      <description>&lt;p&gt;Happy May 1st everyone! Now that Visual Studio 2010, .NET 4.0 and SQL Server 2008 R2 are available, it's time to share some nice links to all developers interested in these new technologies. Here goes a quick list of three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio 2010 and .NET Framework 4 Training Kit: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752CB725-969B-4732-A383-ED5740F02E93&amp;displaylang=en"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SQL Server 2008 R2 Training Kit: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=fffaad6a-0153-4d41-b289-a3ed1d637c0d"&gt;download here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual Stusio 2010 Keyboard Shortcut Posters: &lt;a href="http://blogs.msdn.com/lisa/archive/2010/04/16/vs-2010-keyboard-shortcut-posters-now-available-for-vb-c-f-c.aspx"&gt;download here.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy programming!&lt;/p&gt;</description>
      <pubDate>Sat, 01 May 2010 14:10:14 GMT</pubDate>
      <guid isPermaLink="false">698e4177-da0f-422c-a428-2a812b8febf2</guid>
    </item>
    <item>
      <title>Quick code migration results into VS2010: zero issues!</title>
      <link>http://www.microsoft.com/visualstudio/en-us/</link>
      <description>&lt;p&gt;While traveling and not much to do while sitting in a hotel room waiting raining to cease, I had the chance to test migration of one of my custom .NET applications into Visual Studio 2010 and .NET 4.0 RTM.&lt;/p&gt;

&lt;p&gt;For instance, this blog is written with a custom WinForms application, built with Visual Studio 2005 originally, but migrated first to 2008 and now to Visual Studio 2010. The application contains quite a lot of XML stuff, usual user interface stuff, Word integration, some LINQ, and a custom FTP and SSH uploader. All in all, it's a quite simple application, but still uses many different technologies.&lt;/p&gt;

&lt;p&gt;Migrating a VS2008 solution to VS2010 was very convenient, as it should. But of course, the solution migration should always succeed. What's much more interesting is to see how building the application works. In my case, there were zero issues. That's very good news indeed!&lt;/p&gt;</description>
      <pubDate>Tue, 27 Apr 2010 18:14:32 GMT</pubDate>
      <guid isPermaLink="false">0e5ef274-2507-4a1a-b7b8-4b2761d8ae03</guid>
    </item>
    <item>
      <title>For the record: Visual Studio 2010, .NET 4.0 and Silverlight 4.0 version numbers</title>
      <link>http://www.microsoft.com/visualstudio</link>
      <description>&lt;p&gt;Now that Visual Studio 2010 and .NET have gone RTM and Silverlight 4 to RTW (Release To Web), it's time to write down the original version numbers for these products/platforms.&lt;/p&gt;

&lt;p&gt;Here you go:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio 2010 RTM: version 10.0.30319.1 RTMRel&lt;/li&gt;
&lt;li&gt;.NET Framework 4.0 RTM: version 4.0.30319 RTMRel&lt;/li&gt;
&lt;li&gt;Silverlight 4.0 RTW for Windows: version 4.0.50401.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the first service packs and updates start to come, it's again time to update your records. Until then, we will be utilizing these version numbers.&lt;/p&gt;</description>
      <pubDate>Sat, 24 Apr 2010 19:39:15 GMT</pubDate>
      <guid isPermaLink="false">ed4b6401-cbc5-407f-9ea5-39a99285de4d</guid>
    </item>
    <item>
      <title>Office 2010 can now be downloaded from MSDN/Technet</title>
      <link>http://blogs.technet.com/office2010/archive/2010/04/15/office-2010-reaches-rtm.aspx</link>
      <description>&lt;p&gt;Office 2010 became ready just a while ago, and now the product is available to be downloaded from MSDN and Technet. For example on MSDN, depending on your subscription level, you might be able to download for instance the Professional Plus version of Office 2010.&lt;/p&gt;

&lt;p&gt;Note that for the first time, there is also a 64-bit edition available of Office. This gives for example Excel additional breathing space in case you need to run multi-gigabyte worksheets. For most people however, the 32-bit edition will be more than enough, and so Microsoft actually recommends that all users install the 32-bit edition, even though they had a 64-bit operating system installation. The wording on MSDN is quite strict on this fact:&lt;/p&gt;

&lt;p&gt;"Important: Microsoft strongly recommends the use of 32-bit (x86) versions of Office 2010, Project 2010, and Visio 2010 applications as the default option for all platforms."&lt;/p&gt;

&lt;p&gt;Happy downloading!&lt;/p&gt;</description>
      <pubDate>Thu, 22 Apr 2010 18:42:17 GMT</pubDate>
      <guid isPermaLink="false">8b02fd01-90c7-4828-ae4d-543bc0600593</guid>
    </item>
    <item>
      <title>SQL Server 2008 R2 is ready</title>
      <link>http://www.microsoft.com/Presspass/press/2010/apr10/SQL08RTMPR.mspx</link>
      <description>&lt;p&gt;April really seems to be a month of new software releases from Microsoft. Earlier this month, Visual Studio 2010, .NET 4.0, Silverlight 4 and Office 2010 have become available, and now it's the turn for SQL Server. That is, SQL Server 2008 R2 &lt;a href="http://www.microsoft.com/Presspass/press/2010/apr10/SQL08RTMPR.mspx"&gt;is now available&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The new product version is already available on MSDN (and presumably Technet, though I haven't checked) and thus available immediately for developers. Also an Express version is coming, so you should be able to download it soon enough from www.microsoft.com/express.&lt;/p&gt;

&lt;p&gt;New features in SQL Server 2008 R2 include improved scalability and performance (thanks to Windows Server 2008 R2), improved business intelligence (BI) capabilities (remember PowerPivot for Excel and SharePoint?) and support for the company's Azure cloud-computing platform.&lt;/p&gt;</description>
      <pubDate>Thu, 22 Apr 2010 18:33:16 GMT</pubDate>
      <guid isPermaLink="false">2b7c4fb6-636c-4990-96c1-d31bbc4e27b4</guid>
    </item>
    <item>
      <title>Quick example on using the C# 4.0 dynamic keyword</title>
      <link>http://msdn.microsoft.com/en-us/library/dd264741.aspx</link>
      <description>&lt;p&gt;One of the new features in the C# 4.0 language that comes with Visual Studio 2010 is the support for the &lt;em&gt;dynamic&lt;/em&gt; keyword. This new keyword allows you to work better with for instance scripting languages, but also with for instance COM/OLE automation objects, such as those implemented by Office applications.&lt;/p&gt;

&lt;p&gt;However, if you wish to try your skills with &lt;a href="http://msdn.microsoft.com/en-us/library/dd264741.aspx"&gt;the new keyword&lt;/a&gt;, it can be difficult to find a simple example. Furthermore, you will need to initialize a dynamic object before you can use it, just like with regular objects. But with which class/type should you initialize a dynamic variable with?&lt;/p&gt;

&lt;p&gt;One good starting point if the new type called ExpandoObject. This type is new to .NET 4.0 and can be found from the namespace System.Dynamic. In addition, you you need to reference an assembly named Microsoft.CSharp.dll; this gives you access to the Microsoft.CSharp.RuntimeBinder namespace.&lt;/p&gt;

&lt;p&gt;Note that the ExpandoObject has (almost) nothing to do with the Expando class (http://msdn.microsoft.com/en-us/library/microsoft.jscript.expando.aspx) that has been available since .NET 1.0 in the Microsoft.JScript namespace.&lt;/p&gt;

&lt;p&gt;Now to the code example. Here is a very quick way to test drive the dynamic keyword:&lt;/p&gt;

&lt;pre&gt;
using System.Dynamic;
...
dynamic d = new ExpandoObject();
d.SomePropertyNameYouveCreated = "ABC";
MessageBox.Show(d.SomePropertyNameYouveCreated);
&lt;/pre&gt;

&lt;p&gt;When you run this code, you've created a dynamic variable &lt;em&gt;d&lt;/em&gt; to which you can assign new property values at will. Note that you can come with any (valid) name you like; the compiler will be happy about it. You can also assign any object type to the property name you invent. But if you try to read a property value that does not exist, a runtime (not a compile-time) exception of type RuntimeBinderException (full name Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) will be raised with the message "System.Dynamic.ExpandoObject does not contain a definition for 'SomePropertyName'".&lt;/p&gt;

&lt;p&gt;If you disassemble an application with the above code with Red Gate's latest Reflector (it supports .NET 4.0 already), then you can see that the code looks the following:&lt;/p&gt;

&lt;pre&gt;
object d = new ExpandoObject();
if (&amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site1 == null)
{
    &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site1 = CallSite&amp;lt;Func&amp;lt;
	    CallSite, object, string, object&amp;gt;&amp;gt;.Create(Binder.SetMember(
	    CSharpBinderFlags.None, "SomePropertyNameYouveCreated",
	    typeof(Form1), new CSharpArgumentInfo[] {
	    CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
	    CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.Constant |
	    CSharpArgumentInfoFlags.UseCompileTimeType, null) }));
}
&amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site1.Target.Invoke(
  &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site1, d, "ABC");
if (&amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site2 == null)
{
    &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site2 = CallSite&amp;lt;Action&amp;lt;
      CallSite, Type, object&amp;gt;&amp;gt;.Create(Binder.InvokeMember(
      CSharpBinderFlags.ResultDiscarded, "Show", null, typeof(Form1),
      new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(
      CSharpArgumentInfoFlags.IsStaticType |
      CSharpArgumentInfoFlags.UseCompileTimeType, null),
      CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }));
}
if (&amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site3 == null)
{
    &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site3 = CallSite&amp;lt;Func&amp;lt;
      CallSite, object, object&amp;gt;&amp;gt;.Create(Binder.GetMember(
      CSharpBinderFlags.None, "SomePropertyNameYouveCreated",
      typeof(Form1), new CSharpArgumentInfo[] {
      CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }));
}
&amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site2.Target.Invoke(
  &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site2, typeof(MessageBox),
  &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site3.Target.Invoke(
  &amp;lt;button1_Click&amp;gt;o__SiteContainer0.&amp;lt;&amp;gt;p__Site3, d));
&lt;/pre&gt;

&lt;p&gt;In CIL code, the disassembly is (lines splitted for readability):&lt;/p&gt;

&lt;pre&gt;
.method private hidebysig instance void button1_Click(object sender, class
[mscorlib]System.EventArgs e) cil managed
{
  .maxstack 10
  .locals init (
      [0] object d,
      [1] class [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.
          CSharpArgumentInfo[] CS$0$0000)
  L_0000: nop 
  L_0001: newobj instance void [System.Core]System.Dynamic.ExpandoObject::.ctor()
  L_0006: stloc.0 
  L_0007: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`4&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, string, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site1
  L_000c: brtrue.s L_004b
  L_000e: ldc.i4.0 
  L_000f: ldstr "SomePropertyNameYouveCreated"
  L_0014: ldtoken WindowsFormsApplication10.Form1
  L_0019: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(
          valuetype [mscorlib]System.RuntimeTypeHandle)
  L_001e: ldc.i4.2 
  L_001f: newarr [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
  L_0024: stloc.1 
  L_0025: ldloc.1 
  L_0026: ldc.i4.0 
  L_0027: ldc.i4.0 
  L_0028: ldnull 
  L_0029: call class [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo::Create(
          valuetype [Microsoft.CSharp]
          Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfoFlags, string)
  L_002e: stelem.ref 
  L_002f: ldloc.1 
  L_0030: ldc.i4.1 
  L_0031: ldc.i4.3 
  L_0032: ldnull 
  L_0033: call class [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo 
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo::Create(
          valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.
          CSharpArgumentInfoFlags, string)
  L_0038: stelem.ref 
  L_0039: ldloc.1 
  L_003a: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::SetMember(valuetype
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags, string,
          class [mscorlib]System.Type, class [mscorlib]System.Collections.
          Generic.IEnumerable`1&amp;lt;class [Microsoft.CSharp]Microsoft.CSharp.
          RuntimeBinder.CSharpArgumentInfo&amp;gt;)
  L_003f: call class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;!0&amp;gt;
          [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib] System.Func`4&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, string, object&amp;gt;&amp;gt;::Create(
          class [System.Core]System.Runtime.CompilerServices.CallSiteBinder)
  L_0044: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`4&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, string, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site1
  L_0049: br.s L_004b
  L_004b: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`4&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, string, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site1
  L_0050: ldfld !0 [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`4&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, string, object&amp;gt;&amp;gt;::Target
  L_0055: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`4&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, string, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site1
  L_005a: ldloc.0 
  L_005b: ldstr "ABC"
  L_0060: callvirt instance !3 [mscorlib]System.Func`4&amp;lt;class [System.Core]
          System.Runtime.CompilerServices.CallSite, object, string,
          object&amp;gt;::Invoke(!0, !1, !2)
  L_0065: pop 
  L_0066: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Action`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, class [mscorlib]System.Type, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site2
  L_006b: brtrue.s L_00b0
  L_006d: ldc.i4 0x100
  L_0072: ldstr "Show"
  L_0077: ldnull 
  L_0078: ldtoken WindowsFormsApplication10.Form1
  L_007d: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(
          valuetype [mscorlib]System.RuntimeTypeHandle)
  L_0082: ldc.i4.2 
  L_0083: newarr [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
  L_0088: stloc.1 
  L_0089: ldloc.1 
  L_008a: ldc.i4.0 
  L_008b: ldc.i4.s 0x21
  L_008d: ldnull 
  L_008e: call class [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo::Create(
          valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.
          CSharpArgumentInfoFlags, string)
  L_0093: stelem.ref 
  L_0094: ldloc.1 
  L_0095: ldc.i4.1 
  L_0096: ldc.i4.0 
  L_0097: ldnull 
  L_0098: call class [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo::Create(
          valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.
          CSharpArgumentInfoFlags, string)
  L_009d: stelem.ref 
  L_009e: ldloc.1 
  L_009f: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::InvokeMember(
          valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,
          string, class [mscorlib]System.Collections.Generic.IEnumerable`1&amp;lt;
          class [mscorlib]System.Type&amp;gt;, class [mscorlib]System.Type, class
          [mscorlib]System.Collections.Generic.IEnumerable`1&amp;lt;class [Microsoft.CSharp]
          Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo&amp;gt;)
  L_00a4: call class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;!0&amp;gt;
          [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;class [mscorlib]
          System.Action`3&amp;lt;class [System.Core]System.Runtime.CompilerServices.CallSite,
          class [mscorlib]System.Type, object&amp;gt;&amp;gt;::Create(class [System.Core]System.
          Runtime.CompilerServices.CallSiteBinder)
  L_00a9: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Action`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, class [mscorlib]System.Type, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site2
  L_00ae: br.s L_00b0
  L_00b0: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Action`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, class [mscorlib]System.Type, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site2
  L_00b5: ldfld !0 [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Action`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, class [mscorlib]System.Type, object&amp;gt;&amp;gt;::Target
  L_00ba: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Action`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, class [mscorlib]System.Type, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site2
  L_00bf: ldtoken [System.Windows.Forms]System.Windows.Forms.MessageBox
  L_00c4: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(
          valuetype [mscorlib]System.RuntimeTypeHandle)
  L_00c9: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site3
  L_00ce: brtrue.s L_0103
  L_00d0: ldc.i4.0 
  L_00d1: ldstr "SomePropertyNameYouveCreated"
  L_00d6: ldtoken WindowsFormsApplication10.Form1
  L_00db: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(
          valuetype [mscorlib]System.RuntimeTypeHandle)
  L_00e0: ldc.i4.1 
  L_00e1: newarr [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
  L_00e6: stloc.1 
  L_00e7: ldloc.1 
  L_00e8: ldc.i4.0 
  L_00e9: ldc.i4.0 
  L_00ea: ldnull 
  L_00eb: call class [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo::Create(
          valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.
          CSharpArgumentInfoFlags, string)
  L_00f0: stelem.ref 
  L_00f1: ldloc.1 
  L_00f2: call class [System.Core]System.Runtime.CompilerServices.CallSiteBinder
          [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.Binder::GetMember(
          valuetype [Microsoft.CSharp]Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags,
          string, class [mscorlib]System.Type, class [mscorlib]System.Collections.
          Generic.IEnumerable`1&amp;lt;class [Microsoft.CSharp]Microsoft.CSharp.
          RuntimeBinder.CSharpArgumentInfo&amp;gt;)
  L_00f7: call class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;!0&amp;gt;
          [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;class
          [mscorlib]System.Func`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, object&amp;gt;&amp;gt;::Create(class [System.Core]
          System.Runtime.CompilerServices.CallSiteBinder)
  L_00fc: stsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site3
  L_0101: br.s L_0103
  L_0103: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site3
  L_0108: ldfld !0 [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, object&amp;gt;&amp;gt;::Target
  L_010d: ldsfld class [System.Core]System.Runtime.CompilerServices.CallSite`1&amp;lt;
          class [mscorlib]System.Func`3&amp;lt;class [System.Core]System.Runtime.
          CompilerServices.CallSite, object, object&amp;gt;&amp;gt;
          WindowsFormsApplication10.Form1/&amp;lt;button1_Click&amp;gt;o__SiteContainer0::&amp;lt;&amp;gt;p__Site3
  L_0112: ldloc.0 
  L_0113: callvirt instance !2 [mscorlib]System.Func`3&amp;lt;class
          [System.Core]System.Runtime.CompilerServices.CallSite,
          object, object&amp;gt;::Invoke(!0, !1)
  L_0118: callvirt instance void [mscorlib]System.Action`3&amp;lt;class
          [System.Core]System.Runtime.CompilerServices.CallSite, class
          [mscorlib]System.Type, object&amp;gt;::Invoke(!0, !1, !2)
  L_011d: nop 
  L_011e: ret 
}
&lt;/pre&gt;

&lt;p&gt;Lots of things going, that's for sure!&lt;/p&gt;

&lt;p&gt;One additional note about Visual Studio 2010 and the improved multi-platform targeting feature: if you try to use the dynamic keyword in a project that you have mistakenly selected as being targeted to .NET 3.5 or earlier, the code will not compile. This is okay and correct. However, if you later change the target platform to 4.0, your code should compile, but this might not always be the case.&lt;/p&gt;

&lt;p&gt;Visual Studio 2010 RTM version has only been available just over a week, so I haven't yet had the time to investigate this issue fully, but it appears that Visual Studio will not automatically reload the project, even though the warning message that pops up when you change the target framework says so. It appears (I might be incorrect here, though) that the project is reloaded automatically only if the project is the only project in the currently active solution. If there is more than project in the solution, the project will not be reloaded.&lt;/p&gt;

&lt;p&gt;In any case, if the project is not reloaded, the compiler will not be able to correctly compile (build) the project with the new .NET 4.0 and C# 4.0 language features. Thus it is important that you always make sure to reload (or close and re-open) the project if you need to change the target framework.&lt;/p&gt;</description>
      <pubDate>Wed, 21 Apr 2010 19:17:39 GMT</pubDate>
      <guid isPermaLink="false">54590e22-0ce2-456a-a52e-d74600776b5d</guid>
    </item>
    <item>
      <title>Silverlight 4 and Office 2010 are now ready</title>
      <link>http://www.silverlight.net/getstarted/</link>
      <description>&lt;p&gt;Late last week, Microsoft announced that two new products have become ready: firstly, Silverlight 4 became &lt;a href="http://www.silverlight.net/getstarted/"&gt;available in RTW&lt;/a&gt; (Release To Web) form (this happened just few days after Visual Studio 2010), and then Office 2010.&lt;/p&gt;

&lt;p&gt;As I write, Silverlight 4 can be downloaded and installed immediately (version 4.0.50401.0 is the latest one on Windows). Also Office 2010 has gone gold, i.e. is in RTM (Release To Manufacturing). The download should become available on MSDN any day now.&lt;/p&gt;

&lt;p&gt;To learn about the new features in these products, check out the page "&lt;a href="http://channel9.msdn.com/learn/courses/Silverlight4/Overview/Overview/"&gt;What's New In Silverlight 4&lt;/a&gt;" and also a &lt;a href="http://www.microsoft.com/showcase/en/us/details/6fc5abb1-d943-44ec-9b53-934e9b1cca0e"&gt;similar page for Office 2010&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 20 Apr 2010 19:21:54 GMT</pubDate>
      <guid isPermaLink="false">07214868-8f25-4295-9bdb-7938f4c655dc</guid>
    </item>
    <item>
      <title>Example code for using Task Parallel Library and PLINQ with Visual Studio 2010 RTM</title>
      <link>http://msdn.microsoft.com/en-us/library/dd460717.aspx</link>
      <description>&lt;p&gt;Parallel programming is an important part of the new feature set in Visual Studio 2010 / .NET Framework 4.0. Since Visual Studio 2010 became available in RTM version earlier this week, it's a good time to share code that uses &lt;a href="http://msdn.microsoft.com/en-us/library/dd460717.aspx"&gt;Task Parallel Library&lt;/a&gt; (TPL) and &lt;a href="http://msdn.microsoft.com/en-us/library/dd460688.aspx"&gt;PLINQ&lt;/a&gt; (Parallel LINQ) and make sure your code works with the RTM version of .NET 4.0.&lt;/p&gt;

&lt;p&gt;Here's some sample code on how to create tasks with the Task class:&lt;/p&gt;

&lt;pre&gt;
using System.Threading.Tasks;
...

// *** TASK PARALLEL LIBRARY DEMOS ***

private void button1_Click(object sender, EventArgs e)
{
    Task task = new Task(DoWork);
}

private void button2_Click(object sender, EventArgs e)
{
    object state = "ABC";
    Task task = new Task(DoWork2, state);
}

private void button3_Click(object sender, EventArgs e)
{
    int value = 123;
    Task&lt;int&gt; task = new Task&lt;int&gt;(Calculate, (object)value);
    task.Start();
    task.Wait();
    int timesTwo = task.Result;
}

private void DoWork()
{
    // do work here
}

private void DoWork2(object state)
{
    // do work here
}

private int Calculate(object state)
{
    // do work here
    return (int)state * 2;
}
&lt;/pre&gt;

&lt;p&gt;Then some demos using Parallel LINQ. The button6_click event demonstrates calculating prime numbers with multiple threads:&lt;/p&gt;

&lt;pre&gt;
private void button4_Click(object sender, EventArgs e)
{
  int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  int[] sums = new int[numbers.Length];

  // classic for loop implementation
  for (int i = 0; i &lt; numbers.Length; i++)
  {
      sums[i] = numbers[i] + numbers[i];
  }

  // parallel for loop implementation
  Parallel.For(0, numbers.Length, (i) =&gt;
  {
      sums[i] = numbers[i] + numbers[i];
  });
}

private void button5_Click(object sender, EventArgs e)
{
  // start two tasks in parallel
  Parallel.Invoke(
      DoWork,
      () =&gt; DoWork2("ABC"));
}

private void button6_Click(object sender, EventArgs e)
{
  IEnumerable&lt;int&gt; numbers = Enumerable.Range(1, 10000000);
  DateTime startTime = DateTime.Now;

  bool[] results = numbers.AsParallel().Select(
      num =&gt; IsPrime(num)).ToArray();

  DateTime endTime = DateTime.Now;
  MessageBox.Show("Operation took " +
      (endTime - startTime).TotalSeconds + " seconds.");
}

private bool IsPrime(int input)
{
  int sqrt = 1 + (int)System.Math.Sqrt(input);
  for (int i = 2; i &lt; sqrt; i++)
  {
      if (input % i == 0)
          return false;
  }
  return true;
}
&lt;/pre&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sun, 18 Apr 2010 05:55:54 GMT</pubDate>
      <guid isPermaLink="false">be8d621c-171b-4091-8f9c-4087a84076d6</guid>
    </item>
    <item>
      <title>New screencast about Silverlight 4 and WCF Data Services</title>
      <link>http://www.internet.com/Video/?bcpid=1431564240&amp;bclid=1433966034&amp;bctid=78512729001</link>
      <description>&lt;p&gt;I've recently focused on Silverlight 4 business application development, and have also authored a screencast showing a quick glimpse of Silverlight 4 development along with WCF Data services. The screencast is now &lt;a href="http://www.internet.com/Video/?bcpid=1431564240&amp;bclid=1433966034&amp;bctid=78512729001"&gt;available at Internet.com&lt;/a&gt; (the host of CodeGuru and Developer.com videos). Hope you like it.&lt;/p&gt;

&lt;p&gt;Remeber that Silverlight 4 should be ready any hour today, as the rumors are that the launch is today. Stay tuned!&lt;/p&gt;</description>
      <pubDate>Wed, 14 Apr 2010 19:32:45 GMT</pubDate>
      <guid isPermaLink="false">433c9441-fce8-4325-9fca-0fdff9027eba</guid>
    </item>
    <item>
      <title>Visual Studio 2010 and .NET Framework 4.0 launch</title>
      <link>http://www.microsoft.com/visualstudio/en-us/</link>
      <description>&lt;p&gt;Microsoft today launched the anticipated new development technologies: the &lt;a href="http://www.microsoft.com/visualstudio/en-us/"&gt;Visual Studio 2010&lt;/a&gt; development tool and the .NET Framework 4.0 application platform. This naturally includes new language versions, such as &lt;a href="http://msdn.microsoft.com/en-us/library/bb383815.aspx"&gt;version 4.0 of the C# language&lt;/a&gt; and new version of Visual Basic .NET. All technologies are available immediately, both as &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e2a1a098-995e-4468-816d-7fdbe0a64f38&amp;displaylang=en"&gt;trial versions&lt;/a&gt; and from MSDN downloads.&lt;/p&gt;

&lt;p&gt;Visual Studio 2010 and .NET 4.0 contain many important and interesting new features, including improved developer productivity, support for WPF based windows (including the code editor), easier parallel programming, ASP.NET development improvements, better SharePoint development, and much more. From Microsoft, there are several good blog posts that &lt;a href="http://www.hanselman.com/blog/VisualStudio2010Released.aspx"&gt;summarize the new features&lt;/a&gt;. Also, there's already &lt;a href="http://msdn.microsoft.com/en-us/library/ff602939.aspx"&gt;a list available&lt;/a&gt; of &lt;a href="http://msdn.microsoft.com/en-us/library/ee855831.aspx"&gt;what's breaking on C# 4.0&lt;/a&gt; and .NET 4.0.&lt;/p&gt;

&lt;p&gt;If you prefer to watch and listen more than read, then check out &lt;a href="http://msdn.microsoft.com/en-us/vstudio/ee958386.aspx"&gt;this video&lt;/a&gt; about some of the new features. The official list of new features is available &lt;a href="http://msdn.microsoft.com/en-us/library/bb386063.aspx"&gt;on MSDN documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Good going Microsoft!&lt;/p&gt;</description>
      <pubDate>Mon, 12 Apr 2010 18:36:57 GMT</pubDate>
      <guid isPermaLink="false">8edbc664-459e-474f-885e-6da15fa09a98</guid>
    </item>
    <item>
      <title>How to get started with Windows Phone 7 development?</title>
      <link>http://www.microsoft.com/express/Phone/</link>
      <description>&lt;p&gt;I've got many questions on the future of Windows Phone development now that Windows Phone 7 has been announced. Windows Phone is the successor to Windows Mobile 6.x, and the new release, scheduled to late 2010, will change many things in development. For instance, development will be done with Silverlight and XNA Studio, not with Windows Forms for Windows Mobile.&lt;/p&gt;

&lt;p&gt;If you are interested in the topic, then check out the new &lt;a href="http://www.microsoft.com/express/Phone/"&gt;web portal&lt;/a&gt; for Windows Phone 7 development. From there, you can download a CTP version of &lt;a href="http://www.microsoft.com/express/Downloads/"&gt;Visual Studio 2010 Express for Windows Phone&lt;/a&gt; (click to appropriate version on the left to see the Download button).&lt;/p&gt;

&lt;p&gt;I'm currently working on an article for the Finnish Prosessori magazine about this topic, so check your mail in the coming weeks.&lt;/p&gt;</description>
      <pubDate>Sat, 10 Apr 2010 06:22:41 GMT</pubDate>
      <guid isPermaLink="false">ae82960f-f0b7-442b-ac41-e7cd080d028c</guid>
    </item>
    <item>
      <title>Why development schedules are so hard to predict in the beginning?</title>
      <link>http://construx.com/Page.aspx?hid=1648</link>
      <description>&lt;p&gt;If you have worked in application development for any number of years, you've probably noticed that it is oftentimes very difficult to predict how long it will take to complete a given product/project. Especially when the project has just begun, the estimates can vary widely, especially if the project is about to take several months of more to complete.&lt;/p&gt;

&lt;p&gt;This problem has been naturally studied, and more than one study indicates exactly what can be felt empirically. Officially, this effect can be called the "cone of uncertainty", although other names have also been used. For instance, one &lt;a href="http://construx.com/Page.aspx?hid=1648"&gt;recent study&lt;/a&gt; is available here.&lt;/p&gt;

&lt;p&gt;This study indicates that in the beginning of requirements specification phase, the estimate of work required for a project can vary as much as 4 X. This means that the same project could be estimated to take two months, but also eight months. That's a large different, right?&lt;/p&gt;

&lt;p&gt;Indeed It is. As a professional in the development field, everyone should of course focus on creating better estimates. But why it is so hard to predict how long a project will take? Because there are too many moving parts, and also because most projects are unique in some respects. They might be using new technology, new tools, new development methodologies, or might address a completely new business need.&lt;/p&gt;

&lt;p&gt;How could you improve your predictions, then? Shortly put, the best way to do so is to specify the application in more detail. Of course, this will take time, but this time is wisely spent. It is foolish to think that by starting development as soon as possible will lead to projects that finish as fast as possible. If you are using agile methods in your development process, this should ring a bell: being agile does not mean that you rush into coding before you know what should be coded.&lt;/p&gt;

&lt;p&gt;From the tools side, you can use for example information from previous projects to better estimate how long the new project might take. For instance in Visual Studio Team System (or should we say Team Foundation Server nowadays), you can easily get reports of previous projects.&lt;/p&gt;</description>
      <pubDate>Wed, 07 Apr 2010 16:20:04 GMT</pubDate>
      <guid isPermaLink="false">46600cc2-23ed-4083-a004-77484dda45e5</guid>
    </item>
    <item>
      <title>New screencast published about ASP.NET application performance monitoring with IIS 7</title>
      <link>http://www.internet.com/player/index.php?bcpid=1431564240&amp;bclid=1433966034&amp;bctid=72441008001</link>
      <description>&lt;p&gt;Last month, I authored a quick screencast about using IIS 7's Failed Request Tracing feature to performance monitor ASP.NET web applications. Developer.com recently published this screecast, so I wanted to share the &lt;a href="http://www.internet.com/player/index.php?bcpid=1431564240&amp;bclid=1433966034&amp;bctid=72441008001"&gt;direct link&lt;/a&gt; with you.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sun, 04 Apr 2010 10:10:22 GMT</pubDate>
      <guid isPermaLink="false">a9e54d24-3633-480e-94bf-4790f74ebbba</guid>
    </item>
    <item>
      <title>Microsoft MVP award for another year!</title>
      <link>http://mvp.support.microsoft.com/</link>
      <description>&lt;p&gt;Happy news: Microsoft has awarded me with yet another year of the Microsoft &lt;a href="http://mvp.support.microsoft.com/"&gt;Most Valuable Professional&lt;/a&gt; (MVP) Award. I'm very happy to be on board for yet another year, and would like to thank everyone involved, including my MVP team leads and local Microsoft Finland DPE people!&lt;/p&gt;

&lt;p&gt;Stay tuned, then!&lt;/p&gt;</description>
      <pubDate>Thu, 01 Apr 2010 17:38:09 GMT</pubDate>
      <guid isPermaLink="false">9940ffa0-7f7a-45a3-8927-25f969a835fb</guid>
    </item>
    <item>
      <title>ADO.NET Entity Framework only works with SQL Server, or did it?</title>
      <link>http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx</link>
      <description>&lt;p&gt;Microsoft originally developed &lt;a href="http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx"&gt;Entity Framework&lt;/a&gt; so that .NET developers could easily create an object model around their SQL databases. However, Microsoft's own demos show only SQL Server along with Entity Framework (EF). Also the fact that when you by default are creating a database connection for EF, only SQL Server data sources are shown, can lead you think that EF is essentially SQL Server only.&lt;/p&gt;

&lt;p&gt;Personally, I've also noticed the same, but since I really haven't had the need to work with other databases than SQL Server lately, I haven't bothered to check the real situation: is EF compatible with other databases than just SQL Server? The answer is that yes, EF is compatible with other databases than just SQL Server, even though Microsoft would like you to think so.&lt;/p&gt;

&lt;p&gt;However, on MSDN Code Gallery, there exists a &lt;a href="http://code.msdn.microsoft.com/EFOracleProvider"&gt;sample Entity Framework provider for Oracle&lt;/a&gt;. Similarly, if you are working with Sybase, then there's also a &lt;a href="http://www.sybase.com/products/databasemanagement/advantagedatabaseserver/gettingstarted-netdev"&gt;driver available&lt;/a&gt; for you, too.&lt;/p&gt;

&lt;p&gt;Thus the real situation is this: you can use EF with any compatiable SQL database that has proper ADO.NET drivers available. But by default it happens that only SQL Server drivers come with the .NET Framework.&lt;/p&gt;</description>
      <pubDate>Wed, 31 Mar 2010 05:20:45 GMT</pubDate>
      <guid isPermaLink="false">bfb8e816-59f1-4d6a-aaf4-40a033ebf3fb</guid>
    </item>
    <item>
      <title>How Internet Explorer 8 determines the document mode</title>
      <link>http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx</link>
      <description>&lt;p&gt;Microsoft Internet Explorer is still a dominant web browser in many countries, and IE8 is a very common version. Thus, if you are developing web applications, it is important to understand how this browser determines the document mode of the (X)HTML the browser sees.&lt;/p&gt;

&lt;p&gt;Recently, Microsoft has published a nice &lt;a href="http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx"&gt;blog entry&lt;/a&gt; about the inner workings of this browser version. Of course, in the future, &lt;a href="http://ie.microsoft.com/testdrive/Default.html"&gt;Internet Explorer 9&lt;/a&gt; will support standards better, but it's still months away. Thus, IE8 will for a long time still be one of the most common browser brands and versions available.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Mon, 29 Mar 2010 06:18:59 GMT</pubDate>
      <guid isPermaLink="false">ecca862c-8984-4672-bdcb-3c50c70cf060</guid>
    </item>
    <item>
      <title>Deploying ASP.NET MVC applications that use the Microsoft ASP.NET Charting control</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;displaylang=en</link>
      <description>&lt;p&gt;Recently, I've been working in many ASP.NET MVC development projects, and I must say I enjoy working with the technology, especially now that ASP.NET MVC 2 is available (though v1.0 wasn't bad, on the contrary).&lt;/p&gt;

&lt;p&gt;If you have reporting needs in your MVC applications and want to show graphics/charts, then I can suggest using the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;displaylang=en"&gt;Microsoft Charting Control&lt;/a&gt;, available for Windows Forms (WinForms) and ASP.NET 3.5. However, if you use this charting control in your MVC applications, everything might work nicely on your development machine (for instance, a Windows 7 box) but fail mysteriously on a server system.&lt;/p&gt;

&lt;p&gt;For instance, you might get an error saying "A generic error occurred in GDI+" which is not at all helpful. However, the fact that the code happily works on your development system and fails on the production environment might lead you to think that something is missing. Personally, I haven't checked which GDI+ package installation would solve the problem, but there's a very quick remedy to this in code: simply don't save the generated image to the Response.OutputStream directly, but instead use a intermediate System.IO.MemoryStream first, and then write that MemoryStream to Response.OutputStream. After this, the problem should go away.&lt;/p&gt;

&lt;p&gt;Of course, other problems in your application might also generate this same error, but given the way this error occurs, I suggest testing this idea first. If this tip does not help, then check what else might be missing from your deployment.&lt;/p&gt;</description>
      <pubDate>Sat, 27 Mar 2010 15:45:55 GMT</pubDate>
      <guid isPermaLink="false">1463688a-3c6c-4f46-a25e-ee5ac987416e</guid>
    </item>
    <item>
      <title>Reserarch on distributed Scrum teams</title>
      <link>http://academic.research.microsoft.com/Paper/2433089.aspx?query=agile%20year%3e2005</link>
      <description>&lt;p&gt;Sometimes in the corporate development world, we are so focused on the tasks at hand and the forthcoming deadlines, that there isn't enough time for research. Luckily, more and more research material is available online, and Microsoft does provide a nice, free search engine for many academic sources of news and research. For one, there's &lt;a href="http://academic.research.microsoft.com/"&gt;Microsoft Academic Search&lt;/a&gt;, which I suggest you to take a look at, if you are not already familiar with the tool.&lt;/p&gt;

&lt;p&gt;Although much of the research isn't specifically for .NET developers, sometimes there are many gold nuggets to find. For instance, lately I found myself reading a study about distributed Scrum teams and their performance. The paper is titled "Distributed Scrum: Agile Project Management with Outsourced Development Teams", written by Jeff Sutherland et. al and &lt;a href="http://academic.research.microsoft.com/Paper/2433089.aspx?query=agile%20year%3e2005"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The paper is from 2007, and thus newish and relevant information for any team using Scrum and/or outsourced development. Check it out! Direct PDF link is &lt;a href="http://csdl2.computer.org/comp/proceedings/hicss/2007/2755/00/27550274a.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 26 Mar 2010 17:57:09 GMT</pubDate>
      <guid isPermaLink="false">af521385-c274-41df-85df-48a8eeec8730</guid>
    </item>
    <item>
      <title>Unity 2.0 Beta now available</title>
      <link>http://unity.codeplex.com/releases/view/42019</link>
      <description>&lt;p&gt;If you are following Microsoft Patterns &amp; Practices and are specifically interested in dependency injection (DI) containers, then there's good news: Microsoft's Unity 2.0 is soon here. Just few days ago, Microsoft announced the availability of a &lt;a href="http://unity.codeplex.com/releases/view/42019"&gt;beta 2 release of Unity&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Especially if you have used Unity before, then make sure you check out the latest release. It is available &lt;a href="http://unity.codeplex.com/releases/view/42019"&gt;at CodePlex&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 23 Mar 2010 19:49:11 GMT</pubDate>
      <guid isPermaLink="false">f87d4a67-b1e3-4d12-a4cd-ad483b0a0b7f</guid>
    </item>
    <item>
      <title>Two short articles in Tietokone magazine</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;The Finnish &lt;a href="http://www.tietokone.fi/"&gt;Tietokone&lt;/a&gt; magazine has published two of my short articles, one about adding web maps to your own web pages with Google Maps or Bing Maps, and another short article about the Google Chrome browser version 4.0.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Sun, 21 Mar 2010 17:55:51 GMT</pubDate>
      <guid isPermaLink="false">f0caa47e-f9e8-4eea-8f46-0fe83b1eb8e7</guid>
    </item>
    <item>
      <title>Windows 7's Windows XP Mode no longer requires hardware assisted virtualization to work</title>
      <link>http://www.microsoft.com/presspass/press/2010/mar10/03-18desktopvirtpr.mspx</link>
      <description>&lt;p&gt;Just few days ago, Microsoft &lt;a href="http://www.microsoft.com/presspass/press/2010/mar10/03-18desktopvirtpr.mspx"&gt;announced details&lt;/a&gt; about forth-coming service packs for Windows 7 and Windows Server 2008 R2. In addition to telling publicly about interesting features such as &lt;a href="http://blogs.technet.com/virtualization/archive/2010/03/18/dynamic-memory-coming-to-hyper-v.aspx"&gt;Dynamic Memory&lt;/a&gt; for Hyper-V virtualization and RemoteFX, Microsoft also announced that it's going to remove the requirement for hardware assisted virtualization in Windows 7's Windows XP Mode.&lt;/p&gt;

&lt;p&gt;Previously, Windows XP required hardware &lt;a href="http://www.intel.com/technology/virtualization/technology.htm?iid=tech_vt+tech"&gt;virtualization support&lt;/a&gt; on Intel's or AMD's processors, which required a relatively new PC or laptop to work. But with the new version of XP Mode, this restriction has been lifted, and thus probably every computer running Windows 7 should be able to run XP Mode, processing resources permitting.&lt;/p&gt;

&lt;p&gt;This should be great news to developers struggling with application compatibility and IT administrators and users looking for solutions.&lt;/p&gt;</description>
      <pubDate>Sat, 20 Mar 2010 06:24:48 GMT</pubDate>
      <guid isPermaLink="false">47dbb680-5313-45ec-98e9-f97ecd58427a</guid>
    </item>
    <item>
      <title>Good Silverlight 4 training material available</title>
      <link>http://www.silverlight.net/getstarted/silverlight-4/</link>
      <description>&lt;p&gt;Silverlight 4 is about to become ready soon, and just lately Microsoft has &lt;a href="http://www.silverlight.net/getstarted/silverlight-4/"&gt;made available&lt;/a&gt; the Release Candidate 1 (RC 1) version. This is a developer preview of the technology, and contains many interesting &lt;a href="http://ecn.channel9.msdn.com/o9/learn/Silverlight4/Labs/Overview/WhatsNewInSilverlight4.docx"&gt;new features&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The vendor has compiled a nice set of training material for Silverlight 4 RC. Available on &lt;a href="http://channel9.msdn.com/learn/courses/Silverlight4/"&gt;Channel 9&lt;/a&gt;, and if you are interested in the new release, be sure to check the training material available.&lt;/p&gt;

&lt;p&gt;Happy studying!&lt;/p&gt;</description>
      <pubDate>Wed, 17 Mar 2010 16:04:32 GMT</pubDate>
      <guid isPermaLink="false">f4653887-1d71-4b4f-ad5d-33b069b91cad</guid>
    </item>
    <item>
      <title>Using the ASP.NET 3.5 Chart control in MVC applications</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;DisplayLang=en</link>
      <description>&lt;p&gt;Microsoft has developed an ASP.NET 3.5 compatible charting control, which can also be used in ASP.NET MVC application. However, even after you install the control from the &lt;a href=" http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;DisplayLang=en"&gt;installation package&lt;/a&gt;, and it appears on the Visual Studio toolbox (after installing the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;displaylang=en"&gt;tooling support&lt;/a&gt;), you cannot directly use the control in MVC applications.&lt;/p&gt;

&lt;p&gt;If you try to use the control, you might get the error message "Error executing child request for ChartImg.axd". Luckily, this problem is very easy to solve by adding a single entry to your application's web.config file.&lt;/p&gt;

&lt;p&gt;Here's the row you need to add to the httpHandlers section (splitted into multiple lines for readability):&lt;/p&gt;

&lt;pre&gt;
&amp;lt;add path="ChartImg.axd" verb="GET,HEAD,POST"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
System.Web.DataVisualization, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" /&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Once you have added this line to the config file, the control will start to work properly.&lt;/p&gt;</description>
      <pubDate>Mon, 15 Mar 2010 04:13:51 GMT</pubDate>
      <guid isPermaLink="false">bd1f18e7-4436-4095-8070-5d8883abd7e6</guid>
    </item>
    <item>
      <title>New article about Windows 7 SLP available</title>
      <link>http://www.codeguru.com/csharp/.net/net_general/article.php/c16973</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest article about developing application for Windows 7. This time, my article talks about Windows 7 Sensor and Location Platform (SLP), and the article is titled accordingly: "&lt;a href="http://www.codeguru.com/csharp/.net/net_general/article.php/c16973"&gt;Using the Windows 7 Sensor and Location Platform from C#&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sat, 13 Mar 2010 06:22:10 GMT</pubDate>
      <guid isPermaLink="false">a64c17b5-ffd0-4494-b36d-3ef48ff9d528</guid>
    </item>
    <item>
      <title>ASP.NET MVC 2.0 is now ready</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=c9ba1fe1-3ba8-439a-9e21-def90a8615a9&amp;displaylang=en</link>
      <description>&lt;p&gt;The long-waited new release of ASP.NET MVC 2.0 is now available for download. Microsoft today announced that the RTM (or, should we say RTW) version of MVC 2 is ready. You can download the latest release for both Visual Studio 2008 and Visual Studio 2010 &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c9ba1fe1-3ba8-439a-9e21-def90a8615a9&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As has become the custom, Scott Guthrie has a &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx"&gt;blog post&lt;/a&gt; about this new release. This post lists the following new features for ASP.NET MVC 2:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;New Strongly Typed HTML Helpers&lt;/li&gt;
  &lt;li&gt;Enhanced Model Validation support across both server and client&lt;/li&gt;
  &lt;li&gt;Auto-Scaffold UI Helpers with Template Customization&lt;/li&gt;
  &lt;li&gt;Support for splitting up large applications into areas&lt;/li&gt;
  &lt;li&gt;Asynchronous Controllers support that enables long running tasks in parallel&lt;/li&gt;
  &lt;li&gt;Support for rendering sub-sections of a page/site using Html.RenderAction&lt;/li&gt;
  &lt;li&gt;Lots of new helper functions, utilities, and API enhancements&lt;/li&gt;
  &lt;li&gt;Improved Visual Studio tooling support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;</description>
      <pubDate>Fri, 12 Mar 2010 17:55:02 GMT</pubDate>
      <guid isPermaLink="false">420a85cb-94f8-4416-8731-5f69a886b70f</guid>
    </item>
    <item>
      <title>Entity Data Models and different SQL Server versions</title>
      <link>http://msdn.microsoft.com/en-us/library/bb677335.aspx</link>
      <description>&lt;p&gt;If you are working with Visual Studio 2008 and Entity Framework that came with .NET 3.5, then you might have noticed that your Entity Data Models (EDMs) can be quite picky about the SQL Server version you are using.&lt;/p&gt;

&lt;p&gt;More specifically, if your development SQL Server version is 2008 and your production SQL Server version is the older 2005, then you might get database errors when you deploy your application into production. There can be different error messages depending on the situation, but common ones include:&lt;/p&gt;

&lt;pre&gt;
The version of SQL Server in use does not support datatype 'datetime2'.

The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.

Type datetime2 is not a defined system type.
&lt;/pre&gt;

&lt;p&gt;That is, all these error messages seem to refer to the data type "&lt;a href="http://msdn.microsoft.com/en-us/library/bb677335.aspx"&gt;datetime2&lt;/a&gt;". You can search your SQL table definitions, code and scripts high and low, but you will only find references to "datetime". What's wrong?&lt;/p&gt;

&lt;p&gt;These error can occur if you create your data model from a SQL Server 2008 database, but use version 2005 in production. To fix the problem, you will need to manually edit the XML-based .edmx file using a suitable editor (Visual Studio will also do fine, if you right-click the .edmx file in Solution Explorer and choose Open With, and then select "XML Editor").&lt;/p&gt;

&lt;p&gt;The file usually begins as follows:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx"&amp;gt;
  &amp;lt;!-- EF Runtime content --&amp;gt;
  &amp;lt;edmx:Runtime&amp;gt;
    &amp;lt;!-- SSDL content --&amp;gt;
    &amp;lt;edmx:StorageModels&amp;gt;
      &amp;lt;Schema Namespace="NorthwindModel.Store" Alias="Self"
       Provider="System.Data.SqlClient" ProviderManifestToken="2008" ...p
&lt;/pre&gt;

&lt;p&gt;Notice the Schema element and its ProviderManifestToken attribute. To fix the problem, change the attribute value to "2005", rebuild your application, deploy and test. The problem should have disappeared.&lt;/p&gt;

&lt;p&gt;The only thing to remember is that if you need to recreate your model (such as to reflect latest changes to the database structure), you will need to again edit the file manually.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Mar 2010 18:19:12 GMT</pubDate>
      <guid isPermaLink="false">56e61494-5c59-4a80-9dfc-114cf98dcf48</guid>
    </item>
    <item>
      <title>Microsoft TechDays 2010 next week</title>
      <link>http://www.microsoft.com/finland/techdays/techdays2010/</link>
      <description>&lt;p&gt;Microsoft's yearly technical event for IT professionals and developers is again here. Next week, TechDays 2010 will begin, and host around 1400 attendees. The program is &lt;a href="http://www.microsoft.com/finland/techdays/techdays2010/"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'm also having to sessions there; this time, I'm going to talk about WPF and database applications (think line-of-business) and the new parallelism features in .NET 4.0, namely Task Parallel Library (TPL) and PLINQ.&lt;/p&gt;

&lt;p&gt;Welcome, and see you at TechDays in the Helsinki Fair Center!&lt;/p&gt;</description>
      <pubDate>Sun, 07 Mar 2010 05:30:49 GMT</pubDate>
      <guid isPermaLink="false">54aeba1d-f644-45bd-bb06-766f77c6e704</guid>
    </item>
    <item>
      <title>Modal dialogs in web applications with script: remember the usability</title>
      <link>http://misfitgeek.com/blog/aspnet/implementing-a-jquery-modal-window-in-asp-net/</link>
      <description>&lt;p&gt;Nowadays, there's tendency to create web applications that closely mimic the user interface conventions used already over 20 years in desktop applications, for instance in Windows. This is well and good, but often it seems the excitement of using new technology overrides thinking of the user interface and how it is used.&lt;/p&gt;

&lt;p&gt;Say that you need to &lt;a href="http://misfitgeek.com/blog/aspnet/implementing-a-jquery-modal-window-in-asp-net/"&gt;create a modal dialog box&lt;/a&gt; in your web applications. For instance, it might be photo editing application where the user can use such a dialog box to enter a picture caption. An example is &lt;a href="http://misfitgeek.com/blog/aspnet/implementing-a-jquery-modal-window-in-asp-net/"&gt;shown here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Yes, the example I pointed to is just an example. But it shows how easy it is to slip from the usability of applications: how would you cancel this dialog box if there is no Cancel button? By pressing Esc? Keyboard isn't probably enabled. Or, should you click outside the box? If you had written text, but accidentally clicked outside the box, would your changes be lost. In a word: frustrating.&lt;/p&gt;

&lt;p&gt;The bottom line: think before you code. This applies to all kinds of applications, not just desktop, web or mobile. Using the latest technology isn't an excuse for bad UIs.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Mar 2010 18:36:53 GMT</pubDate>
      <guid isPermaLink="false">da8870c0-e6b1-4b9b-a205-7572101ece09</guid>
    </item>
    <item>
      <title>New article published at CodeGuru.com</title>
      <link>http://www.codeguru.com/csharp/.net/article.php/c16921</link>
      <description>&lt;p&gt;With Windows 7, the number of 64-bit Windows installations has really started to grow. What does this mean to .NET developers? CodeGuru.com has published my latest article on the topic, titled "&lt;a href=""&gt;Understanding .NET application options for 32 and 64-bit systems&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;The article talks about build platform targets, memory management, and more. I hope you enjoy it!&lt;/p&gt;</description>
      <pubDate>Tue, 02 Mar 2010 19:06:28 GMT</pubDate>
      <guid isPermaLink="false">41766161-1e2d-408e-83c8-2918ac3d789d</guid>
    </item>
    <item>
      <title>New feature in Visual Studio 2010: local database caching</title>
      <link>http://msdn.microsoft.com/en-us/library/cc761546.aspx</link>
      <description>&lt;p&gt;If you are using Visual Studio 2010 already, you might have noticed a new feature when configuring your data sets using the Data Source Configuration Wizard: "&lt;a href="http://msdn.microsoft.com/en-us/library/cc761546.aspx"&gt;Enable local database caching&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;What does this new option provide? Shortly put, if you have an SQL Server installation on the network, but your application is a so-called occasionally connected one, then the network connection might not be available at all times.&lt;/p&gt;

&lt;p&gt;In such situations, the local database caching feature will allow you to work normally with the application, but instead of using the network SQL Server, a local SQL Server embedded installation will be used. Then, once the network connection is again available, then data can be synchronized to the network database server.&lt;/p&gt;

&lt;p&gt;Sounds useful? It is.&lt;/p&gt;</description>
      <pubDate>Sun, 28 Feb 2010 18:57:39 GMT</pubDate>
      <guid isPermaLink="false">e91f5c3d-4b56-4c37-9db0-ae18cb1c5377</guid>
    </item>
    <item>
      <title>New certification level: Microsoft Certified Master (MCM)</title>
      <link>http://www.microsoft.com/learning/en/us/certification/master.aspx</link>
      <description>&lt;p&gt;Microsoft is renewing its certification levels: now there a new title for senior professionals named Microsoft Certified Master (MCM). Currently, you can become a MCM on select server products, including SQL Server 2008 and Exchange Server 2007.&lt;/p&gt;

&lt;p&gt;For more details, check out the &lt;a href="http://www.microsoft.com/learning/en/us/certification/master.aspx"&gt;Microsoft Certified Master Program&lt;/a&gt; page.&lt;/p&gt;</description>
      <pubDate>Thu, 25 Feb 2010 17:01:07 GMT</pubDate>
      <guid isPermaLink="false">7953a011-b880-42b1-8e0b-95b929767802</guid>
    </item>
    <item>
      <title>Outlook PST file format is now public</title>
      <link>http://msdn.microsoft.com/en-us/library/ff385210.aspx</link>
      <description>&lt;p&gt;Just few days ago, Microsoft published publicly the &lt;a href="http://msdn.microsoft.com/en-us/library/ff385210.aspx"&gt;file format of Outlook's PST&lt;/a&gt; (Personal Folders) files.&lt;/p&gt;

&lt;p&gt;The documentation is over 200 pages, and can be browsed either online, or downloaded as a &lt;a href="http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/%5BMS-PST%5D.pdf"&gt;single PDF file&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 22 Feb 2010 16:50:40 GMT</pubDate>
      <guid isPermaLink="false">8890e0c6-8ae2-4abe-b7ae-38b19d4c375c</guid>
    </item>
    <item>
      <title>Now available: Agile plus Security Development Lifecycle Process Template for VSTS 2008</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=c4b44860-cfba-494a-ba43-13c4aecf86af&amp;displaylang=en</link>
      <description>&lt;p&gt;If you are using Visual Studio Team System and are interested in the Agile methodologies, then there's great news: Microsoft has published an Agile process template for Team System 2008.&lt;/p&gt;

&lt;p&gt;Named "MSF-Agile plus Security Development Lifecycle Process Template" or simply MSF-A+SDL brings Agile process guidance to the product. Also, security is a key part, as in Microsoft's own Security Development Lifecycle (SDL).&lt;/p&gt;

&lt;p&gt;To download the process template, visit &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c4b44860-cfba-494a-ba43-13c4aecf86af&amp;displaylang=en"&gt;Microsoft Downloads&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 20 Feb 2010 05:19:40 GMT</pubDate>
      <guid isPermaLink="false">97167303-b242-4d0b-9c0e-739eca859c2a</guid>
    </item>
    <item>
      <title>New article about ASP.NET MVC 2.0 available</title>
      <link>http://www.codeguru.com/cpp/cpp/cpp_managed/asp/article.php/c16783/</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest article about ASP.NET MVC 2.0's new features. The article is titled simply "&lt;a href="http://www.codeguru.com/cpp/cpp/cpp_managed/asp/article.php/c16783/"&gt;What's New in ASP.NET MVC 2.0&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Enjoy, and remember to send me an e-mail telling what you think! Thanks!&lt;/p&gt;</description>
      <pubDate>Wed, 17 Feb 2010 17:29:36 GMT</pubDate>
      <guid isPermaLink="false">c9fe63e5-3cdb-4505-891b-62d0707db920</guid>
    </item>
    <item>
      <title>Windows Mobile 7 announced</title>
      <link>http://www.microsoft.com/windowsmobile/</link>
      <description>&lt;p&gt;Microsoft today announced Windows Mobile 7 at the Mobile World Congress (MWC) fair in Barcelona, Spain.&lt;/p&gt;

&lt;p&gt;New features in Windows Mobile 7 include (better) multi-touch support, Bing search engine integration and more. For more information, check out &lt;a href="http://www.microsoft.com/windowsmobile/"&gt;Microsoft.com/WindowsMobile&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 15 Feb 2010 16:12:09 GMT</pubDate>
      <guid isPermaLink="false">6e0e538d-c244-4e23-9c4b-232a343062e0</guid>
    </item>
    <item>
      <title>A book about software maintenance</title>
      <link>http://my.safaribooksonline.com/0131177052</link>
      <description>&lt;p&gt;My earlier post in late January about software maintenance has received many comments, and some have asked where one could find more information. The subject matter has been studied in many places, and one example of good source of information is the book titled "&lt;a href="http://my.safaribooksonline.com/0131177052"&gt;Working Effectively with Legacy Code&lt;/a&gt;" by Michael Feathers (Safari Books, 2004).&lt;/p&gt;

&lt;p&gt;If you are interested in the subject, this book is recommended reading!&lt;/p&gt;</description>
      <pubDate>Fri, 12 Feb 2010 17:13:08 GMT</pubDate>
      <guid isPermaLink="false">048267f2-d204-4e11-a5d0-192b36fbca41</guid>
    </item>
    <item>
      <title>Visual Studio 2010 and .NET 4.0 RC available</title>
      <link>http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx</link>
      <description>&lt;p&gt;Microsoft earlier today announced the availability of &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;Visual Studio 2010 Release Candidate&lt;/a&gt; (RC). This is the first major update to the product since the public Beta 2. This new RC version contains the latest bug fixes and features, but also improvements especially in the performance and memory consumption of the product. Both of these are something that have caused lots of discussion since the release of the Beta 2 release, as for example the new WPF based code editor is unique to the 2010 version of the product, and thus something developers have not used before.&lt;/p&gt;

&lt;p&gt;The first release candidate can be downloaded here. Scott Guthrie also has a &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/02/08/vs-2010-net-4-release-candidate.aspx"&gt;blog post&lt;/a&gt; summarizing the new bits.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Feb 2010 19:13:15 GMT</pubDate>
      <guid isPermaLink="false">eb7504d6-35e8-416f-a97b-0f8032845860</guid>
    </item>
    <item>
      <title>Learn about .NET Managed Debugging Assistants</title>
      <link>http://msdn.microsoft.com/en-us/library/d21c150d.aspx</link>
      <description>&lt;p&gt;Are writing .NET applications that seem to have tough problems, especially when calling unmanaged code components? In these situations, Managed Debugging Assistants or MDAs might help you. MDAs can help you learn what's going on internally inside the CLR (Common Language Runtime), which is also something you cannot directly observer when debugging your .NET applications inside Visual Studio.&lt;/p&gt;

&lt;p&gt;If you are interested in learning more about MDAs and how they can help you in debugging, check out a nice MSDN article titled "&lt;a href=http://msdn.microsoft.com/en-us/library/d21c150d.aspx&gt;Diagnosing Errors with Managed Debugging Assistants&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</description>
      <pubDate>Mon, 08 Feb 2010 18:36:06 GMT</pubDate>
      <guid isPermaLink="false">e552512e-2311-4a02-85a6-70ff3a14de3d</guid>
    </item>
    <item>
      <title>ASP.NET MVC 2 Release Candidate 2 now available</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=7aba081a-19b9-44c4-a247-3882c8f749e3&amp;displaylang=en</link>
      <description>&lt;p&gt;If you are using ASP.NET to develop web applications, then you have surely heard about ASP.NET MVC, the new way to write web applications on the .NET platform. Microsoft yesterday announced the availability of the first release candidate level release of ASP.NET MVC 2. The update is publicly available, and can be downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7aba081a-19b9-44c4-a247-3882c8f749e3&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;New features include model-based validation and templated Html.EditorFor() and Html.DisplayFor() helper methods, &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/02/05/asp-net-mvc-2-release-candidate-2-now-available.aspx"&gt;among others&lt;/a&gt;. The new release works with Visual Studio 2008, users of Visual Studio 2010 must wait a bit first.&lt;/p&gt;</description>
      <pubDate>Fri, 05 Feb 2010 17:01:25 GMT</pubDate>
      <guid isPermaLink="false">d5b1d677-0c7e-48a3-b16a-b0c8b932e054</guid>
    </item>
    <item>
      <title>Differences between SQL Server editions</title>
      <link>http://msdn.microsoft.com/en-us/library/ms143506.aspx</link>
      <description>&lt;p&gt;Sometimes, developers ask me the difference between the different editions of Microsoft SQL Server like Standard, Workgroup, Enterprise, and so on.&lt;/p&gt;

&lt;p&gt;Basically, the differences are in the advanced features (though most small to medium companies are most probably in very good hands with the Standard edition), memory, user and database size limits, licensing, price, and the number of physical processors supported.&lt;/p&gt;

&lt;p&gt;However, although such differences can be key sometimes, it must be said that finding information about the differences is indeed somewhat difficult. The information is on MSDN under SQL Server's Books Online, and the main purposes of this blog post is especially this: to share the direct link to the page detailing the differences.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Thu, 04 Feb 2010 18:12:56 GMT</pubDate>
      <guid isPermaLink="false">f03e4126-1363-4a26-8d16-492a87e3edd4</guid>
    </item>
    <item>
      <title>How are HTML editor controls implemented in web pages?</title>
      <link>http://msdn.microsoft.com/en-us/library/ms533720(VS.85).aspx</link>
      <description>&lt;p&gt;Almost every web mail provider supplies user with an HTML editor, with which you can author your e-mail messages by choosing the font, color, and so forth. You might also be aware of many third-part components implementing such editors, for example from big-name vendors such as DevExpress, Telerik and ComponentArt, to name a few.&lt;/p&gt;

&lt;p&gt;But how are these editors actually implemented? If you wanted to have a similar editor on your own ASP.NET web applications, how would you start? The answer lies in a special HTML DOM (DHTML) property called "designMode", which is documented on &lt;a href="http://msdn.microsoft.com/en-us/library/ms533720(VS.85).aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This property can be set to "On", after which the specified element can be edited directly in the browser. The commercial (or open-source, as you prefer) components simply have additional buttons on top to specify fonts, formatting, and the like with a nice, appealing look. But essentially, it all starts designMode property.&lt;/p&gt;</description>
      <pubDate>Tue, 02 Feb 2010 16:37:27 GMT</pubDate>
      <guid isPermaLink="false">5c1974a8-c658-4ea5-ba53-12ad60fb0d9e</guid>
    </item>
    <item>
      <title>Encrypting and obfuscating .NET assemblies</title>
      <link>http://www.ssware.com/cryptoobfuscator/obfuscator-net.htm</link>
      <description>&lt;p&gt;Earlier this week, I learned about a new product called &lt;a href="http://www.ssware.com/cryptoobfuscator/obfuscator-net.htm"&gt;Crypto Obfuscator For .Net 2010&lt;/a&gt; that is able to encrypt and obfuscate .NET assemblies (.exe and .dll files).&lt;/p&gt;

&lt;p&gt;I haven't yet tested the product, but I'd say it surpasses the simple obfuscator that comes with Visual Studio. Check the product out if obfuscation is something you'd like to do.&lt;/p&gt;</description>
      <pubDate>Sun, 31 Jan 2010 08:41:09 GMT</pubDate>
      <guid isPermaLink="false">05c16269-0de3-486d-bf35-fd59f24f74c9</guid>
    </item>
    <item>
      <title>.NET 4.0 information: Entity Framework 4 and caching in ASP.NET 4</title>
      <link>http://blogs.msdn.com/somasegar/archive/2010/01/11/entity-framework-in-net-4.aspx</link>
      <description>&lt;p&gt;Visual Studio 2010 and .NET 4.0 are being developed as we speak, and today I wanted to share to quick links to information about new features in these coming releases.&lt;/p&gt;

&lt;p&gt;First, check out the post about &lt;a href="http://blogs.msdn.com/somasegar/archive/2010/01/11/entity-framework-in-net-4.aspx"&gt;Entity Framework in .NET 4&lt;/a&gt;. Secondly, check out what is being said about &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-2010-and-net-4-0-series.aspx"&gt;Extensible Output Caching with ASP.NET 4&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Sat, 30 Jan 2010 15:28:33 GMT</pubDate>
      <guid isPermaLink="false">5ae8d1cc-20b7-4faa-92fa-b006c0bec6ae</guid>
    </item>
    <item>
      <title>Writing software that is still maintainable in 2020</title>
      <link></link>
      <description>&lt;p&gt;It's now a new decade, and suddenly everything written, designed or programmed in 2002 (let alone in 1992) looks old, rusty, and maybe not up to today's standards. If a software written in 2002 fails, developers have the tendency to say, "Yeah, but it's almost ten years old now." But once 2020 is here, we might feel exactly the same about software we write with latest standards of today.&lt;/p&gt;

&lt;p&gt;Still, lots of software that we write today, will be in production in ten years. In fact, lots of software written in 2002 will be in production, too. And maybe even code from the 1990s (yikes).&lt;/p&gt;

&lt;p&gt;A little forethought leads us to ask the question: how could we write software that can meet the requirements, operate and still be maintainable in ten years or more? What are those design principles that avoid developers to escape that dreaded maintenance nightmare old code often causes?&lt;/p&gt;

&lt;p&gt;Of course, this is a much broader topic than can be discussed in a single blog post, but I wanted to list four choices that in my opinion lead to applications that stand the test of time, are maintainable, and have an upgrade path. These are:&lt;/p&gt;

&lt;p&gt;1. Tools, languages and platforms come and go. Choosing a programming language, development IDE and even the underlying operating system/platform is fundamental choice that affects the resulting application in many ways. However, no tool, language or platform is immortal. Visual Studio, .NET and C# might be &lt;em&gt;the choice&lt;/em&gt; of today, but how about in 10 years? The bottom line: choose wisely. A broadly-adopted language/tool/platform is often a safe choice. You might lose a bit in the cutting-edge productivity, but in the long run, you usually gain.&lt;/p&gt;

&lt;p&gt;2. Focus on a loosely-coupled architecture that allows change. There are two important words to note: loosely-coupled and architecture. By loosely-coupled I mean applications that take the possibility of change to the heart. Just like tools and languages can change, so can databases, patterns and user management, for instance. Instead of tightly-coupling everything into a big snowball that is impossible to stop once rolling down the hill, focus on lightweight parts, that can be changes almost at will. Naturally, &lt;em&gt;some&lt;/em&gt; things need to stay fixed, but many parts of the application should be switchable to something else.&lt;/p&gt;

&lt;p&gt;The other word was architecture. Yes, your application needs an architecture,  and it's better to have one that works. As well as on the coding level, keep in mind the possibility of change on the architecture level, too.&lt;/p&gt;

&lt;p&gt;3. Keep things simple. We developers could talk day-in day-out about the best programming language, features thereof, ingenious ways to solve a problem, and so on. But in the end, maintainable code is often about simplicity. Often those who are assigned the tasks of maintaining code are not those who wrote it in the first place. Thus, the original developer's logic might not be immediately clear to you, especially if there is no documentation (how often do you see a coding project with too much documentation?). Although it is indeed nice to prove your technical ability with clever coding tricks, basic code is often the best when it comes to understanding it. Because if you don't understand the code, it will be difficult to maintain.&lt;/p&gt;

&lt;p&gt;4. Document and record the expectations. Yes, documentation is often the last step in a development project, but this need not be the case. In addition to clear documentation (especially, remember to write down &lt;em&gt;why&lt;/em&gt; something was done, instead of just how), make sure you record in some way or other, the expected results of your applications input and output. Unit tests are a great and modern way to do this, but the problem is that unit tests are often related to the tools you use. It's probably also worthwhile to record the broad expectations on paper documentation as well.&lt;/p&gt;

&lt;p&gt;With these four tips, I believe many applications would become more robust to the changes that the day after tomorrow mandates. If you are already using all of these techniques in your own development projects, then great! In my opinion, you're all set to the new decade!&lt;/p&gt;

&lt;p&gt;PS. In the business world, performance is often evaluated with a so-called scorecard (in good and bad). A software audit could create a similar "scorecard" on software future-proofness. Stay tuned for more ideas about this later.&lt;/p&gt;</description>
      <pubDate>Wed, 27 Jan 2010 16:05:20 GMT</pubDate>
      <guid isPermaLink="false">1a409937-f528-4a0a-84be-3828eb2bd552</guid>
    </item>
    <item>
      <title>Two new articles in Finnish Prosessori magazine</title>
      <link>http://www.prosessori.fi/</link>
      <description>&lt;p&gt;The &lt;a href="http://www.prosessori.fi/"&gt;Prosessori magazine&lt;/a&gt; here in Finland has published two of my articles, one column about embedded Windows versions and another, a feature article about Visual Studio 2010 Beta 2. Both articles are one-pagers, and are titled "Visual Studio menee pilveen" and Sulautetut hyppäävät Vistan ohi suoraan Seiskaan".&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Mon, 25 Jan 2010 17:12:09 GMT</pubDate>
      <guid isPermaLink="false">ac5fea1e-76d9-4344-a919-84f50a2b6bca</guid>
    </item>
    <item>
      <title>Updating Twitter feeds from C#/.NET</title>
      <link>http://apiwiki.twitter.com/</link>
      <description>&lt;p&gt;Especially in the U.S., Twitter is a popular microblogging platform. If you are used Twitter already, chances are that you are using some third-party application to update your status on your Twitter account. And if you're a developer like me, then the question of updating Twitter tweets from your own .NET application might arise.&lt;/p&gt;

&lt;p&gt;Twitter itself contains a nice set of &lt;a href="http://apiwiki.twitter.com/"&gt;developer documentation&lt;/a&gt;, which points to a set of third-party libraries that can update Twitter feeds. For .NET developers, some of the most popular ones include &lt;a href="http://tweetsharp.com/"&gt;TweetSharp&lt;/a&gt;, &lt;a href="http://code.google.com/p/twitterizer/"&gt;Twitterizer&lt;/a&gt; and &lt;a href="http://devblog.yedda.com/index.php/twitter-c-library/"&gt;Yedda&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you want to update Twitter feeds from your C# code, you could start with these libraries. The other alternative is to write everything from scratch. For that, check out the &lt;a href="http://apiwiki.twitter.com/"&gt;API specifications&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sun, 24 Jan 2010 06:28:45 GMT</pubDate>
      <guid isPermaLink="false">c84b0f26-6aac-4001-8c4b-4fb9c8fd642b</guid>
    </item>
    <item>
      <title>What is Dependency Injection (DI), and why should you care?</title>
      <link>http://msdn.microsoft.com/en-us/library/cc707845.aspx</link>
      <description>&lt;p&gt;For a long time, unit testing software applications was something that only those interested in latest trends or academia did. Today, unit testing can be said of as being a mainstream technology, and even the smallest ISVs are focusing on it. For .NET developers, both Visual Studio 2008 and 2010 have great support for unit testing right out of the box, if you are using the Professional editions or above.&lt;/p&gt;

&lt;p&gt;In simple terms, unit tests can be thought of as a safeguard against future code changes. Often as projects become larger, the fear of change can affect future enhancement possibilities, because developers are afraid to break something that already worked. Unit tests can lessen this fear.&lt;/p&gt;

&lt;p&gt;Now, unit tests cannot be something that you glue in later once you are done with your coding. Instead, you should plan for testability while writing your code. On the other extreme, the TDD (test-driven development) writes unit tests even before the actual code. In any case, you will need to write code and use architectures that help in achieving your goal.&lt;/p&gt;

&lt;p&gt;One of the coding-side enablers in testability is Dependency Injection or DI. You might have heard the term, and maybe even have used it even if you are not aware of the term. The basic idea of Dependency Injection is that you should write code that is loosely-coupled, and objects should not expect specific object types to communicate with each other. Instead, you should interfaces for more generic usability.&lt;/p&gt;

&lt;p&gt;This generic model is very important so that you can use &lt;em&gt;mock objects&lt;/em&gt; to help in the testing in place of real object types that can be difficult to automate and/or test in tandem. Wikipedia for instance has an article about &lt;a href="http://en.wikipedia.org/wiki/Dependency_Injection"&gt;Dependency Injection&lt;/a&gt;, and so does &lt;a href="http://msdn.microsoft.com/en-us/library/cc707845.aspx"&gt;MSDN Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In addition to the concept of Dependency Injection, there are many ready-made frameworks for C# and .NET developers that can be used. Three of the popular ones include &lt;a href="http://msdn.microsoft.com/en-us/library/dd203101.aspx"&gt;Unity&lt;/a&gt;, &lt;a href="http://www.springframework.net/"&gt;Spring.NET&lt;/a&gt; and to certain extent &lt;a href="http://www.codeplex.com/MEF/"&gt;Managed Extensibility Framework&lt;/a&gt; or MEF.&lt;/p&gt;

&lt;p&gt;If you are interested in code testability, but are not yet familiar with the concept of DI, now it's a good time to start learning. Lots of material is already available, so take use of it!&lt;/p&gt;</description>
      <pubDate>Fri, 22 Jan 2010 13:16:33 GMT</pubDate>
      <guid isPermaLink="false">ff8a928d-8205-4901-aa70-d135a30c8e0a</guid>
    </item>
    <item>
      <title>Installing applications remotely on a Windows Server 2008 R2 server</title>
      <link>http://support.microsoft.com/kb/927063</link>
      <description>&lt;p&gt;Recently, I needed to set up a 64-bit Windows Server 2008 R2 server from scratch. Installing Windows is nowadays very easy, and doesn't require many steps. Basically, it's just a matter of putting the DVD into the drive, booting, answering a few questions, and then taking a break/nap/C64 emulator session/watercooler chat/cup of coffee for about 20 minutes.&lt;/p&gt;

&lt;p&gt;Once the setup is done, the usual next step is to configure few details, enable some roles such as Hyper-V and IIS 7, and then proceed to install applications. If you are like me, you are probably going to use a remote desktop connection to manage your server once you connect it to the network. Since you might not have a suitable file share set up at this point, you might do what I did: enable the remote server session to access local drives from the host computing. This way, you will get access to the installation files from the host PC (the one next to which you are sitting), and then see those files as a network share or drive on the server machine.&lt;/p&gt;

&lt;p&gt;All this is very simple to set up (go to the Remote Desktop Connection utility's Local Resources tab, and select Local devices and resources). But, if you try to launch a setup application from the TSCLIENT share, you might get the following Windows Installer message:&lt;/p&gt;

&lt;pre&gt;
[Window Title]
Windows Installer

[Main Instruction]
The Windows Installer does not permit installation from a Remote Desktop Connection.

[OK]
&lt;/pre&gt;

&lt;p&gt;This happens because Windows Installer does not support installing from the "fake" network share created by the remote desktop client (mstsc.exe). A Microsoft &lt;a href="http://support.microsoft.com/kb/927063"&gt;Knowledge Base article 927063&lt;/a&gt; talks about this error, but offers in my opinion somewhat complex solutions.&lt;/p&gt;

&lt;p&gt;The easy solution: simply copy your installation file (hopefully it isn't overly large!) onto the desktop (using the remote desktop network share; this works well) and then install from the desktop.&lt;/p&gt;

&lt;p&gt;Problem solved!&lt;/p&gt;</description>
      <pubDate>Mon, 18 Jan 2010 18:42:40 GMT</pubDate>
      <guid isPermaLink="false">87939a29-ba35-4e98-99af-094c31d9276d</guid>
    </item>
    <item>
      <title>Visual Studio 2010 and .NET 4.0 will launch on April 12th</title>
      <link>http://blogs.msdn.com/robcaron/archive/2010/01/13/9948172.aspx</link>
      <description>&lt;p&gt;New information about Visual Studio 2010 and .NET Framework 4.0: these two will launch on April 12th. So, not a long time to wait, it seems. But a Release Candidate version must come first.&lt;/p&gt;

&lt;p&gt;The original source is an &lt;a href="http://blogs.msdn.com/robcaron/archive/2010/01/13/9948172.aspx"&gt;MSDN blog post&lt;/a&gt; by Ron Caron.&lt;/p&gt;</description>
      <pubDate>Sat, 16 Jan 2010 16:16:11 GMT</pubDate>
      <guid isPermaLink="false">e582344a-54eb-4859-b0f9-2ea2b00cecca</guid>
    </item>
    <item>
      <title>A good list of Windows 7 compatible applications</title>
      <link>http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=890e522e-e39e-4278-aebc-186f81e29173</link>
      <description>&lt;p&gt;Microsoft has recently updated a long &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=890e522e-e39e-4278-aebc-186f81e29173"&gt;list of Windows 7 compatible applications&lt;/a&gt;. The list contains information about well-known applications and dozens of more, and includes information about both 32-bit and 64-bit applications&lt;/p&gt;

&lt;p&gt;If you are developing software, make sure your's is on the list. Or better yet, certify your application!&lt;/p&gt;</description>
      <pubDate>Wed, 13 Jan 2010 04:35:41 GMT</pubDate>
      <guid isPermaLink="false">070524ed-5198-4e32-8072-57522a182d66</guid>
    </item>
    <item>
      <title>Understanding differences in recent Intel Core i7 desktop and server Xeon processors</title>
      <link>http://www.intel.com/products/processor/index.htm</link>
      <description>&lt;p&gt;Some hardware information for a change, something that all developers should be aware. I'm sure you've heard of Intel's "&lt;a href="http://www.intel.com/products/processor/index.htm"&gt;Nehalem&lt;/a&gt;" products, like Core i7 desktop processors and their server counterparts, Xeon 3500 and 5500 series.&lt;/p&gt;

&lt;p&gt;If you are thinking of a new workstation or a server, these new processors are simply great, with lots of number crunching power. But, what is the difference of these models? I won't go into nitty-gritty detail here, but shortly put, the i7 series (especially the 9xx line) is aimed at high-end workstations and the Xeons are for servers.&lt;/p&gt;

&lt;p&gt;But what do the server processors have in addition to i7, as the price is steeper? Shortly put, Xeons support error-correcting ECC memory. If you need that, you must get a Xeon. Second important difference comes from the support for double-processor systems. Only the higher model number Xeon 55xx supports that. The cheaper 35xx models only support single socket systems.&lt;/p&gt;</description>
      <pubDate>Sun, 10 Jan 2010 12:13:51 GMT</pubDate>
      <guid isPermaLink="false">72e62eb5-1171-4b4e-9b6a-32bf1ff82b29</guid>
    </item>
    <item>
      <title>Microsoft joins the W3C SVG Working Group</title>
      <link>http://blogs.msdn.com/ie/archive/2010/01/05/microsoft-joins-w3c-svg-working-group.aspx</link>
      <description>&lt;p&gt;Short news for today: Microsoft today &lt;a href="http://blogs.msdn.com/ie/archive/2010/01/05/microsoft-joins-w3c-svg-working-group.aspx"&gt;announced&lt;/a&gt; that they have joined the W3C's standardization organization's SVG (Scalable Vector Graphics) working group. Apparently, the plan is to include support for SVG graphics in future Internet Explorer (IE) versions, but of course this is just a start for the work.&lt;/p&gt;</description>
      <pubDate>Fri, 08 Jan 2010 16:25:38 GMT</pubDate>
      <guid isPermaLink="false">387c9b5c-90d4-4f1d-97e5-8bef8f43a2ea</guid>
    </item>
    <item>
      <title>Azure Euro prices revealed</title>
      <link>http://www.microsoft.com/windowsazure/</link>
      <description>&lt;p&gt;Microsoft's &lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/a&gt; is now in production, and at least the most important features can now be used commercially.&lt;/p&gt;

&lt;p&gt;Also, Microsoft has finally announced the Euro prices of Azure; previously only USD dollar prices were available. There are some introductory prices going on, but the regular prices can be seen &lt;a href="http://www.microsoft.com/windowsazure/offers/"&gt;here&lt;/a&gt; when you choose an European country, such as Germany or Spain.&lt;/p&gt;

&lt;p&gt;For instance, the Windows Azure computing time is € 0.0852 per hour on Small Instances.&lt;/p&gt;</description>
      <pubDate>Tue, 05 Jan 2010 17:50:53 GMT</pubDate>
      <guid isPermaLink="false">c5d4d249-329e-4aea-8599-05447c87440c</guid>
    </item>
    <item>
      <title>Changes in lock escalation in SQL Server 2008 R2</title>
      <link>http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=506453</link>
      <description>&lt;p&gt;If you are still using an older SQL Server version such as 2005 (or even 2000), there's one change in lock handling in SQL Server 2008 that makes things work differently in the latest version.&lt;/p&gt;

&lt;p&gt;According to a &lt;a href="http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=506453"&gt;Connect post&lt;/a&gt;, lock escalation with INSERT statements now works differently. Depending on your situation, this might or might not affect your application. It's better to be safe than sorry, though.&lt;/p&gt;</description>
      <pubDate>Mon, 04 Jan 2010 16:45:54 GMT</pubDate>
      <guid isPermaLink="false">2b81b70a-f2ea-46e0-98c3-05f7b4cad3e5</guid>
    </item>
    <item>
      <title>Welcome 2010! And this years trends...</title>
      <link>http://msdn.microsoft.com/en-us/netframework/default.aspx</link>
      <description>&lt;p&gt;Welcome New Year and 2010! If you can read this post from your RSS reader, then you have successfully updated the URL or this blog. Congrats!&lt;/p&gt;

&lt;p&gt;A new year is always full of possibilities, and this time I though I'd try to predict the future and the coming .NET development trends. This is always a somewhat futile attempt, but even so, it is great fun, so I'm going to give a try. Here goes a quick list, in no particular order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WPF user interfaces in business applications. So far, WinForms has been just too convenient way to develop user interfaces for business/database application. I think this year, we are going to see slow progress in new applications starting to be implemented with WPF.&lt;/li&gt;
&lt;li&gt;Team Foundation Server (TFS) becomes a commodity. So far, TFS has been a high-end solution, but as more and more developers start to migrate to Visual Studio 2010, this will change. At the end of the year, even smaller shops are starting to take notice.&lt;/li&gt;
&lt;li&gt;Green software development: marketing, PR and the bottom line will start to increasingly drive "greeness" in software development. And yes, the whole process needs to be considered. Home-office developers with good communication skills, efficient teleconferencing software and better development tools will lead the way.&lt;/li&gt;
&lt;li&gt;Rich Internet Applications (RIAs): I believe this year, Silverlight will start to become more mainstream. The technology is now mature enough.&lt;/li&gt;
&lt;li&gt;Cloud computing: Azure will be in the spotlights, but despite the buzz, I believe it will still take longer to see a broad adoption of this new technology set.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, there's also a lot more to predict, but these trends will probably show their heads this year. We'll see how it goes. Also, remember to let me know what you think!&lt;/p&gt;</description>
      <pubDate>Sat, 02 Jan 2010 08:05:40 GMT</pubDate>
      <guid isPermaLink="false">58a02aa3-22af-45fe-9149-32dc705c5d10</guid>
    </item>
  </channel>
</rss>
