﻿<?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, 31 Dec 2011 08:53:44 GMT</pubDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>1440</ttl>
    <item>
      <title>A reminder on ASP.NET Forms authentication Open Redirection Attack vulnerability</title>
      <link>http://www.asp.net/mvc/tutorials/security/preventing-open-redirection-attacks</link>
      <description>&lt;p&gt;If you are developing ASP.NET web application for public use, chances are you are using &lt;a href="http://msdn.microsoft.com/en-us/library/7t6b43z4.aspx"&gt;Forms authentication&lt;/a&gt; to authenticate your users. By default, the ASP.NET template implementation will redirect the user back to the page where s/he was before the authentication, if the user tried to directly access a page requiring authentication.&lt;/p&gt;

&lt;p&gt;How ever, by default, the redirection URL is not checked, and it could be a full, absolute URL pointing anywhere, event to a malicious site. This is called an Open Redirection Attack, but luckily, it can easily be remedied.&lt;/p&gt;

&lt;p&gt;There's a nice post on the ASP.NET MVC tutorials &lt;a href="http://www.asp.net/mvc/tutorials/security/preventing-open-redirection-attacks"&gt;about this&lt;/a&gt;. Notice that even though the article talks about ASP.NET MVC, this same issue applies to regular Web Forms applications as well.&lt;/p&gt;

&lt;p&gt;Promise yourself a little more secure year 2012, and take a quick peek on your web application(s). Implementing this fix really doesn't take that long.&lt;/p&gt;

&lt;p&gt;Safe hacking!&lt;/p&gt;</description>
      <pubDate>Thu, 22 Dec 2011 19:17:49 GMT</pubDate>
      <guid isPermaLink="false">a710a501-15de-4067-9119-88e357192483</guid>
    </item>
    <item>
      <title>New article in Tietokone about cloud computing risk management</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;The December issue of &lt;a href="http://www.tietokone.fi/"&gt;Tietokone&lt;/a&gt; contains my latest technical article, this time about cloud computing risks and the management of these risks. The article is titled "Pilvipalveluiden riskit" and starts on page 61.&lt;/p&gt;

&lt;p&gt;Products/services features include Google Apps, Microsoft Azure and Amazon EC2.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Mon, 19 Dec 2011 12:03:24 GMT</pubDate>
      <guid isPermaLink="false">351367c4-7fab-497e-881c-ae0a712c6525</guid>
    </item>
    <item>
      <title>Simple script to back up your SQL Server databases automatically</title>
      <link>http://technet.microsoft.com/en-us/library/ms162773.aspx</link>
      <description>&lt;p&gt;Sooner or later, the database application you have developed requires a backup plan. Nobody is going to cheer if you force your customers to take manual backups. Automation is the key here, so this is what you should strive for.&lt;/p&gt;

&lt;p&gt;Automatically creating an SQL Server database backup can be done using the BACKUP DATABASE command, which can be executed either manually from SQL Server Management Studio (SSMS), or from the command-line with the help of the &lt;a href="http://technet.microsoft.com/en-us/library/ms162773.aspx"&gt;SQLCMD utility&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To take a backup, you need to know the SQL Server name (host or IP address), possible instance name and the database name. Furthermore, you need suitable credentials. Windows authentication can be a big help here, and also improves security as you don't need to include the username and password as plaintext strings in a Windows batch file (.cmd file).&lt;/p&gt;

&lt;p&gt;The BACKUP DATABASE command also requires a destination filename. This filename often the biggest pain point, because you need to figure out a unique filename for each backup file so that the latest backup does not overwrite the previous one.&lt;/p&gt;

&lt;p&gt;In Windows batch files, there are limited ways in which you can manipulate strings (and dates), but luckily, this can be done using environment variables. The SET command contains special support for taking substrings out of variable values, and this in turn can be used to retrieve the current year, month and day of the current date and time. This allows you to create unique filenames assuming that you take a backup only once per day.&lt;/p&gt;

&lt;p&gt;Let's take a look at a script that parses the current date and time to its parts: the year, the month and the day:&lt;/p&gt;

&lt;pre&gt;
@echo off
rem ** Create a string with format "yyyy-mm-dd"
set backup_day=%date:~3,2%
set backup_month=%date:~6,2%
set backup_year=%date:~-4%
set backup_datestring=%backup_year%-%backup_month%-%backup_day%
&lt;/pre&gt;

&lt;p&gt;The main thing here is the special batch file variable called %date% which returns the current date and time in the format local to the current user's regional settings. For example here in Finland, it returns a string like: "la 31.12.2011" ("la" stands for the acronym of Saturday in Finnish, notice the format dd.mm.yyyy).&lt;/p&gt;

&lt;p&gt;The parsing commands with the set command allow you to use the :~ operator to retrieve parts of this string based on zero-based character indexes. The specification "3,2" would take two characters starting from the index three (fourth character), i.e. in this case, "31". Similarly, "6,2" would take the numbers "12", i.e. December. The specification "-4" would take four last characters from the string, in this case the year "2011".&lt;/p&gt;

&lt;p&gt;Of course, this requires adjustment for each Windows locale, but with some tweaking, you could make it rather universal. I have hard time finding the official documentation for this on the &lt;a href="http://technet.microsoft.com/en-us/library/default.aspx"&gt;Technet libraries&lt;/a&gt;, but if you run "set /?" on the command line, the second page talks about substring expansion. This seems to be the official name for the feature. You can also find tips on this &lt;a href="http://kb.winzip.com/kb/entry/167/"&gt;here&lt;/a&gt;, &lt;a href="http://stackoverflow.com/questions/3472631/how-do-i-get-the-day-month-and-year-from-a-windows-cmd-exe-script"&gt;here&lt;/a&gt; and &lt;a href="http://www.robvanderwoude.com/datetimentparse.php"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now that we have the date and time parsed (as to make sure our filenames are unique), we can run the actual backup. This could be done as follows:&lt;/p&gt;

&lt;pre&gt;
...
cd /d "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"
echo Creating a backup for the date %backup_datestring%...

echo Backing up the database...
sqlcmd -s MYSERVER\MYINSTANCE -e -Q "BACKUP DATABASE MyDatabaseName
TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\
MyDatabaseName %backup_datestring%.bak' WITH INIT, NOSKIP, NOFORMAT"
&lt;/pre&gt;

&lt;p&gt;Here, we first go to the correct folder location to find the command-line utility SQLCMD.EXE. This command allows us to execute the BACKUP DATABASE command with the current Windows user account. The -s parameter gives the server hostname and possible instance name (if you want to use the default instance, just give the server name without the backslash). Then, the "TO DISK" parameter gives the destination folder and filename for the backup file. Note how we use the %backup_datestring% environment variable set earlier.&lt;/p&gt;

&lt;p&gt;Here is a complete script you can use to tune to your own purposes:&lt;/p&gt;

&lt;pre&gt;
@echo off
rem ** Create a string with format "yyyy-mm-dd" from the Finnish settings, adjust
for your own Windows locale!
set backup_day=%date:~3,2%
set backup_month=%date:~6,2%
set backup_year=%date:~-4%
set backup_datestring=%backup_year%-%backup_month%-%backup_day%
cd /d "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"
echo Creating a backup for the date %backup_datestring%...

echo Backing up the database...
sqlcmd -s MYSERVER\MYINSTANCE -e -Q "BACKUP DATABASE MyDatabaseName
TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\
MyDatabaseName %backup_datestring%.bak' WITH INIT, NOSKIP, NOFORMAT"

echo Done!
&lt;/pre&gt;

&lt;p&gt;Note that if you wish to back up multiple databases, simply repeat the SQLCMD command shown on the last three lines, and adjust the database names and/or server names. As a final step, you could clear our all the backup_* environment variables just created.&lt;/p&gt;

&lt;p&gt;Once the complete script is in place, you can simply create a regular Windows scheduled task with the appropriate credentials, and then make the script run for example every night. This would create a nice, full backup of your database every day without you having to worry much (of course, you need to monitor the process is working).&lt;/p&gt;

&lt;p&gt;One final question related to this kind of scripts is that the backup files accumulate in the destination folder, and one day or another, you run out of disk space. Most often, such events happen only when you are either very busy, or on vacation somewhere warm.&lt;/p&gt;

&lt;p&gt;What would be an easy remedy for this? Try the new Windows script command &lt;a href="http://technet.microsoft.com/en-us/library/cc753551(v=WS.10).aspx"&gt;FORFILES&lt;/a&gt;. This command supports the "/d" parameter, which allows you to list only files that are older than the given number of days. For example, "forfiles /d-7" would list files that are older than seven days. Then, you could simply delete all such files to make the backup file rotation clean and simple.&lt;/p&gt;

&lt;p&gt;Sidenote: The latest Windows command-line reference is somewhat difficult to find, but if you browse the Technet library enough, you will find the &lt;a href="http://technet.microsoft.com/en-us/library/cc754340(v=WS.10).aspx"&gt;correct location&lt;/a&gt;. The link provides and A-Z list of all available commands, including for instance the &lt;a href="http://technet.microsoft.com/en-us/library/cc754250(v=WS.10).aspx"&gt;SET&lt;/a&gt; command. Note however, that the last update to this documentation (at this writing) is from 2007, so not all the latest tricks are there.&lt;/p&gt;

&lt;p&gt;When talking about backups, there's always a need for the final reminder: do test your restores regularly. Nothing is worse than *thinking* that you have a valid backup. If your database for example becomes suitably corrupted, a full backup may run, but you cannot restore from it.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Sat, 17 Dec 2011 08:34:30 GMT</pubDate>
      <guid isPermaLink="false">8038af82-21e9-4f64-9ecf-697fa0328d47</guid>
    </item>
    <item>
      <title>New MSDN Subscriber Portal look and feel</title>
      <link>http://msdn.microsoft.com/subscriptions/downloads/default.aspx</link>
      <description>&lt;p&gt;Microsoft has been busy updating its web sites this month, it seems. Now the MSDN Subscriber portal has got an overhaul with an improved search and a cleaner look and feel. Not that the previous version would have been somehow broken, but I guess it is a refreshment they want to make from time to time.&lt;/p&gt;

&lt;p&gt;The new portal can be seen &lt;a href="http://msdn.microsoft.com/subscriptions/downloads/default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 15 Dec 2011 18:50:29 GMT</pubDate>
      <guid isPermaLink="false">75316a8e-4958-40d2-b22b-6bdd79f1ce30</guid>
    </item>
    <item>
      <title>Silverlight 5 announced and now available</title>
      <link>http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5</link>
      <description>&lt;p&gt;Microsoft has last Friday announced the RTW (Release To Web) version of Silverlight 5. This means that the technology is now available for production use, and can be &lt;a href="http://www.silverlight.net/downloads"&gt;downloaded&lt;/a&gt; here.&lt;/p&gt;

&lt;p&gt;Again, there are plenty of &lt;a href="http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5"&gt;new features&lt;/a&gt; in this release, including the following:&lt;/p&gt;

&lt;p&gt;&lt;ul&gt;&lt;/p&gt;

&lt;p&gt;&lt;li&gt;64-bit browser support and multi-threaded JIT compilation to support multiple cores&lt;/li&gt;&lt;/p&gt;

&lt;p&gt;&lt;li&gt;Multiple-window support on Silverlight 5 Out-Of-Browser applications and P/Invoke support (!)&lt;/li&gt;&lt;/p&gt;

&lt;p&gt;&lt;li&gt;Hardware-accelerated decodíng of H.264 media&lt;/li&gt;&lt;/p&gt;

&lt;p&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=17747"&gt;PivotViewer&lt;/a&gt;: the ability to create pivot views directly using built-in controls&lt;/li&gt;&lt;/p&gt;

&lt;p&gt;&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;All this sounds very good to me. But I think the most pressing question is, where is the show around this launch? I haven't seen any big announcements, Silverlight 5 is just a small note on Silverlight.net web pages, and is a big contrast to the usual fanfare that Silverlight versions have come to the world.&lt;/p&gt;</description>
      <pubDate>Mon, 12 Dec 2011 16:31:13 GMT</pubDate>
      <guid isPermaLink="false">7b9dada7-69a8-43ef-9a73-223aadc73e7d</guid>
    </item>
    <item>
      <title>What are layer diagrams in Visual Studio 2010?</title>
      <link>http://blogs.msdn.com/b/jennifer/archive/2010/05/13/visual-studio-2010-how-to-maintain-control-of-your-code-using-layer-diagrams-custom-msbuild-tasks-and-work-item-integration.aspx</link>
      <description>&lt;p&gt;If you are using Visual Studio 2010 Premium or Ultimate, you might be aware that your edition of Visual Studio contains modeling features. There are plenty of different model types available, starting from overall architecture and classic UML models, but this time I wanted to point out layer diagrams.&lt;/p&gt;

&lt;p&gt;To add a layer diagram to your project, use the New Diagram command from the Architecture menu in Visual Studio, or press Ctrl+§,N. This opens a dialog box where you can create a new layer diagram. Note that you cannot find these diagram types from the regular Project/Add New Item command.&lt;/p&gt;

&lt;p&gt;What, then, is a layer diagram? Shortly put, it is a logical drawing of the architectural parts of your solution. The drawing usually contains a box for each project in your solution, and lines between them. The main idea is to let the lines between boxes represent the valid references between the projects. You can then validate your whole solution against the diagram to see if it still complies with the original architecture.&lt;/p&gt;

&lt;p&gt;For instance, if your data access layer (DAL) provides a class that your business logic layer (BLL) uses, you can draw a line between the DAL and BLL in your diagram. But if in your code your user interface (UI) layer accidentally directly references something in the DAL layer, the layer diagram validation can notice this and report an error.&lt;/p&gt;

&lt;p&gt;There's a &lt;a href="http://blogs.msdn.com/b/jennifer/archive/2010/05/13/visual-studio-2010-how-to-maintain-control-of-your-code-using-layer-diagrams-custom-msbuild-tasks-and-work-item-integration.aspx"&gt;nice post&lt;/a&gt; about these layer diagrams in the MSDN Blogs. Be sure to check it out.&lt;/p&gt;</description>
      <pubDate>Sat, 10 Dec 2011 10:12:16 GMT</pubDate>
      <guid isPermaLink="false">02a5f652-79d1-49f7-bcf2-407fd201fa70</guid>
    </item>
    <item>
      <title>New layout for the main ASP.NET web portal</title>
      <link>http://www.asp.net/</link>
      <description>&lt;p&gt;A portal often visited by ASP.NET developers is the main Microsoft web development web site at www.asp.net. Aptly named, the site hosts a healthy amount of technical content, including tutorials, videos, sample code, and of course forum to help you share your thoughts or ask questions.&lt;/p&gt;

&lt;p&gt;Just recently, Microsoft recreated the looks of the site, and now for example the main page highlights the community even more than before. It's also now trivial to find the necessary downloads (for instance, at this writing, the &lt;a href="http://www.asp.net/mvc/mvc4"&gt;ASP.NET MVC 4 developer preview&lt;/a&gt;).&lt;/p&gt;</description>
      <pubDate>Wed, 07 Dec 2011 05:44:24 GMT</pubDate>
      <guid isPermaLink="false">f4735cc6-69b7-4171-9354-55b14fbd83ce</guid>
    </item>
    <item>
      <title>Have you looked at PowerShell 3 yet?</title>
      <link>http://www.microsoft.com/download/en/details.aspx?id=27548</link>
      <description>&lt;p&gt;PowerShell, the nifty .NET based object-oriented command prompt for Windows has matured during the years that the technology has been available. PowerShell is also a technology that is in active development, and the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27548"&gt;next version&lt;/a&gt; is already in horizon.&lt;/p&gt;

&lt;p&gt;In the new PowerShell version, we are going to see an improved ISE (Integrated Scripting Environment), new commands and of course, a bit more power. The first CTP version has already been available since around September, but just a couple of days ago, Microsoft posted the CTP2 version for everyone to &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27548"&gt;download&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 05 Dec 2011 19:53:30 GMT</pubDate>
      <guid isPermaLink="false">95fe91b3-0456-491d-b7ec-ff6b28caa728</guid>
    </item>
    <item>
      <title>ADO.NET Entity Model metadata exceptions when using and EDMX file in a ASP.NET web site</title>
      <link>http://msdn.microsoft.com/en-us/library/bb896291.aspx</link>
      <description>&lt;p&gt;I recently needed to migrate parts of a graphical WinForms application to the web, and in the progress I needed to integrate the code with an existing ASP.NET web site. Note that I'm saying "web site" instead of a "web application", the latter of which I more commonly use myself.&lt;/p&gt;

&lt;p&gt;Since web applications and web sites &lt;a href="http://msdn.microsoft.com/en-us/library/dd547590.aspx"&gt;are different&lt;/a&gt;, the regular tips do not fully apply to entity models in web sites. During this migration project, I ran to the following error message:&lt;/p&gt;

&lt;pre&gt;
System.Data.MetadataException: Unable to load the specified metadata resource.
&lt;/pre&gt;

&lt;p&gt;This error is most often related to erroneous connection strings, which in Entity Framework take a format similar to this (lines shortened):&lt;/p&gt;

&lt;pre&gt;
metadata=res://*/Models.MyModel.csdl|res://*/Models.MyModel.ssdl|
res://*/Models.MyModel.msl;provider=System.Data.SqlClient;
provider connection string=&amp;amp;quot;data source=myserver;
initial catalog=mydatabase;integrated security=True;multipleactiveresultsets=True;
App=EntityFramework&amp;amp;quot;
&lt;/pre&gt;

&lt;p&gt;To solve this issue, you need to make sure that the "res://*/" specifications &lt;a href=" http://msdn.microsoft.com/en-us/library/bb896291.aspx"&gt;are correct&lt;/a&gt;. However, what most blog posts about this error fail to mention is that the name after the "res://*/" specification must match the of folder location of the .edmx file in the project. Usually, this in turn maps one-to-one to the code namespace of your application in the said .edmx class (you can see the namespace for example from the MyModel.Designer.cs file).&lt;/p&gt;

&lt;p&gt;This is the key to solve the issue in an ASP.NET web site. Since all C# code in a web site must reside by default in the App_Code folder, then the metadata locations must reflect this. For instance, if the model .edmx filename is directly inside the App_Code folder, then the correct setting is:&lt;/p&gt;

&lt;pre&gt;
metadata=res://*/App_Code.Models.MyModel.csdl ...
&lt;/pre&gt;

&lt;p&gt;Remember to make the change to all the three res: specifications.&lt;/p&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;</description>
      <pubDate>Sat, 03 Dec 2011 20:01:47 GMT</pubDate>
      <guid isPermaLink="false">2389d0f3-2e4e-47c0-97b6-c32253b52ab7</guid>
    </item>
    <item>
      <title>New IE10 platform preview available, more HTML5 goodness</title>
      <link>http://ie.microsoft.com/testdrive/Info/Downloads/Default.html</link>
      <description>&lt;p&gt;Happy December! Microsoft just announced that a new platform preview is now available of the Internet Explorer 10 browser. The fourth preview contains more HTML5 features, including Cross-Origin Resource Sharing (CORS) support, File API Writer, and video subtitles with timed text.&lt;/p&gt;

&lt;p&gt;For more information, see the &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/11/29/html5-for-applications-the-fourth-ie10-platform-preview.aspx"&gt;announcement blog post&lt;/a&gt;. You can download the &lt;a href="http://ie.microsoft.com/testdrive/Info/Downloads/Default.html"&gt;preview here&lt;/a&gt; – but remember that it requires the latest Windows 8 Developer Preview.&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 18:09:55 GMT</pubDate>
      <guid isPermaLink="false">5f142d5a-ae0a-4c7c-b5d2-264673267db3</guid>
    </item>
    <item>
      <title>SQL Server 2012 first Release Candidate is out</title>
      <link>http://www.microsoft.com/download/en/details.aspx?id=28145</link>
      <description>&lt;p&gt;During the autumn time, Microsoft has been busy developing SQL Server further. The next version name has now been announced, and will simply be "SQL Server 2012". That sounds fine, as the previous version was SQL Server 2008 with the "R2" marker for the second release.&lt;/p&gt;

&lt;p&gt;Microsoft has also updated the &lt;a href="http://www.microsoft.com/sql"&gt;main product pages&lt;/a&gt;. If you now take a look at www.microsoft.com/sql, you can see the new version being actively marketed already. Currently, the latest version is RC0, i.e. the first release candidate version. You can download RC0 from MSDN or &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=28145"&gt;here&lt;/a&gt;. At this point, the version number is 11.0.1750.32.&lt;/p&gt;

&lt;p&gt;The interesting thing about the new Standard edition (this is the basic workhorse edition) can now run on up to 16 cores (should be plenty for most SMB customers) and also now support 2-node failover clustering. Previously, this was an Enterprise edition feature only.&lt;/p&gt;

&lt;p&gt;Also available is the LocalDB release candidate: "LocalDB is a new version of Express created specifically for developers. It is very easy to install and requires no management, yet it offers the same T-SQL language, programming surface and client-side providers as the regular SQL Server Express." See &lt;a href="http://blogs.technet.com/b/dataplatforminsider/archive/2011/11/29/sql-server-2012-express-localdb-rc0-now-available.aspx"&gt;here&lt;/a&gt; for details.&lt;/p&gt;</description>
      <pubDate>Wed, 30 Nov 2011 21:38:36 GMT</pubDate>
      <guid isPermaLink="false">675fdc74-f2eb-4f94-bf8f-15b99f79aaf1</guid>
    </item>
    <item>
      <title>AT&amp;T Developer Summit in January 8-9 at Las Vegas</title>
      <link>https://www.travelhq.com/events/2012devsummit/pretrip/schedule.mtc</link>
      <description>&lt;p&gt;Mobile development is done at such a scale nowadays that even the mobile operators need to take part in the action. Of course, AT&amp;T is no later-comer to the topic, and this year at AT&amp;T Developer Summit in Las Vegas on January 8-9, both Microsoft and Nokia are there to talk about Windows Azure and Windows Phone 7.5, no doubt.&lt;/p&gt;

&lt;p&gt;If you happen to be in the area during these days, give the summit a visit. The schedule can be &lt;a href="https://www.travelhq.com/events/2012devsummit/pretrip/schedule.mtc"&gt;found here&lt;/a&gt;. Registration costs $125 only, so you don't need to call your boss' boss to ask a permission to attend.&lt;/p&gt;</description>
      <pubDate>Sun, 27 Nov 2011 15:03:26 GMT</pubDate>
      <guid isPermaLink="false">7464b946-d4bc-49e7-9adf-98a269c01e10</guid>
    </item>
    <item>
      <title>Reminder: the URL of this blog is about to change as the year changes</title>
      <link>http://www.saunalahti.fi/janij/blog/</link>
      <description>&lt;p&gt;As the year is quite soon drawing near to an end, a friendly reminder to all RSS/feed readers: remember that on 1st of January, 2012 the URL of the RSS feed will change to reflect the new year.&lt;/p&gt;

&lt;p&gt;That is, you are currently probably using the following URL to read this material in your RSS reader:&lt;/p&gt;

&lt;pre&gt;
http://www.saunalahti.fi/janij/blog/2011.xml
&lt;/pre&gt;

&lt;p&gt;Once New Year is here, the URL will simply be:&lt;/p&gt;

&lt;pre&gt;
http://www.saunalahti.fi/janij/blog/2012.xml
&lt;/pre&gt;

&lt;p&gt;So, it's just a matter of changing the year at the end. Remember that interactively, you can always read the latest blog entries at http://www.saunalahti.fi/janij/blog/.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;</description>
      <pubDate>Sat, 26 Nov 2011 13:19:28 GMT</pubDate>
      <guid isPermaLink="false">698a3af6-5c40-402f-bc8f-0e50623326eb</guid>
    </item>
    <item>
      <title>C# coding tip: copying object property values from object to another</title>
      <link>http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx</link>
      <description>&lt;p&gt;I recently was developing an ASP.NET MVC application and working with the view models and models of the application. In this project, I found myself needing a quick solution to copy public property values from database model objects to view model objects. Copy-paste of course works, but it tedious and error-prone.&lt;/p&gt;

&lt;p&gt;Of course, the answer in the .NET land would be to use &lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx"&gt;reflection&lt;/a&gt;. Here's the implementation I've been using (without exception handling):&lt;/p&gt;

&lt;pre&gt;
using System.Reflection;
...
public static class MyCopier
{
  // copies public property values from one object to another
  public static void CopyObjectProperties(
    object source, object destination)
  {
    PropertyInfo[] sourceProperties =
      source.GetType().GetProperties();
    List&lt;string&gt; destinationPropertyNames =
      destination.GetType().GetProperties().Select(
      p =&gt; p.Name).ToList();
    List&lt;PropertyInfo&gt; propertiesToCopy =
        sourceProperties.Where(
        p =&gt; destinationPropertyNames.Contains(p.Name)).ToList();

    foreach (PropertyInfo property in propertiesToCopy)
    {
      object sourceValue = property.GetValue(source, null);
      if (sourceValue != null)
      {
        PropertyInfo targetProperty =
          destination.GetType().GetProperty(property.Name);
        targetProperty.SetValue(destination, sourceValue, null);
      }
    }
  }
}
&lt;/pre&gt;

