<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Johan Danforth's Blog</title><link>http://weblogs.asp.net/jdanforth/default.aspx</link><description>&lt;br&gt;
Carpe Diem</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Windows Home Server Learnings - Don't Install the HP Add-Ons</title><link>http://weblogs.asp.net/jdanforth/archive/2008/10/12/windows-home-server-learnings-don-t-install-the-hp-add-ons.aspx</link><pubDate>Sun, 12 Oct 2008 13:47:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6674652</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6674652</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/10/12/windows-home-server-learnings-don-t-install-the-hp-add-ons.aspx#comments</comments><description>&lt;p&gt;This is a general warning to Windows Home Server owners in general and HP Media Smart Server owners in particular. The &amp;quot;Power Pack 1&amp;quot; update to WHS comes with 2 add-ons:&lt;/p&gt;  &lt;li&gt;&lt;a href="http://shop.mcafee.com/products/TotalProtectionForSmallBusiness.aspx?pid=TOPSB&amp;amp;CID=MFE-1005"&gt;McAfee&amp;#8217;s Total Protection Service&lt;/a&gt; (anti-virus/anti-malware) &lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.packetvideo.com/products/pvconnect/index.html"&gt;PacketVideo&amp;#8217;s PVConnect Media Server&lt;/a&gt; (media sharing)&lt;/li&gt;  &lt;p&gt;But unless you've gone through the hard work to actually upgrade the memory from 521MB to 2GB, don't install these add-ons because you may end up with a totally unusable home server. The hardware just isn't up to it! PVC alone requires 512 MB.&lt;/p&gt;  &lt;p&gt;I actually tried to installed PVConnect and the first thing I noticed was that the WHS Console was quite non-responsive and sluggish it it's behavior. Then I clicked the PVConnect &amp;quot;tab&amp;quot; and got this, in spanish!?!&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="454" alt="PVConnect" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/WindowsHomeServerLearningsDontInstallthe_D978/clip_image002%5B4%5D_1.jpg" width="644" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;After a while I got tired of it and went to install it, which wasn't easy because of the non-responsive console. Eventually I got rid of it, but not without blood shed:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="455" alt="Crap" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/WindowsHomeServerLearningsDontInstallthe_D978/image_8.png" width="644" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Like the missing/transparent/black features? :) Anyway, I clicked the white (that I presume said &amp;quot;OK&amp;quot;) button and the Console got reset. Now I was soon greated by the &amp;quot;Your WHS Network is at Risk&amp;quot; notification:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="74" alt="" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/WindowsHomeServerLearningsDontInstallthe_D978/image_9.png" width="165" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;What risk? I log on to the WHS and to see what's wrong:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="528" alt="Network Health" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/WindowsHomeServerLearningsDontInstallthe_D978/image_7.png" width="451" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;This health warning thingy in WHS is not making sense to me. What is there to warn about? Will this list be a mile long in a year? I need to clean this list up... does anyone know how to do it? BTW. The AV software on my mediacenter server IS NOT out of date... &lt;/p&gt;  &lt;p&gt;There's a good story about this on &lt;a href="http://www.withinwindows.com/2008/07/27/whs-power-pack-1-add-ons-unusable-server/" target="_blank"&gt;Rafael's Within Windows blog&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6674652" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category></item><item><title>Writespace - Fullscreen Writing Environment Add-in for Word</title><link>http://weblogs.asp.net/jdanforth/archive/2008/10/08/writespace-fullscreen-writing-environment-add-in-for-word.aspx</link><pubDate>Wed, 08 Oct 2008 12:28:39 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6665591</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6665591</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/10/08/writespace-fullscreen-writing-environment-add-in-for-word.aspx#comments</comments><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="94" alt="Logo2_white_small" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/Writespace_12B0A/Logo2_white_small_3.png" width="200" align="right" border="0" /&gt; I just published this open source project on Codeplex, and this information is available on the &lt;a href="http://www.codeplex.com/writespace" target="_blank"&gt;Writespace Codeplex home page&lt;/a&gt; as well.&lt;/p&gt;  &lt;p&gt;Writespace is a &lt;b&gt;fullscreen writing environment&lt;/b&gt;, developed with &lt;b&gt;WPF&lt;/b&gt; (Windows Presentation Foundation) as a ClickOnce installed &lt;b&gt;add-in for Word 2007&lt;/b&gt; . Unfortunately Codeplex cannot host ClickOnce applications, so to install the add-in you will have to &lt;a href="http://www.codeplex.com/writespace/Release/ProjectReleases.aspx" target="_blank"&gt;download&lt;/a&gt; and run the installer locally until I've found a site to host it.&lt;/p&gt;  &lt;p&gt;Writespace is inspired by &lt;i&gt;Dark Room&lt;/i&gt; (&lt;a href="http://they.misled.us/dark-room"&gt;http://they.misled.us/dark-room&lt;/a&gt;) for Windows and &lt;i&gt;Write Room&lt;/i&gt; (&lt;a href="http://www.hogbaysoftware.com/product/writeroom"&gt;http://www.hogbaysoftware.com/product/writeroom&lt;/a&gt;) for OS X. One advantage of Writespace is the &lt;b&gt;built in spellcheck support&lt;/b&gt; (English, French, Spanish and German).    &lt;br /&gt;&lt;img alt="margin1.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44701" /&gt;    &lt;br /&gt;The program is quite simple, but I've been missing a plug-in for Word like this one. I've been using the excellent Dark Room editor, but unfortunately it doesn't have support for spell checking or Word integration.&lt;/p&gt;  &lt;h4&gt;IMPORTANT NOTE &lt;/h4&gt; &lt;b&gt;Always, always, always keep a copy of your orginal document or text before you try out or use Writespace&lt;/b&gt; so you can revert if things go bad. Writespace is work in progress and has not yet been tested enough to be called &amp;quot;stable&amp;quot;.  &lt;h4&gt;System Requirements &lt;/h4&gt; &lt;b&gt;&lt;/b&gt;  &lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; I need help with specifying the requirements to run this, but personally I'm on Vista, .NET 3.5 SP1 and Word 2007.&lt;/p&gt;  &lt;h4&gt;Downloads and Installation &lt;/h4&gt; The add-in is installed as a ClickOnce application, but it's not possible to host ClickOnce installers on Codeplex, so you will either have to &lt;a href="http://www.codeplex.com/writespace/Release/ProjectReleases.aspx"&gt;download the binaries as a zip&lt;/a&gt; or &lt;a href="http://www.codeplex.com/writespace/SourceControl/ListDownloadableCommits.aspx"&gt;download the source&lt;/a&gt; and run it from Visual Studio 2008.   &lt;h4&gt;Shortcuts &lt;/h4&gt; Writespace supports the following shortcuts from within the writing environment:  &lt;br /&gt;CTRL+Mousewheel - Zoom in/out  &lt;br /&gt;CTRL+F - Search  &lt;br /&gt;F3 - Find next  &lt;br /&gt;CTRL+G - Go to line  &lt;br /&gt;ESC- Exit to Word  &lt;br /&gt;CTRL+S - Save  &lt;br /&gt;Writespace also supports the standard Undo/Redo/Select/Cut/Paste functionality you are used to.  &lt;h4&gt;Word Integration &lt;/h4&gt; Writespace is started from the &lt;b&gt;View-tab of the Word 2007 Ribbon&lt;/b&gt;, just click the &amp;quot;Writespace&amp;quot; button and the text of the current document is grabbed and put into the Writespace full screen editor. When you escape from Writespace, the text in the Word document is updated with the text from Writespace. &lt;i&gt;&lt;b&gt;Note&lt;/b&gt; that Writespace removes all formating of the text&lt;/i&gt;, so italics, font size, bold text, is removed and converted into the font, color and size Writespace uses. Word documents containing tables, pictures and other &amp;quot;non-text&amp;quot; content will not be possible to move to the Writespace editor, and you will get an error dialog if you try this. This is to protect you from messing things up.  &lt;br /&gt;&lt;img alt="ribbon.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44707" /&gt;  &lt;h4&gt;Text Formatting &lt;/h4&gt; Writespace does not have any support for formatting the text. You can select the size, color and type of font, which will affect the whole editor, but that's it. This may change in the future though. Note that if you enter the Writespace editor from an existing document in Word, the formatting of that text will be removed and converted to plain Writespace text.  &lt;h4&gt;Spell Check &lt;/h4&gt; Writespace uses the built in spell checking support which comes with WPF. Language is set from the options dialog. Unfortunately WPF only supports English, French, German and Spanish at the moment. If you still want to spell check your text, just escape back to Word and let it handle that for you.  &lt;br /&gt;&lt;img alt="spelling.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44706" /&gt;  &lt;h4&gt;Drag/drop Margin &lt;/h4&gt; The left and right side margin can be changed without leaving Writespace. Just move the mouse over the left margin until it lights up, and adjust the size of the margin until you are satisfied.   &lt;br /&gt;&lt;img alt="margin1.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44701" /&gt;  &lt;br /&gt;Drag the margin with left mouse button and release. The new margin size will be saved to settings automatically.  &lt;br /&gt;&lt;img alt="margin2.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44702" /&gt;  &lt;h4&gt;Find &lt;/h4&gt; Press CTRL+F to display the find dialog. Press F3 to find next, next, next... as you are probably used to.  &lt;br /&gt;&lt;img alt="find.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44698" /&gt; &lt;img alt="find_result.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44699" /&gt;  &lt;h4&gt;Goto Line &lt;/h4&gt; Press CTRL+G to display the goto dialog which helps you go to a specific line in the text.  &lt;br /&gt;&lt;img alt="goto.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=writespace&amp;amp;DownloadId=44700" /&gt;  &lt;h4&gt;Status Bar &lt;/h4&gt; The editor has a descrete status bar to show information about file saved and it also displays the current row and column in an animated, fade-out way. Feedback about the status bar and the row/col informaiton is appreciated.  &lt;h4&gt;Mousewheel Zoom &lt;/h4&gt; The font size can also be changed without leaving the writing environment. Just hold CTRL and use the mouse wheel to zoom in our out of the text. The current size will also be saved to the settings.  &lt;h4&gt;Options &lt;/h4&gt;  &lt;p&gt;It's possible to set color, font, size and margin from the options dialog. It's also possible to enable/disable spellchecking by specifying the language.&amp;#160; &lt;br /&gt;&amp;#160;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="170" alt="Options_small" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/Writespace_12B0A/Options_small_8.png" width="503" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;(image is shrinked down to fit in the blog)&lt;/p&gt;  &lt;h4&gt;Writespace Re-use &lt;/h4&gt; The Writespace editor and options dialog have public classes, methods and properties which makes it possible to run it from other .NET compatible languages. This will be better documented in the future.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6665591" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Tools/default.aspx">Tools</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/WPF/default.aspx">WPF</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/ClickOnce/default.aspx">ClickOnce</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Writespace/default.aspx">Writespace</category></item><item><title>Expiring Temp ClickOnce Certificates - Create Your Own With Long Expiration</title><link>http://weblogs.asp.net/jdanforth/archive/2008/10/07/expiring-temp-clickonce-certificates-create-your-own-with-long-expiration.aspx</link><pubDate>Tue, 07 Oct 2008 14:06:57 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6662582</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6662582</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/10/07/expiring-temp-clickonce-certificates-create-your-own-with-long-expiration.aspx#comments</comments><description>&lt;p&gt;I'm looking at ClickOnce and ran into several blog posts where people were worried about expiring certificates when using a temporary PFX file created by VisualStudio. Appearently the certs issued by VS expire after a year and you will probably start running into problems with new deployments after that.&lt;/p&gt;  &lt;p&gt;There is a &lt;a href="http://support.microsoft.com/kb/925521" target="_blank"&gt;KB article on MSDN that describes this problem&lt;/a&gt; but doesn't offer any good solutions (IMHO). Instead, if you have the Windows SDK installed you can create a certificte with much longer expiration, then create a PFX file from the cert and use with your ClickOnce application:&lt;/p&gt;  &lt;pre class="code"&gt;makecert.exe -r -pe -a sha1 -n &amp;quot;CN=MyClickOnceApp&amp;quot; -b 01/01/2000 &lt;br /&gt;-e 01/01/2036 -eku 1.3.6.1.5.5.7.3.3 -sv MyClickOnceApp.pvk MyClickOnceApp.cer&lt;/pre&gt;

&lt;pre class="code"&gt;pvk2pfx.exe -pvk MyClickOnceApp.pvk -spc MyClickOnceApp.cer -pfx MyClickOnceApp.pfx&lt;/pre&gt;

&lt;p&gt;This has been described in several places out there and my initial tests with makecert/pvk2pfx seems to work well so I'm storing the steps here for later use. I'm going to use it for a Codeplex project I'm opening up soon, so stay tuned...&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6662582" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/ClickOnce/default.aspx">ClickOnce</category></item><item><title>A Decent Search Replace In Multiple Files Tool</title><link>http://weblogs.asp.net/jdanforth/archive/2008/10/03/a-decent-search-replace-in-multiple-files-tool.aspx</link><pubDate>Fri, 03 Oct 2008 15:28:02 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6656647</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6656647</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/10/03/a-decent-search-replace-in-multiple-files-tool.aspx#comments</comments><description>&lt;p&gt;&lt;img style="margin: 5px" alt="TextCrawler screenshot" src="http://www.digitalvolcano.co.uk/tc1-small.jpg" align="right" /&gt;Just wanted to share this tool with you.&lt;/p&gt;  &lt;p&gt;I needed to search/replace text strings in some 600 files, and I've been downloading a bunch of crappy utilties that doesn't deliver. &lt;a href="http://www.digitalvolcano.co.uk/textcrawler.html" target="_blank"&gt;TextCrawler&lt;/a&gt; does this one thing and it does it good. A few features listed from their homepage:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Find and Replace across files &lt;/li&gt;    &lt;li&gt;Fast searching, even on large files. &lt;/li&gt;    &lt;li&gt;Simple to use interface &lt;/li&gt;    &lt;li&gt;Flexible search parameters &lt;/li&gt;    &lt;li&gt;Text Extractor - rip text into a new file &lt;/li&gt;    &lt;li&gt;Search and replace using Regular Expressions. &lt;/li&gt;    &lt;li&gt;Regular Expression test tool &lt;/li&gt;    &lt;li&gt;Regular Expression library - Save your searches. &lt;/li&gt;    &lt;li&gt;Create backup files &lt;/li&gt;    &lt;li&gt;Highlighted search results &lt;/li&gt;    &lt;li&gt;Export Results &lt;/li&gt;    &lt;li&gt;Batch find and replace operations&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also, it's freeware :)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6656647" width="1" height="1"&gt;</description></item><item><title>Status of Messenger Services</title><link>http://weblogs.asp.net/jdanforth/archive/2008/09/11/status-of-messenger-services.aspx</link><pubDate>Thu, 11 Sep 2008 12:52:38 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6618824</guid><dc:creator>jdanforth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6618824</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/09/11/status-of-messenger-services.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/StatusofMessengerServices_D0CA/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="158" alt="image" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/StatusofMessengerServices_D0CA/image_thumb.png" width="593" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Yeah sure :)&lt;/p&gt;  &lt;p&gt;Is it just me or has the Messenger service been kind of flunky the last couple of days? I keep getting these 81000314 error codes all the time. Not even WebMessenger is working.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6618824" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Other/default.aspx">Other</category></item><item><title>Better Log Formatting for CruiseControl.NET and MSBuild</title><link>http://weblogs.asp.net/jdanforth/archive/2008/09/09/better-log-formatting-for-cruisecontrol-net-and-msbuild.aspx</link><pubDate>Tue, 09 Sep 2008 11:41:01 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6612766</guid><dc:creator>jdanforth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6612766</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/09/09/better-log-formatting-for-cruisecontrol-net-and-msbuild.aspx#comments</comments><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="78" alt="cruisecontrol" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/BetterLogFormattingforCrui.NETandMSBuild_BE55/cruisecontrol_3.png" width="78" align="right" border="0" /&gt; This is just a blog post to bump the topic on search engines to help people using MSBuild and CruiseControl.NET to get to the right place. I personally recommend to use the &amp;quot;Improved MSBuild Integration&amp;quot; logging option by Christian Rodemyer. If you follow &lt;a href="http://confluence.public.thoughtworks.org/display/CCNETCOMM/Improved+MSBuild+Integration" target="_blank"&gt;the instructions on this page&lt;/a&gt;, you'll get it right. &lt;/p&gt;  &lt;p&gt;You may also have to change the dashboard stylesheet somewhat if you want to add or remove smileys or other GUI-related things depending on the results from unit testing etc, but the output in the CruiseControl dashboard is nice and clean.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6612766" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/MSBuild/default.aspx">MSBuild</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/CruiseControl.NET/default.aspx">CruiseControl.NET</category></item><item><title>How to Update Google Chrome</title><link>http://weblogs.asp.net/jdanforth/archive/2008/09/09/how-to-update-google-chrome.aspx</link><pubDate>Tue, 09 Sep 2008 07:55:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6612206</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6612206</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/09/09/how-to-update-google-chrome.aspx#comments</comments><description>&lt;p&gt;&lt;img style="margin: 5px" height="138" alt="googlechrome" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/GoogleChromeandFacebook_9FEF/googlechrome_3.jpg" width="148" align="right" border="0" /&gt;So you've downloaded and installed the beta of Google Chrome and found that that Ajax story of Chrome isn't the best? You're thinking that the Google guys must have fixed it by now and you start looking for news related to Chrome on *.google.com but finds nothing... a bit frustrating to me at least.&lt;/p&gt;  &lt;p&gt;Then you find out there's no obvious way to &amp;quot;Check for update...&amp;quot; in the Chrome app itself - &lt;strong&gt;unless there's actually a new version available&lt;/strong&gt;! The trick is to click the &amp;quot;Customize and Control Google Chrome&amp;quot; button and look at the &amp;quot;About Google Chrome...&amp;quot; dialog, which will check to see if there's a new version available. If there is, it'll look something like this down at the bottom of said dialog:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="103" alt="google-chrome-about-new-version" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/HowtoUpdateGoogleChrome_86A3/google-chrome-about-new-version_3.png" width="484" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.askdavetaylor.com/how_to_update_google_chrome.html" target="_blank"&gt;Dave Taylor has written a nice detailed blog post about it&lt;/a&gt;, that's how I found out. &lt;strong&gt;Thanks Dave!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If anyone knows of an RSS feed, or official site to get news about Chrome updates, I'd love to get that URL.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; It seems that the best URL is &amp;quot;The Official Google Blog&amp;quot; on &lt;a href="http://googleblog.blogspot.com/"&gt;http://googleblog.blogspot.com/&lt;/a&gt; which unfortunately doesn't seem to use categories or tags unless I'm not blind. Would have been nice to have a Chrome category/tag as I'm not that interested in Picasa and the Democratic National Convention... :/&lt;/p&gt;  &lt;p&gt;Now I just hope the introduction of Google Chrome doesn't lead into another browser war with website-breaking features like those we've had so many problems with before.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6612206" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Other/default.aspx">Other</category></item><item><title>Google Chrome and Facebook...</title><link>http://weblogs.asp.net/jdanforth/archive/2008/09/04/google-chrome-and-facebook.aspx</link><pubDate>Thu, 04 Sep 2008 09:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6598489</guid><dc:creator>jdanforth</dc:creator><slash:comments>15</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6598489</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/09/04/google-chrome-and-facebook.aspx#comments</comments><description>&lt;P&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px; BORDER-RIGHT-WIDTH: 0px" height=138 alt=googlechrome src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/GoogleChromeandFacebook_9FEF/googlechrome_3.jpg" width=148 align=right border=0 mce_src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/GoogleChromeandFacebook_9FEF/googlechrome_3.jpg"&gt; ...is just not working as it should. There are major Ajax problems in that browser. I know, it came out like this week, but they &lt;A class="" href="http://www.google.com/googlebooks/chrome/images/small/9.jpg" target=_blank mce_href="http://www.google.com/googlebooks/chrome/images/small/9.jpg"&gt;talk much about the rigorous testing they go through&lt;/A&gt; and how Chrome &lt;A class="" href="http://www.google.com/googlebooks/chrome/images/small/10.jpg" target=_blank mce_href="http://www.google.com/googlebooks/chrome/images/small/10.jpg"&gt;should work well on popular sites&lt;/A&gt;. Well Facebook should count as quite popular I guess. &lt;/P&gt;
&lt;P&gt;I'm sure it'll be fixed very quick, and other than that - the browser seems to work pretty well. The UI feels clean and bare-bone, and occationally it feels somewhat faster. &lt;/P&gt;
&lt;P&gt;I like the &lt;A href="http://www.google.com/googlebooks/chrome" target=_blank mce_href="http://www.google.com/googlebooks/chrome"&gt;Google Chrome story&lt;/A&gt; they made, very cool.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6598489" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Other/default.aspx">Other</category></item><item><title>Sorry, Deleting Your Account Can Not be Done Easily at the Moment</title><link>http://weblogs.asp.net/jdanforth/archive/2008/09/03/sorry-deleting-your-account-can-not-be-done-easily-at-the-moment.aspx</link><pubDate>Wed, 03 Sep 2008 09:59:22 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6594899</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6594899</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/09/03/sorry-deleting-your-account-can-not-be-done-easily-at-the-moment.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/SorryDeletingYourAccountCanNotbeDoneEasi_9985/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="135" alt="image" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/SorryDeletingYourAccountCanNotbeDoneEasi_9985/image_thumb.png" width="137" align="right" border="0" /&gt;&lt;/a&gt; That's the message I got from the people at a free wiki hosting site when I asked them to terminate my account. I'm thinking their wiki-system is either a mad hack with database dependencies all over the place, or they just want to keep their member count up...&lt;/p&gt;  &lt;p&gt;They told me to &amp;quot;go to Account settings and disable everything you can find there&amp;quot;...&lt;/p&gt;  &lt;p&gt;Sigh... what to say? I was invited by a friend for a project of his. I know this situation is not unusual, and sometimes it can be hard (like removing yourself from Facebook before they made it much easier due to the massive preassure from the users), but things like this upsets me.&lt;/p&gt;  &lt;p&gt;I guess I have to blame myself for registering there in the first place and I guess it's more or less a fact that if you register yourself at a (most often free) site on the Internet, expect to get a number of newsletters and stuff from that site eventually and don't expect it to be easy to terminate your account.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6594899" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Other/default.aspx">Other</category></item><item><title>Hug a Developer</title><link>http://weblogs.asp.net/jdanforth/archive/2008/09/02/hug-a-developer.aspx</link><pubDate>Tue, 02 Sep 2008 18:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6593147</guid><dc:creator>jdanforth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6593147</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/09/02/hug-a-developer.aspx#comments</comments><description>&lt;P&gt;This video gave me a few laughs :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;EMBED src=http://blip.tv/play/gYwjwZJqjdEh width=422 height=257 type=application/x-shockwave-flash allowscriptaccess="always" allowfullscreen="true" mce_src="http://blip.tv/play/gYwjwZJqjdEh"&gt;&lt;/EMBED&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6593147" width="1" height="1"&gt;</description></item><item><title>ASP.NET MVC Preview 5 Released</title><link>http://weblogs.asp.net/jdanforth/archive/2008/08/30/asp-net-mvc-preview-5-released.aspx</link><pubDate>Sat, 30 Aug 2008 14:18:42 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6580539</guid><dc:creator>jdanforth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6580539</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/08/30/asp-net-mvc-preview-5-released.aspx#comments</comments><description>&lt;p&gt;Hey, I'm just helping to spread the word! A sampled a few links and quotes that has already been posted to blogosphere for your pleasure and knowledge. :)&lt;/p&gt;  &lt;p&gt;Download it here -&amp;gt; &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775"&gt;http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://haacked.com/archive/2008/08/29/asp.net-mvc-codeplex-preview-5-released.aspx" target="_blank"&gt;Phil Haack said&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;We didn&amp;#8217;t originally plan to have another preview. However, we implemented a few significant chunks of functionality and were dying to get feedback so that we could incorporate it into the product before Beta. It helps that with five or so of these interim releases, we&amp;#8217;ve become pretty efficient producing these releases.&lt;/p&gt;    &lt;p&gt;We plan to have our next release be our official &lt;a href="http://haacked.com/archive/2008/08/15/understanding-beta.aspx"&gt;Beta&lt;/a&gt;, which means we&amp;#8217;ll have a lot more test passes to produce and run before we release the next one.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Some preview 5 related blog posts:&lt;/p&gt;  &lt;p&gt;Brad Wilson wrote about &lt;a href="http://bradwilson.typepad.com/blog/2008/08/partial-renderi.html" target="_blank"&gt;changes to partial rendering and view engine in preview 5&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Maarten Balliauw wrote about &lt;a href="http://blog.maartenballiauw.be/post/2008/08/29/Form-validation-with-ASPNET-MVC-preview-5.aspx" target="_blank"&gt;easier form validation with preview 5&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Nick Berardi has a &lt;a href="http://www.coderjournal.com/2008/08/aspnet-mvc-preview-release-5/" target="_blank"&gt;list of news and changes&lt;/a&gt; and also a few issues he's found and submitted bug reports for:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.codeplex.com/aspnet/WorkItem/View.aspx?WorkItemId=2201"&gt;AcceptVerbAttribute Not Following HTTP Standards&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/aspnet/WorkItem/View.aspx?WorkItemId=2202"&gt;ActionMethod Missing From ActionExecutingContext&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Derik Whittaker had a &lt;a href="http://devlicio.us/blogs/derik_whittaker/archive/2008/08/29/asp-net-mvc-drop-5-has-been-released.aspx" target="_blank"&gt;few comments regarding sealed classes in preview 5&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;It looks like that they removed the sealed keyword from many of the Attributes such as HandleErrorAttribute, AuthorizeAttribute and various other existing Attributes.&amp;#160; &lt;/p&gt;    &lt;p&gt;However, looks like many of the other attributes (some new, some not) such as AcceptVerbsAttribute, ModelBinderAttribute and NonActionAttribute are still marked as sealed.&amp;#160; Guys, please unseal all your stuff.&amp;#160; If you have a very, very, very valid reason then fine seal them.&amp;#160; But if not, let developers loose and unseal them.&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6580539" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>Auto Postback with Javascript in ASP.NET MVC</title><link>http://weblogs.asp.net/jdanforth/archive/2008/08/28/auto-postback-with-javascript-in-asp-net-mvc.aspx</link><pubDate>Thu, 28 Aug 2008 12:20:53 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6573847</guid><dc:creator>jdanforth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6573847</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/08/28/auto-postback-with-javascript-in-asp-net-mvc.aspx#comments</comments><description>&lt;p&gt;I've looked this up twice now so I'm posting it to my blog for future reference and as a quick-tip for others. Say you got a web page with a dropdown/select listbox and you want to reload/auto postback the page when the selection changes.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="94" alt="image" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/AutoPostbackwithJavascriptinASP.NETMVC_C410/image_3.png" width="207" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;One way to do this without involving a Javascript or Ajax library like jQuery (which probably is a good idea anyway :) is to use the &amp;quot;htmlAttributes&amp;quot; parameter of the Html.DropDownList() helper method and add a &amp;quot;onchange&amp;quot; attribute through an anonymous type. Something like this:&lt;/p&gt;  &lt;pre class="code"&gt;    Select a name: &lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;=&lt;/span&gt;Html.DropDownList(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;, ViewData.Model, &lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; { onchange = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;doSomeJavascript()&amp;quot;&lt;/span&gt; })&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;To submit a form, for example:&lt;/p&gt;

&lt;pre class="code"&gt;    &lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; (Html.Form&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;HomeController&lt;/span&gt;&amp;gt;(p =&amp;gt; p.DropDown(), &lt;br /&gt;        &lt;span style="color: rgb(43,145,175)"&gt;FormMethod&lt;/span&gt;.Post, &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; { id = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;myform&amp;quot;&lt;/span&gt; }))
       {&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;/span&gt;    Select a name: &lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;=&lt;/span&gt;Html.DropDownList(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;, ViewData.Model, &lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; { onchange = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;document.getElementById('myform').submit()&amp;quot;&lt;/span&gt; })&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;/span&gt;    &lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt;  } &lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The minimal DropDown() method of the HomeController class to support this sample looks like this:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; DropDown()
{
    &lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; list = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&amp;gt; { &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Adam&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Bob&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Charlie&amp;quot;&lt;/span&gt; };
    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; View(&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;SelectList&lt;/span&gt;(list, Request[&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;] ?? list.First()));
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;As you can see, the htmlAttributes parameter is available on many of the Html-helper methods and I'm using ot to add a name attribute to the HTML form as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;End Note About Basic Knowledge of Javascript and Html&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Heh, ASP.NET MVC sure forces you to dust off that old, basic knowledge of HTML and Javascript that I think every web developer should have but the ASP.NET programming model has made us forgot... One could argue that it's niggy gritty stuff that we shouldn't have to worry about, but for me it feels good to know I'm in full control of the generated HTML and I'm not sending one byte more on the wire than what's needed. Yes, it's possible to have the same control with standard ASP.NET applications and controls, but I've seen experienced developers make mistakes around this more than once. ViewState anyone? :D&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6573847" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>Returning Json from RESTful Interface with WCF</title><link>http://weblogs.asp.net/jdanforth/archive/2008/08/23/returning-json-from-restful-interface-with-wcf.aspx</link><pubDate>Sat, 23 Aug 2008 14:18:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6556458</guid><dc:creator>jdanforth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6556458</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/08/23/returning-json-from-restful-interface-with-wcf.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/ReturningJsonfromRESTfulInterfacewithWCF_E348/WCF2_2.jpg" mce_href="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/ReturningJsonfromRESTfulInterfacewithWCF_E348/WCF2_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="154" alt="WCF2" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/ReturningJsonfromRESTfulInterfacewithWCF_E348/WCF2_thumb.jpg" width="167" align="right" border="0" mce_src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/ReturningJsonfromRESTfulInterfacewithWCF_E348/WCF2_thumb.jpg" /&gt;&lt;/a&gt; Someone commented on an &lt;a href="http://weblogs.asp.net/jdanforth/archive/2008/08/09/more-on-restful-service-with-wcf-and-pox-poco.aspx" target="_blank" mce_href="http://weblogs.asp.net/jdanforth/archive/2008/08/09/more-on-restful-service-with-wcf-and-pox-poco.aspx"&gt;earlier blog post I did on REST, POX/POJO and WCF&lt;/a&gt; and the comment read:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;How about REST WCF bits from .NET 3.5 SP1? Is it possible now to let the user decide in which format he wants the response (xml or json) like MySpace API for example?&lt;/p&gt;    &lt;p&gt;The convention is to use a file like extension at the end of the resource to specify data return type (.xml or .json)&lt;/p&gt;    &lt;p&gt;&lt;a href="http://api.myspace.com/v1/users/378145025/details.xml" mce_href="http://api.myspace.com/v1/users/378145025/details.xml"&gt;api.myspace.com/.../details.xml&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://api.myspace.com/v1/users/378145025/details.json" mce_href="http://api.myspace.com/v1/users/378145025/details.json"&gt;api.myspace.com/.../details.json&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;UPDATE/EDIT:&lt;/strong&gt; Turns out I was doing this the hard way as there is support for json serialization right from the ServiceContract which makes this extremely easy. Just make sure to specify the ResponseFormat to be json. In a previous &amp;quot;version&amp;quot; of this blog post, I used the JavaScriptSerializer class, which is... dumb :)&lt;/p&gt;  &lt;p&gt;First go take a look at the &lt;a href="http://blogs.msdn.com/kaevans/archive/2008/04/03/creating-restful-services-using-wcf.aspx" target="_blank" mce_href="http://blogs.msdn.com/kaevans/archive/2008/04/03/creating-restful-services-using-wcf.aspx"&gt;sample that Kirk Evans had on his blog&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note that it may be easier to create a RESTful interface with ASP.NET MVC if you're into that tech, but that's another blog post.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;So, first I'm modifying the REST interface somewhat, adding support for &lt;strong&gt;/details.xml&lt;/strong&gt; and &lt;strong&gt;/details.json&lt;/strong&gt; URI:&lt;/p&gt;  &lt;pre class="code"&gt;[&lt;span style="color: rgb(43,145,175)"&gt;ServiceContract&lt;/span&gt;]
&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;interface&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IService
&lt;/span&gt;{
    [&lt;span style="color: rgb(43,145,175)"&gt;OperationContract&lt;/span&gt;]
    [&lt;span style="color: rgb(43,145,175)"&gt;WebGet&lt;/span&gt;(UriTemplate=&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;customers/{id}/details.xml&amp;quot;&lt;/span&gt;)]
    &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; GetCustomer(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; id);

    [&lt;span style="color: rgb(43,145,175)"&gt;OperationContract&lt;/span&gt;]
    [&lt;span style="color: rgb(43,145,175)"&gt;WebGet&lt;/span&gt;(UriTemplate = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;customers/{id}/details.json&amp;quot;&lt;/span&gt;, &lt;br /&gt;            ResponseFormat=&lt;span style="color: rgb(43,145,175)"&gt;WebMessageFormat&lt;/span&gt;.Json)]&lt;br /&gt;    &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; GetJsonCustomer(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; id);
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;As you can see, on the GetJsonCustomer() method, I'm specifying the ResponseFormat to be json. That's it :)&lt;/p&gt;

&lt;p&gt;A sample implementation for this interface looks like this:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; GetCustomer(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; id)
{
    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; { ID = id, Name = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Demo User&amp;quot;&lt;/span&gt; };
}

&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; GetJsonCustomer(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; id)
{
    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; GetCustomer(id);&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Using Fiddler to simulate client request and see what comes out of our RESTful service, we get this result from the &lt;strong&gt;/customers/123/details.xml&lt;/strong&gt; request:&lt;/p&gt;

&lt;p&gt;&amp;#160; &amp;lt;Customer xmlns=&amp;quot;http://schemas.datacontract.org/2004/07/RESTfulWCF&amp;quot; xmlns:i=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&amp;lt;ID&amp;gt;1&amp;lt;/ID&amp;gt;&amp;lt;Name&amp;gt;Demo User&amp;lt;/Name&amp;gt;&amp;lt;/Customer&amp;gt;&lt;/p&gt;

&lt;p&gt;...and this from the &lt;strong&gt;/customers/123/details.json&lt;/strong&gt; request:&lt;/p&gt;

&lt;p&gt;&amp;#160; {&amp;quot;ID&amp;quot;:&amp;quot;123&amp;quot;,&amp;quot;Name&amp;quot;:&amp;quot;Demo User&amp;quot;}&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6556458" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/REST/default.aspx">REST</category></item><item><title>Why Developers Are Interested in REST</title><link>http://weblogs.asp.net/jdanforth/archive/2008/08/22/why-developers-are-interested-in-rest.aspx</link><pubDate>Fri, 22 Aug 2008 11:00:50 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6551274</guid><dc:creator>jdanforth</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6551274</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/08/22/why-developers-are-interested-in-rest.aspx#comments</comments><description>&lt;p&gt; I had a laugh when I saw James Kovacs' blog post abot &lt;a title="Why Developers are Interested in REST" href="http://www.jameskovacs.com/blog/WhyDevelopersAreInterestedInREST.aspx"&gt;Why Developers are Interested in REST&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;I'm doing some WCF work for a client, specifically around WS-Security. I stumbled upon the System.ServiceModel.MessageSecurityVersion class today. Its static properties alone should explain why developers are craving simpler technologies like REST...&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.messagesecurityversion.wssecurity10wstrust13wssecureconversation13wssecuritypolicy12basicsecurityprofile10.aspx"&gt;WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.messagesecurityversion.wssecurity10wstrustfebruary2005wssecureconversationfebruary2005wssecuritypolicy11basicsecurityprofile10.aspx"&gt;WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.messagesecurityversion.wssecurity11wstrust13wssecureconversation13wssecuritypolicy12.aspx"&gt;WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.messagesecurityversion.wssecurity11wstrust13wssecureconversation13wssecuritypolicy12basicsecurityprofile10.aspx"&gt;WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.messagesecurityversion.wssecurity11wstrustfebruary2005wssecureconversationfebruary2005wssecuritypolicy11.aspx"&gt;WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.messagesecurityversion.wssecurity11wstrustfebruary2005wssecureconversationfebruary2005wssecuritypolicy11basicsecurityprofile10.aspx"&gt;WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;I think he's got a point there actually. Web services with WCF can be very easy to use, and it can be so very complex it'll get your head to spin. The &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank"&gt;REST&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Plain_Old_XML" target="_blank"&gt;POX&lt;/a&gt;/POCO style of services is definitely getting more attention, even from within Microsoft. WCF now supports RESTful interfaces, and we've seen REST-related demos by well known Microsoft presenters several times now, especially around WCF, EF and Astoria/ADO.NET Data Service. Also, it's very easy to create a RESTful service with ASP.NET MVC. We saw several REST-related presentations at Mix07 and Mix08 and I'm sure there will be a lot of REST/POCO/POX/Atom demos at PDC later this year.&lt;/p&gt;  &lt;p&gt;Ofcourse there will be a number of situations and type of applications which require a more complex protocol than what REST can offer, but as a developer and software architect who prefers simple solutions, I just love the simplicity of it all. Or maybe I'm just old and smilingly recognize old techniques coming back again - we did XML on (S)HTTP with ASP years and years ago, didn't we? And it worked pretty darn well I can tell you ;)&lt;/p&gt;  &lt;p&gt;The &amp;quot;REST effect&amp;quot; is perhaps the result of the WS-* race, which in my opinion exceeded the speed limit a long time ago. It's just impossible for an average human beings to &lt;a href="http://en.wikipedia.org/wiki/List_of_Web_service_specifications" target="_blank"&gt;keep up with it&lt;/a&gt; unless you want to become a WCF/WS expert and do nothing much else, which is not an option for me. I know, there are people out there, like my colleague &lt;a href="http://blog.irm.se/blogs/eric/" target="_blank"&gt;Eric&lt;/a&gt;, who &lt;a href="http://en.wikipedia.org/wiki/Grok" target="_blank"&gt;groks&lt;/a&gt; it all, but he's not human ;)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6551274" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/jdanforth/archive/tags/REST/default.aspx">REST</category></item><item><title>SyncToy 2.0 Released</title><link>http://weblogs.asp.net/jdanforth/archive/2008/08/22/synctoy-2-0-released.aspx</link><pubDate>Fri, 22 Aug 2008 08:49:27 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6550870</guid><dc:creator>jdanforth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/jdanforth/rsscomments.aspx?PostID=6550870</wfw:commentRss><comments>http://weblogs.asp.net/jdanforth/archive/2008/08/22/synctoy-2-0-released.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/SyncToy2.0Released_982F/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="57" alt="image" src="http://weblogs.asp.net/blogs/jdanforth/WindowsLiveWriter/SyncToy2.0Released_982F/image_thumb.png" width="203" align="right" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c26efa36-98e0-4ee9-a7c5-98d0592d8c52&amp;amp;DisplayLang=en" target="_blank"&gt;Version 2.0 of SyncToy has been released on MSDN Downloads&lt;/a&gt;. SyncToy does not replace &lt;a href="http://www.foldershare.com/" target="_blank"&gt;FolderShare&lt;/a&gt; for syncing files between different computers, but is a more effective way to copy/move/sync files on your computer. The dev-team uses the tool primarily to move pictures and music from devices (cameras, mp3 players etc) to folders on their computers or network shares in a more effective way. It's not a service/system tray kind of thing, just a utility that remembers a number of different &amp;quot;syncs&amp;quot; you've setup so that you can run them again and again when you need to. &lt;/p&gt;  &lt;p&gt;The download page says:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SyncToy, a free PowerToy for Microsoft Windows, is an easy to use, highly customizable program that helps users to do the heavy lifting involved with the copying, moving, and synchronization of different directories. Most common operations can be performed with just a few clicks of the mouse, and additional customization is available without additional complexity. SyncToy can manage multiple sets of folders at the same time; it can combine files from two folders in one case, and mimic renames and deletes in another case. Unlike other applications, SyncToy actually keeps track of renames to files and will make sure those changes get carried over to the synchronized folder.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The tool has got a number of new features added from version 1.0, and I'm listing a few interesting ones:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Dynamic Drive Letter Assignment&lt;/li&gt;    &lt;li&gt;True Folder Sync&lt;/li&gt;    &lt;li&gt;Exclusion Filtering Based on Name&lt;/li&gt;    &lt;li&gt;Filtering Based on File Attributes&lt;/li&gt;    &lt;li&gt;Command line enhancements: Added the ability to manage folder pairs via the command line interface. &lt;/li&gt;    &lt;li&gt;Sync Encrypted Files&lt;/li&gt;    &lt;li&gt;64-Bit Support&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;SyncToy is built upon the &lt;a href="http://msdn.microsoft.com/en-us/sync/default.aspx" target="_blank"&gt;Microsoft Sync Framework&lt;/a&gt;, which seems to get better and better all the time. Worth keeping an eye on for everyone involved in developing applications which requires replication or off-line modes.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6550870" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/jdanforth/archive/tags/Tools/default.aspx">Tools</category></item></channel></rss>