&lt;p&gt;Blogs on the Internet contain many solutions to the same problem with varying degrees of performance and versatility, but I often find these solutions either too complex for simple needs, or not clearly written. Thus, I thought I'd share my solution.&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</description>
      <pubDate>Thu, 24 Nov 2011 20:39:32 GMT</pubDate>
      <guid isPermaLink="false">0c995e5f-28f4-4a68-be97-c5d383606114</guid>
    </item>
    <item>
      <title>Some more good reading: "Better Software"</title>
      <link>http://www.stickyminds.com/BetterSoftware/Magazine.asp</link>
      <description>&lt;p&gt;Continuing on last Saturday's topic of books and reading: sometimes, people ask me what I read in those training classes. One thing I've browsed from time to time is the &lt;a href="http://www.stickyminds.com/BetterSoftware/Magazine.asp"&gt;Better Software magazine&lt;/a&gt; from StickyMinds.com. For example, this month's issue talks about technical debt, something that has quite recently broken mainstream in the Finnish .NET software development scene.&lt;/p&gt;</description>
      <pubDate>Mon, 21 Nov 2011 19:35:47 GMT</pubDate>
      <guid isPermaLink="false">b835e57d-fd77-47ed-a736-a648de2cc1e6</guid>
    </item>
    <item>
      <title>A new book to read: The Clean Coder</title>
      <link>http://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073</link>
      <description>&lt;p&gt;The coming holiday season is a good time to read some more about your favorite thing: getting better in developing software. Robert C. Martin, or "Uncle Bob" has recently published a new book titled "&lt;a href="http://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073"&gt;The Clean Coder&lt;/a&gt;: A Code of Conduct for Professional Programmers".&lt;/p&gt;

&lt;p&gt;I wasn't aware of this book until just recently, but it didn't take long before I added it to my Amazon Wish List.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 19 Nov 2011 07:59:26 GMT</pubDate>
      <guid isPermaLink="false">4c480a61-526b-4989-87b2-52445bbd00d6</guid>
    </item>
    <item>
      <title>Visual Studio sleep mode bug (Connect #507665)</title>
      <link>http://connect.microsoft.com/</link>
      <description>&lt;p&gt;In Visual Studio 2010, there is a known bug when resuming the computer from a sleep mode. This bug causes Visual Studio to crash or force you to reload your source code file(s) and/or the project/solution. The issue has already been previously reported on Microsoft Connect web site (see &lt;a href="http://connect.microsoft.com/"&gt;connect.microsoft.com&lt;/a&gt;) with the id &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/details/507665/vs2010-crashes-when-returning-from-sleep-mode"&gt;507665&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some developers have asked me about this bug, and I run into it myself now and then as well. My own findings indicate that the bug raises its head whenever some of the following conditions are true:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have a project open in Visual Studio with active source code files open in the editor(s).&lt;/li&gt;
&lt;li&gt;The project files are hosted on network drives and/or UNC paths, for example S:\ or P:\&lt;/li&gt;
&lt;li&gt;You are using Team Foundation Server as your version control system, *and* the server is not installed locally (i.e. on the same computer).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you experience the same issue with Visual Studio? If yes, share your findings at the Connect site, or send me an email.&lt;/p&gt;</description>
      <pubDate>Wed, 16 Nov 2011 17:12:31 GMT</pubDate>
      <guid isPermaLink="false">54f63017-d1e1-458b-8273-e0bd2f0d4b70</guid>
    </item>
    <item>
      <title>Mark your calendar: TechDays 2012 in Helsinki on March 8.–9.2012</title>
      <link>http://www.microsoft.com/finland/techdays/2012</link>
      <description>&lt;p&gt;Microsoft's largest technical event in Finland, TechDays, is again going to be held in the springtime.&lt;/p&gt;

&lt;p&gt;This time, the dates are March 8th or 9th, so be sure to mark your calendar!&lt;/p&gt;</description>
      <pubDate>Mon, 14 Nov 2011 16:56:10 GMT</pubDate>
      <guid isPermaLink="false">81237c68-8eac-45c8-8a2e-84abd1d1d3f6</guid>
    </item>
    <item>
      <title>TPL performance improvements in .NET 4.5</title>
      <link>http://download.microsoft.com/download/1/6/1/1615555D-287C-4159-8491-8E5644C43CBA/TPL%20Performance%20Improvements%20in%20.Net%204.5.pdf</link>
      <description>&lt;p&gt;Microsoft today announced on a &lt;a href="http://blogs.msdn.com/b/pfxteam/archive/2011/11/10/10235962.aspx"&gt;blog post&lt;/a&gt; that a new white paper about .NET 4.5's Task Parallel Library (TPL) performance improvements is available.&lt;/p&gt;

&lt;p&gt;If you are interested in using TPL to the max and want to learn what's coming, then the &lt;a href="http://download.microsoft.com/download/1/6/1/1615555D-287C-4159-8491-8E5644C43CBA/TPL%20Performance%20Improvements%20in%20.Net%204.5.pdf"&gt;white paper&lt;/a&gt; is for you.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Nov 2011 20:02:53 GMT</pubDate>
      <guid isPermaLink="false">42701ce7-5e35-476c-8560-31092cd64319</guid>
    </item>
    <item>
      <title>New features in the SQL Server "Juneau" development tools</title>
      <link>http://msdn.microsoft.com/en-us/magazine/hh394146.aspx</link>
      <description>&lt;p&gt;From time to time I get asked about the new features planned in SQL Server "Juneau", i.e. the next version of the product, scheduled to be available in 2012. Of course, there are plenty of new features, but most developers I talk to seem to be interested in the new features in Visual Studio.&lt;/p&gt;

&lt;p&gt;The September 2011 issue the MSDN Magazine contains a nice article &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh394146.aspx"&gt;about this&lt;/a&gt;. Titled "The 'Juneau' Database Project", the article focuses on the features that database developers might find useful. I for one find the article interesting reading.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Nov 2011 15:23:20 GMT</pubDate>
      <guid isPermaLink="false">d950b1f4-f9f0-4684-8e29-35e0d9130aef</guid>
    </item>
    <item>
      <title>A Finnish code improvement process: Tick-The-Code</title>
      <link>http://www.tick-the-code.com/en/index.php</link>
      <description>&lt;p&gt;One of my tasks as a software developer is to try to improve the process I use in developing code a little in each iteration. This isn't always easy, but a goal nonetheless. Earlier this year, I ran into a Finnish model of software development process model improvement. It is called &lt;a href="http://www.tick-the-code.com/en/index.php"&gt;Tick-The-Code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The main idea is to work towards code that is easier to maintain. It focuses on source code analysis, and tries to spot issues that might in the future to lead bad, "smelly" code.&lt;/p&gt;

&lt;p&gt;This sounds interesting to me, so if I happen to have a chance later on, I'll give it a try.&lt;/p&gt;</description>
      <pubDate>Sun, 06 Nov 2011 11:38:41 GMT</pubDate>
      <guid isPermaLink="false">635bcb37-66d2-46d1-af7a-01bf902d037f</guid>
    </item>
    <item>
      <title>Quick Visual Studio tip: going to the batching brace with the Finnish keyboard</title>
      <link>http://msdn.microsoft.com/en-us/library/da5kh0wa.aspx</link>
      <description>&lt;p&gt;Today's post is a quick tip for working with the Visual Studio code editor: to go to the matching brace, the official &lt;a href="http://msdn.microsoft.com/en-us/library/da5kh0wa.aspx"&gt;keyboard shortcut&lt;/a&gt; is Ctrl+] on the U.S. keyboard. But if you try to directly press this keyboard shortcut on a Finnish keyboard (the equivalent of which would be Ctrl+AltGr+9), it doesn't work.&lt;/p&gt;

&lt;p&gt;Instead, you need to take the equivalent key on the Finnish keyboard, the Å key (the Swedish O). If you press Ctrl+Å on the Finnish keyboard, then you have the command to find the matching brace.&lt;/p&gt;

&lt;p&gt;Here's how: if you have a C# code block starting with the curly brace { and you place the caret on the right of this character and then press the Ctrl+Å keyboard shortcut, the caret will move to the closing brace. The same command works with the parenthesis in function parameters, etc.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Nov 2011 04:55:36 GMT</pubDate>
      <guid isPermaLink="false">786a7489-0317-4778-b8cf-8d284f2692be</guid>
    </item>
    <item>
      <title>Azure storage pricing reduced slightly</title>
      <link>http://www.windowsazure.com/</link>
      <description>&lt;p&gt;Microsoft announced today that they are going to decrease the pricing of their &lt;a href="http://www.windowsazure.com/"&gt;Azure Storage&lt;/a&gt; service from USD $0.15/GB to $0.14/GB. This isn't a large change, but in these days of current economy (especially here in the Europe) it is a positive signal that technology advancement can also lower costs in trending areas like cloud computing.&lt;/p&gt;

&lt;p&gt;From a developer perspective this price change isn't likely to introduce any big cost savings in testing environments, but large production environments are a different matter altogether.&lt;/p&gt;</description>
      <pubDate>Tue, 01 Nov 2011 19:30:05 GMT</pubDate>
      <guid isPermaLink="false">85b700cb-3c3d-483f-9965-ed8b4208e43f</guid>
    </item>
    <item>
      <title>Tip: Ping doesn’t work? Try "ping -4"</title>
      <link>http://technet.microsoft.com/en-us/library/ff961503(WS.10).aspx</link>
      <description>&lt;p&gt;Today's post is about the famous "ping" command available in many operating systems. What the Windows &lt;a href="http://technet.microsoft.com/en-us/library/ff961503(WS.10).aspx"&gt;ping command&lt;/a&gt; actually does is send an ICMP (Internet Control Message Protocol) Echo Request packet (packet type 8) to the given destination host.&lt;/p&gt;

&lt;p&gt;However, nowadays IPv6 is here, and thus there's also ICMPv6 protocol in addition to the "original" ICMPv4 protocol used by default in many networks. For example, if you take a Windows 7 machine and simply try to ping your domain controller (for example), you might well receive the message "Destination host unreachable" or something similar.&lt;/p&gt;

&lt;p&gt;However, it still might be that pings are in fact enabled on your network. If this is the case, it is time to instruct Windows 7's ping command to use ICMPv4 protocol instead. This can be done with the "-4" parameter, for example like this:&lt;/p&gt;

&lt;pre&gt;
ping -4 myhostname
&lt;/pre&gt;

&lt;p&gt;This might well work out, so be sure to try both the ICMPv6 and ICMPv4 versions. Remember that when you configure firewall settings, you also need to enable both versions.&lt;/p&gt;</description>
      <pubDate>Mon, 31 Oct 2011 11:28:11 GMT</pubDate>
      <guid isPermaLink="false">ad5a564b-dd80-43d6-8808-1df2d46ce01d</guid>
    </item>
    <item>
      <title>Mark your calendar: TechDays 2012 in Helsinki on March 8.–9.2012</title>
      <link>http://www.microsoft.com/finland/techdays/2012/default.htm</link>
      <description>&lt;p&gt;Microsoft's largest technical event in Finland, &lt;a href="http://www.microsoft.com/finland/techdays/2012/default.htm"&gt;TechDays&lt;/a&gt;, is again going to be held in spring. This time, the dates are March 8th or 9th, so be sure to mark your calendar!&lt;/p&gt;</description>
      <pubDate>Sat, 29 Oct 2011 11:25:43 GMT</pubDate>
      <guid isPermaLink="false">680383a0-6a5c-4620-be8f-e9d2cdf52eef</guid>
    </item>
    <item>
      <title>New article in Tietokone: publishing your weather information to Twitter</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;The 10/2011 issue of the Finnish &lt;a href="http://www.tietokone.fi/"&gt;Tietokone magazine&lt;/a&gt; contains my latest article titled "USB-sääasema nettiin". The three-page article starting on page 70 contains information about modern USB connected weather stations, and also shows a PowerShell script and a C#&lt;/p&gt;

&lt;p&gt;As a concrete example, I'm using a TEMPer USB temperature reader, available for example from DealExtreme.com. This temperature sensor contains its own .NET application to read the temperature, but it is also quite easy to develop a custom .NET application to read the values. This can be done without any difficult third-party libraries.&lt;/p&gt;

&lt;p&gt;Are you looking to download the C# source code for the article? You can download &lt;a href="http://www.saunalahti.fi/janij/blog/files/tietokone_2011-11_temper_c%23_sourcecode.zip"&gt;a copy here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Keywords: TEMPer reading temperature with C# and .NET; How to read TEMPer with C#.&lt;/p&gt;</description>
      <pubDate>Wed, 26 Oct 2011 17:53:38 GMT</pubDate>
      <guid isPermaLink="false">d94c1a96-9b05-4414-bccd-f4b82822aae4</guid>
    </item>
    <item>
      <title>What you should know about the Roslyn compiler at this point?</title>
      <link>http://msdn.microsoft.com/en-us/roslyn</link>
      <description>&lt;p&gt;What is the Roslyn compiler? Shortly put, it is the next version of the C# compiler that exposes it's inner workings inside out. For instance, developers get access to the parser, lexical analysis and optimization stages, and able to build tools that take advantage of this new information.&lt;/p&gt;

&lt;p&gt;At this stage, the Roslyn compiler is available as a &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27746"&gt;CTP version&lt;/a&gt;. Note that in addition to supporting the C# language, the Roslyn project actually does the same opening of compiler internals for the Visual Basic language?&lt;/p&gt;

&lt;p&gt;If you are interested in further details, there's a good &lt;a href="http://msdn.microsoft.com/en-us/hh500769"&gt;white paper&lt;/a&gt; available for you to read.&lt;/p&gt;</description>
      <pubDate>Mon, 24 Oct 2011 19:22:19 GMT</pubDate>
      <guid isPermaLink="false">5cbee678-0125-4d08-bf69-7684dfc3b9d5</guid>
    </item>
    <item>
      <title>Visual Studio keyboard shortcut discussion: why Edit.DeleteLine is different from Edit.Cut</title>
      <link>http://msdn.microsoft.com/en-us/library/dd576362.aspx</link>
      <description>&lt;p&gt;I while ago, I was giving a training course to Visual Studio developers, and among other things I showed them several code editor tips. One of them was the &lt;a href="http://msdn.microsoft.com/en-us/library/dd576362.aspx"&gt;keyboard shortcut&lt;/a&gt; to delete a line, which is Ctrl+Shift+L. I received critique that this shortcut is way too complex, and that Shift+Del would be much simpler.&lt;/p&gt;

&lt;p&gt;However, these two keyboard shortcuts are not the same. Shift+Del maps to editor command Edit.Cut, which is the same as the more commonly known Ctrl+X. That is, it cuts the current line to the clipboard. If there is no selection, the current editor line is placed in the clipboard. On the other hand, the shortcut Ctrl+Shift+L maps to Edit.DeleteLine.&lt;/p&gt;

&lt;p&gt;So yes, these two commands can look the same, but they are different in an important way: Edit.DeleteLine doesn't alter the contents of the clipboard.&lt;/p&gt;</description>
      <pubDate>Sat, 22 Oct 2011 06:38:38 GMT</pubDate>
      <guid isPermaLink="false">05a7fd10-94e7-4f90-9ac0-9757aa5bc480</guid>
    </item>
    <item>
      <title>Windows Phone Scheduled Task Agents and the WMAppManifest file</title>
      <link>http://msdn.microsoft.com/en-us/library/ff769509</link>
      <description>&lt;p&gt;If you are developing Windows Phone 7.5 applications and want to take advantage of the new multitasking features available in the Mango release, chances are you are already using scheduled task agents. If you want to properly use these agents in your applications, you must edit the &lt;a href=""&gt;WMAppManifest.xml file&lt;/a&gt; to contain an ExtendedTask element.&lt;/p&gt;

&lt;p&gt;However, the good news is that if you create a &lt;em&gt;project reference&lt;/em&gt; into the agent project from your main Windows Phone application, Visual Studio will do this work for you. It appears a regular DLL reference will not do the trick.&lt;/p&gt;

&lt;p&gt;Of course, you can always edit the WMAppManifest.xml manually. Should you wish to go this route, the documentation is &lt;a href="http://msdn.microsoft.com/en-us/library/ff769509"&gt;available here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 19:32:27 GMT</pubDate>
      <guid isPermaLink="false">af229f94-230e-4cb9-822a-cf1ba988260c</guid>
    </item>
    <item>
      <title>Information about .NET 4.5 starting to emerge on MSDN</title>
      <link>http://msdn.microsoft.com/library/ms171868(VS.110).aspx</link>
      <description>&lt;p&gt;At this writing, Microsoft is busy developing the next version of Windows, Visual Studio and the .NET Framework. If you are interested in the new features in .NET 4.5 (officially called .NET Framework 4.5 Developer Preview at this point), then the good news is that MSDN is ramping up the pre-release documentation on the next version of .NET.&lt;/p&gt;

&lt;p&gt;Here are a couple of useful links. More information becomes available almost daily, so be sure to check out back often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=””&gt;.NET for Metro style apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=”http://msdn.microsoft.com/en-us/library/hh420390(v=VS.110).aspx”&gt;ASP.NET 4.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=”http://msdn.microsoft.com/en-us/library/bb613588(v=VS.110).aspx”&gt;WPF in .NET 4.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=”http://go.microsoft.com/fwlink/?LinkId=228173”&gt;Windows Communication Foundation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, you can find more information about &lt;a href=" http://msdn.microsoft.com/en-us/library/hh156499(v=VS.110).aspx"&gt;C# 5.0&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/hh156499(v=VS.110).aspx"&gt;Visual Studio 11&lt;/a&gt; on MSDN.&lt;/p&gt;

&lt;p&gt;My favorite features so far include improved parallelism and asynchronicity, Metro support for Windows 8, IPv6 support and the WPF Ribbon control.&lt;/p&gt;</description>
      <pubDate>Sun, 16 Oct 2011 11:15:04 GMT</pubDate>
      <guid isPermaLink="false">6121cb19-5bdd-4d82-b659-8dea39e432ea</guid>
    </item>
    <item>
      <title>New Patterns &amp; Practices books available</title>
      <link>http://blogs.msdn.com/b/windowsazure/archive/2011/08/17/microsoft-patterns-amp-practices-books-offer-guidance-on-adopting-windows-azure.aspx</link>
      <description>&lt;p&gt;The Windows Azure team has published &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2011/08/17/microsoft-patterns-amp-practices-books-offer-guidance-on-adopting-windows-azure.aspx"&gt;several new eBooks&lt;/a&gt; related to software development in the cloud. The books are the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Guide to Claims-based Identity and Access Control&lt;/li&gt;
&lt;li&gt;Moving Applications to the Cloud on the Microsoft Windows Azure Platform&lt;/li&gt;
&lt;li&gt;Developing Applications for the Cloud on the Microsoft Windows Azure Platform&lt;/li&gt;
&lt;li&gt;Windows Phone 7 Developer Guide&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these books are available &lt;a href=""&gt;online&lt;/a&gt; on MSDN. I'm not sure at this point if any of these are available on print, but usually all P&amp;P publications are.&lt;/p&gt;</description>
      <pubDate>Fri, 14 Oct 2011 17:58:53 GMT</pubDate>
      <guid isPermaLink="false">e3db60d2-b10f-47d6-9bdd-f5b298590a08</guid>
    </item>
    <item>
      <title>New article in Tietokone about Excel PowerPivot</title>
      <link>http://www.odata.org/</link>
      <description>&lt;p&gt;The Spetember issue of the Finnish Tietokone magazine contains my latest article about Microsoft Excel and especially the PowerPivot extension. The article is titled "Suuret tietomassat taulukkolaskimella" and it appears on page 60.&lt;/p&gt;

&lt;p&gt;The PowerPivot extension is interesting for developers because it can directly read &lt;a href="http://www.odata.org/"&gt;OData&lt;/a&gt; based information soruces, for example those that you publish through &lt;a href="http://msdn.microsoft.com/en-us/data/bb931106"&gt;WCF Data Services&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Wed, 12 Oct 2011 04:49:38 GMT</pubDate>
      <guid isPermaLink="false">f833b517-92b3-4c49-a810-952c72122a33</guid>
    </item>
    <item>
      <title>Windows Explorer information and Windows 8</title>
      <link>http://blogs.msdn.com/b/b8/archive/2011/08/29/improvements-in-windows-explorer.aspx</link>
      <description>&lt;p&gt;Windows Explorer is the standard file management tool in the Windows operating system. It has &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/08/29/improvements-in-windows-explorer.aspx"&gt;come a long way&lt;/a&gt; since Windows 1.0, and there's a nice blog post on MSDN detailing this.&lt;/p&gt;

&lt;p&gt;In Windows 8, Windows Explorer will contain the Ribbon interface. But how did Microsoft actually use telemetrics to design and lay out the ribbon? This &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/08/29/improvements-in-windows-explorer.aspx"&gt;blog post&lt;/a&gt; gives you the details.&lt;/p&gt;

&lt;p&gt;Looks very nice to me!&lt;/p&gt;</description>
      <pubDate>Mon, 10 Oct 2011 17:01:09 GMT</pubDate>
      <guid isPermaLink="false">d386e213-109e-467d-8304-9c65388efad1</guid>
    </item>
    <item>
      <title>Functional programming in .NET, why it matters?</title>
      <link>http://msdn.microsoft.com/en-us/library/dd233154.aspx</link>
      <description>&lt;p&gt;For the past couple of years, .NET developers have seen the rise of functional programming in many different areas of the platform. For instance, the C# language got its lambda expressions a couple of years ago, and the LINQ language extensions show us examples of ideas in functional programming. Thirdly, there's the &lt;a href="http://msdn.microsoft.com/en-us/library/dd233154.aspx"&gt;F# language&lt;/a&gt;, which is completely a functional programming language, unlike C#. There are numerous other examples as well.&lt;/p&gt;

&lt;p&gt;But why would the average Joe developing basic .NET code be interested in functional programming? If you know tight coupling is your enemy and unit testing is something you (would like to) practice, then some of the ideas available in functional programming languages become useful. For instance, in functional programming, functions become very small and more complex operations are composed from these. This immediately leads to good testability, as the smallest functions tend to be atomic.&lt;/p&gt;

&lt;p&gt;Another benefit of functional programming is that there are no side-effects. Again, this leads to good testability and loose coupling, both of which are to be found useful in today's thinking.&lt;/p&gt;

&lt;p&gt;My take on this? I don't think the majority of .NET developers will move to languages like F#, but the ideas in functional programming could be well taken into any other language. Parallel programming is however a thing that will become mainstream in a couple of years. Since functional programming neatly solved the problem of parallel programming, we're likely to see merging of both C# and functional programming. Let's see what .NET 4.5 brings to us.&lt;/p&gt;</description>
      <pubDate>Fri, 07 Oct 2011 16:37:14 GMT</pubDate>
      <guid isPermaLink="false">218ee679-de8b-49ca-b9dc-149e75d6fdcf</guid>
    </item>
    <item>
      <title>Microsoft TechNet event in Helsinki on November 15</title>
      <link>http://channel9.msdn.com/Events/TechDays/Tekniset-Esitystallenteet</link>
      <description>&lt;p&gt;Microsoft Finland is arranging once again the one-day TechNet event on November 15 in Helsinki at Finlandia-talo. This time, the event is more IT professional oriented, but there is also a developer track mainly on Windows Phone user interface design.&lt;/p&gt;

&lt;p&gt;I'm also speaking at the event about custom line-of-business (LOB) application development for Windows Phone. Topics covered include the techniques used to develop these applications, some best practices, and finally the marketplace. If time allows, I'll also squeeze in a short Visual Studio demo.&lt;/p&gt;

&lt;p&gt;See you there!&lt;/p&gt;

&lt;p&gt;Update: the event recordings are &lt;a href="http://channel9.msdn.com/Events/TechDays/Tekniset-Esitystallenteet"&gt;available here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 04 Oct 2011 18:13:49 GMT</pubDate>
      <guid isPermaLink="false">ba8dfce5-ceae-4201-a4f8-078b94ab8ccb</guid>
    </item>
    <item>
      <title>How to find the IE9 View Source Editor registry key</title>
      <link>http://msdn.microsoft.com/en-us/library/aa753633</link>
      <description>&lt;p&gt;Have you ever wondered where Internet Explorer looks for the registry key when you select to &lt;a href="http://msdn.microsoft.com/en-us/library/aa753633"&gt;view the HTML page source&lt;/a&gt; of the page you are currently viewing? Or, has some application changed the default Notepad to something else, and you want it back?&lt;/p&gt;

&lt;p&gt;Luckily, the solution is easy. Just look for the following registry key (on a 64-bit machine):&lt;/p&gt;

&lt;pre&gt;
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\
Internet Explorer\View Source Editor\Editor Name
&lt;/pre&gt;

&lt;p&gt;The "(Default)" value of this key is the full path used to launch the view source editor/viewer application. IE appends the current HTML file's cache path to the value you specify. For instance, to get Notepad back again, specify "C:\Windows\System32\Notepad.exe" as the value.&lt;/p&gt;

&lt;p&gt;More details can be found &lt;a href="http://msdn.microsoft.com/en-us/library/aa753633"&gt;here on MSDN&lt;/a&gt;. Oh, don't mind the screenshots that were taken from Internet Explorer 5 (IE5). The registry keys are still valid in IE9 (don't know about IE10, though).&lt;/p&gt;</description>
      <pubDate>Sat, 01 Oct 2011 16:21:29 GMT</pubDate>
      <guid isPermaLink="false">4a12b8a6-92fc-4629-b3fc-be525d7c1dbe</guid>
    </item>
    <item>
      <title>Link: C# 4.0 Cheat Sheet</title>
      <link>http://www.saunalahti.fi/janij/blog/files/c%23_40_cheatsheet.pdf</link>
      <description>&lt;p&gt;Earlier this year, I wrote a C# 4.0 Cheat Sheet for the CodeGuru.com web site. Apparently, some readers have found it difficult to find, so I thought I'd give them a link as well. Hope you like it!&lt;/p&gt;

&lt;p&gt;Download the &lt;a href="http://www.saunalahti.fi/janij/blog/files/c%23_40_cheatsheet.pdf"&gt;C# 4.0 Cheat Sheet here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Fri, 30 Sep 2011 19:03:26 GMT</pubDate>
      <guid isPermaLink="false">c971140d-70a0-4023-813c-28bc1d632039</guid>
    </item>
    <item>
      <title>Samsung SUR40 table computer with Microsoft Surface 2.0</title>
      <link>http://www.samsunglfd.com/solution/sur40.do</link>
      <description>&lt;p&gt;I recently learned that Samsung has updated its Microsoft &lt;a href="http://www.samsunglfd.com/solution/sur40.do"&gt;Surface 2.0 table&lt;/a&gt;. Interestingly enough, the touch functionality in the table is not capacitive (as in mobile phones) nor resistive, but instead the table acts as a giant imaging sensor and takes photographs of items on top of it. Of course, the camera resolution is low compared to digital cameras, but enough to "see" what has been laid out on the table.&lt;/p&gt;

&lt;p&gt;It looks like the closest office to actually sell the table is in Sweden, and I sent an email to Samsung Sweden asking for the price, but never got any reply. Seems like Samsung is not yet ready for mass appeal with this product.&lt;/p&gt;</description>
      <pubDate>Tue, 27 Sep 2011 16:46:29 GMT</pubDate>
      <guid isPermaLink="false">f4d0778d-9d59-4ab9-8863-68b06f5738ee</guid>
    </item>
    <item>
      <title>A friendly reminder on SET ANSI_NULLS ON in stored procedures</title>
      <link>http://msdn.microsoft.com/en-us/library/ms188048.aspx</link>
      <description>&lt;p&gt;Working with SQL Server and stored procedures is a well-known task to many developers. Recently, I needed to debug a slowly running stored procedure on a SQL Server 2008 database. I knew that the procedure used to run correctly (that is, fast enough) before small changes to the code, after which the delays started. However, the changes were very minor, and didn't alter the way the SELECT statements inside the procedure worked.&lt;/p&gt;

&lt;p&gt;Indeed, the situation was rather puzzling, until I compared the full scripts of both the CREATE PROCEDURE and ALTER PROCEDURE statements. It turned out that the difference was in the SET ANSI_NULLS option: in the fast procedure, the option was ON, and in the new version it was OFF.&lt;/p&gt;

&lt;p&gt;Why did the performance change? The reason is that this option &lt;a href="http://msdn.microsoft.com/en-us/library/ms188048.aspx"&gt;changes the way NULL values are processed&lt;/a&gt; in queries, and depending on the database structure and queries executed, this can have a difference in the speed at which SQL Server can execute the procedure.&lt;/p&gt;

&lt;p&gt;The default should be to always enable this option. But, the thing to remember is this: whenever you create your stored procedure or alter it, the SET ANSI_NULLS option must be set before the CREATE or ALTER procedure. Then, this information is associated with the procedure. Once this is done, you cannot anymore set the ANSI_NULLS option in client code, because it is an option tied to the procedure, not the caller. This is something not all .NET and SQL developers are aware of.&lt;/p&gt;

&lt;p&gt;Finally, the future SQL Server versions (think SQL Server 2012 and beyond) will not support this option anymore, and will default to SET ANSI_NULLS ON behavior. Thus, it is best to migrate away from the non-standard functionality.&lt;/p&gt;</description>
      <pubDate>Sun, 25 Sep 2011 11:15:30 GMT</pubDate>
      <guid isPermaLink="false">f7704cda-e8c8-4118-a3b8-68f10454589b</guid>
    </item>
    <item>
      <title>TechEd USA 2012 in Orlando in June</title>
      <link>http://northamerica.msteched.com/</link>
      <description>&lt;p&gt;If you are in the U.S., chances are you have already attended some of the TechEd events. Next year, TechEd 2012 is going to be held in June in Orlando, Florida.&lt;/p&gt;

&lt;p&gt;The dates are June 11–14. Be sure to mark the dates in your calendar. The event already has basic web pages up and running at &lt;a href="http://northamerica.msteched.com/"&gt;northamerica.msteched.com&lt;/a&gt;. It isn't difficult to guess that Windows 8, Visual Studio 11 and .NET 4.5 will be high on the topic list.&lt;/p&gt;</description>
      <pubDate>Thu, 22 Sep 2011 05:40:14 GMT</pubDate>
      <guid isPermaLink="false">656d8e10-7cde-4451-a5af-155b0ef7ec94</guid>
    </item>
    <item>
      <title>C# coding tip: showing IIS and ASP.NET information quickly</title>
      <link>http://learn.iis.net/page.aspx/624/application-pool-identities/</link>
      <description>&lt;p&gt;If you are working with ASP.NET web applications and the IIS web server, there is often the need to quickly know information about the current &lt;a href="http://learn.iis.net/page.aspx/624/application-pool-identities/"&gt;application pool&lt;/a&gt;, Windows account (the identity), .NET framework version, and so forth. To help me quickly get this information, I often create a really simple web application with Visual Studio that contains a single ASPX page. Then I put a label onto the page, and type in code similar to the following to the Page_Load event handler.&lt;/p&gt;

&lt;p&gt;Here is an example when using ASP.NET Web Forms:&lt;/p&gt;

&lt;pre&gt;
SystemInfoLabel.Text = "Application pool .NET version: " +
  Environment.Version + "&lt;br/&gt;\r\n" +
  "64-bit process: " + Environment.Is64BitProcess + "&lt;br/&gt;\r\n" +
  "Pool identity: " + System.Security.Principal.
    WindowsIdentity.GetCurrent().Name + "&lt;br/&gt;\r\n"+
  "Culture/UI culture: " + Thread.CurrentThread.CurrentCulture.Name + "/" +
  Thread.CurrentThread.CurrentUICulture.Name;
&lt;/pre&gt;

&lt;p&gt;With this code in place, you can quickly get the information you need, without asking the customer/administrator, or wandering around in the management utilities.&lt;/p&gt;</description>
      <pubDate>Tue, 20 Sep 2011 19:32:52 GMT</pubDate>
      <guid isPermaLink="false">5d27e347-73f4-406d-b544-8de73a2e9342</guid>
    </item>
    <item>
      <title>What happens for native Win32 applications in Windows 8?</title>
      <link>http://msdn.microsoft.com/en-us/library/windows/apps/br229583(v=VS.85).aspx</link>
      <description>&lt;p&gt;Now that Windows 8 developer information has been made available for instance on &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229583(v=VS.85).aspx"&gt;MSDN&lt;/a&gt;, the main developer question are of course what happens to existing applications and what are the new APIs to use.&lt;/p&gt;

&lt;p&gt;Shortly put, native Win32 application support isn't going to vanish in Windows 8, but Win32 code or APIs cannot anymore be used to write new Metro style applications. For that, completely new APIs exists, and for native code developers this means WinRT, short for Windows Runtime.&lt;/p&gt;

&lt;p&gt;For more information, see the MSDN developer topic "Roadmap for creating Metro style apps using C#, C++, or Visual Basic" available &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229583(v=VS.85).aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;PS. The keynote speach of Build can now be seen and downloaded from &lt;a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/KEY-0001"&gt;Channel 9&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 17 Sep 2011 08:53:51 GMT</pubDate>
      <guid isPermaLink="false">abd4ec13-371b-45fa-b006-a6b92e833303</guid>
    </item>
    <item>
      <title>Security testing your web applications with Mozilla Hackbar</title>
      <link>http://msdn.microsoft.com/en-us/scriptjunkie/hh392576.aspx</link>
      <description>&lt;p&gt;The Microsoft scriptjunkie{} section contains lots of useful information about (serious) web application development. Recently, the site started talking about locking down your web applications for good security. In &lt;a href="http://msdn.microsoft.com/en-us/scriptjunkie/hh392576.aspx"&gt;part 3 of the series&lt;/a&gt; the author Tim Kulp is talking about tools to help you test your sites.&lt;/p&gt;

&lt;p&gt;One of the tools used is &lt;a href="https://code.google.com/p/hackbar/"&gt;Hackbar&lt;/a&gt;, available for Mozilla/Firefox browsers. The add-in is about testing for "SQL injections, XSS holes and site security", and is a well-deserved tool for your security toolbox.&lt;/p&gt;

&lt;p&gt;In addition to talking about tools, Tim also well explains what steps you should take when making your web applications secure. Recommended reading.&lt;/p&gt;</description>
      <pubDate>Fri, 16 Sep 2011 15:14:08 GMT</pubDate>
      <guid isPermaLink="false">f4238154-cc7a-42cf-8f94-ed50162b2fb5</guid>
    </item>
    <item>
      <title>The word is out: Windows 8 contains a new Metro UI as the main interface</title>
      <link>http://msdn.microsoft.com/en-us/windows/home/</link>
      <description>&lt;p&gt;So the news is out: Windows 8 is going to have a brand new main interface called Metro. This is similar to the looks of the Metro UI on Windows Phone.&lt;/p&gt;

&lt;p&gt;This change is a big one for developers, too. If you want to develop applications for Windows 8, you have to decide whether you want to target for the new Metro UI, or continue developing Windows applications with the old technology. Older application continue to run just as they did on Windows 7.&lt;/p&gt;

&lt;p&gt;To help communicating the news, the Windows developer center on MSDN has been revamped with fresh looks and content. To learn more, check out the new &lt;a href="http://msdn.microsoft.com/en-us/windows/home/"&gt;Windows Dev Center&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 14 Sep 2011 04:32:40 GMT</pubDate>
      <guid isPermaLink="false">3b64abfa-5b85-412c-a242-9e376e5c27c9</guid>
    </item>
    <item>
      <title>Build conference soon underway</title>
      <link>http://www.buildwindows.com/</link>
      <description>&lt;p&gt;This year, Microsoft is arranging the Build (officially written as //Build) conference in Anaheim, California (for outsiders, it's more or less the same as Los Angeles). Although only a limited number of people fit in, I expect a lot of web coverage for people wanting to have the latest information soon.&lt;/p&gt;

&lt;p&gt;The pre-hype is that //Build should include lots of Windows 8 talk, but I would personally expect some Windows Phone Mango announcements as well. For example, and RTM version of the developer tools would be just great.&lt;/p&gt;

&lt;p&gt;The main Build web site is at &lt;a href="http://www.buildwindows.com/"&gt;buildwindows.com&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 10 Sep 2011 14:53:37 GMT</pubDate>
      <guid isPermaLink="false">df93dea2-7aaa-4056-8190-506327dde24e</guid>
    </item>
    <item>
      <title>Windows hardening tips from NSA</title>
      <link>http://www.nsa.gov/ia/guidance/security_configuration_guides/operating_systems.shtml</link>
      <description>&lt;p&gt;If you are developing secure applications and are interesting in making your Windows operating systems (server or workstation) as secure as possible, in addtion to Microsoft supplied material you could take a look onto NSA's web site. On the site, they have a special section for computer operating system security, which includes &lt;a href="http://www.nsa.gov/ia/guidance/security_configuration_guides/operating_systems.shtml"&gt;hardening information&lt;/a&gt; for Windows 7 and Windows Server 2008 (R2).&lt;/p&gt;

&lt;p&gt;For example, a document titled "Security Highlights of Windows 7" is available for download on the site, including tools and benchmarks to make sure your system is secure enough for many situations when working with classified data.&lt;/p&gt;</description>
      <pubDate>Wed, 07 Sep 2011 03:16:37 GMT</pubDate>
      <guid isPermaLink="false">181025d3-7ed4-4ce6-9b85-16be9c4369cd</guid>
    </item>
    <item>
      <title>"Building Windows 8" blog now available</title>
      <link>http://blogs.msdn.com/b/b8/</link>
      <description>&lt;p&gt;If you are interested in how Windows 8 is being built and what the team behind it is planning and thinking about the future, a new blog called &lt;a href="http://blogs.msdn.com/b/b8/"&gt;Building Windows 8&lt;/a&gt; should be interesting.&lt;/p&gt;

&lt;p&gt;The first posts have just started to appear, and will in the future cover many interesting topics. Stay tuned on the news on that blog, I'm pretty sure it's worth your time.&lt;/p&gt;</description>
      <pubDate>Sun, 04 Sep 2011 06:44:31 GMT</pubDate>
      <guid isPermaLink="false">c144ac1f-f7df-4661-aef9-20c9ceb0696a</guid>
    </item>
    <item>
      <title>What is SQL Express LocalDB?</title>
      <link>http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx</link>
      <description>&lt;p&gt;As a developer, the chances are you are well familiar with SQL Server and it's many editions. Chances are you have also used SQL Server Compact Edition (CE), or just Compact as it is often called.&lt;/p&gt;

&lt;p&gt;SQL Server Compact is a light-weight database with a footprint of only several megabytes (think four). Then, the next-largest edition is the free SQL Server Express edition, which is fully compatible with the commercial, "big" editions of SQL Server like the Standard Edition.&lt;/p&gt;

&lt;p&gt;In SQL Server "Denali", the team is working on an "in-between" solution called &lt;a href="http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx"&gt;SQL Server LocalDB&lt;/a&gt;, which is smallish in the footprint (around 150 MB), but would still be convenient to use like SQL Server Compact. The LocalDB should support features like stored procedures (SPs), the Geometry and Geography data types, and so on.&lt;/p&gt;</description>
      <pubDate>Fri, 02 Sep 2011 20:01:12 GMT</pubDate>
      <guid isPermaLink="false">c4d54b62-643b-474c-aee6-21fddd108b44</guid>
    </item>
    <item>
      <title>New .NET parallel programming book available</title>
      <link>http://www.amazon.com/Parallel-Programming-Microsoft-Visual-Studio/dp/0735640602/ref=sr_1_2?s=books&amp;ie=UTF8&amp;qid=1316264174&amp;sr=1-2</link>
      <description>&lt;p&gt;Parallel programming should be in the minds of every desktop developer, not matter what kinf applications are being built. The Internet contains lots of resources for getting up to speed with the topic, but sometimes a book is a much better way to learn.&lt;/p&gt;

&lt;p&gt;Microsoft Press has just recently published a new book titled "Parallel Programming with Microsoft Visual Studio 2010 Step by Step". The book is written by Donis Marshall and is available for example from &lt;a href="http://www.amazon.com/Parallel-Programming-Microsoft-Visual-Studio/dp/0735640602/ref=sr_1_2?s=books&amp;ie=UTF8&amp;qid=1316264174&amp;sr=1-2"&gt;Amazon&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This book can be had for just above $20, which is a very small sum for more efficient applications with .NET and C#.&lt;/p&gt;</description>
      <pubDate>Wed, 31 Aug 2011 19:16:23 GMT</pubDate>
      <guid isPermaLink="false">dc904915-3ab9-4643-b85f-dbd3ca4254fc</guid>
    </item>
    <item>
      <title>Windows Phone developer certifications now available</title>
      <link>http://www.microsoft.com/learning/en/us/certification/cert-windowsphone.aspx</link>
      <description>&lt;p&gt;In the Microsoft circles, a certification such as Microsoft Technical Specialist or Microsoft Professional Developer (MCPD) are sought-after certifications. I recently browsed the &lt;a href="http://www.microsoft.com/learning/en/us/default.aspx"&gt;Microsoft Learning&lt;/a&gt; web site, and ran into interesting news: Windows Phone 7 developer certifications are now available.&lt;/p&gt;

&lt;p&gt;The Windows Phone certifications can be found on a &lt;a href="http://www.microsoft.com/learning/en/us/certification/cert-windowsphone.aspx"&gt;separate page&lt;/a&gt; and range from topics like Silverlight 4 to data access on the platform.&lt;/p&gt;

&lt;p&gt;Currently, the exam numbers are 70-506, 70-516 and finally 70-599.&lt;/p&gt;</description>
      <pubDate>Mon, 29 Aug 2011 19:06:18 GMT</pubDate>
      <guid isPermaLink="false">6608c1ae-f4c1-4113-9add-73cd023b3e36</guid>
    </item>
    <item>
      <title>Microsoft Camera Raw codes available for Windows 7</title>
      <link>http://www.microsoft.com/download/en/details.aspx?id=26829</link>
      <description>&lt;p&gt;In my experience, many developers are also keen on photography, partly because there's a lot of high-tech as well as the visuals of the art. If happen to own especially a digital SLR, chances are most of your images will be in various raw image formats, depending on your camera make and model.&lt;/p&gt;

&lt;p&gt;Personally, I'm using Adobe Lightroom to manage my pictures (both raw and JPEG), but sometimes I'd just like to quickly view an image to see if I found the correct one, without opening Lightroom. By default, Windows 7 doesn't understand for example Canon's .CR2 raw file format, but with the new &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26829"&gt;Camera Codec Pack for Windows 7&lt;/a&gt;, it can.&lt;/p&gt;

&lt;p&gt;This package was launched in late July, so it's pretty new. You can download your copy &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26829"&gt;here&lt;/a&gt;. Both 32 and 64 bit systems are supported.&lt;/p&gt;</description>
      <pubDate>Sat, 27 Aug 2011 18:44:14 GMT</pubDate>
      <guid isPermaLink="false">6c3e79b8-1626-47a0-97e9-204610795114</guid>
    </item>
    <item>
      <title>Windows Phone 7.1 SDK RC now available</title>
      <link>http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=27153</link>
      <description>&lt;p&gt;Good news for Windows Phone developers waiting for the Mango release: the Windows Phone SDK 7.1 Release Candidate tools are &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=27153"&gt;now available&lt;/a&gt;. This RC version includes a "Go Live" license, meaning that you can already start submitting your Mango compatible apps to the marketplace. This marketplace submission opened on Monday.&lt;/p&gt;

&lt;p&gt;If you have already Windows Phone Developer Tools 7.1 Beta 1 or Beta 2 tools installed, it is best to uninstall them first, and only then attempt to install these new RC tools.&lt;/p&gt;

&lt;p&gt;If you want, you can also download the SDK as a complete &lt;a href="http://go.microsoft.com/fwlink/?LinkID=223971"&gt;.ISO image file&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</description>
      <pubDate>Wed, 24 Aug 2011 16:10:18 GMT</pubDate>
      <guid isPermaLink="false">3997a3ac-d704-4d38-986f-fb908491cb11</guid>
    </item>
    <item>
      <title>Concepting your mobile applications</title>
      <link>http://msdn.microsoft.com/en-us/library/hh202900(v=VS.92).aspx</link>
      <description>&lt;p&gt;Unless you've just started your .NET development career, chances are you've already got a plenty of experience in the PC/Windows world, perhaps developing desktop and/or web application. However, with the current trend towards mobile applications, developers need to learn to think slightly different. For instance, designing for touch is different than designing for the precise mouse.&lt;/p&gt;

&lt;p&gt;Microsoft has put up a &lt;a href="http://msdn.microsoft.com/en-us/library/hh202900(v=VS.92).aspx"&gt;nice article on MSDN&lt;/a&gt; about Application Conceptualization, which I suggest checking out if you are planning to develop mobile applications. Shortly put, a solid concept makes planning easier, and allows you to focus on the real work after to decide to proceed.&lt;/p&gt;

&lt;p&gt;Of course, many questions discussed would apply equally to desktop applications, but since that's already an old paradigm, most developers already know what to expect. in case of Windows Phone for example, things are all new for every .NET developer.&lt;/p&gt;</description>
      <pubDate>Mon, 22 Aug 2011 18:10:07 GMT</pubDate>
      <guid isPermaLink="false">3ef0f9eb-6244-4a0c-b6c8-1e62225d479a</guid>
    </item>
    <item>
      <title>New article in Tietokone</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;The August issue of &lt;a href="http://www.tietokone.fi/"&gt;Tietokone&lt;/a&gt; contains my latest article, this time about getting your web site up and running, on budget. If you are a developer and looking for a hosting provides with suitable technologies such as ASP.NET or SQL Server, check out the article.&lt;/p&gt;

&lt;p&gt;The article starts on page 63 and is titled "Web-sivut ja tietokannat pikkurahalla".&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Sat, 20 Aug 2011 05:45:06 GMT</pubDate>
      <guid isPermaLink="false">79e85ea5-49f0-44de-acaa-eee6fc453af6</guid>
    </item>
    <item>
      <title>Lync developer information on MSDN</title>
      <link>http://msdn.microsoft.com/en-us/library/gg447818.aspx</link>
      <description>&lt;p&gt;Today, I wanted to share a couple of helpful links to extending Lync, Microsoft's new online communication and collaboration tool/platform/application. Lync can be used in the enterprise by installing the server and appropriate client, or, you can get the service from the cloud with Office 365.&lt;/p&gt;

&lt;p&gt;If you are interested in integrating such features to your own application, or wish to extend Lync itself, it is best to get started with the topic "Lync 2010 SDK Development Models" &lt;a href="http://msdn.microsoft.com/en-us/library/gg447818.aspx"&gt;here&lt;/a&gt;. After that, you might want to read the document titled "Lync Server 2010 Application API Overview" &lt;a href="http://msdn.microsoft.com/en-us/library/gg439537.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I haven't yet found broad third-party documentation about these topics, but this is to be expected as the product is itself quite new. If you haven't yet tried Lync, you should. For product information, check out &lt;a href="http://lync.microsoft.com/en-us/pages/default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 17 Aug 2011 19:38:17 GMT</pubDate>
      <guid isPermaLink="false">b3cb6601-2d8a-47ac-8041-af99787f84d3</guid>
    </item>
    <item>
      <title>Testing for object equality in C# (common in TDD)</title>
      <link>http://msdn.microsoft.com/en-us/library/bsc2ak47.aspx</link>
      <description>&lt;p&gt;Assume you are writing your application and want to focus on unit testing. Perhaps you are working with the TDD methodology, writing your tests before your code. For example, you could be writing your ASP.NET MVC application, and want to write a unit test to compare two model objects. Say, you have the two following classes:&lt;/p&gt;

&lt;pre&gt;
public class Cat
{
  public string Name { get; set; }
}
public class Dog
{
  public string Name { get; set; }
}
&lt;/pre&gt;

&lt;p&gt;In .NET and C#, the base class for all objects, System.Objects implements the Equals method that by default compares objects by reference (for reference types). Thus, when you say something like "if (a == b)" and both a and b are class instances, then the default implementation compares whether the object references to the same memory location. This is called reference equality.&lt;/p&gt;

&lt;p&gt;However, you cannot compare two different classes by default. For example, the following code:&lt;/p&gt;

&lt;pre&gt;
Cat c = new Cat();
Dog d = new Dog();
if (c == d)
{
    MessageBox.Show("Cat IS equal to dog.");
}
else
{
    MessageBox.Show("Cat is NOT equal to dog.");
}
&lt;/pre&gt;

&lt;p&gt;...would cause the following compiler error CS0019 on the third line:&lt;/p&gt;

&lt;pre&gt;
Error: Operator '==' cannot be applied to operands of type
'EqualityTest.Cat' and 'EqualityTest.Dog'
&lt;/pre&gt;

&lt;p&gt;If you wanted to compare a cat to a dog (as would be common when working with TDD), the solution would be to override the &lt;a href="http://msdn.microsoft.com/en-us/library/bsc2ak47.aspx"&gt;Equals method&lt;/a&gt; in both the Cat and Dog classes. Also, if you choose to implement your own Equals method, you might actually wish to compare the values of the classes (for example, some property value(s) like the Name above) instead of just memory references. This is called testing for value equality.&lt;/p&gt;

&lt;p&gt;But, although implementing the Equals method sounds easy, you actually should do things properly. The MSDN documentation for Equals lists several rules that all implementations should follow. The following is a quote from the documentation:&lt;/p&gt;

&lt;blockquote&gt;
The following statements must be true for all implementations of the Equals method. In the list, x, y, and z represent object references that are not null.
&lt;ul&gt;
&lt;li&gt;- x.Equals(x) returns true, except in cases that involve floating-point types. See IEC 60559:1989, Binary Floating-point Arithmetic for Microprocessor Systems.&lt;/li&gt;
&lt;li&gt;- x.Equals(y) returns the same value as y.Equals(x).&lt;/li&gt;
&lt;li&gt;- x.Equals(y) returns true if both x and y are NaN.&lt;/li&gt;
&lt;li&gt;- If (x.Equals(y) &amp;&amp; y.Equals(z)) returns true, then x.Equals(z) returns true.&lt;/li&gt;
&lt;li&gt;- Successive calls to x.Equals(y) return the same value as long as the objects referenced by x and y are not modified.&lt;/li&gt;
&lt;li&gt;- x.Equals(null) returns false.&lt;/li&gt;
&lt;/blockquote&gt;

&lt;p&gt;In practice, I've myself followed a Rule of Four. This means that when implementing the Equals method for classes and I want to test for value equality, I create four different tests inside the methods. These are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test for null values. The object that we compare to cannot be null.&lt;/li&gt;
&lt;li&gt;Compare types with GetType(). Usually, you don’t want to compare apples to oranges, or cats or dogs in this case.&lt;/li&gt;
&lt;li&gt;Check for reference equality. If by chance the two objects point to the same memory location, then there’s no need to check for field-by-field value equality. This is a speed optimization.&lt;/li&gt;
&lt;li&gt;Check for value equality, field-by-field (or property-by-property).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These four tests should correctly implement the rules set forth in MSDN.&lt;/p&gt;

&lt;p&gt;Note that when you override the Equals method in your own class, you should also override the GetHashCode method. This is not strictly necessary if you do not plan to use for example the Hashtable or derived collection classes, but nonetheless, it is a good practice to do so. If you don't, the C# compiler will issue a warning to the following effect:&lt;/p&gt;

&lt;pre&gt;
Warning: 'EqualityTest.Cat' overrides Object.Equals(object o) but does
not override Object.GetHashCode()
&lt;/pre&gt;

&lt;p&gt;Here's the final code for the Cat and Dog classes.&lt;/p&gt;

&lt;pre&gt;
public class Cat
{
  public string Name { get; set; }

  public override bool Equals(object obj)
  {
    // test 1: null value
    if (obj == null) return false;

    // test 2: different types
    if (this.GetType() != obj.GetType()) return false;

    // test 3: reference equality (for speed)
    if (object.ReferenceEquals(this, obj)) return true;

    // test 4: value equality
    return this.Name == ((Cat)obj).Name;
  }

  public override int GetHashCode()
  {
    return Name.GetHashCode();
  }
}

public class Dog
{
  public string Name { get; set; }

  public override bool Equals(object obj)
  {
    // test 1: null value
    if (obj == null) return false;

    // test 2: different types
    if (this.GetType() != obj.GetType()) return false;

    // test 3: reference equality (for speed)
    if (object.ReferenceEquals(this, obj)) return true;

    // test 4: value equality
    return this.Name == ((Dog)obj).Name;
  }

  public override int GetHashCode()
  {
    return Name.GetHashCode();
  }
}
&lt;/pre&gt;

&lt;p&gt;To test these, call the Equals method directly like this:&lt;/p&gt;

&lt;pre&gt;
if (c.Equals(d)) ...
&lt;/pre&gt;

&lt;p&gt;To use the == operator, you would still need to write additional code to overload the equality operator.&lt;/p&gt;</description>
      <pubDate>Sun, 14 Aug 2011 12:56:00 GMT</pubDate>
      <guid isPermaLink="false">fe2e54e1-b381-401f-89de-17f16d478aca</guid>
    </item>
    <item>
      <title>Windows Azure Tools for Microsoft Visual Studio 2010</title>
      <link>http://blogs.msdn.com/b/windowsazure/archive/2011/08/03/announcing-the-august-2011-release-of-the-windows-azure-tools-for-microsoft-visual-studio-2010.aspx</link>
      <description>&lt;p&gt;Microsoft announced on their developer blog last week, that the Windows Azure development tools for Visual Studio 2010 have been updated. The update is described &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2011/08/03/announcing-the-august-2011-release-of-the-windows-azure-tools-for-microsoft-visual-studio-2010.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The new features include profiling support, support for ASP.NET MVC 3, and enabling multiple service configurations in a single cloud application project, among others. Sounds like a good package to me.&lt;/p&gt;

&lt;p&gt;Go download your copy today!&lt;/p&gt;</description>
      <pubDate>Thu, 11 Aug 2011 20:55:56 GMT</pubDate>
      <guid isPermaLink="false">550b788a-19f3-4623-b49e-864cd5253d19</guid>
    </item>
    <item>
      <title>SQL Server Standard vs. Express: what are the main differences?</title>
      <link>http://www.microsoft.com/sqlserver/en/us/product-info/compare.aspx</link>
      <description>&lt;p&gt;For far too many times, I've needed to find the answer to the question about the differences between Microsoft SQL Server's free Express version and the first (proper) commercial edition, Standard. Nowadays, I recall these differences from the top of my head, but sometimes, I still need to back up my memory or check a more exotic need.&lt;/p&gt;

&lt;p&gt;The good news is that Microsoft has updated their product web pages and improved the Compare Editions page. This page has existed for a long time, but the new summer enhancement makes the page a breeze to use. The new page can be found &lt;a href="http://www.microsoft.com/sqlserver/en/us/product-info/compare.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;From the page, you can get the classic question answered: "What is the difference between SQL Server Standard and Express when it comes to database size and performance?". The following table says it all:&lt;/p&gt;

&lt;table&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Feature/Edition&lt;/th&gt;
			&lt;th&gt;Standard&lt;/th&gt;
			&lt;th&gt;Express&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr&gt;
		&lt;td&gt;Number of CPUs&lt;/td&gt;
		&lt;td&gt;4&lt;/td&gt;
		&lt;td&gt;1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Maximum memory utilized&lt;/td&gt;
		&lt;td&gt;64 GB&lt;/td&gt;
		&lt;td&gt;1 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Maximum database size&lt;/td&gt;
		&lt;td&gt;524 PB&lt;/td&gt;
		&lt;td&gt;10 GB&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Shortly put, the free Express edition only supports a single CPU (physical socket, not logical [though not exactly the same, you could roughly equate a logical CPU with a processor core in today's multi-core processors]) and up to 10 GB database size.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Aug 2011 19:02:12 GMT</pubDate>
      <guid isPermaLink="false">dbe83237-54db-4be0-a01a-4bf8df178bdd</guid>
    </item>
    <item>
      <title>Nice Mango screeshots available on Business Insider</title>
      <link>http://www.businessinsider.com/windows-phone-mango-2011-8</link>
      <description>&lt;p&gt;BusinessInsider's Ellis Hamburger has created a nice article about Windows Phone "Mango" and its new features along with lots of nice screenshots.&lt;/p&gt;

&lt;p&gt;Check the article out &lt;a href="http://www.businessinsider.com/windows-phone-mango-2011-8"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 06 Aug 2011 11:21:42 GMT</pubDate>
      <guid isPermaLink="false">00439df0-7c68-432e-82fe-7589edf8185b</guid>
    </item>
    <item>
      <title>SQL Server Standard vs. Express: what are the main differences?</title>
      <link>http://www.microsoft.com/sqlserver/en/us/product-info/compare.aspx</link>
      <description>&lt;p&gt;For far too many times, I've needed to find the answer to the question about the differences between Microsoft SQL Server's free Express version and the first (proper) commercial edition, Standard. Nowadays, I recall these differences from the top of my head, but sometimes, I still need to back up my memory or check a more exotic need.&lt;/p&gt;

&lt;p&gt;The good news is that Microsoft has updated their product web pages and improved the Compare Editions page. This page has existed for a long time, but the new summer enhancement makes the page a breeze to use. The new page can be found &lt;a href="http://www.microsoft.com/sqlserver/en/us/product-info/compare.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;From the page, you can get the classic question answered: "What is the difference between SQL Server Standard and Express when it comes to database size and performance?". The following table says it all:&lt;/p&gt;

&lt;table&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Feature/Edition&lt;/th&gt;
			&lt;th&gt;Standard&lt;/th&gt;
			&lt;th&gt;Express&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr&gt;
		&lt;td&gt;Number of CPUs&lt;/td&gt;
		&lt;td&gt;4&lt;/td&gt;
		&lt;td&gt;1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Maximum memory utilized&lt;/td&gt;
		&lt;td&gt;64 GB&lt;/td&gt;
		&lt;td&gt;1 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Maximum database size&lt;/td&gt;
		&lt;td&gt;524 PB&lt;/td&gt;
		&lt;td&gt;10 GB&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Shortly put, the free Express edition only supports a single CPU (physical socket, not logical [though not exactly the same, you could roughly equate a logical CPU with a processor core in today's multi-core processors]) and up to 10 GB database size.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Aug 2011 17:51:36 GMT</pubDate>
      <guid isPermaLink="false">0584c78a-e571-452d-86f4-e18e8e946531</guid>
    </item>
    <item>
      <title>Testing for object equality in C# (common in TDD)</title>
      <link>http://msdn.microsoft.com/en-us/library/bsc2ak47.aspx</link>
      <description>&lt;p&gt;Hello August! Assume you are writing your .NET application, and want to focus on unit testing. Perhaps you are working with the TDD methodology, writing your tests before your code. For example, you could be writing your ASP.NET MVC application, and want to write an unit test to compare two model objects. Say, you have the two following classes:&lt;/p&gt;

&lt;pre&gt;
public class Cat
{
  public string Name { get; set; }
}

public class Dog
{
  public string Name { get; set; }
}
&lt;/pre&gt;

&lt;p&gt;In .NET and C#, the base class for all objects, System.Objects implements the Equals method that by default compares objects by reference (for reference types). Thus, when you say something like "if (a == b)" and both a and b are class instances, then the default implementation compares whether the object references to the same memory location. This is called reference equality.&lt;/p&gt;

&lt;p&gt;However, you cannot compare two different classes by default. For example, the following code:&lt;/p&gt;

&lt;pre&gt;
Cat c = new Cat();
Dog d = new Dog();
if (c == d)
{
    MessageBox.Show("Cat IS equal to dog.");
}
else
{
    MessageBox.Show("Cat is NOT equal to dog.");
}
&lt;/pre&gt;

&lt;p&gt;...would cause the following compiler error CS0019 on the third line:&lt;/p&gt;

&lt;pre&gt;
Error: Operator '==' cannot be applied to operands of type 'EqualityTest.Cat' and 'EqualityTest.Dog'
&lt;/pre&gt;

&lt;p&gt;If you wanted to compare a cat to a dog (as would be common when working with TDD), the solution would be to override the &lt;a href="http://msdn.microsoft.com/en-us/library/bsc2ak47.aspx"&gt;Equals method&lt;/a&gt; in both the Cat and Dog classes. Also, if you choose to implement your own Equals method, you might actually wish to compare the values of the classes (for example, some property value(s) like the Name above) instead of just memory references. This is called testing for value equality.&lt;/p&gt;

&lt;p&gt;But, although implementing the Equals method sounds easy, you actually should do things properly. The MSDN documentation for Equals lists several rules that all implementations should follow. The following is a quote from the documentation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The following statements must be true for all implementations of the Equals method. In the list, x, y, and z represent object references that are not null.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- x.Equals(x) returns true, except in cases that involve floating-point types. See IEC 60559:1989, Binary Floating-point Arithmetic for Microprocessor Systems.&lt;/li&gt;
&lt;li&gt;- x.Equals(y) returns the same value as y.Equals(x).&lt;/li&gt;
&lt;li&gt;- x.Equals(y) returns true if both x and y are NaN.&lt;/li&gt;
&lt;li&gt;- If (x.Equals(y) &amp;&amp; y.Equals(z)) returns true, then x.Equals(z) returns true.&lt;/li&gt;
&lt;li&gt;- Successive calls to x.Equals(y) return the same value as long as the objects referenced by x and y are not modified.&lt;/li&gt;
&lt;li&gt;- x.Equals(null) returns false.&lt;/li&gt;
&lt;/blockquote&gt;

&lt;p&gt;In practice, I've myself followed a Rule of Four. This means that when implementing the Equals method for classes and I want to test for value equality, I create four different tests inside the methods. These are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test for null values. The object that we compare to cannot be null.&lt;/li&gt;
&lt;li&gt;Compare types with GetType(). Usually, you don’t want to compare apples to oranges, or cats or dogs in this case.&lt;/li&gt;
&lt;li&gt;Check for reference equality. If by chance the two objects point to the same memory location, then there’s no need to check for field-by-field value equality. This is a speed optimization.&lt;/li&gt;
&lt;li&gt;Check for value equality, field-by-field (or property-by-property).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These four tests would correctly implement the rules set forth in MSDN.&lt;/p&gt;

&lt;p&gt;Note that when you override the Equals method in your own class, you should also override the GetHashCode method. This is not strictly necessary if you do not plan to use for example the Hashtable or derived collection classes, but nonetheless, it is a good practice to do so. If you don't, the C# compiler will issue a warning to the following effect:&lt;/p&gt;

&lt;pre&gt;
Warning: 'EqualityTest.Cat' overrides Object.Equals(object o) but does not override Object.GetHashCode()
&lt;/pre&gt;

&lt;p&gt;Here's the final code for the Cat and Dog classes.&lt;/p&gt;

&lt;pre&gt;
public class Cat
{
  public string Name { get; set; }

  public override bool Equals(object obj)
  {
    // test 1: null value
    if (obj == null) return false;

    // test 2: different types
    if (this.GetType() != obj.GetType()) return false;

    // test 3: reference equality (for speed)
    if (object.ReferenceEquals(this, obj)) return true;

    // test 4: value equality
    return this.Name == ((Cat)obj).Name;
  }

  public override int GetHashCode()
  {
    return Name.GetHashCode();
  }
}

public class Dog
{
  public string Name { get; set; }

  public override bool Equals(object obj)
  {
    // test 1: null value
    if (obj == null) return false;

    // test 2: different types
    if (this.GetType() != obj.GetType()) return false;

    // test 3: reference equality (for speed)
    if (object.ReferenceEquals(this, obj)) return true;

    // test 4: value equality
    return this.Name == ((Dog)obj).Name;
  }

  public override int GetHashCode()
  {
    return Name.GetHashCode();
  }
}
&lt;/pre&gt;

&lt;p&gt;To test these, call the Equals method directly like this:&lt;/p&gt;

&lt;pre&gt;
if (c.Equals(d)) ...
&lt;/pre&gt;

&lt;p&gt;To use the == operator, you would still need to write additional code to overload the equality operator.&lt;/p&gt;</description>
      <pubDate>Mon, 01 Aug 2011 19:21:26 GMT</pubDate>
      <guid isPermaLink="false">fea60b80-d648-41f6-81f4-8daccccef508</guid>
    </item>
    <item>
      <title>Windows Phone Mango is ready</title>
      <link>http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2011/07/26/windows-phone-mango-released-to-manufacturing.aspx</link>
      <description>&lt;p&gt;While most of the Europe is still on vacation (myself included), Microsoft in the U.S. has been busy with development work. One of the fruits of this work is the anticipated &lt;a href="http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2011/07/26/windows-phone-mango-released-to-manufacturing.aspx"&gt;next version of Windows Phone&lt;/a&gt;, codenamed Mango. The operating system hit RTM yesterday, but currently, the development tools are not ready until around September.&lt;/p&gt;

&lt;p&gt;Mango contains over 500 new features, and there are hundreds of web pages already describing those. However, as a developer, I thought I'd collect my own quick list of what I feel are the hottest new features. Here they are, in no special order:&lt;/p&gt;

&lt;p&gt;- Multitasking. Especially the possibility to write background agents for audio and downloads sounds great to me.&lt;/p&gt;

&lt;p&gt;- New sensor support, especially the compass and gyroscope (when supported by the hardware).&lt;/p&gt;

&lt;p&gt;- Socket communications. This makes it very easy to connect to many different services (or other phones) without the need to always tunnel through HTTP.&lt;/p&gt;

&lt;p&gt;- Local database. Probably one of the biggest enablers, even though you could have implemented a rudimentary database yourself as well with Isolated Storage. But a real SQL database with LINQ support makes things a breeze.&lt;/p&gt;

&lt;p&gt;One interesting thing to note is that in the general media, many places seem to refer Mango as version 7.5 of the platform. Maybe this was at some point the expected version number, but technically speaking, the correct version for Mango is 7.1, not 7.5.&lt;/p&gt;

&lt;p&gt;Also worth noting is that the official name of the developer tools has changed. Previously, they were called Windows Phone Developer Tools, but now the official name is simply Windows Phone SDK 7.1. You can notice this when you download and install the development kit, for instance.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Jul 2011 07:18:10 GMT</pubDate>
      <guid isPermaLink="false">fdec5f75-e23a-45da-9b49-d35d5726796b</guid>
    </item>
    <item>
      <title>SQL Server "Denali" CTP3 is out</title>
      <link>https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/</link>
      <description>&lt;p&gt;The next verison of SQL Server is in the works, and probably sometime next year, we will see the RTM version of the product ready for downloading. So far, I've been perfectly happy with SQL Server 2008 R2 (which has so far filled all my database needs), but what actually excites me even more in the next version "&lt;a href="https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/"&gt;Denali&lt;/a&gt;", are the improved development tools.&lt;/p&gt;

&lt;p&gt;SQL Server Management Studio or SSMS has for a long time been based on Visual Studio, but so far, only up to version 2008. In Denali, SSMS will be Visual Studio 2010 based, which of course in itself brings many improvements, like code snippets and other IntelliSense goodies, better multi-monitor support, free zooming in the code editor and so on.&lt;/p&gt;

&lt;p&gt;Microsoft has also added support for HADR (High Availability and Disaster Recovery) and  the so-called &lt;a href="http://msdn.microsoft.com/en-us/library/hh272601(v=SQL.110).aspx"&gt;Express LocalDB&lt;/a&gt;, both of which should be well-received features once the final product is in the hands of developers. If you want to get started with Denali's current community technology preview (CTP), you can download your copy &lt;a href="https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 26 Jul 2011 13:54:04 GMT</pubDate>
      <guid isPermaLink="false">6c39218b-27e8-4a11-a232-50d2efd4f8fb</guid>
    </item>
    <item>
      <title>Issue with Blend SketchFlow templates for Windows when duplicating screens</title>
      <link>http://wp7sketchflow.codeplex.com/</link>
      <description>&lt;p&gt;I previously blogged briefly about the availability of &lt;a href="http://wp7sketchflow.codeplex.com/"&gt;SketchFlow templates&lt;/a&gt; for Windows Phone design and prototyping work. Since I found out about these templates, I've been using them for a couple of phone projects pretty successfully.&lt;/p&gt;

&lt;p&gt;However, there's one thing I've noticed when working with these templates in Microsoft Expression Blend 4. When you have a screen that you would like to duplicate, you would go to the screen view, right-click the screen icon you want to create a copy of, and then choose the Duplicate command from the popup menu. Then, Blend would duplicate the screen and ask for a new name for it.&lt;/p&gt;

&lt;p&gt;But, if you try to build, run or package your project after this, you will find that it does not build. The erro message you get is similar to the following:&lt;/p&gt;

&lt;pre&gt;
Partial declatations of ‘MyProject.My_Screen' must not
specify different base classes.
&lt;/pre&gt;

&lt;p&gt;Why does this happen? The reason is that Blend create a copy of the original screen, but fails to honor the specific base class used by the Windows Phone SketchFlow templates. Also, a C# using clause is missing, so that you must also add that manually.&lt;/p&gt;

&lt;p&gt;Thus, it's time for a manual fix. Open the .CS source code file in Blend's build-in code editor (you might need to use the Project tab in Blend to see this file). Another alternative would be to double-click the error message in the Results pane.&lt;/p&gt;

&lt;p&gt;With the code file open, note how the class decends from UserControl. This would be fine for regular projects, but not for Windows Phone projects. To correct the error, change the ancestor class to be "WindowsPhoneChrome". This class is not part of the regular .NET libraries, so you need to add the following using clause, too:&lt;/p&gt;

&lt;pre&gt;
using Microsoft.Expression.Prototyping.WindowsPhone.Mockups;
&lt;/pre&gt;

&lt;p&gt;This should so the trick. Now rebuild your project, and error messages should disappear.&lt;/p&gt;</description>
      <pubDate>Sun, 24 Jul 2011 10:02:57 GMT</pubDate>
      <guid isPermaLink="false">3c1b26be-1d6f-413d-9b38-c2178cd58975</guid>
    </item>
    <item>
      <title>Updated HTML5 (and more) documentation for Internet Explorer 10</title>
      <link>http://msdn.microsoft.com/en-us/ie/gg192966</link>
      <description>&lt;p&gt;At this writing, the latest preview version of Internet Explorer 10 (IE10) is Platform Preview 2, which has been available since June.&lt;/p&gt;

&lt;p&gt;If you are interested in developing for this new browser and taking advantage of the improved HTML5 and CSS3 functions for instance, then take a look at the &lt;a href=" http://msdn.microsoft.com/en-us/ie/gg192966"&gt;Internet Explorer Platform Preview Guide for Developers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interesting new (or improved) functionality in IE10 is for example the support for asynchronous JavaScript loading,&lt;/p&gt;</description>
      <pubDate>Thu, 21 Jul 2011 19:11:49 GMT</pubDate>
      <guid isPermaLink="false">aae597e9-5b9d-4c67-ae3c-e76983df886c</guid>
    </item>
    <item>
      <title>What’s next in ASP.NET MVC 4? Take a look at the roadmap</title>
      <link>http://aspnet.codeplex.com/wikipage?title=ASP.NET%20MVC%204%20RoadMap</link>
      <description>&lt;p&gt;Are you using ASP.NET MVC to develop web applications? If so, then chances are you are currently using versions 2 or 3 of the well-designed framework for building web applications with the model-view-controller pattern.&lt;/p&gt;

&lt;p&gt;&lt;a href=" http://aspnet.codeplex.com/wikipage?title=ASP.NET%20MVC%204%20RoadMap"&gt;On CodePlex&lt;/a&gt;, you can find a (wiki) page devoted to the future of ASP.NET MVC. In this case, you can find a roadmap for the forth-coming version four.&lt;/p&gt;

&lt;p&gt;My eye was drawn to the improved mobile phone rendering support, HTML5 and cloud readiness and device-specific views. Of course, there's much more planned for the next version can be summarized in this short post, but the main idea is clear: ASP.NET MVC is evolving fast.&lt;/p&gt;</description>
      <pubDate>Mon, 18 Jul 2011 09:41:42 GMT</pubDate>
      <guid isPermaLink="false">497dee0f-08a7-4a40-b602-63b5ab2dad88</guid>
    </item>
    <item>
      <title>Interesting research software: Microsoft Detours</title>
      <link>http://research.microsoft.com/en-us/projects/detours/</link>
      <description>&lt;p&gt;Sometimes, you just run into interesting piece of software. Today's pick is Microsoft Research's &lt;a href=" http://research.microsoft.com/en-us/projects/detours/"&gt;Detours&lt;/a&gt;, available for free for academic work, and also in commercial form.&lt;/p&gt;

&lt;p&gt;Detours is a product for monitoring Windows API function calls for both the 32-bit and 64-bit worlds. In addition to the regular x86 and x64 Intel worlds, it also supports the ARM processors (think Windows CE and its many incarnations) and even the IA64 world, which however is probably in the future becoming extinct.&lt;/p&gt;

&lt;p&gt;Here's what Microsoft itself says about the product:&lt;/p&gt;

&lt;p&gt;&lt;i&gt;"Innovative systems research hinges on the ability to easily instrument and extend existing operating system and application functionality. With access to appropriate source code, it is often trivial to insert new instrumentation or extensions by rebuilding the OS or application. However, in today's world systems researchers seldom have access to all relevant source code."&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;The cost for the latest commercial 3.0 version is a mere $9999 from Microsoft Store.&lt;/p&gt;</description>
      <pubDate>Sun, 17 Jul 2011 15:47:36 GMT</pubDate>
      <guid isPermaLink="false">d41487d8-3e6a-4e23-ad72-556f031904e0</guid>
    </item>
    <item>
      <title>What developers should know about Microsoft’s Azure Marketplace?</title>
      <link>http://www.microsoft.com/windowsazure/features/marketplace/</link>
      <description>&lt;p&gt;There's no doubt that cloud computing is here to stay, and thus every .NET developer should follow at least the Azure scene from time to time. Today I wanted to touch the topic of Azure's Marketplace, and what you can sell in it.&lt;/p&gt;

&lt;p&gt;Shortly put, the &lt;a href="http://www.microsoft.com/windowsazure/features/marketplace/"&gt;Azure Marketplace&lt;/a&gt; is about applications you create, but also about data you collect. For instance, if you have an extensive database of something, such as business analysis summaries from local companies, aggregated weather data since 1950s, and so on, you might find your data valuable to others. By neatly packaging the data into a easily processable format (for example, &lt;a href="http://www.odata.org/"&gt;OData&lt;/a&gt;), you could put the data into sale, especially if you keep the data up to date.&lt;/p&gt;

&lt;p&gt;If you are new to Azure's Marketplace, take a look at the &lt;a href="http://www.microsoft.com/windowsazure/features/marketplace/"&gt; main page&lt;/a&gt; for a summary. Developers wishing to start selling their applications or data should take a look at the &lt;a href="https://datamarket.azure.com/publishing"&gt;publishing page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 15 Jul 2011 13:09:26 GMT</pubDate>
      <guid isPermaLink="false">4be1b25b-e8ef-4713-9253-9664f3a88b15</guid>
    </item>
    <item>
      <title>Link tip: Windows Phone 7 Developer Guide</title>
      <link>http://msdn.microsoft.com/en-us/library/gg490765.aspx</link>
      <description>&lt;p&gt;During the summer, I've received a couple of questions from developers about good Windows phone training material. Now that the Mango release is hopefully soon out, and Mango pre-release material already appearing under MSDN Library, I wanted to post a link to a slightly more hidden piece of documentation called the &lt;a href="http://msdn.microsoft.com/en-us/library/gg490765.aspx"&gt;Windows Phone 7 Developer Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This guide is written for the original 7.0 release, but even so, it is a highly useful resource even after Mango is ready. The reason why this piece of documentation is hard to find is that it has been posted under Patterns &amp; Practices. Thus, most developers would probably skip the section and instead look from the more traditional place in the library.&lt;/p&gt;</description>
      <pubDate>Tue, 12 Jul 2011 11:20:20 GMT</pubDate>
      <guid isPermaLink="false">60a453a9-fc8c-4561-9ceb-de1222f4aa14</guid>
    </item>
    <item>
      <title>The Microsoft All-In-One Code Framework</title>
      <link>http://1code.codeplex.com/</link>
      <description>&lt;p&gt;If you are looking for .NET sample code and solutions, where would you go? Chances are you would do a search on your favorite search engine, which is a good choice. However, it seems that Microsoft has also been busy with a Codeplex project called &lt;a href="http://1code.codeplex.com/"&gt;All-In-One Code Framework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The idea of this project is to build a centralized code sample library for all things related to .NET. If you download everything, you get over 50 megabytes worth of code. That is a lot of code lines.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sun, 10 Jul 2011 11:05:03 GMT</pubDate>
      <guid isPermaLink="false">89c0d910-49bf-46e3-8a99-305012f03a4d</guid>
    </item>
    <item>
      <title>Windows Phone “Mango” and the new IT features</title>
      <link>http://blogs.technet.com/b/windows_phone_for_it_pros/archive/2011/05/19/overview-of-new-business-capabilities-for-windows-phone-mango-announced-at-teched-2011.aspx</link>
      <description>&lt;p&gt;Many developers and IT professionals have asked the open question: what are going to be the IT features in the next Windows Phone release Mango? Luckily, TechEd USA gave us some ideas what these features are going to be, and some of them can be read from a &lt;a href="http://blogs.technet.com/b/windows_phone_for_it_pros/archive/2011/05/19/overview-of-new-business-capabilities-for-windows-phone-mango-announced-at-teched-2011.aspx"&gt;blog entry&lt;/a&gt; by Alan Meeus.&lt;/p&gt;

&lt;p&gt;Main things include a better Outlook Mobile usability (conversation view and pinnable Start screen folders for instance), Information Rights Management (IRM) and Lync Mobile. Also, tons of new programming APIs look promising to me.&lt;/p&gt;

&lt;p&gt;Let's stay tuned for more information. In the meantime, is there are feature you'd love to see in Mango? Let me know!&lt;/p&gt;</description>
      <pubDate>Thu, 07 Jul 2011 19:24:42 GMT</pubDate>
      <guid isPermaLink="false">81d9d8de-870c-4e02-8690-680ffda6c0f1</guid>
    </item>
    <item>
      <title>Publications page updated</title>
      <link>http://www.saunalahti.fi/janij/publications/</link>
      <description>&lt;p&gt;Happy July 4th to all U.S. readers! In addition to this blog you are reading, my pages contain a section called Publications, which lists all the articles I've written. I've just updated the latest information for two magazines, namely Tietokone and Prosessori.&lt;/p&gt;

&lt;p&gt;If you wish to see the latest list, check out the &lt;a href="http://www.saunalahti.fi/janij/publications/"&gt;Publications page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 04 Jul 2011 17:35:59 GMT</pubDate>
      <guid isPermaLink="false">b7c3e0af-3a81-4035-9733-1e766b5456f2</guid>
    </item>
    <item>
      <title>ITPro.fi expert group meeting at Saunasaari</title>
      <link>http://www.saunasaari.fi/</link>
      <description>&lt;p&gt;Welcome July! Yesterday I had the chance to attend an ITpro.fi expert group meeting at &lt;a href="http://www.saunasaari.fi/"&gt;Saunasaari&lt;/a&gt;. We were a group of eight, traveling by boat to the island, and going to sauna and swimming in the sea.&lt;/p&gt;

&lt;p&gt;In addition to everything else, it was great to plan ITpro.fi's future for the next 12 months, and discuss what everyone expects to see in Windows 8. Naturally, Windows Phone was also a hot topic at the island.&lt;/p&gt;

&lt;p&gt;Thanks JP for the arrangements, looking forward to see you all again!&lt;/p&gt;</description>
      <pubDate>Fri, 01 Jul 2011 17:04:34 GMT</pubDate>
      <guid isPermaLink="false">e2f18aea-8c57-46eb-8bd4-b63653e47924</guid>
    </item>
    <item>
      <title>Azure incoming network traffic to be free from now on</title>
      <link>http://www.microsoft.com/windowsazure/</link>
      <description>&lt;p&gt;Microsoft just announced that starting from July 1, all incoming network traffic into an Azure application will be free-of-charge. Previously, there was a cost associated for every gigabyte transferred.&lt;/p&gt;

&lt;p&gt;You can read about the announcement from Azure's &lt;a href="http://www.microsoft.com/windowsazure/pricing/"&gt;main page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 01 Jul 2011 20:31:14 GMT</pubDate>
      <guid isPermaLink="false">5ce522c1-6335-45cd-9961-5a49642bfd58</guid>
    </item>
    <item>
      <title>Windows 8 news</title>
      <link>http://www.microsoft.com/presspass/features/2011/jun11/06-01corporatenews.aspx</link>
      <description>&lt;p&gt;Rumors about Windows 8 have &lt;a href="http://www.microsoft.com/presspass/features/2011/jun11/06-01corporatenews.aspx"&gt;started flowing&lt;/a&gt;, and in the media, we've also seen early screenshots about the forthcoming product. Microsoft itself is officially quite quiet at this point, but for example from MSDN's Channel 9 you can already have some background information about the new operating system version.&lt;/p&gt;

&lt;p&gt;Here is a fast summary of things that I've accumulated:&lt;/p&gt;

&lt;ul&gt;
&lt;ol&gt;ARM processor support. This means that Windows 8 can run on tablets natively.  For developers this means that native code applications will need to be compiled again (with a suitable compiler). On the other hand, .NET applications *should* run okay, but I haven't been able to verify this.&lt;/ol&gt;
&lt;ol&gt;There most probably is going to be a dual-UI for Windows, one optimized for touch and on that is the traditional Windows look and feel. I would expect Windows 7 to be the base for the traditional look, but the new user interface seems have taken ideas from Windows Phone and the Metro UI.&lt;/ol&gt;
&lt;ol&gt;The new Metro-like UI is most probably Silverlight, but could also be HTML 5. Or, a combination of both. Silverlight would make sense as it then you could write applications for both Windows Phone and Windows 8 from same code-base, but then again, HTML 5 would be truly cross-platform.&lt;/ol&gt;
&lt;/ul&gt;

&lt;p&gt;I pretty sure more news and tidbits will start appearing during the summer. And if you already haven't make sure you've marked the Build conference in September into your calendar.&lt;/p&gt;</description>
      <pubDate>Wed, 29 Jun 2011 18:13:47 GMT</pubDate>
      <guid isPermaLink="false">faf7c6e6-bd25-4cdd-ba76-19e815f78593</guid>
    </item>
    <item>
      <title>Meta-information coming to HTML coding</title>
      <link>http://schema.org/</link>
      <description>&lt;p&gt;Today, most HTML web pages contain tags that are mostly related to layout: you have headings, paragraphs, tables, bold text and so forth, but only very little information about what is actually being shown on the page. This makes it tough for computers and search engines to figure out what your web page is really about.&lt;/p&gt;

&lt;p&gt;Enter meta-information or metadata. Google, Microsoft and Yahoo! have teamed up and created a &lt;a href="http://schema.org/docs/gs.html"&gt;specification&lt;/a&gt; for HTML pages that brings semantics to the regular HTML code. Utilizing extensions on HTML 5, you can for example specify that you page is about software development, you are showing example code in the C# programming language, and so forth. This makes it much easier for web crawlers to meaningfully index your pages.&lt;/p&gt;

&lt;p&gt;My take is this: in the future, adding such sematic information to your pages will become the norm. If nothing else, search engine optimization (SEO) is a key motivator.&lt;/p&gt;</description>
      <pubDate>Mon, 27 Jun 2011 13:48:01 GMT</pubDate>
      <guid isPermaLink="false">84b6789f-2591-4b2c-9b24-67aef245ac67</guid>
    </item>
    <item>
      <title>Quick tip: test the performance of your Internet connection</title>
      <link>http://www.speedtest.net/</link>
      <description>&lt;p&gt;Sometimes, it's great to know the actual top speed of your Internet connection, whether it be your shiny new 3G, an upgraded office connection, or your relocated ADSL line. The ‘net is full of tests, but find one that is now crippled with sixty-two blinking popup ads and malware links is hard to find.&lt;/p&gt;

&lt;p&gt;So for the record a nice site I've been using: &lt;a href="http://www.speedtest.net/"&gt;www.speedtest.net&lt;/a&gt;. At least when I'm writing this, it has been a nice site. I cannot guarantee the future, but I'm looking forward to have a site dedicated to just one thing: testing your connection speed. This site appears to be quite close to that definition.&lt;/p&gt;

&lt;p&gt;Happy testing!&lt;/p&gt;</description>
      <pubDate>Fri, 24 Jun 2011 20:02:32 GMT</pubDate>
      <guid isPermaLink="false">14182f12-c807-49fc-bc93-2ce15d39fac5</guid>
    </item>
    <item>
      <title>Beta version of Kinect SDK announced for Windows 7</title>
      <link>http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx</link>
      <description>&lt;p&gt;Microsoft just recently a software development kit for the Kinect motion sensor originally designed for the Xbox games console. From now on, non-commercial testing and development work can be started with the SDK, and once the final SDK release becomes available, commercial pricing (if any) will be revealed.&lt;/p&gt;

&lt;p&gt;At this point, the SDK allows you to access both raw and processed data, and contains pretty good documentation already for a beta SDK. To download your copy, visit the &lt;a href="http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx"&gt;download page&lt;/a&gt;. Of course, you will also need the Kinect device; these sell for $195 on Amazon.&lt;/p&gt;</description>
      <pubDate>Tue, 21 Jun 2011 17:15:03 GMT</pubDate>
      <guid isPermaLink="false">53d8ced9-6a07-4de8-af4a-c0e198ac760f</guid>
    </item>
    <item>
      <title>HTML 5 and CSS 3 updates for Visual Studio 2010</title>
      <link>http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83</link>
      <description>&lt;p&gt;Microsoft today announced that have created an update for Visual Studio 2010 that allows developers better build (and test) applications that use new HTML 5 and CSS 3 features. Aptly named "Web Standards Update for Microsoft Visual Studio 2010 SP1", the unofficial update is &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83"&gt;freely available&lt;/a&gt; for everyone and even supports the free Visual Studio Web Express version.&lt;/p&gt;

&lt;p&gt;Some of the features brought by this update are the ability to support HTML 5 features such as local storage and microdata, validate your HTML and ASPX files against the latest HTML 5 schema, build CSS 3 files without the hassle of browser/vendor extensions, and more.&lt;/p&gt;

&lt;p&gt;The release announcement is available &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sun, 19 Jun 2011 21:12:50 GMT</pubDate>
      <guid isPermaLink="false">38a473ae-142d-4907-bbbc-16a138f63795</guid>
    </item>
    <item>
      <title>Keyboard shortcut tips for Internet Explorer 9</title>
      <link>http://technet.microsoft.com/en-us/magazine/hh145613.aspx</link>
      <description>&lt;p&gt;TechNet magazine recently ran a &lt;a href="http://technet.microsoft.com/en-us/magazine/hh145613.aspx"&gt;quick tips article&lt;/a&gt; on the keyboard shortcuts for IE 9. There are many useful shortcuts presented in the article, and I especially like Ctrl+J for the Download Manager, Alt+Home to go to your home page, and Ctrl+T to open a new tab.&lt;/p&gt;

&lt;p&gt;However, the shortcut key Ctrl+L used for quickly going to the browser's address bar, requires some commentary. Although the keyboard shortcut duly works, I find another shortcut, Alt+D, a better choice. If you have Windows 7, the same Alt+D works there to go to the address bar, just like in the web browser. However, Ctrl+L does not work with Windows 7, and so I find the one I use easier to remember.&lt;/p&gt;</description>
      <pubDate>Thu, 16 Jun 2011 17:00:46 GMT</pubDate>
      <guid isPermaLink="false">dc37fc5e-0fcd-4672-9991-6877072221e5</guid>
    </item>
    <item>
      <title>SketchFlow templates for Windows Phone</title>
      <link>http://wp7sketchflow.codeplex.com/</link>
      <description>&lt;p&gt;If you are into building mockups of your user interfaces, then Expression Blend's SketchFlow functionality might be just what you want. Previously, you've been able to sketch (rapidly prototype) both Silverlight and WPF applications, but so far, there hasn't been any solution for Windows Phone application sketching.&lt;/p&gt;

&lt;p&gt;If you today browse to Codeplex, you can find there a project named &lt;a href="http://wp7sketchflow.codeplex.com/"&gt;SketchFlow Template for Windows Phone 7&lt;/a&gt;. Some basic documentation is also included, but for most part, usage is self-explanatory if you already have working experience with SketchFlow.&lt;/p&gt;</description>
      <pubDate>Tue, 14 Jun 2011 09:28:05 GMT</pubDate>
      <guid isPermaLink="false">6a4ba80e-aab2-488e-902a-dfc24a449119</guid>
    </item>
    <item>
      <title>New article in Tietokone about Windows 7 installation automation</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;The latest &lt;a href="http://www.tietokone.fi/"&gt;Tietokone magazine&lt;/a&gt; issue 6/2011 contains my latest article about automating the installation of Windows 7. The article is titled "Automatisoi Windows 7:n asennus" and talks about tools like WAIK, SIM and MDT.&lt;/p&gt;

&lt;p&gt;You can find the article on page 62. Happy reading!&lt;/p&gt;</description>
      <pubDate>Sat, 11 Jun 2011 09:38:32 GMT</pubDate>
      <guid isPermaLink="false">c91c6ab2-c2db-463f-8ada-023aca48f95c</guid>
    </item>
    <item>
      <title>Office 2010 developer training kit updated</title>
      <link>http://www.microsoft.com/download/en/details.aspx?displayLang=en&amp;id=23519</link>
      <description>&lt;p&gt;If you are developing Office 2010 extensions with Visual Studio and .NET, then you might want to check out the latest version of the Office 2010 Developer Training Kit. The latest refresh is just a couple of days old.&lt;/p&gt;

&lt;p&gt;The description says it all: "The Office 2010 Developer Training Kit includes a comprehensive set of technical content including hands-on labs (HOL), presentations, source code, and instructor-led videos, that are designed to help you learn how to develop for Office 2010 and SharePoint 2010."&lt;/p&gt;

&lt;p&gt;You can download the June 2011 refresh &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b90fadab-f4f9-4452-aa61-ed7bd5d8111e&amp;displayLang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 10 Jun 2011 19:17:28 GMT</pubDate>
      <guid isPermaLink="false">f67ce16d-40a2-493d-b104-3cf27ee2d3cd</guid>
    </item>
    <item>
      <title>How to do online upgrades for databases?</title>
      <link>http://blogs.oracle.com/databaseinsider/entry/oracle_database_11gs_edition-b</link>
      <description>&lt;p&gt;I recently had a discussion about upgrading large SQL databases that support hundreds of users and cannot (easily) have downtime. For instance, say your application needs a new version, but also an update version of a stored procedure on the database server. If the procedure is constantly in use, how can you solve the issue?&lt;/p&gt;

&lt;p&gt;One thing I recently learned is that Oracle 11g Release 2 support a feature called &lt;a href="http://blogs.oracle.com/databaseinsider/entry/oracle_database_11gs_edition-b"&gt;Edition-Based Redefinition&lt;/a&gt; (EBR). This feature is precisely developed for this situation in mind: you can simply create a new "edition" of your stored procedure, and existing calls to the procedure will continue to run normally with the old version of the procedure, but new calls will immediately start using the new version. Once all calls have completed to the old procedure, it can simply be deleted.&lt;/p&gt;

&lt;p&gt;I haven't yet checked the exact technical details how this works on the SQL level, but presently my understanding is that these Oracle editions are totally transparent to the client application/user. Sounds good to me! Why not see something similar in SQL Server, too?&lt;/p&gt;</description>
      <pubDate>Tue, 07 Jun 2011 21:02:54 GMT</pubDate>
      <guid isPermaLink="false">fb67d26e-b9f3-410d-8c35-b21101e76f70</guid>
    </item>
    <item>
      <title>New Windows Phone article in Prosessori magazine</title>
      <link>http://www.prosessori.fi/</link>
      <description>&lt;p&gt;The Finnish &lt;a href="http://www.prosessori.fi/"&gt;Prosessori&lt;/a&gt; magazine issue 6–7/2011 contains my latest developer article titled "Windows Phone 7 -kehitys on uutta kaikille". In the article, I'm introducing the development tools, the development technologies used, and walk through the application development cycle for this new platform.&lt;/p&gt;

&lt;p&gt;If you are into mobile development, this article could be a nice starting point. Enjoy!&lt;/p&gt;</description>
      <pubDate>Sat, 04 Jun 2011 13:41:29 GMT</pubDate>
      <guid isPermaLink="false">f8dbaed0-974b-49ec-8602-ede103cab867</guid>
    </item>
    <item>
      <title>Two installation tips for Windows 7 x64: Skype and Adobe Master Collection</title>
      <link>http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/skype-install-issues-with-windows-7-error-1603/0f2b0b30-5455-4e7f-876a-7a31bfa2e359</link>
      <description>&lt;p&gt;Welcome June! Today is time to share two installation tips for common software products you might also be using on daily basis. Both the following tips apply to the following environment: Windows Server 2008 R2 running Active Directory, and a domain member workstation running Windows 7 x64. Also, local documents (i.e. those usually on the C: drive) have been relocated to a network drive.&lt;/p&gt;

&lt;p&gt;Firstly, there's Skype, your trusty online messaging and conferencing solution, now owned by Microsoft. Whe you try to install Skype onto a computer that has documents re-mapeed to a network drive, you will encounter an installation error 1603. Other people have seen the &lt;a href="http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/skype-install-issues-with-windows-7-error-1603/0f2b0b30-5455-4e7f-876a-7a31bfa2e359"&gt;same error&lt;/a&gt;, too.&lt;/p&gt;

&lt;p&gt;The fix? Start a command prompt in elevated mode (as an administrator), and make sure you map the network drive to the same drive letter as you normally have. Then, launch Skype setup from that same command prompt.&lt;/p&gt;

&lt;p&gt;Secondly, there's Adobe's Creative Suite (in my case, Master Collection CS5). Adobe's installation program does not like domain computers where you are not logged in with the Administrator account to the computer where you are installing the product. If you don't, you will get an installation exit code 7, and lots of errors and warnings similar to this: "WARNING: Payload cannot be installed due to dependent operation failure".&lt;/p&gt;

&lt;p&gt;The fix? Log in to your computer as the Administrator (of your domain), and then install. Note that this is different from having administrator rights on your computer. Adobe insists you install with the Administrator account, it is not a permission issue. Instead, it's what I call sloppy programming.&lt;/p&gt;</description>
      <pubDate>Wed, 01 Jun 2011 05:31:18 GMT</pubDate>
      <guid isPermaLink="false">965e2017-0ee0-480d-8aef-575dc48ae031</guid>
    </item>
    <item>
      <title>Quick tip: document your technical procedures with video</title>
      <link>http://www.techsmith.com/</link>
      <description>&lt;p&gt;Many developers are not very fond of writing documentation, but even so, most projects need (or at least would benefit) from documentation. When the iron is still hot and you've just completed the code, it's human to think that you will remember every detail perfectly clear. But as time passes by, things start to be forgotten. Also, people in the project might change, so somebody completely fresh to the project might become the maintenance lead. These are just two reasons you need some documentation.&lt;/p&gt;

&lt;p&gt;Writing things down with Word is nice, but time-consuming and actually, quite hard work. Oftentimes, you need specific instructions on how to do certain things, and for this, screen videos are a good choice. Not that you would have everything in video, but you could for example document internal technical implementation details with screencast videos, and possible voice-over commentary.&lt;/p&gt;

&lt;p&gt;There are several good products to record video on Windows; from the commercial side, Techsmith's &lt;a href="http://www.techsmith.com/"&gt;Camtasia Studio&lt;/a&gt; comes into mind.&lt;/p&gt;</description>
      <pubDate>Tue, 31 May 2011 14:57:27 GMT</pubDate>
      <guid isPermaLink="false">5900e011-e980-46d7-baee-14210bd708fa</guid>
    </item>
    <item>
      <title>What is going to happen next with Visual Studio, Team Foundation Server and ALM?</title>
      <link>http://blogs.msdn.com/b/jasonz/archive/2011/05/16/announcing-alm-roadmap-in-visual-studio-vnext-at-teched.aspx</link>
      <description>&lt;p&gt;Future product versions and their plans are always interesting, and especially so if they are related to the development tools you use daily. It is no surprise that TechEd USA talked quite a lot of what's coming next, and Visual Studio's ALM solutions (which include TFS) are no exception to that.&lt;/p&gt;

&lt;p&gt;Jason Zander talked on his blog just few days ago about what is going to happen to Visual Studio "vNext" (which I would guess would be Visual Studio 2012, but that's my thinking only). If you are interested, check his &lt;a href="http://blogs.msdn.com/b/jasonz/archive/2011/05/16/announcing-alm-roadmap-in-visual-studio-vnext-at-teched.aspx"&gt;blog entry&lt;/a&gt; and associated links.&lt;/p&gt;

&lt;p&gt;Recommended reading.&lt;/p&gt;</description>
      <pubDate>Sat, 28 May 2011 07:22:23 GMT</pubDate>
      <guid isPermaLink="false">21b7c35f-f382-4df8-ac8f-43ab04651601</guid>
    </item>
    <item>
      <title>Silverlight Integration pack for Enterprise Library 5.0</title>
      <link>http://blogs.msdn.com/b/agile/archive/2011/05/11/silverlight-integration-pack-for-microsoft-enterprise-library-5-0-released.aspx</link>
      <description>&lt;p&gt;Microsoft's Enterprise Library is a collection of patterns and associated guidance that helps you build enterprise applications using the latest technical advancements. You can find the documentation for the Enterprise library from MSDN's Patterns &amp; Practices portal.&lt;/p&gt;

&lt;p&gt;Last week, Microsoft made an announcement about a new addition to the library: the Silverlight integration pack. The announcement can be read from a &lt;a href="http://blogs.msdn.com/b/agile/archive/2011/05/11/silverlight-integration-pack-for-microsoft-enterprise-library-5-0-released.aspx"&gt;blog entry&lt;/a&gt; dated May 11th.&lt;/p&gt;

&lt;p&gt;If you are already using Enterprise Library 5.0 and looking to take better use of Silverlight, then this announcement is for you.&lt;/p&gt;</description>
      <pubDate>Thu, 26 May 2011 19:02:20 GMT</pubDate>
      <guid isPermaLink="false">2d7c2a93-675a-4aa0-bd3d-8001ec94c472</guid>
    </item>
    <item>
      <title>New article in Tietokone about cloud computing</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;This month's &lt;a href="http://www.tietokone.fi/"&gt;Tietokone&lt;/a&gt; magazine (issue 5/2011) contains my latest software development related article. This time, it is about cloud computing and running your own operating system images in the cloud. Included are Microsoft's Azure, Amazon's EC2, and Google AppEngine.&lt;/p&gt;

&lt;p&gt;Enjoy reading!&lt;/p&gt;</description>
      <pubDate>Tue, 24 May 2011 18:34:16 GMT</pubDate>
      <guid isPermaLink="false">d225df69-a0c8-465f-967f-48eefb0c21d2</guid>
    </item>
    <item>
      <title>Debug your IIS server’s certificate issues with Microsoft’s SSL Diagnostics utility</title>
      <link>http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=674</link>
      <description>&lt;p&gt;Almost always, installing a new web server certificate for HTTPS (SSL) connections is just a matter of running a configuration wizard, and you are done. But what if things still do not work? Or, you get the wrong certificate from the server, or fail to connect to your IIS web site with HTTPS altogether?&lt;/p&gt;

&lt;p&gt;I recently ran into this kind of situation with an older server machine running IIS 6, and because the internal SSL certificate issues are somewhat like a black box in my view, I thought I'd need a helping hand from a suitable tool. Microsoft does provide a little-known utility called SSL Diagnostics, currently at version 1.1.&lt;/p&gt;

&lt;p&gt;The utility is executed on the web server in question, and it reports its findings in an easy-to-read fashion. What's nice is that it also gives you hints and tips on how to solve the issues you might be seeing.&lt;/p&gt;

&lt;p&gt;If you ever run into trouble with IIS and SSL certificates, give &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=674"&gt;this tool a try&lt;/a&gt;. It might save you from a lot of headaches.&lt;/p&gt;</description>
      <pubDate>Sun, 22 May 2011 10:55:58 GMT</pubDate>
      <guid isPermaLink="false">09e04eee-1670-466c-9176-a7a8cd932e81</guid>
    </item>
    <item>
      <title>What to expect from a professional software product</title>
      <link>http://en.wikipedia.org/wiki/Enterprise_application</link>
      <description>&lt;p&gt;During the years I've been in the business, I've seen a lot of different software applications, and installed, configured and managed at least dozens of them. Sometimes, especially as a software developer, I start to think: why on Earth did the developers implement things this way? Sometimes, there are ground for "non-standard" implementations, but oftentimes, it is just a matter of laziness from the developer's part.&lt;/p&gt;

&lt;p&gt;I thought I'd compile a quick list of things that I would like to think as the base level of a professionally used (enterprise) &lt;a href="http://en.wikipedia.org/wiki/Enterprise_application"&gt;application&lt;/a&gt;. I'm not saying this is a complete list, so feel free to send me your comments.&lt;/p&gt;

&lt;p&gt;Here are the things I'd like to see, in rough order of preference.&lt;/p&gt;

&lt;p&gt;1. Installation and setup. Your application must install correctly into a clean machine with the latest patches on. If I take a clean, fresh Windows operating system installation from MSDN media, and your application fails to install there (provided the operating system is supported in the first place), thumbs point down.&lt;/p&gt;

&lt;p&gt;Tip: make sure your setup application can detect service packs, OS versions, etc. that might affect your application. If you cannot support certain OS/service pack/patch combination, let the user know. But do not block the installation if this is the case. Let the user choose whether to take the risk or not.&lt;/p&gt;

&lt;p&gt;1B. If you application is complex and requires extensive configurations before it will work (for example, ERP systems), create a pre-checking utility that checks OS versions, firewall configurations, IP addresses, etc. This is much more helpful than having a 35 step precheck list in your manual. If you setup application proceeds, the user assumes everything is fine.&lt;/p&gt;

&lt;p&gt;2. Documentation. Most commercial applications do have documentation in place, but often the most important piece of information is missing: the installation architecture. For instance, you are creating a test environment for a n-tier application. You know you need a client application, application server and a database. But which TCP ports do these applications use to communicate? What kind of security settings do they need? Are they implemented as client applications, Windows applications, web applications, etc.? All this information should be clearly given.&lt;/p&gt;

&lt;p&gt;3. Diagnostics logging. This is especially important for multi-tier applications. Your log should display (when enabled separately) about client and server communication, whenever exceptions occur (see #4), and if there are warnings for example about security settings. The log must be detailed enough to aid in debugging your application. However, the most important thing: remember to clearly document how to enable this logging. The worst you can do is keep things undocumented, and only let the administrator know about this feature after the fifth support incident.&lt;/p&gt;

&lt;p&gt;4. Exception handling. This is the year 2011, and today, it is not OK to: a) let Windows show a generic message that your application has stopped working, or b) simply vanish from the screen. Both cases are symptoms of poor exception handling. Keep your stack clean.&lt;/p&gt;

&lt;p&gt;4B. Error messages. It is okay to keep end-user error messages free of technical jargon, but never disable the administrator's ability to see more details about the exception. The worst you can do is display error messages like "Operation failed" or "Cannot access database" without any further technical details. It is OK to hide the technical details for example behind a button.&lt;/p&gt;

&lt;p&gt;5. Audit features. If your application is a multi-user solution and uses a database, you should provide features so that application usage can be audited. As a bare minimum, you should log who has created a particular record and when, and secondly, who has modified the record (if any) and when. Technically, you can implement this with four fields: CreatedAt, CreatedBy, ModifiedAt and ModifiedBy. Not every table needs these fields, but at least the high-level ones do.&lt;/p&gt;

&lt;p&gt;6. Performance. If your application manipulates data, it should support multiple threads. That is, it should be able to distribute its workload among the multiple cores of modern processors. It's a waste to have a new six-core server and notice your server application only uses a single core.&lt;/p&gt;</description>
      <pubDate>Thu, 19 May 2011 16:14:55 GMT</pubDate>
      <guid isPermaLink="false">026b14e4-28c3-42c0-9efb-53595d9b275f</guid>
    </item>
    <item>
      <title>Hyper-V provisioning without any additional tools</title>
      <link>http://www.microsoft.com/windowsserver2008/en/us/hyperv-main.aspx</link>
      <description>&lt;p&gt;In my work, I often have the need to set up fresh, new virtual machines for testing. For example just this week, I needed to set up a collection of three virtual machines: one Active Directory server, one application server with IIS, and one client computer running Windows 7.&lt;/p&gt;

&lt;p&gt;There are many ways to automate provisioning of &lt;a href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-main.aspx"&gt;Hyper-V&lt;/a&gt; virtual machines, but these solutions usually come with a cost. However, what if you have no other tools than what come with Windows Server 2008 R2?&lt;/p&gt;

&lt;p&gt;If this is your case, then you could work as follows. If you need only basic operating system(s) installed without no additional tools, then my suggestion is to first manually install a set of virtual machines, and then take their .vhd files into a safe place (it is a good idea to zip the files). Then, whenever you need a new virtual machine, simply unzip the needed operating system .vhd, set up the virtual machine config, and choose to use the existing .vhd file. You are good to go!&lt;/p&gt;

&lt;p&gt;On the other hand, if you have the need for operating systems with specific applications installed, consider using Windows' available tools for operating system image distribution. This way, you can first create a ready-made OS image with all the tools your need (such as Visual Studio and SQL Server already installed), and when you set up a new virtual machine, simply let it boot from the network.&lt;/p&gt;

&lt;p&gt;The OS installation starts after the PXE boot succeeds, and within a couple of minutes, you will have a brand new virtual machine up and running, with all the software installed. And what's great about this kind of solutions is that you can still script certain things, such as automatically joining a domain.&lt;/p&gt;

&lt;p&gt;Also remember that nothing will stop you from using a combination of these two techniques. I'm presently working on an article (well, in Finnish at least) about Windows installation automation tools for the Tietokone magainze. Stay tuned for the article announcement.&lt;/p&gt;</description>
      <pubDate>Mon, 16 May 2011 19:22:51 GMT</pubDate>
      <guid isPermaLink="false">8ad34319-8eb5-4ccc-a01f-968387398808</guid>
    </item>
    <item>
      <title>Quick Windows tip: how to delete a complete folder tree from the command line?</title>
      <link>http://technet.microsoft.com/fi-fi/library/bb490990(en-us).aspx</link>
      <description>&lt;p&gt;The situation: you are stuck with the Windows command prompt, and your task is to quickly delete a complete directory tree with about 30 sub-folders and about 2000 small files. Yes, you could use the DEL and RD commands, but it would take a long time to go through every sub-folder there is.&lt;/p&gt;

&lt;p&gt;What is a better way? To note that at least since Windows XP, the &lt;a href="http://technet.microsoft.com/fi-fi/library/bb490990(en-us).aspx"&gt;RD command&lt;/a&gt; (or RMDIR) has the ability to delete both files *and* folders. In addition, it has the powerful switch /S, which allows you to work with subdirectories. A quick example:&lt;/p&gt;

&lt;pre&gt;
RD /S C:\MyPath\DeleteThisFolder
&lt;/pre&gt;

&lt;p&gt;Remember, that the RD utility will only ask once for a confirmation. So take care when using the command, and remember your backups.&lt;/p&gt;</description>
      <pubDate>Sat, 14 May 2011 07:14:09 GMT</pubDate>
      <guid isPermaLink="false">3d9bafe1-25ec-4764-8ea5-5911a179a54f</guid>
    </item>
    <item>
      <title>IIS Transform Manager 1.0 Beta now available</title>
      <link>http://blogs.iis.net/chriskno/archive/2011/05/09/iis-transform-manager-1-0-beta-released.aspx</link>
      <description>&lt;p&gt;Roughly two weeks ago, I mentioned about a Windows Phone 7 application serving video using IIS. If you are working with videos and are using IIS to serve them, then you might be interested in the first beta of &lt;a href="http://www.iis.net/download/TransformManager"&gt;IIS Transform Manager 1.0&lt;/a&gt;. But what is this tool? Shortly put, it allows you to automatically encode and transform videos into different formats using Expression Encoder 4:&lt;/p&gt;

&lt;p&gt;"Whether you have libraries of content or a steady stream of user-generated content that you want to convert from one video format to another, the beta release of IIS Transform Manager can help. Transform Manager is an extensible media transform engine that easily enables "Watch Folder" job submission, queuing, management, integrated media transcoding/transmuxing, and batch-encryption of on-demand audio and video files."&lt;/p&gt;

&lt;p&gt;To download the beta, visit the &lt;a href="http://www.iis.net/download/TransformManager"&gt;download page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 11 May 2011 19:02:50 GMT</pubDate>
      <guid isPermaLink="false">ea62e754-131c-4ac2-9099-376cba39d9e8</guid>
    </item>
    <item>
      <title>Windows Phone Developer day in Helsinki on May 26</title>
      <link>http://www.microsoft.com/finland/mobileday/</link>
      <description>&lt;p&gt;Microsoft Finland is arranging a &lt;a href="http://www.microsoft.com/finland/mobileday/"&gt;Windows Phone Developer Day&lt;/a&gt; in Helsinki on Thursday, 26th of May. This full-day seimnar introduces you to application development for Windows Phone and naturally talks about Silverlight and Mango as well.&lt;/p&gt;

&lt;p&gt;The speakers on this event are Brandon Watson and Jaime Rodriquez. See you there!&lt;/p&gt;</description>
      <pubDate>Sun, 08 May 2011 09:27:44 GMT</pubDate>
      <guid isPermaLink="false">ebc5317e-d759-4c87-8c42-5aef9725fe27</guid>
    </item>
    <item>
      <title>Windows Phone 7 updates went smoothly on my LG E900</title>
      <link></link>
      <description>&lt;p&gt;Last year, I purchased my Windows Phone 7 device from LG, and I'm currently using the E900 model. Several people have asked me about how the phone has worked, and personally, I'm happy with my choice.&lt;/p&gt;

&lt;p&gt;After traveling for the most part of April and early May, I simply hadn't the chance to update my phone to the latest OS version 7.0.7392 with copy-paste, etc. The update process took a quater of an hour and went smoothly with Zune. Now copy-paste is working nicely on my phone, too!&lt;/p&gt;

&lt;p&gt;From a developer perspective, this new functionality is automatically available in the applications you write.&lt;/p&gt;</description>
      <pubDate>Thu, 05 May 2011 20:02:31 GMT</pubDate>
      <guid isPermaLink="false">c694d442-4bbe-4662-8756-2b04e37a3331</guid>
    </item>
    <item>
      <title>New Windows Phone application profiling tool available</title>
      <link>http://www.eqatec.com/</link>
      <description>&lt;p&gt;A quick news blast for today: I've learned about a new profiling tool built specifically for Windows Phone: a product called Profiler from &lt;a href="http://www.eqatec.com/"&gt;Eqatec&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Says the company: "The EQATEC Profiler is a code profiler, not a memory profiler. So it's all about making your app run faster, not about tracking objects and memory."&lt;/p&gt;

&lt;p&gt;The product itself is commercial, but there is a free version available for single-assembly applications.&lt;/p&gt;</description>
      <pubDate>Tue, 03 May 2011 19:02:25 GMT</pubDate>
      <guid isPermaLink="false">762c732b-daac-4704-bf69-276f4c1f909a</guid>
    </item>
    <item>
      <title>TechEd USA starting within two weeks</title>
      <link>http://channel9.msdn.com/Events/TechEd</link>
      <description>&lt;p&gt;Welcome, May! Microsoft &lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica"&gt;Tech·Ed North America 2011&lt;/a&gt; is starting within two weeks in Atlanta, GA. As you surely know, TechEd is the premier technology event for IT professionals, but there's also content for developers.&lt;/p&gt;

&lt;p&gt;Later this year, Microsoft is going to host PDC, the Professional Developer's Conference. Stay tuned.&lt;/p&gt;</description>
      <pubDate>Sun, 01 May 2011 10:42:17 GMT</pubDate>
      <guid isPermaLink="false">34655438-743f-456c-9114-ff75fea4db22</guid>
    </item>
    <item>
      <title>Windows Phone and IIS smooth streaming</title>
      <link>http://www.iis.net/download/SmoothStreaming</link>
      <description>&lt;p&gt;I'm presently working with a Windows Phone video application that streams video content over a 3G connection from a &lt;a href="http://www.iis.net/download/SmoothStreaming"&gt;IIS 7.5 web server&lt;/a&gt;. On the drawing board, this seems to be an easy task: simply use the Silverlight Smooth Streaming client for Windows Phone, encode your video with Expression Encoder, upload the video to your server, and give the URL to your phone application.&lt;/p&gt;

&lt;p&gt;However, in practice, things turned out not to be as simple. Currently, the biggest issue is that the video contains encoding erros (pixelation, jamming, etc.) when viewed through the phone. This seems to be a phone/codec problem, because the sometimes (two times out of ten), the video indeed works when streamed.&lt;/p&gt;

&lt;p&gt;Currently, my solution is to download the videos locally to the phone; hopefully I have a tip to share later on how to solve the issue of corrupted video frames.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Apr 2011 19:12:19 GMT</pubDate>
      <guid isPermaLink="false">49834d1a-786c-4fcb-bb39-50bc06e67e1f</guid>
    </item>
    <item>
      <title>The User-Agent string in IE10</title>
      <link>http://blogs.msdn.com/b/ie/archive/2011/04/15/the-ie10-user-agent-string.aspx</link>
      <description>&lt;p&gt;Internet Explorer 10's (IE10) User-Agent string is changing, and at least in the current platform preview, the string is:&lt;/p&gt;

&lt;pre&gt;
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
&lt;/pre&gt;

&lt;p&gt;On thing of special note is that from now on, the actual version number is four characters, i.e. two numbers, period and a single number unlike previously, where the format was "N.N". If you are parsing the string manually, it is good to make sure your code works.&lt;/p&gt;

&lt;p&gt;For more details, see the &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/04/15/the-ie10-user-agent-string.aspx"&gt;MSDN blog entry&lt;/a&gt; about this.&lt;/p&gt;</description>
      <pubDate>Sun, 24 Apr 2011 14:40:54 GMT</pubDate>
      <guid isPermaLink="false">16e2624f-45cc-4015-915f-c74bccacc53b</guid>
    </item>
    <item>
      <title>Script your own applications straight on your Windows Phone 7</title>
      <link>http://research.microsoft.com/en-us/projects/touchstudio/</link>
      <description>&lt;p&gt;If you have been following along with Windows Phone 7 application development, you know that the main development tools are Visual Studio and Expression Blend. True, but from today on, you can also create simple scripting application directly on your phone, without any additional tools on the PC.&lt;/p&gt;

&lt;p&gt;Called the Windows Phone &lt;a href="http://research.microsoft.com/en-us/projects/touchstudio/"&gt;TouchStudio&lt;/a&gt;, and originated from a Microsoft Research project, the small application allows you to "touch and create" your applications using ready-made building blocks. For instance, if you wanted to create an application playing music, you could loop through your phone's media library, select a song based on some criteria, and then play the song. Straightforward and easy, as scripting should be. Except that with TouchStudio, you don't need to write nearly as much.&lt;/p&gt;

&lt;p&gt;To learn more, check out the TouchStudio &lt;a href="http://research.microsoft.com/en-us/projects/touchstudio/"&gt;home page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 21 Apr 2011 10:51:29 GMT</pubDate>
      <guid isPermaLink="false">473d3086-585d-4325-81ea-55e762fbc075</guid>
    </item>
    <item>
      <title>Internet Explorer 10 already?</title>
      <link>http://ie.microsoft.com/testdrive/info/downloads/Default.html</link>
      <description>&lt;p&gt;The final version of Internet Explorer 9 shipped just a few weeks ago, but already Microsoft is pushing developers the next version: Internet Explorer 10 Platform Preview 1.&lt;/p&gt;

&lt;p&gt;Just as with IE9, Microsoft is keeping a list of most important things for developers to try. The list is titled "Internet Explorer Platform Preview Guide for Developers" and is available &lt;a href="http://msdn.microsoft.com/en-us/ie/gg192966"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The preview download itself is &lt;a href="http://ie.microsoft.com/testdrive/info/downloads/Default.html"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 20 Apr 2011 14:51:26 GMT</pubDate>
      <guid isPermaLink="false">83a5afc6-d2ff-4f2d-ae12-6557e19176c8</guid>
    </item>
    <item>
      <title>Office 365 public beta now open!</title>
      <link>http://www.microsoft.com/presspass/redirects/office365.aspx</link>
      <description>&lt;p&gt;Good news for small business owners: the first public beta of Office 365 is now open. But what is Office 365 and what does it have to do with software development? Many software development houses are small, and might benefit from additional communication possibilities with fellow developers, customers and other interest groups.&lt;/p&gt;

&lt;p&gt;What features does Office 365 then provide? Think email (Exchange Server), collaboration (Office and SharePoint) and presence or live conferencing (Lync Server) in one box. Well, except it's not a box: it is a cloud based service. Very interesting in my opinion at least; if you are interested, take a look at the &lt;a href="http://www.microsoft.com/Presspass/Features/2011/apr11/04-17Office365.mspx"&gt;press release&lt;/a&gt; and the &lt;a href="http://www.microsoft.com/presspass/redirects/office365.aspx"&gt;signup page&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sun, 17 Apr 2011 17:32:59 GMT</pubDate>
      <guid isPermaLink="false">71b51893-7db2-4228-b1bd-a7878accc138</guid>
    </item>
    <item>
      <title>Silverlight futures and HTML 5</title>
      <link>http://visitmix.com/</link>
      <description>&lt;p&gt;Microsoft's &lt;a href="http://visitmix.com/"&gt;Mix'11&lt;/a&gt; event was again full of web goodness, including things like Silverlight 5 beta, HTML 5 and Windows Phone developer things.&lt;/p&gt;

&lt;p&gt;Many developers are probably thinking at this point, whether HTML 5 or Silverlight should be the way to go. My current thinking about these two technologies is this: both (once fully materialized) can implement similar applications on the lower end, but if you need high-end functionality and great integration with the Windows operating system, then Silverlight is probably the way to go.&lt;/p&gt;

&lt;p&gt;HTML 5 on the other hand could become a lower-end standard for many different applications, both on the web, desktops and mobile. If properly implementedby vendors and manufacturers, especially consumer application could be well implemented with HTML 5. Enterprise applications probably are better server with Silverlight, if not other more desktop oriented technologies like WPF.&lt;/p&gt;</description>
      <pubDate>Fri, 15 Apr 2011 18:16:53 GMT</pubDate>
      <guid isPermaLink="false">c0bf061a-cf05-4e8f-a2fc-4a4c0c4f37f2</guid>
    </item>
    <item>
      <title>What is Visual Studio 2010's IntelliTrace?</title>
      <link>http://msdn.microsoft.com/en-us/library/dd264915.aspx</link>
      <description>&lt;p&gt;In the recent weeks, I've spoken with many .NET developers regarding debugging, and there seems to be two things that are currently hot topics: how to monitor your application's SQL statement, and secondly, how to see your application's state after you've already executed a certain code block you are interested in.&lt;/p&gt;

&lt;p&gt;It occurred to me that Visual Studio 2010's IntelliTrace functionality could give a solution to both of these problems. Of course, IntelliTrace is something that is only available in the Ultimate edition of Visual Studio, but if you need the functionality, then this feature alone could be worth the price.&lt;/p&gt;

&lt;p&gt;To learn the benefits of this new technology, visit the MSDN &lt;a href="http://msdn.microsoft.com/en-us/library/dd264915.aspx"&gt;feature pages&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 12 Apr 2011 05:56:49 GMT</pubDate>
      <guid isPermaLink="false">a5142e4f-3e6f-4306-a343-ecbc764931ee</guid>
    </item>
    <item>
      <title>Software documentation tip: make it a video</title>
      <link>http://www.techsmith.com/camtasia/</link>
      <description>&lt;p&gt;As a software developer, you've been in the situation probably many times: you need to document a certain procedure working with an application, be it either developing your code in Visual Studio or using the resulting application as an end-user.&lt;/p&gt;

&lt;p&gt;Oftentimes, documentation is probably the last thing you have the time for, so a quick video will probably serve well – until you find that time for a more formal documentation.&lt;/p&gt;

&lt;p&gt;Personally, I've been using TechSmith's &lt;a href="http://www.techsmith.com/camtasia/"&gt;Camtasia&lt;/a&gt; to record screencasts, but I've also notices that the Expression Encoder product that is part of MSDN subscriptions seems to also record screen videos (screencasts). Finally, Windows 7's Problem Steps Recorder (PSR.exe) can also server as a makeshift recorder, but the problem is that it takes still shots from the screen, and not real video.&lt;/p&gt;</description>
      <pubDate>Sat, 09 Apr 2011 04:24:35 GMT</pubDate>
      <guid isPermaLink="false">4d2d3ae3-bae2-4cb4-83fa-480758381eeb</guid>
    </item>
    <item>
      <title>Solving source code versioning issues – without version control</title>
      <link>http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx</link>
      <description>&lt;p&gt;This year, I've been working with several small-scale software development projects, and in all of those projects, I've used FTP, the web and email – not &lt;a href="http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx"&gt;version control&lt;/a&gt; – to share source code back and forth between my development machine(s) and the customer. As you can guess, there are several issues with this approachs, but with simple common sense, things are easier to manage.&lt;/p&gt;

&lt;p&gt;First and foremost, it is imperative to keep track of changes that each developer does. A simple comment marker with your name (and possibly a date) will do just fine. Secondly, you must have a proper file comparison utility. Otherwise, it is a nightmare. My choice is UltraCompare Professional from IDM.&lt;/p&gt;

&lt;p&gt;Thirdly, if you know you are doing concurrent edits to the same file, it is best to communicate who has done what. With this information, it is much easier to manage the changes.&lt;/p&gt;

&lt;p&gt;The fourth and final tip is about clocks on your computers. If you are on different timezones (say, USA/Europe/Asia), make sure you are aware about the fact that file times only show local time. When you zip for instance a Visual Studio project folder (or a solution folder), the timestamps on the files will show the local times. Don't be fooled by this.&lt;/p&gt;</description>
      <pubDate>Wed, 06 Apr 2011 18:20:42 GMT</pubDate>
      <guid isPermaLink="false">e8c9aab9-de54-4d4c-a6bf-d4b2dd31a234</guid>
    </item>
    <item>
      <title>Windows Home Server 2011 is now ready</title>
      <link>http://windowsteamblog.com/windows/b/windowshomeserver/archive/2011/03/29/windows-home-server-2011-is-ready-for-release.aspx</link>
      <description>&lt;p&gt;Just two days ago, Microsoft &lt;a href="http://windowsteamblog.com/windows/b/windowshomeserver/archive/2011/03/29/windows-home-server-2011-is-ready-for-release.aspx"&gt;announced&lt;/a&gt; that Windows Home Server 2011 is now ready.&lt;/p&gt;

&lt;p&gt;As a developer, should you be interested in Windows Home Server (WHS) 2011? My answer is yes. If (when) you already have Windows programming experience, you are ready to build applications for WHS. For instance, you could build networking utilities or scheduled tasks that help people at home to get most of their server.&lt;/p&gt;

&lt;p&gt;Even though WHS doesn't yet command a large market share or come close to it's enterprise versions at corporations, it is an interesting product that contains many useful features for small businesses as well. Something to explore.&lt;/p&gt;</description>
      <pubDate>Sun, 03 Apr 2011 14:45:11 GMT</pubDate>
      <guid isPermaLink="false">3b70ab24-b974-4e65-88e9-38d62ac21092</guid>
    </item>
    <item>
      <title>Microsoft MVP award received for 2011</title>
      <link>http://mvp.support.microsoft.com/</link>
      <description>&lt;p&gt;Good news: Microsoft has honored my the Microsoft &lt;a href="http://mvp.support.microsoft.com/"&gt;MVP award&lt;/a&gt; for 2011! It great to be onboard again, and hope to be able to stay above the bar for the next 365 days. Thank you Microsoft!&lt;/p&gt;

&lt;p&gt;If I'm not mistaken, this is the seventh time I've received the award, starting since 2005. If you want to get to know what's cooking, be sure to follow this blog, watch the screencasts and articles at &lt;a href="http://www.codeguru.com/"&gt;CodeGuru.com&lt;/a&gt;/&lt;a href="http://www.devx.com/"&gt;DevX.com&lt;/a&gt;, and follow my articles in the Finnish magazines.&lt;/p&gt;

&lt;p&gt;Also, a new book is in planning, stay tuned for more information.&lt;/p&gt;</description>
      <pubDate>Fri, 01 Apr 2011 18:14:01 GMT</pubDate>
      <guid isPermaLink="false">6ae777e5-4f68-4af9-8fa1-940a3071911e</guid>
    </item>
    <item>
      <title>Microsoft TechDays Finland is soon here!</title>
      <link>http://www.techdays.fi/</link>
      <description>&lt;p&gt;If you are a Finnish IT professional or developer using Microsoft technologies, chances are you've already got your ticket to Microsoft &lt;a href="http://www.techdays.fi/"&gt;TechDays 2011&lt;/a&gt; in Finland. Like previous years, I'm lucky to attend myself, and will also speak in two sessions there.&lt;/p&gt;

&lt;p&gt;More specifically, my sessions are about C# 5.0 and the new async features on Thursday, and about Windows Phone 7 and sensors on Friday.&lt;/p&gt;

&lt;p&gt;Welcome, and see you there!&lt;/p&gt;</description>
      <pubDate>Tue, 29 Mar 2011 16:41:42 GMT</pubDate>
      <guid isPermaLink="false">49d49fb0-4611-42b8-9e57-85e7c3349937</guid>
    </item>
    <item>
      <title>IE9 and dragging URL links to the desktop</title>
      <link>http://windows.microsoft.com/en-US/internet-explorer/products/ie/home</link>
      <description>&lt;p&gt;If you have already installed &lt;a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home"&gt;Internet Explorer 9&lt;/a&gt; (IE9) onto your PC, you might have noticed many new things and improvements.&lt;/p&gt;

&lt;p&gt;One of these changes is the file format used when you drag a web site's icon from the address bar to a folder, say the desktop. In IE 8 and earlier, these shortcut files used the .url extension, but in IE 9 this has changed to a .website. This extension in turn is called a Pinned Site Shortcut.&lt;/p&gt;

&lt;p&gt;The .website file is, just like the .url file, a regular text file with the old INI file format. Thus, it is easy to parse, and you could even write your own .NET/C#/PowerShell script to convert file formats back and forth. The only thing that changes in addition to the file format change, is the fact that IE 9 opens a new window for the just-dragged web site. Yes, this is to be expected as this is how "web sites as applications" behave, but somethings to get used to.&lt;/p&gt;

&lt;p&gt;If you want to enable pinning and taskbar icons on your own web pages, follow the &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2010/09/16/how-to-add-ie9-beta-pinning-to-you-website.aspx"&gt;tips here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sun, 27 Mar 2011 12:11:21 GMT</pubDate>
      <guid isPermaLink="false">6ebf369e-9161-41ec-83b2-4b53a88d9d29</guid>
    </item>
    <item>
      <title>Windows Azure Toolkit for Windows Phone 7 released</title>
      <link>http://watoolkitwp7.codeplex.com/</link>
      <description>&lt;p&gt;If you are looking to develop Windows Phone 7 applications, you might have noticed that to be able to communicate with the outside world, HTTP connections to web servers and WCF services are usually the way to go. Of course, the cloud could also run your WCF applications (for instance), and to help you building this link, Microsoft has developed something called "&lt;a href="http://watoolkitwp7.codeplex.com/"&gt;Windows Azure Toolkit for Windows Phone 7&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Says Microsoft: "The Windows Azure Toolkit for Windows Phone 7 is designed to make it easier for you to build mobile applications that leverage cloud services running in Windows Azure."&lt;/p&gt;

&lt;p&gt;To get your copy, visit the product page on &lt;a href="http://watoolkitwp7.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 25 Mar 2011 18:45:16 GMT</pubDate>
      <guid isPermaLink="false">5e2bc653-2dd6-4387-8113-f61c075b73f1</guid>
    </item>
    <item>
      <title>New article in Tietokone: create your own GPS speedometer</title>
      <link>http://www.tietokone.fi/</link>
      <description>&lt;p&gt;The Finnih &lt;a href="http://www.tietokone.fi/"&gt;Tietokone magazine&lt;/a&gt; has published my latest article, and after a long pause, they've decided to publish a software development article. The title for the article is "Gps-nopeusmittari Windows Phonelle", and it walks through creating a simple GPS application with Windows Phone 7 and Visual Studio 2010.&lt;/p&gt;

&lt;p&gt;Happy reading!&lt;/p&gt;</description>
      <pubDate>Wed, 23 Mar 2011 18:45:11 GMT</pubDate>
      <guid isPermaLink="false">673fc5c2-5a1e-4c9b-a0e1-9443c39c3d88</guid>
    </item>
    <item>
      <title>Quick PowerShell tip: how to take only a single property from a result set?</title>
      <link>http://technet.microsoft.com/en-us/library/ee176955.aspx</link>
      <description>&lt;p&gt;Today's topic is a quick tip about PowerShell. Assume for instance you need to list certain items, and these items contain numerous properties of which you need only one.&lt;/p&gt;

&lt;p&gt;For instance, you might be enumerating the currently running processes with the "Get-Process" cmdlet. This command would return a process object with around half a dozen properties:&lt;/p&gt;

&lt;pre&gt;
[PS]&gt; Get-Process

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    119       4    12776      14572    48            1516 audiodg
     44       2     1460       3420    34     0,05   3160 conime
    533       5     1568       5008   108             500 csrss
    541       8    17304      18792   190             564 csrss
...
&lt;/pre&gt;

&lt;p&gt;But what if you wanted to list only for instance the process names currently running? How would you filter that? Enter the "select" cmdlet, which is an alias for &lt;a href="http://technet.microsoft.com/en-us/library/ee176955.aspx"&gt;Select-Object&lt;/a&gt;. After this, you could write something like this:&lt;/p&gt;

&lt;pre&gt;
[PS]&gt; Get-Process | Select-Object ProcessName

ProcessName
-----------
audiodg
conime
csrss
csrss
...
&lt;/pre&gt;

&lt;p&gt;In addition to simply specifying the column (property) you prefer, you can also select top N or last N objects (records), select multiple properties (separate them with a comma), and more. To learn about this, check the TechNet &lt;a href="http://technet.microsoft.com/en-us/library/ee176955.aspx"&gt;documentation page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Keywords: filter results, select single property, single column only.&lt;/p&gt;</description>
      <pubDate>Sun, 20 Mar 2011 15:29:05 GMT</pubDate>
      <guid isPermaLink="false">029df7ce-ff3f-4c59-9223-759c64f51fab</guid>
    </item>
    <item>
      <title>Entity Framework 4.1 Release Candidate now available for downloading</title>
      <link>http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-release-candidate-available.aspx</link>
      <description>&lt;p&gt;At this point in time, I'm pretty sure you've heard for Microsoft's ADO.NET Entity Framework (EF), and also probably used it as well. The major 4.0 version of EF was shipped along with .NET Framework 4.0, but that doesn't mean development has stopped until the next major .NET version (5.0?) comes along.&lt;/p&gt;

&lt;p&gt;Just few days ago, Microsoft &lt;a href="http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-release-candidate-available.aspx"&gt;announced&lt;/a&gt; the first release candidate (RC) of Entity Framework 4.1, available &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2dc5ddac-5a96-48b2-878d-b9f49d87569a&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Major features of the 4.1 include an improved DbContext API and the "Code First" support. This Code First support now comes in addition to the Database First (which I happen to use most of the time) and Model First patterns.&lt;/p&gt;

&lt;p&gt;You can read more &lt;a href="http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-release-candidate-available.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx"&gt;here&lt;/a&gt;. To get started, &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2dc5ddac-5a96-48b2-878d-b9f49d87569a&amp;displaylang=en"&gt;download the installer&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 17 Mar 2011 17:13:35 GMT</pubDate>
      <guid isPermaLink="false">32e371d8-c863-467d-899a-8136f86c978a</guid>
    </item>
    <item>
      <title>Internet Explorer 9 now available</title>
      <link>http://windows.microsoft.com/en-US/internet-explorer/products/ie/home</link>
      <description>&lt;p&gt;A new major browser version is always something to note, and Microsoft's Internet Explorer is no exception. Late yesterday, the company announced the availability of &lt;a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home"&gt;IE 9&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The new browser is available for Windows Vista, Windows 7 and Windows Server 2008 (R2). Note that Windows XP isn't supported anymore. To get your copy, visit the &lt;a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie-9/worldwide-languages"&gt;OS and language selection page&lt;/a&gt;. A list of new features is available &lt;a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie-9/features"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Be also sure to test Internet Explorer 9 at &lt;a href="http://www.beautyoftheweb.com/"&gt;beautyoftheweb.com&lt;/a&gt;. Developer material is available &lt;a href="http://msdn.microsoft.com/en-us/ie"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 15 Mar 2011 04:23:57 GMT</pubDate>
      <guid isPermaLink="false">aebe64bd-8531-4e63-8cac-da98392582b7</guid>
    </item>
    <item>
      <title>Windows Phone 7 cheat sheet available</title>
      <link>http://www.codeguru.com/csharp/.net/wp7/article.php/c18605</link>
      <description>&lt;p&gt;If you are interested in Windows Phone 7 development and want to have a quick reference sheet, I have good news: my latest article on CodeGuru has just been published. This time, the "article" is a Windows Phone 7 cheat sheet.&lt;/p&gt;

&lt;p&gt;The sheet is free but requires registration for Internet.com services. You can grab &lt;a href="http://www.codeguru.com/csharp/.net/wp7/article.php/c18605"&gt;your copy here&lt;/a&gt;. After registration, click the big Submit button on the right.&lt;/p&gt;

&lt;p&gt;Happy development!&lt;/p&gt;</description>
      <pubDate>Mon, 14 Mar 2011 16:05:21 GMT</pubDate>
      <guid isPermaLink="false">3c91adb2-957b-40f9-9405-d1fc01cfa34e</guid>
    </item>
    <item>
      <title>Quick note: VS 2010 SP1 now publicly available</title>
      <link>http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5&amp;displaylang=en</link>
      <description>&lt;p&gt;Just a quick note about Visual Studio 2010's first service pack: it is now available for instance &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As I noted the day before yesterday, the SP1 contains lots of improvements and fixes, and is thus a recommended install.&lt;/p&gt;

&lt;p&gt;A &lt;a href="http://go.microsoft.com/fwlink/?LinkId=210711"&gt;Readme document&lt;/a&gt; is also available.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Mar 2011 17:10:58 GMT</pubDate>
      <guid isPermaLink="false">b5a95e41-01c2-4900-b445-db3e5410f1a7</guid>
    </item>
    <item>
      <title>Visual Studio 2011 Service Pack 1 is here</title>
      <link>http://support.microsoft.com/kb/983509</link>
      <description>&lt;p&gt;Microsoft today made available the first service packs, SP1, to both Visual Studio 2010 and Team Foundation Server 2010. Both are immediately available through MSDN subscribed downloads, and should also be available publicly just shortly.&lt;/p&gt;

&lt;p&gt;The list of new features and fixes &lt;a href="http://support.microsoft.com/kb/983509"&gt;is long&lt;/a&gt;, and includes highlights such as Help Viewer 1.1, Performance Wizard for Silverlight, IIS Express and SQL Server CE 4 support and for native-code developers support for the latest Intel and AMD instruction sets.&lt;/p&gt;

&lt;p&gt;For more information, see the Knowledge Base article &lt;a href="http://support.microsoft.com/kb/983509"&gt;983509&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Mar 2011 16:46:39 GMT</pubDate>
      <guid isPermaLink="false">8a36bfb2-171a-4987-86ac-54f7d86575ba</guid>
    </item>
    <item>
      <title>What is EXI, anyway?</title>
      <link>http://www.w3.org/TR/exi/</link>
      <description>&lt;p&gt;All developers of today know XML, but then again, the language is quite verbose and thus not always suitable for communications. To address this, W3C is about to create a new stardard for packing XML data into a binary format called EXI. EXI stands for Efficient XML Interchange (EXI) Format 1.0.&lt;/p&gt;

&lt;p&gt;Here's what W3C is saying: "EXI is a very compact representation for the Extensible Markup Language (XML) Information Set that is intended to simultaneously optimize performance and the utilization of computational resources. The EXI format uses a hybrid approach drawn from the information and formal language theories, plus practical techniques verified by measurements, for entropy encoding XML information."&lt;/p&gt;

&lt;p&gt;Edit on March 14: good news! EXI has just been made a W3C Recommendation. Now it is just a matter of time before EXI files will start popping up on your hard drive, too.&lt;/p&gt;</description>
      <pubDate>Tue, 08 Mar 2011 21:38:52 GMT</pubDate>
      <guid isPermaLink="false">5f4509dd-d7fc-43f9-ba8b-0fe0f3647c9d</guid>
    </item>
    <item>
      <title>Getting a list of mailboxes in Exchange 2007/2010</title>
      <link>http://msdn.microsoft.com/en-us/library/bb123685.aspx</link>
      <description>&lt;p&gt;Recently, I needed application code to enumerate all mailboxes in a given domain running Exchange 2007 or 2010. If you have been using or programming these Exchange versions, you know that they rely heavily on PowerShell commands to manage the system. Of course, you can use these same interfaces to help in your own programming efforts.&lt;/p&gt;

&lt;p&gt;For instance, my task was to get a list of mailboxes (roughly equal to email addresses) in a domain. The solution is very simple: simply use the &lt;a href="http://msdn.microsoft.com/en-us/library/bb123685.aspx"&gt;Get-Mailbox&lt;/a&gt; cmdlet.&lt;/p&gt;

&lt;p&gt;This cmdlet work interactively, but you can almost as easily call it using the .NET namespaces System.Management.Automation.*, which are part of the PowerShell installation. Usually, they reside at "C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0".&lt;/p&gt;

&lt;p&gt;For more information on how to use these namespaces, visit the &lt;a href="http://msdn.microsoft.com/en-us/library/system.management.automation(VS.85).aspx"&gt;MSDN documentation&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 05 Mar 2011 11:12:03 GMT</pubDate>
      <guid isPermaLink="false">c84ad0f1-4031-423d-8f11-66711f3660cf</guid>
    </item>
    <item>
      <title>TechDays Finland March-31 to April-1, 2011</title>
      <link>http://www.techdays.fi/</link>
      <description>&lt;p&gt;Microsoft Finland's &lt;a href="http://www.techdays.fi/"&gt;TechDays event&lt;/a&gt; is again soon here. As the past couple of years, the event is being held in Helsinki. I've heard that the event is filling quickly, so I'm sure we will again see a jam-packed audience of around 1,500 people.&lt;/p&gt;

&lt;p&gt;This year, I'm going to speak at two events, on on Thursday morning about C# 5.0 and on Friday afternoon about Windows Phone development. Hope you have the chance to attend these sessions and many more held at the event. Be also sure to register quickly, unless you already haven't.&lt;/p&gt;

&lt;p&gt;See you &lt;a href="http://www.techdays.fi/"&gt;there&lt;/a&gt;!&lt;/p&gt;</description>
      <pubDate>Wed, 02 Mar 2011 19:03:39 GMT</pubDate>
      <guid isPermaLink="false">a1f43705-c256-4a1f-ba08-12c44a8fb2ef</guid>
    </item>
    <item>
      <title>ASP.NET Razor application deployment -- which DLLs do you need?</title>
      <link>http://www.asp.net/mvc</link>
      <description>&lt;p&gt;If you are keep about new technology, then you might have already sticked your teeth into what is called &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx"&gt;ASP.NET Razor&lt;/a&gt;. Razor is the new view-engine for ASP.NET application, and it works well together with &lt;a href="http://www.asp.net/mvc"&gt;ASP.NET MVC 3&lt;/a&gt;. I recently deployed my first ASP.NET MVC 3 application with Razor into production, and wanted to share the list of assemblies (DLLs) that you need to deploy with your own binary here.&lt;/p&gt;

&lt;p&gt;Here's the list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft.Web.Infrastructure.dll&lt;/li&gt;
&lt;li&gt;System.Web.Helpers.dll&lt;/li&gt;
&lt;li&gt;System.Web.Mvc.dll&lt;/li&gt;
&lt;li&gt;System.Web.Razor.dll&lt;/li&gt;
&lt;li&gt;System.Web.WebPages.Deployment.dll&lt;/li&gt;
&lt;li&gt;System.Web.WebPages.dll&lt;/li&gt;
&lt;li&gt;System.Web.WebPages.Razor.dll.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can find these DLLs from beneath the installation folder of ASP.NET MVC 3.&lt;/p&gt;

&lt;p&gt;PS. If you know Finnish, I earlier today wrote a simple &lt;a href="http://www.itpro.fi/asiantuntijaryhmat/ohjelmistokehitys/Lists/Posts/Post.aspx?ID=270"&gt;cheat sheet&lt;/a&gt; about Razor's syntax compared to traditional ASP.NET syntax.&lt;/p&gt;</description>
      <pubDate>Mon, 28 Mar 2011 18:43:57 GMT</pubDate>
      <guid isPermaLink="false">7f3a074b-8963-4264-ab23-89ab93d410cb</guid>
    </item>
    <item>
      <title>New phone software: Kalevala phone reader</title>
      <link>http://social.zune.net/redirect?type=phoneApp&amp;id=d789e232-a241-e011-854c-00237de2db9e</link>
      <description>&lt;p&gt;For the past six months of so, I've been busy with software development and training, but I've also been lucky to have the chance to learn more about Windows Phone development, including Silverlight. Today I'm happy to announce yet another Windows Phone 7 application available on the marketplace.&lt;/p&gt;

&lt;p&gt;This time, the application is about cultural heritage, and focuses on Finland. The Finnish national epic, the 19th century &lt;a href="http://en.wikipedia.org/wiki/Kalevala"&gt;Kalevala&lt;/a&gt;, can now be read using a Windows Phone 7. I used Visual Studio 2010 and Expression Blend 4 for the development work, and also uses things like plane projections, storyboards, view models, LINQ to XML and the accelerometer. Although the application is simple, it proved to be an useful testing ground for new technology.&lt;/p&gt;

&lt;p&gt;The application, titled "&lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;id=d789e232-a241-e011-854c-00237de2db9e"&gt;Kaleva Phone Reader&lt;/a&gt;" costs $3.99 or 3.99 €, depending on your country of residence. To get it, open you phone, navigate to the marketplace, and search for Kalevala or my name. The product id is "d789e232-a241-e011-854c-00237de2db9e".&lt;/p&gt;

&lt;p&gt;Hope you enjoy the application!&lt;/p&gt;</description>
      <pubDate>Sat, 26 Feb 2011 16:44:13 GMT</pubDate>
      <guid isPermaLink="false">d4c842b2-81ad-4f0a-9ca6-c6a2392f4b5b</guid>
    </item>
    <item>
      <title>First Windows Phone update now available</title>
      <link>http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2011/02/21/our-first-windows-phone-update-and-how-to-get-it.aspx</link>
      <description>&lt;p&gt;Microsoft has been busy with Windows Phone development, and the recent Nokia announcement has definitely set the stakes high (at least for Nokia). In preparing for the probably-March update with copy and paste and more, the company has launched the first minor update. This prepares the phone OS for the later big update, and also updates Zune.&lt;/p&gt;

&lt;p&gt;Says the &lt;a href="http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2011/02/21/our-first-windows-phone-update-and-how-to-get-it.aspx"&gt;announcement&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;"This first update for Windows Phone is designed to improve the software update process itself. So while it might not sound exciting, it’s still important because it’s paving the way for all future goodie-filled updates to your phone, such as copy and paste or improved Marketplace search.

In the future, I encourage you to check out our new &lt;a href="http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/update-history.aspx"&gt;update history&lt;/a&gt; page on the Windows Phone website for a brief, plain-English summary of what each update does or what features it adds to your phone."&lt;/p&gt;

&lt;p&gt;You can download the update by using Zune. Simply connect your phone to the PC, make sure Zune is launched, and then wait a bit. Soon, you will see a message saying that an update is available.&lt;/p&gt;</description>
      <pubDate>Fri, 25 Feb 2011 16:02:30 GMT</pubDate>
      <guid isPermaLink="false">e7a170f4-3b78-48d9-a1e8-401f3b94f9e8</guid>
    </item>
    <item>
      <title>What developers should know about Microsoft's App-V virtualization?</title>
      <link>http://mktg.flexerasoftware.com/mk/get/APPV_WHATDEVSHOULDKNOW</link>
      <description>&lt;p&gt;Virtualization is one of the key technologies that changed the PC landscape and IT administration since the year 2000. Even though virtualization has most of its use in the administration and IT professional space herding servers, there are many faces of virtualization. For instance, there is application virtualization, which can also has its effect on the applications you write.&lt;/p&gt;

&lt;p&gt;In the Windows world, Microsoft's &lt;a href="http://www.microsoft.com/systemcenter/appv/default.mspx"&gt;App-V&lt;/a&gt; is one of the key application virtualization products on the market. But how does this affect for instance Win32 and .NET developers?&lt;/p&gt;

&lt;p&gt;I'm currently sitting in a hotel room in London attending a Flexera event about InstallShield and Admin Studio. Thus it's good to learn that Flexera has written a nice white paper called "&lt;a href="http://mktg.flexerasoftware.com/mk/get/APPV_WHATDEVSHOULDKNOW"&gt;Application Virtualization: What Developers Should Know&lt;/a&gt;". This paper is available here after registration.&lt;/p&gt;

&lt;p&gt;Recommended reading.&lt;/p&gt;</description>
      <pubDate>Tue, 22 Feb 2011 20:13:07 GMT</pubDate>
      <guid isPermaLink="false">4b0c2591-1647-4c65-a51e-e7a874a1c91c</guid>
    </item>
    <item>
      <title>Three new articles about Team Foundation Server</title>
      <link>http://www.codeguru.com/cpp/article.php/c18481/Introducing-Microsoft-Visual-Studio-Team-Foundation-Server-2010-Part-I.htm</link>
      <description>&lt;p&gt;CodeGuru.com (and other Internet.com related sites) has published several of my new articles this month. I've been working on a Microsoft ALM series, which currently spans five parts. Three of these have now been published as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeguru.com/cpp/article.php/c18481/Introducing-Microsoft-Visual-Studio-Team-Foundation-Server-2010-Part-I.htm"&gt;Part 1&lt;/a&gt; - Introducing Microsoft Visual Studio Team Foundation Server 2010&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeguru.com/csharp/article.php/c18487/Team-Foundation-Server-Source-Control-Explained.htm"&gt;Part 2&lt;/a&gt; - Team Foundation Server Source Control Explained&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeguru.com/csharp/article.php/c18505/Benefiting-from-Team-Foundation-Server-Work-Items.htm"&gt;Part 3&lt;/a&gt; - Benefiting from Team Foundation Server Work Items&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these three parts are freely available without any registration.&lt;/p&gt;</description>
      <pubDate>Sat, 19 Feb 2011 06:19:39 GMT</pubDate>
      <guid isPermaLink="false">e54676e5-de72-48d0-af04-38172c04c54e</guid>
    </item>
    <item>
      <title>Windows Azure and certificates for HTTPS</title>
      <link>http://technet.microsoft.com/en-us/magazine/gg607453.aspx</link>
      <description>&lt;p&gt;If you are developing cloud applications that have a web interface or publish a web service with HTTP, you might be interested to learn how you can work better with encrypted HTTPS traffic and certificates. If this is your case, then you are in luck: the &lt;a href="http://technet.microsoft.com/en-us/magazine/gg618558.aspx"&gt;February 2011 issue&lt;/a&gt; of TechNet Magazine contains and article about working with certificates, security accounts and HTTPS encryption within the Azure environment.&lt;/p&gt;

&lt;p&gt;If you are interested, take a look at the article titled "&lt;a href="http://technet.microsoft.com/en-us/magazine/gg607453.aspx"&gt;Understanding Security Account Management in Windows Azure&lt;/a&gt;" by Joshua Hoffman.&lt;/p&gt;</description>
      <pubDate>Thu, 17 Feb 2011 11:55:33 GMT</pubDate>
      <guid isPermaLink="false">7c53ce20-e378-4b4d-88e0-bbeda5c29f1e</guid>
    </item>
    <item>
      <title>How would you teach parallelism and concurrent computing for developers?</title>
      <link>http://www.cs.gsu.edu/~tcpp/curriculum/sites/default/files/NSF-TCPP-curriculum-Dec23.pdf</link>
      <description>&lt;p&gt;Developing parallel applications is something every developer in the 2010s must be aware of, there's no question about that. Intel for instance has been busy lately with developing the processors with multiple cores, but the company has also worked with educational institutes and organizations like IEEE to raise the awareness of parallel programming in the educational institutes.&lt;/p&gt;

&lt;p&gt;One of the fruits of this work is a ready-made curriculum for parallelism teaching. The draft of this material, including ideas on how to best teach things, is &lt;a href="http://www.cs.gsu.edu/~tcpp/curriculum/sites/default/files/NSF-TCPP-curriculum-Dec23.pdf"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Even if you are a .NET developer looking to learn technologies like &lt;a href="http://msdn.microsoft.com/en-us/library/dd460717.aspx"&gt;Task Parallel Library&lt;/a&gt;, this material is an interesting read. Go ahead, and &lt;a href="http://www.cs.gsu.edu/~tcpp/curriculum/sites/default/files/NSF-TCPP-curriculum-Dec23.pdf"&gt;grab a copy&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 14 Feb 2011 18:41:29 GMT</pubDate>
      <guid isPermaLink="false">90bda4fd-246d-4510-a569-253a260bba73</guid>
    </item>
    <item>
      <title>Two new articles in Finnish Tietokone magazine</title>
      <link></link>
      <description>&lt;p&gt;The Finnish &lt;a href=""&gt;Tietokone magazine&lt;/a&gt; has published two of my latest articles, one about mobile development tools on different platforms and another about using Windows 7's task scheduling. The articles are titled "Mobiilikehittäjän työkalut" and "Windows 7:n ajastetut tehtävät".&lt;/p&gt;

&lt;p&gt;As there articles have been laid out in the magazine on successive pages, and because of the new more spacey layout, my articles take seven straight pages from the magazine. I guess that's a new record.&lt;/p&gt;

&lt;p&gt;Record or not, happy reading!&lt;/p&gt;</description>
      <pubDate>Sat, 12 Feb 2011 13:17:26 GMT</pubDate>
      <guid isPermaLink="false">1195257b-21e0-4b62-b435-5a8aafdc9594</guid>
    </item>
    <item>
      <title>Nokia and Microsoft partnership: what’s in it for developers?</title>
      <link>http://www.microsoft.com/presspass/press/2011/feb11/02-11partnership.mspx</link>
      <description>&lt;p&gt;Nokia and Microsoft &lt;a href="http://www.microsoft.com/presspass/press/2011/feb11/02-11partnership.mspx"&gt;today announced&lt;/a&gt; some very interesting news: Nokia's next smart phone operating system will be Windows Phone 7. Yes, you read it right: Visual Studio, .NET, Silverlight, XNA and so forth get to replace Symbian as the main platform for those phones. And just yesterday, Windows Phone 7 looked like a small player in the market saturated already by Android, iOS and Symbian.&lt;/p&gt;

&lt;p&gt;I've been lately doing much work with the Windows Phone 7 platform, and must say I'm impressed by the tooling. Compared to Symbian or Android, the experience is much smoother. No manually editing config files with Emacs, tyring to solve low-level linefeed/carriage return issues (especially on the Windows platform), or trying to figure out the correct simulator version for your application.&lt;/p&gt;

&lt;p&gt;Shortly put, it's a great announcement for today. For details, read the &lt;a href="http://conversations.nokia.com/2011/02/11/open-letter-from-ceo-stephen-elop-nokia-and-ceo-steve-ballmer-microsoft/"&gt;Nokia side&lt;/a&gt; and the &lt;a href="http://www.microsoft.com/presspass/press/2011/feb11/02-11partnership.mspx"&gt;Microsoft side&lt;/a&gt; of the announcement.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Feb 2011 12:41:04 GMT</pubDate>
      <guid isPermaLink="false">0958ac17-732c-46ac-aa9c-6a816a50843e</guid>
    </item>
    <item>
      <title>Authenticating a WCF web service call with .NET 4.0</title>
      <link>http://msdn.microsoft.com/en-us/library/ms732391.aspx</link>
      <description>&lt;p&gt;Assume the following: you need to call a .NET based (Windows Communication Foundation) web service (.asmx or .svc) from your C# application built with Visual Studio 2010 and .NET 4.0. You create a service reference to the service, but then start scratching your head about the authentication when using the generated client class.&lt;/p&gt;

&lt;p&gt;If you are new to WCF, with &lt;a href="http://msdn.microsoft.com/en-us/library/ms732391.aspx"&gt;little browsing&lt;/a&gt; you might find a solution like the following:&lt;/p&gt;

&lt;pre&gt;
MyWebServiceClient client = new MyWebServiceClient();
client.ClientCredentials.UserName.UserName = "John Doe";
client.ClientCredentials.UserName.Password = "...";
&lt;/pre&gt;

&lt;p&gt;This seems to be well until you actually call the web service. If the web service is using HTTP basic authentication (not secure as it uses plain-text for credential transfers, but okay with HTTPS), then you will get an error message like this:&lt;/p&gt;

&lt;pre&gt;
System.ServiceModel.Security.MessageSecurityException:
"The HTTP request is unauthorized with client authentication
scheme 'Anonymous'. The authentication header received from the server was 'Basic realm="my-server-name"'."
&lt;/pre&gt;

&lt;p&gt;And, the remote server returns "401 Unauthorized." in the inner exception. What is wrong?&lt;/p&gt;

&lt;p&gt;The basic thing to remember with WCF is that it is run-time configurable. Thus, many different things are actually set in app.config/web.config, depending on your application type. Assuming a desktop application, your app.config might contain something to the following effect:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;system.serviceModel&amp;gt;
    &amp;lt;bindings&amp;gt;
        &amp;lt;basicHttpBinding&amp;gt;
            &amp;lt;binding name="MyWebServiceSoap"
            ...
            useDefaultWebProxy="true"&amp;gt;
              ...
              &amp;lt;security mode="None"&amp;gt;
                &amp;lt;transport clientCredentialType="None"
                proxyCredentialType="None" realm="" /&amp;gt;
                &amp;lt;message clientCredentialType="UserName"
                algorithmSuite="Default" /&amp;gt;
              &amp;lt;/security&amp;gt;
            &amp;lt;/binding&amp;gt;
        &amp;lt;/basicHttpBinding&amp;gt;
    &amp;lt;/bindings&amp;gt;
    &amp;lt;client&amp;gt;
        &amp;lt;endpoint address="http://my-server/some-service.asmx"
        binding="basicHttpBinding"
        bindingConfiguration="MyWebServiceSoap"
        contract="MyServiceReference.MyWebServiceSoap"
        name="MyWebServiceSoap" /&amp;gt;
    &amp;lt;/client&amp;gt;
&amp;lt;/system.serviceModel&amp;gt;
&lt;/pre&gt;

&lt;p&gt;By default, no particular security settings have been set, and thus the client code fails, even when you have given the username and password in code.&lt;/p&gt;

&lt;p&gt;The solution is to properly modify the app.config section. Here is an example using the HTTP basic authentication scheme:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;security mode="TransportCredentialOnly"&amp;gt;
  &amp;lt;transport clientCredentialType="Basic"
  proxyCredentialType="Basic" realm="" /&amp;gt;
  &amp;lt;message clientCredentialType="UserName"
  algorithmSuite="Default" /&amp;gt;
&amp;lt;/security&amp;gt;
&lt;/pre&gt;

&lt;p&gt;This Security section replaces the original one. The correct location is inside the configuration/system.serviceModel/bindings/basicHttpBinding/ binding node.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;</description>
      <pubDate>Tue, 08 Feb 2011 15:57:00 GMT</pubDate>
      <guid isPermaLink="false">b515dbc7-8449-4145-a955-69bc19930049</guid>
    </item>
    <item>
      <title>Microsoft updates Windows Phone 7 developer tools</title>
      <link>http://www.microsoft.com/downloads/en/details.aspx?FamilyID=49b9d0c5-6597-4313-912a-f0cca9c7d277</link>
      <description>&lt;p&gt;Microsoft has been busy with Windows Phone 7 developer tools, and just few days ago (on Friday, in fact) the company released an update to the current tooling. Titled the January update (despite the fact that it became available in February), it contains the latest OS emulator image with the newest set of features. To download the latest kit, visit the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=49b9d0c5-6597-4313-912a-f0cca9c7d277"&gt;download page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Almost everybody familiar with the Windows Phone 7 seems to talk about copy-paste and its absence from the current operating system version. Microsoft has however promised that this feature will be part of the next update. The interesting thing is that the developer tools already contain this feature, so you can try it out in the emulator. The basic workings of the clipboard are simple, see &lt;a href="http://msdn.microsoft.com/en-us/library/gg588379(VS.92).aspx"&gt;this MSDN document&lt;/a&gt; for instructions.&lt;/p&gt;</description>
      <pubDate>Sat, 05 Feb 2011 17:12:14 GMT</pubDate>
      <guid isPermaLink="false">81b0206d-d3e8-4120-a021-7f746e091bd9</guid>
    </item>
    <item>
      <title>New article: C# 4.0 cheat sheet</title>
      <link>http://www.codeguru.com/csharp/csharp/cs_misc/article.php/c18469/Free-C-Developer-Cheat-Sheets-Now-Available.htm</link>
      <description>&lt;p&gt;CodeGuru.com has just published my latest article, or rather a two-page cheat sheet for the C# language. The article requires a registration to read, but that is free. To get your copy, visit the &lt;a href="http://www.codeguru.com/csharp/csharp/cs_misc/article.php/c18469/Free-C-Developer-Cheat-Sheets-Now-Available.htm"&gt;CodeGuru web site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The cheat sheet is simply titled "C# 4.0 Cheat Sheet".&lt;/p&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;</description>
      <pubDate>Wed, 02 Feb 2011 20:05:02 GMT</pubDate>
      <guid isPermaLink="false">0b0b6ec7-78c1-4cc2-87c7-62b8717daeea</guid>
    </item>
    <item>
      <title>New column in Finnish Prosessori magazine</title>
      <link>http://www.prosessori.fi/</link>
      <description>&lt;p&gt;The Finnish electronics magazine &lt;a href="http://www.prosessori.fi/"&gt;Prosessori&lt;/a&gt; has my one-page opinion column in the January issue of the magazine. Titled "Kuinka montaa erillistä sovellusta käyttäjä tarvitsee?" (roughly "How many applications does one need?"), the column talks about Apple's iOS 4.2 update and the fact that loading your phone full of nonsense applications can be fun, but maybe not exactly ideal.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Mon, 31 Jan 2011 19:44:57 GMT</pubDate>
      <guid isPermaLink="false">a18dbffe-26a5-4a6e-8cb1-5071ad685b24</guid>
    </item>
    <item>
      <title>New screencast: Windows Phone 7 and isolated storage</title>
      <link>http://www.codeguru.com/csharp/.net/wp7/article.php/c18435</link>
      <description>&lt;p&gt;CodeGuru.com has published my latest video about .NET development. This time the short screencast talks about Windows Phone 7 and its isolated storage feature. Windows Phone 7 devices do not (currently, at least) provide direct access to the file system, and thus applications need to work with what is called Isolated Storage.&lt;/p&gt;

&lt;p&gt;The screencast is titled "Windows Phone 7 and Isolated Storage" and can be &lt;a href="http://www.codeguru.com/csharp/.net/wp7/article.php/c18435"&gt;seen here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 29 Jan 2011 07:30:46 GMT</pubDate>
      <guid isPermaLink="false">15b3a558-54f4-418d-a02a-eedea3716e6d</guid>
    </item>
    <item>
      <title>What do junior developers find interesting in the .NET world?</title>
      <link>http://www.microsoft.com/expression/products/Blend_Overview.aspx</link>
      <description>&lt;p&gt;Lately, I've been visiting many educational institutes and speaking about .NET technologies, Visual Studio and software development as a business. Every time there is a interesting set of attendees, some of which have already entered software development companies to work there as junior developers, testers or web developers. With this in mind, it is interesting to look at those technologies that they find compelling.&lt;/p&gt;

&lt;p&gt;Since junior developers (et al.) don't yet have a long professional experience, they tend to focus on technologies that appeal to them personally (often games) or that solve the problems they currently are working with. Also, their focus is often more on pure technology, instead of the business reasons on using a certain technology.&lt;/p&gt;

&lt;p&gt;During these sessions, I've tried to identify technologies that are of interest to the attendees. So far, I've been able to list at least four technologies/products in this category: &lt;a href="http://www.microsoft.com/expression/products/Blend_Overview.aspx"&gt;Expression Blend&lt;/a&gt; with its great visual potentiality, Windows Phone 7 development with Silverlight, XNA for games, and ASP.NET Dynamic Data for very quick web front-ends for databases. On a lighter side, IIS Smooth Streaming, DeepZoom and Kodu bring up the cheers in the audience every time.&lt;/p&gt;

&lt;p&gt;Tomorrow's again another show, and I'm looking forward to letting people know about these things. It's not so much anymore about what technology can do, it's more of what you can imagine to be done.&lt;/p&gt;</description>
      <pubDate>Wed, 26 Jan 2011 16:26:30 GMT</pubDate>
      <guid isPermaLink="false">0bc92346-e931-4fb2-b4cb-4b8265844ad8</guid>
    </item>
    <item>
      <title>More secure development with Attack Surface Analyzer</title>
      <link>http://blogs.msdn.com/b/sdl/archive/2011/01/17/announcing-attack-surface-analyzer.aspx</link>
      <description>&lt;p&gt;Earlier this week, Microsoft announced a new code/application analysis utility called &lt;a href="http://blogs.msdn.com/b/sdl/archive/2011/01/17/announcing-attack-surface-analyzer.aspx"&gt;Attack Surface Analyzer&lt;/a&gt;. This new tool is part of the Security Development Lifecycle (SDL) program that Microsoft has been running internally, but also opening up publicly. Here is the quick rundown from the announcement blog:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"The Attack Surface Analyzer beta is a Microsoft verification tool now available for ISVs and IT professionals to highlight the changes in system state, runtime parameters and securable objects on the Windows operating system. This analysis helps developers, testers and IT professionals identify increases in the attack surface caused by installing applications on a machine."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you are interested in the beta release, &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e068c224-9d6d-4bf4-aab8-f7352a5e7d45&amp;displaylang=en"&gt;download it here&lt;/a&gt;. The are versions for both 32 and 64-bit systems.&lt;/p&gt;</description>
      <pubDate>Sun, 23 Jan 2011 09:55:47 GMT</pubDate>
      <guid isPermaLink="false">f6e78fbb-e78e-4735-9277-eb862d052b87</guid>
    </item>
    <item>
      <title>MSDN Firestarter event recording available</title>
      <link>http://www.msdnevents.com/firestarter/</link>
      <description>&lt;p&gt;If you have been following Microsoft's MSDN messaging in the U.S., you might recall the Firestarter events last December. If you were like me, you were traveling during the events (watching live streams is difficult while airborne), and thus couldn't see them.&lt;/p&gt;

&lt;p&gt;Luckily, the events were recorded, and the results can be seen on the &lt;a href="http://www.msdnevents.com/firestarter/"&gt;Firestarted page&lt;/a&gt; on MSDN Events. From here, you can find material about development for the Azure cloud, ASP.NET MVC, Silverlight and Windows 7. The lattest is also useful material for IT professionals.&lt;/p&gt;

&lt;p&gt;Enjoy the videos!&lt;/p&gt;</description>
      <pubDate>Thu, 20 Jan 2011 19:33:57 GMT</pubDate>
      <guid isPermaLink="false">bf6c544a-1eba-449b-9067-4775bb69d08b</guid>
    </item>
    <item>
      <title>How to move a WPF control in code?</title>
      <link>http://windowsclient.net/learn/</link>
      <description>&lt;p&gt;Recently, I needed to control the position of a control on my &lt;a href="http://windowsclient.net/learn/"&gt;WPF form&lt;/a&gt; programmatically using C#, and wanted to share the tip on as I found it difficult to find a solution from the internet. In many other user interface frameworks, including .NET frameworks, this is trivial: you just set the position of the control which you want to move. For example, in WinForms, you would simply set the Left and Top properties, for instance.&lt;/p&gt;

&lt;p&gt;WPF, on the other hand, is different. To simplify things a bit, you can think about it this way: the container component defines the position of its child elements. Thus, an individual control – say a button – does not control where it is positioned itself. Instead, it is job of the container – for instance a grid – to position it.&lt;/p&gt;

&lt;p&gt;Although this is not exactly as written above, the solution to component runtime moving can be found easier if you think this way. The truth is each container works a little differently, and the solution for a WPF grid control works like the code below.&lt;/p&gt;

&lt;p&gt;First, here is a block of XAML code (note how you should give your grid a name so that you can refer to it in code):&lt;/p&gt;

&lt;pre&gt;
&amp;lt;Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"&amp;gt;
&amp;lt;Grid Name="myGrid"&amp;gt;
&amp;lt;Button Content="Button" Height="23" HorizontalAlignment="Left"
Margin="36,51,0,0" Name="button1" VerticalAlignment="Top" Width="75" /&amp;gt;
&amp;lt;/Grid&amp;gt;
&amp;lt;/Window&amp;gt;
&lt;/pre&gt;

&lt;p&gt;With the given grid and a button set, you notice that the &lt;em&gt;margins&lt;/em&gt; for the button are 36 and 51 pixels. This means that the button can be thought of defining for itself an invisible "border" (i.e. a margin) for 36 pixels from the left border and 51 pixels from the top. By changing these margin values, you could then move the button &lt;em&gt;relative to the grid&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Given this information, you might first think about simply setting the Margin property of the control. Your first attempt might be the following:&lt;/p&gt;

&lt;pre&gt;
// attempt to move button down by 20 pixels
button1.Margin.Top += 20;
&lt;/pre&gt;

&lt;p&gt;Although this looks fine, it unfortunately does not work. Instead, you will get an compiler error saying:&lt;/p&gt;

&lt;pre&gt;
Cannot modify the return value of 'System.Windows.FrameworkElement.Margin'
because it is not a variable.
&lt;/pre&gt;

&lt;p&gt;So you need to find an alternative solution that is slightly different. Here's how:&lt;/p&gt;

&lt;pre&gt;
Thickness position = button1.Margin;
position.Top += 20;
button1.Margin = position;
&lt;/pre&gt;

&lt;p&gt;Since this solution is easy, but slightly inconvenient, you could write two helper methods:&lt;/p&gt;

&lt;pre&gt;
internal static class WpfMoveHelpers
{
  internal static void MoveDown(
    this FrameworkElement control, int yChange)
  {
    Thickness position = control.Margin;
    position.Top += yChange;
    control.Margin = position;
  }

  internal static void MoveRight(
    this FrameworkElement control, int xChange)
  {
    Thickness position = control.Margin;
    position.Left += xChange;
    control.Margin = position;
  }
}
&lt;/pre&gt;

&lt;p&gt;With these methods in place, you could simply say things like:&lt;/p&gt;

&lt;pre&gt;
button1.MoveDown(20);
button1.MoveRight(10);
&lt;/pre&gt;

&lt;p&gt;Hope this helps! Of course, to be extract smooth, you could animate the property change...&lt;/p&gt;

&lt;p&gt;Keywords: HowTo, move WPF control, component, move at runtime, C#, in code.&lt;/p&gt;</description>
      <pubDate>Mon, 17 Jan 2011 18:02:23 GMT</pubDate>
      <guid isPermaLink="false">4d1aaea0-461b-480b-80af-a365d279b472</guid>
    </item>
    <item>
      <title>New web stuff: ASP.NET MVC 3, Razor view engine, IIS Express 7.5, and more!</title>
      <link>http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx</link>
      <description>&lt;p&gt;It has been a busy day at Microsoft again, it seems! The company just announced the availability of these products, no less than seven:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ASP.NET MVC 3&lt;/li&gt;
&lt;li&gt;NuGet&lt;/li&gt;
&lt;li&gt;IIS Express 7.5&lt;/li&gt;
&lt;li&gt;SQL Server Compact Edition 4&lt;/li&gt;
&lt;li&gt;Web Deploy and Web Farm Framework 2.0&lt;/li&gt;
&lt;li&gt;Orchard 1.0&lt;/li&gt;
&lt;li&gt;WebMatrix 1.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, a lot could be said about each of these technologies, but at this point (just returning from a trip) I just refer you to Scott Guthrie's &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx"&gt;blog post&lt;/a&gt; detailing the new announcements. In the future, I will continue investigating the new releases.&lt;/p&gt;</description>
      <pubDate>Fri, 14 Jan 2011 18:46:40 GMT</pubDate>
      <guid isPermaLink="false">f3d2eddf-7273-474d-94ca-38cd2a4a83e1</guid>
    </item>
    <item>
      <title>Microsoft Dynamics AX "6" to improve developer experience</title>
      <link>http://www.microsoft.com/Presspass/press/2011/jan11/1-10MSFTDynamicsAX6PR.mspx</link>
      <description>&lt;p&gt;Microsoft &lt;a href="http://www.microsoft.com/Presspass/press/2011/jan11/1-10MSFTDynamicsAX6PR.mspx"&gt;announced yesterday&lt;/a&gt; the newest version of their ERP software solution, called Dynamics AX "6". Among the new features built on top of AX 2009 available also on MSDN, the version six improved the developer experience.&lt;/p&gt;

&lt;p&gt;Says the press release:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"[...] A unique model-driven, layered architecture that accelerates software development, requiring less coding than building from scratch and easing maintenance and upgradability. [...] Pre-built interoperability with the Microsoft Application Platform, including Microsoft SQL Server 2008 R2 and Visual Studio 2010, and other Microsoft technologies such as Microsoft Office 2010 and Microsoft SharePoint 2010."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What this means in practice will need to wait for a couple of weeks, as the company is promising a CTP level preview version in Februrary, 2011.&lt;/p&gt;</description>
      <pubDate>Tue, 11 Jan 2011 21:08:15 GMT</pubDate>
      <guid isPermaLink="false">850b65e9-b38b-4d1e-b5ab-f096da4519e5</guid>
    </item>
    <item>
      <title>Read the Technet Springboard Series from your Windows Phone 7</title>
      <link>http://technet.microsoft.com/en-us/windows/dd361745.aspx</link>
      <description>&lt;p&gt;If you have a Windows Phone 7 device, you might be interested in reading the Microsoft Technet Springboard Series using your phone. The Springboard Series contains information about Windows 7 usage, deployment and configuration with especially the IT professional in mind. However, I find the material useful for developers as well: to be able to build successful enterprise software, you will need to know how the systems are maintained.&lt;/p&gt;

&lt;p&gt;The Windows Phone 7 reader application is &lt;a href="zune://navigate/?appID=49546ede-f50d-e011-9264-00237de2db9e"&gt;available here&lt;/a&gt; (you need Zune to access the link). This points to a Zune application page. To satisfy your curiosity, this is how a Zune navigation link looks like:&lt;/p&gt;

&lt;pre&gt;
zune://navigate/?appID=49546ede-f50d-e011-9264-00237de2db9e
&lt;/pre&gt;

&lt;p&gt;Happy mobile reading!&lt;/p&gt;</description>
      <pubDate>Sat, 08 Jan 2011 07:13:37 GMT</pubDate>
      <guid isPermaLink="false">30dd5c0f-9189-4097-ae3a-d4279f4f4ce7</guid>
    </item>
    <item>
      <title>What kind of a virtualization solution would be ideal for developers?</title>
      <link>http://www.microsoft.com/windowsserver2008/en/us/hyperv-main.aspx</link>
      <description>&lt;p&gt;The holiday season is usually a good time to relax a bit, sit back and think about the passing year and look forward to the next one. Since my daily work revolves quite a bit in solving the problems customers have through software, I often find myself using virtualization solutions like &lt;a href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-main.aspx"&gt;Hyper-V&lt;/a&gt; a lot. However, a static setup never seems to be enough, as the development and testing needs are constantly changing. This lead me to think about what would be an ideal solution for the constantly-changing needs, and this is what I'd like to see going forward:&lt;/p&gt;

&lt;p&gt;1. The solution should be able to provision new virtual machines on demand with the chosen setup. Ideally, this would be web portal where I could specify operating system version, edition and language, for instance an English Windows Server 2008 R2 machine or a Windows 7 Professional x64 in Finnish language. Then, the virtual machine would be built automatically, and an IP address would be shown or sent to me via e-mail within 15 minutes or so.&lt;/p&gt;

&lt;p&gt;2. In addition to the basic operating system installation, it would be great to be able to specify which software configuration I need, especially in the development tools front. How many times have you manually installed Visual Studio 2010? I've done that already too many times, and this should be automated even though the installation is easy itself. It would also be great to be able to install other development tools,&lt;/p&gt;

&lt;p&gt;3. I would need a web portal to view, start and stop, and connect using remote desktop (RDP) to the virtual machines running on my server. Since there's always a limitation of resources, be it memory, disk space or processor space, not everything can run at a time. (For the reference, my current virtualization box has 24 GB of RAM, which allows me to run around ten to twelve virtual machines at a time. So far, this has been enough, but I'm still looking forward to the SP1 for Windows Server 2008 R2 which brings better memory management to Hyper-V.)&lt;/p&gt;

&lt;p&gt;4. Remote access should be everywhere. A Remote Desktop client for the Windows Phone 7 would be just great!&lt;/p&gt;

&lt;p&gt;5. MSDN on a local disk. Although it takes less than an hour to download a DVD's worth of bits from MSDN, sometimes this is too much. It would be great to have enough hard disk space to have a local copy of all the MSDN bits, with automatic refresh of course as new titles become available. An "MSDN Sync", if you will. And the hardware needed should cost less than $200 ideally.&lt;/p&gt;

&lt;p&gt;That would do it for me. What would be your ideal solution for the new decade?&lt;/p&gt;</description>
      <pubDate>Wed, 05 Jan 2011 20:17:44 GMT</pubDate>
      <guid isPermaLink="false">3d781781-b1a7-4f64-bc56-5c14d2bafd24</guid>
    </item>
    <item>
      <title>New screencast: Windows Phone 7 and XNA games</title>
      <link>http://www.internet.com/player/index.php?bcpid=86842592001&amp;bclid=87185324001&amp;bctid=730616109001</link>
      <description>&lt;p&gt;Just few days ago, CodeGuru.com published my latest screencast about games development with Windows Phone 7. The screencast is available under the Codeguru Videos section, which also contains other screencast from others and myself.&lt;/p&gt;

&lt;p&gt;The newest screencast is titled "Windows Phone 7 and XNA Game Dev 101" and is &lt;a href="http://www.internet.com/player/index.php?bcpid=86842592001&amp;bclid=87185324001&amp;bctid=730616109001"&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Tue, 04 Jan 2011 21:10:38 GMT</pubDate>
      <guid isPermaLink="false">78c9f8ca-da99-479e-b980-fe87771b328d</guid>
    </item>
    <item>
      <title>Welcome to 2011!</title>
      <link>http://www.saunalahti.fi/janij/blog/</link>
      <description>&lt;p&gt;Hello and welcome to 2011! If you can see this blog post in your RSS reader, you've successfully updated the URL.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;</description>
      <pubDate>Sat, 01 Jan 2011 09:08:09 GMT</pubDate>
      <guid isPermaLink="false">9d16e0cc-74ff-4e77-8a0d-ecba063d3915</guid>
    </item>
  </channel>
</rss>
