<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>.NET Slave</title>
    <description>by Mads Kristensen</description>
    <link>http://madskristensen.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://madskristensen.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Mads Kristensen</dc:creator>
    <dc:title>.NET Slave</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/netSlave" /><feedburner:info uri="netslave" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://blog.madskristensen.dk/</link><url>http://blog.madskristensen.dk/themes/standard/madskristensen.png</url><title>.NET slave</title></image><item>
      <title>TechDays 2012 Netherlands - slides and demo</title>
      <description>&lt;p&gt;I just attended the TechDays 2012 event in The Netherlands and now it is all over and I'm heading back to Seattle in the morning. I gave a couple of sessions and here are the slides I used:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://madskristensen.net/file.axd?file=2012%2f2%2fWhats+new.pptx"&gt;What's new in Visual Studio 11 and ASP.NET 4.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://madskristensen.net/file.axd?file=2012%2f2%2fTips+and+tricks.pptx"&gt;Tips &amp;amp; tricks for ASP.NET developers&lt;/a&gt; (&lt;a href="http://madskristensen.net/file.axd?file=2012%2f2%2fTechDays.zip"&gt;demo VS 2010 project&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the Tips &amp;amp; Tricks talk I demoed some of the extensions available for Visual Studio 2010. I've also done a &lt;a href="http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-Toolbox-Web-Essentials-and-CSSCop" target="_blank"&gt;Channel9 video&lt;/a&gt; specifically on those extensions.&lt;/p&gt;
&lt;p&gt;It's been great being back in The Netherlands, which I haven't visited since 2009. Hopefully I'll be here again for Tech-Ed this summer.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/f35hBPANC58/post.aspx</link>
      <comments>http://madskristensen.net/post/TechDays-2012-Netherlands-slides-and-demo.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=51ee8fe6-859e-4769-a2fd-ed9954a9cf60</guid>
      <pubDate>Fri, 17 Feb 2012 07:43:00 -0700</pubDate>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=51ee8fe6-859e-4769-a2fd-ed9954a9cf60</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=51ee8fe6-859e-4769-a2fd-ed9954a9cf60</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/TechDays-2012-Netherlands-slides-and-demo.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=51ee8fe6-859e-4769-a2fd-ed9954a9cf60</wfw:commentRss>
    <enclosure url="http://madskristensen.net/file.axd?file=2012%2f2%2fWhats+new.pptx" length="524668" type="application/octet-stream" /><feedburner:origLink>http://madskristensen.net/post.aspx?id=51ee8fe6-859e-4769-a2fd-ed9954a9cf60</feedburner:origLink></item>
    <item>
      <title>Introducing CSSCop - FxCop for stylesheets</title>
      <description>&lt;p&gt;Writing correct CSS can sometimes feel a little frustrating – especially with all the vendor specific properties and cross-browser techniques we need to be aware of. &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50" target="_blank"&gt;CSSCop for Visual Studio&lt;/a&gt; tries to help us write better CSS, by making sure we remember all the right vendor specific properties or that you cannot set the margin on inline HTML elements etc.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://madskristensen.net/image.axd?picture=contextmenu.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="contextmenu" border="0" alt="contextmenu" src="http://madskristensen.net/image.axd?picture=contextmenu_thumb.png" width="244" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;CSSCop uses the best CSS linting tool available today – &lt;a href="http://csslint.net/" target="_blank"&gt;CSS Lint&lt;/a&gt;. Like FxCop will frustrate you the first time you run it, so promises CSS Lint, which state:&amp;#160; “[CSS Lint] Will hurt your feelings* (And help you code better)”.&lt;/p&gt;  &lt;p&gt;You might find a lot of errors when you run it the first time, but very quickly you learn the rules and will start coding accordingly. &lt;/p&gt;    &lt;p&gt;&lt;a href="http://madskristensen.net/image.axd?picture=screenshot.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="screenshot" border="0" alt="screenshot" src="http://madskristensen.net/image.axd?picture=screenshot_thumb.png" width="244" height="169" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;All the rules can easily be turned on and off in an XML file that is placed in the root of you project the first time CSSCop runs. It doesn’t impact performance in any way since it only activates when you manually invoke it.&lt;/p&gt;  &lt;p&gt;I hope that you will &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50" target="_blank"&gt;give it a try&lt;/a&gt; and tell me what you like and dislike about it.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/D8OxE_NxXq4/post.aspx</link>
      <comments>http://madskristensen.net/post/Introducing-CSSCop-FxCop-for-stylesheets.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=2ba1e4cd-76e6-4d41-a071-41fa4fbe388d</guid>
      <pubDate>Thu, 08 Dec 2011 17:40:41 -0700</pubDate>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=2ba1e4cd-76e6-4d41-a071-41fa4fbe388d</pingback:target>
      <slash:comments>17</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=2ba1e4cd-76e6-4d41-a071-41fa4fbe388d</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Introducing-CSSCop-FxCop-for-stylesheets.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=2ba1e4cd-76e6-4d41-a071-41fa4fbe388d</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=2ba1e4cd-76e6-4d41-a071-41fa4fbe388d</feedburner:origLink></item>
    <item>
      <title>Web Essentials - the idea</title>
      <description>&lt;p&gt;I&amp;rsquo;ve been pretty quiet about my latest extension for Visual Studio 2010 outside of &lt;a href="http://twitter.com/mkristensen" target="_blank"&gt;Twitter&lt;/a&gt;, so I&amp;rsquo;m thinking it&amp;rsquo;s due time for a blog post about how and why &lt;a href="http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f" target="_blank"&gt;Web Essentials&lt;/a&gt; came to be.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t know what Web Essentials is or haven&amp;rsquo;t tried it yet, you might want to read &lt;a href="http://www.hanselman.com/blog/UsefulVisualStudioExtensionWebEssentialsFromMadsKristensen.aspx" target="_blank"&gt;Scott Hanselman&amp;rsquo;s blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Web Essentials was originally called CSS Essentials when it was first released in early 2011 because I wanted a name that clearly stated it was all about CSS. Years of web development had left me frustrated about the lack of attention CSS editors was getting by almost all IDEs, which in general only provided syntax highlighting, decent formatting and useless validation. Why did VB.NET and C# almost write itself when CSS was such a uphill battle with even the simplest tasks such as cross-browser rounded corners? That should be simple, right? Right?!&lt;/p&gt;
&lt;p&gt;I still considered myself a new employee at Microsoft at the time, with plenty of stuff to learn in my new role as Program Manager for the CSS and HTML editors in the &lt;a href="http://blogs.msdn.com/b/webdevtools/" target="_blank"&gt;Web Platform &amp;amp; Tools team&lt;/a&gt;. That&amp;rsquo;s why CSS Essentials remained dormant for the first many months providing little to no features.&lt;/p&gt;
&lt;p&gt;It wasn&amp;rsquo;t until September 2011 after the //BUILD conference, where we shipped the &lt;a href="http://msdn.microsoft.com/en-US/vstudio/hh127353" target="_blank"&gt;Visual Studio 11 Developer Preview&lt;/a&gt; that I revived the project with a few clear goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Have fun writing code&lt;/li&gt;
&lt;li&gt;Live test features that we might consider including in Visual Studio&lt;/li&gt;
&lt;li&gt;Provide value to existing Visual Studio 2010 users&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Having fun&lt;/h2&gt;
&lt;p&gt;Spare time projects have to be fun to survive. I learned that when I started &lt;a href="http://dotnetblogengine.net/" target="_blank"&gt;BlogEngine.NET&lt;/a&gt; almost 5 years ago.&lt;/p&gt;
&lt;p&gt;Because it was so much fun adding new features to Web Essentials, I updated the extension almost daily. Some people really liked the frequent updates, but I got a lot of feedback from people who was so annoyed about it that they uninstalled it. That was no fun. Now I&amp;rsquo;ve slowed down the updates a bit and I still have fun.&lt;/p&gt;
&lt;h2&gt;Live testing of features&lt;/h2&gt;
&lt;p&gt;Some of the features are &lt;span style="text-decoration: line-through;"&gt;stolen&lt;/span&gt; inspired by Visual Studio 11 and some are unique to Web Essentials. Some of the shared features are implemented in different ways, but essentially solves the same problems. As a Program Manager for HTML, CSS and now also JavaScript, this is an ultimate way to get feedback on possible new features for Visual Studio. Please &lt;a href="http://webessentials.uservoice.com/forums/140520-general"&gt;keep the feedback coming&lt;/a&gt;!&lt;/p&gt;
&lt;h2&gt;Provide value to VS2010 users&lt;/h2&gt;
&lt;p&gt;This is perhaps the most important part of the project. New versions of Visual Studio are usually 2-3 years apart and that&amp;rsquo;s a long time to wait for new features and general improvements. That&amp;rsquo;s also the reason why I released the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83" target="_blank"&gt;Web Standards Update&lt;/a&gt; extension last June.&lt;/p&gt;
&lt;p&gt;Despite my role at Microsoft, Web Essentials is a completely private project. No Microsoft developer was hurt during the making of the extension. Scouts honor, boss! The reason I have for keeping it a private hobby project is that it gives me complete freedom to experiment with various features and improvements. It unfortunately also means that there is no QA other than myself. And you of course.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anyway&lt;/strong&gt;, back to the story.&lt;/p&gt;
&lt;p&gt;After the project was revived I decided to change the name to Web Essentials because it reached broader while keeping focus on web development. Also, I wanted to add features to the HTML editor, such as drag &amp;lsquo;n drop of user controls, video and audio files. Something I had wanted for years as a web developer.&lt;/p&gt;
&lt;p&gt;The purpose now was to provide a broad set of improvements to make the experience writing client-side web code in Visual Studio better and more up-to-date.&lt;/p&gt;
&lt;p&gt;As of this writing, the extension is now on version 2.6 with 44.000+ downloads. That&amp;rsquo;s 16 releases in 2 months and it includes features for CSS, HTML, JavaScript and general web project features as well. The future of web development in Visual Studio, I think, has never looked better then with Visual Studio 11 on the horizon. Until then, Web Essentials will continue being updated and push the envelope on what Visual Studio 2010 is capable of.&lt;/p&gt;
&lt;p&gt;I would love to hear from you what sort of features, tweaks and improvements would make your life easier and more fun using the web tools in Visual Studio and Web Essentials. Most of the features in Web Essentials came from suggestions on Twitter and around the interwebs. So if you have a good idea, please share it.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/210EajMAYIM/post.aspx</link>
      <comments>http://madskristensen.net/post/Web-Essentials-the-idea.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=c75b9b92-6fc0-4317-8f89-e33f2d00c1d9</guid>
      <pubDate>Tue, 29 Nov 2011 21:48:00 -0700</pubDate>
      <category>Random thoughts</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=c75b9b92-6fc0-4317-8f89-e33f2d00c1d9</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=c75b9b92-6fc0-4317-8f89-e33f2d00c1d9</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Web-Essentials-the-idea.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=c75b9b92-6fc0-4317-8f89-e33f2d00c1d9</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=c75b9b92-6fc0-4317-8f89-e33f2d00c1d9</feedburner:origLink></item>
    <item>
      <title>CSS speed typing for Visual Studio</title>
      <description>&lt;p&gt;For the past few months, I’ve been looking at how to improve the web development experience in Visual Studio. This summer I released the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83" target="_blank"&gt;Web Standards Update&lt;/a&gt; which brings HTML5 and CSS3 to Visual Studio, and a few weeks back &lt;a href="http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f" target="_blank"&gt;Web Essentials&lt;/a&gt; was published. &lt;/p&gt;  &lt;p&gt;This week I’ve been working on a proof of concept that eliminates the need for typing curly braces, colons and semi-colons when working with CSS. In non-English keyboard layouts, these characters can be rather difficult to type, because you need to use SHIFT and ALT to get to them. &lt;/p&gt;  &lt;p&gt;Here is a quick demonstration of how to write CSS without the need for these characters.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; padding-left: 0px; width: 434px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:3ac2bb83-741d-45ca-9a52-19542f4b4274" class="wlWriterEditableSmartContent"&gt;&lt;embed src="http://www.youtube.com/v/_FmIWfGNxE8" type="application/x-shockwave-flash" wmode="transparent" width="434" height="357"&gt;&lt;/embed&gt;&lt;/div&gt;  &lt;p&gt;I’ve been using this for about a day now on an English keyboard and I am so much more productive writing CSS. What I’m really interested in though, is whether or not YOU are when using this extension. Also, is it annoying, in your way, a waste of time, or the best thing EVAR!! Please try it out and let me know. I’d appreciate any feedback on this. Thank you!&lt;/p&gt;  &lt;h2&gt;Try it today!&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://madskristensen.net/custom/SpeedTyping1.0.vsix"&gt;Download the SpeedTyping extension&lt;/a&gt; for Visual Studio 2010 and let me know what you think on &lt;a href="http://twitter.com/mkristensen" target="_blank"&gt;Twitter&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Who knows, we might add this to the next version of Visual Studio…&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/ci8XJtt8Xso/post.aspx</link>
      <comments>http://madskristensen.net/post/CSS-speed-typing-for-Visual-Studio.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=9ab965d0-d4d2-4f3d-a8c1-33ee2e0078dc</guid>
      <pubDate>Thu, 17 Nov 2011 17:36:13 -0700</pubDate>
      <category>Videos</category>
      <category>Client-side</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=9ab965d0-d4d2-4f3d-a8c1-33ee2e0078dc</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=9ab965d0-d4d2-4f3d-a8c1-33ee2e0078dc</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/CSS-speed-typing-for-Visual-Studio.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=9ab965d0-d4d2-4f3d-a8c1-33ee2e0078dc</wfw:commentRss>
    <enclosure url="http://madskristensen.net/custom/SpeedTyping1.0.vsix" length="266481" type="applicatoin/octet-stream" /><feedburner:origLink>http://madskristensen.net/post.aspx?id=9ab965d0-d4d2-4f3d-a8c1-33ee2e0078dc</feedburner:origLink></item>
    <item>
      <title>Optimize ASP.NET presentation</title>
      <description>&lt;p&gt;At //build and today at VS Live I gave a talk about performance optimizing ASP.NET web applications using bundling, minification and other cool tricks.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-837T"&gt;See the video presentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Visual Studio 2010 extension I used were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f"&gt;Web Essentials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/a56eddd3-d79b-48ac-8c8f-2db06ade77c3"&gt;Image Optimizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83"&gt;Web Standards Update&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The demo website can now be downloaded here. It runs in ASP.NET 4.0&lt;/p&gt;
&lt;p&gt;&lt;a href="http://madskristensen.net/file.axd?file=2011%2f10%2fOptimize+Website.zip"&gt;Optimize Website.zip (4.39 mb)&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/REHmEF6KR6w/post.aspx</link>
      <comments>http://madskristensen.net/post/Optimize-ASPNET-presentation.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=286c19df-c3bc-4dbb-9504-0a823efb182e</guid>
      <pubDate>Tue, 18 Oct 2011 13:55:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>Tips and tricks</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=286c19df-c3bc-4dbb-9504-0a823efb182e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=286c19df-c3bc-4dbb-9504-0a823efb182e</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Optimize-ASPNET-presentation.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=286c19df-c3bc-4dbb-9504-0a823efb182e</wfw:commentRss>
    <enclosure url="http://madskristensen.net/file.axd?file=2011%2f10%2fOptimize+Website.zip" length="4607560" type="application/octet-stream" /><feedburner:origLink>http://madskristensen.net/post.aspx?id=286c19df-c3bc-4dbb-9504-0a823efb182e</feedburner:origLink></item>
    <item>
      <title>Web Standards Update - behind the scenes</title>
      <description>&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Web Standards Update for Microsoft Visual Studio 2010 SP1" border="0" alt="Web Standards Update for Microsoft Visual Studio 2010 SP1" align="right" src="http://madskristensen.net/image.axd?picture=logo_1.png" width="250" height="213" /&gt;We just released the first &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83" target="_blank"&gt;Web Standards Update for Microsoft Visual Studio 2010 SP1&lt;/a&gt;. Despite its name, the update also works for Visual Web Developer Express 2010 SP1. You can read more on our team blog.&lt;/p&gt;  &lt;p&gt;In this first release of the update, we have focused on bringing the HTML5 support up-to-date, adding CSS 3 support and bring more new API’s to the JavaScript intellisense.&amp;#160; The plan is to make a release on a regular schedule to keep Visual Studio updated with the changes made by W3C.&lt;/p&gt;  &lt;h2&gt;HTML5&lt;/h2&gt;  &lt;p&gt;Last year, we managed to sneak in HTML5 support when working on SP1 for Visual Studio 2010. Normally, a service pack is about bug fixes but we found that HTML5 was so important that the lack of it should be considered a bug. Unfortunately we where not able to do the same with CSS3 or the JavaScript API’s, but it was a good start.&lt;/p&gt;  &lt;p&gt;Due to a combination of the instability of the HTML5 specifications at the time and the resources we had to add HTML5 support for SP1, we ended up with very descent support for both intellisense and validation. Now the HTML5 specifications are more stabile and some additions and modifications have been made by the W3C since then. It’s therefore a good time to update the HTML5 and XHTML5 schema files that Visual Studio uses under the hood to provide intellisense and validation. &lt;/p&gt;  &lt;p&gt;Among the changes are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Added missing elements like &lt;em&gt;u&lt;/em&gt;, &lt;em&gt;s&lt;/em&gt; and &lt;em&gt;bdi&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;The &lt;em&gt;type&lt;/em&gt; attribute is no longer required on &lt;em&gt;script&lt;/em&gt; elements &lt;/li&gt;    &lt;li&gt;The &lt;em&gt;source&lt;/em&gt; element is now supported inside &lt;em&gt;video&lt;/em&gt; and &lt;em&gt;audio&lt;/em&gt; elements &lt;/li&gt;    &lt;li&gt;Support for microdata including intellisense for schema.org vocabularies &lt;/li&gt;    &lt;li&gt;Full WAI-ARIA intellisense &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;CSS3&lt;/h2&gt;  &lt;p&gt;For CSS3 we were not as lucky as we were with getting HTML5 into SP1. This was largely due to a combination of time and resources in terms of available developers. CSS3 is more difficult because the specifications change much more frequently than the specification for HTML5. For us it is a constant battle with keeping up to date with these changes and subsequently getting them into the next version of this update. That way we make sure that you will always have the latest and most accurate CSS3 support in Visual Studio. &lt;/p&gt;  &lt;p&gt;The CSS3 support includes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Will not invalidate &lt;em&gt;filter&lt;/em&gt;, &lt;em&gt;zoom&lt;/em&gt; and &lt;em&gt;behavior &lt;/em&gt;properties &lt;/li&gt;    &lt;li&gt;Have intellisense for vendor specific schemas (-ms-*, -moz-* and -webkit-*) &lt;/li&gt;    &lt;li&gt;Up-to-date intellisense and validation for CSS3 properties and values &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;JavaScript&lt;/h2&gt;  &lt;p&gt;We’ve gotten a lot of customers asking for better intellisense for some of the new web API’s such as DOM Storage and Geolocation. In this update we are including intellisense for a lot of the API’s found in EcmaScript 5 including:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;New selectors such as getElementByClassName &lt;/li&gt;    &lt;li&gt;Geolocation, DOM storage and other new web API’s &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;More info&lt;/h2&gt;  &lt;p&gt;Check out the &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx" target="_blank"&gt;unofficial announcement&lt;/a&gt; or &lt;a href="http://www.hanselman.com/blog/AnnouncingTheWebStandardsUpdateHTML5SupportForTheVisualStudio2010Editor.aspx" target="_blank"&gt;Scott Hanselman’s run-through&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Download&lt;/h2&gt;  &lt;p&gt;If you haven’t already, I encourage you to download the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83" target="_blank"&gt;Web Standards Update for Visual Studio SP1&lt;/a&gt;and try it out today. It’s a small and quick install.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/inmnV4cA1Rk/post.aspx</link>
      <comments>http://madskristensen.net/post/Web-Standards-Update-behind-the-scenes.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=879ede70-0dcb-4b74-9654-ef51dedd1be0</guid>
      <pubDate>Wed, 15 Jun 2011 17:48:00 -0700</pubDate>
      <category>Client-side</category>
      <category>The semantic web</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=879ede70-0dcb-4b74-9654-ef51dedd1be0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=879ede70-0dcb-4b74-9654-ef51dedd1be0</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Web-Standards-Update-behind-the-scenes.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=879ede70-0dcb-4b74-9654-ef51dedd1be0</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=879ede70-0dcb-4b74-9654-ef51dedd1be0</feedburner:origLink></item>
    <item>
      <title>HTML5 &amp; CSS3 in Visual Studio 2010 SP1</title>
      <description>&lt;p&gt;Since the release of &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=11ea69cb-cf12-4842-a3d7-b32a1e5642e2"&gt;Visual Studio 2010 SP1 beta&lt;/a&gt; last month, there has been a lot of questions regarding the support for HTML5 and CSS3.&lt;/p&gt;
&lt;h2&gt;HTML5&lt;/h2&gt;
&lt;p&gt;Visual Studio 2010 was originally released without HTML5 support, so does SP1 finally add support for it? Yes, to some extent. The entire HTML5 specification isn&amp;rsquo;t supported but most of the new elements and attributes are. That means you get both intellisense and validation for HTML5 with SP1.&lt;/p&gt;
&lt;h3&gt;Turn it on&lt;/h3&gt;
&lt;p&gt;After installing SP1 you have to tell Visual Studio to start using the HTML5 schema. Go to &lt;em&gt;Tools&lt;/em&gt; -&amp;gt; &lt;em&gt;Options,&lt;/em&gt; and then select &lt;em&gt;Text Editor&lt;/em&gt; -&amp;gt; &lt;em&gt;HTML&lt;/em&gt; -&amp;gt; &lt;em&gt;Validation&lt;/em&gt;. You should now be able to select HTML5 or XHTML5 as the target schema.&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" src="http://madskristensen.net/image.axd?picture=clip_image002_1.jpg" border="0" alt="clip_image002" width="638" height="371" /&gt;&lt;/p&gt;
&lt;p&gt;Or if you have the &lt;em&gt;HTML Source Editing&lt;/em&gt; toolbar enabled, you can select it in the target schema dropdown.&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image003" src="http://madskristensen.net/image.axd?picture=clip_image003_1.png" border="0" alt="clip_image003" width="227" height="39" /&gt;&lt;/p&gt;
&lt;h3&gt;Intellisense support&lt;/h3&gt;
&lt;p&gt;The new elements that are specific to HTML5 are shown in the intellisense list as you would expect.&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image004" src="http://madskristensen.net/image.axd?picture=clip_image004_1.png" border="0" alt="clip_image004" width="244" height="192" /&gt;&lt;/p&gt;
&lt;p&gt;Even the new HTML5 specific attribute values for existing elements are shown.&lt;/p&gt;
&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image005" src="http://madskristensen.net/image.axd?picture=clip_image005_1.png" border="0" alt="clip_image005" width="244" height="198" /&gt;&lt;/p&gt;
&lt;p&gt;Prior to SP1 there had been a bug that caused a runtime error when an input element used some of the new &lt;em&gt;type&lt;/em&gt; attribute values such as &lt;em&gt;email&lt;/em&gt; in conjunction with &lt;em&gt;runat=&amp;rdquo;server&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;lt;input type="email" runat="server" /&amp;gt;&lt;/p&gt;
&lt;p&gt;This error has been fixed and will be included in the final SP1. However, it is not part of SP1 beta. In the meantime, you can use the &lt;em&gt;Textbox&lt;/em&gt; control instead which doesn&amp;rsquo;t cause the error.&lt;/p&gt;
&lt;p&gt;&amp;lt;asp:textbox type="email" runat="server" /&amp;gt;&lt;/p&gt;
&lt;h2&gt;CSS3&lt;/h2&gt;
&lt;p&gt;In SP1 there are a few improvements in the CSS3 support as well, though not as elaborate as with HTML5. The editor now supports the more advanced selectors such as &lt;em&gt;div:nth-child(2n+1) &lt;/em&gt;without giving validation errors and the new color values &lt;em&gt;rgba&lt;/em&gt;, &lt;em&gt;hsl&lt;/em&gt;, &lt;em&gt;hsla&lt;/em&gt; and 8 digit hex values are also supported.&lt;/p&gt;
&lt;h2&gt;Start today&lt;/h2&gt;
&lt;p&gt;The conclusion is that with Visual Studio today, you can build HTML5 and CSS3 web applications on top of ASP.NET, and with SP1 we are making it a lot easier for you. We encourage all ASP.NET developers to start taking advantage of what HTML5 and CSS3 has to offer already today. The Web Platform and Tools team takes web standards very seriously and you will see much better support for HTML5 and CSS3 in the future.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/gQyLvZJqFRA/post.aspx</link>
      <comments>http://madskristensen.net/post/HTML5-CSS3-in-Visual-Studio-2010-SP1.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=39bcb6be-7147-4c08-ba18-6b3c172376fe</guid>
      <pubDate>Thu, 27 Jan 2011 14:54:00 -0700</pubDate>
      <category>Client-side</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=39bcb6be-7147-4c08-ba18-6b3c172376fe</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=39bcb6be-7147-4c08-ba18-6b3c172376fe</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/HTML5-CSS3-in-Visual-Studio-2010-SP1.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=39bcb6be-7147-4c08-ba18-6b3c172376fe</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=39bcb6be-7147-4c08-ba18-6b3c172376fe</feedburner:origLink></item>
    <item>
      <title>Prepare web.config for HTML5 and CSS3</title>
      <description>&lt;p&gt;HTML5 and CSS3 introduces some new file types that enables us to create even better websites. We are now able to embed video, audio and custom fonts natively to any web page. Some of these file types are relatively new and not supported by the IIS web server by default. It’s file types like .m4v, .webm and .woff.&lt;/p&gt;  &lt;p&gt;When a request is made to the IIS for these unsupported file types, we are met with the following error message:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;HTTP Error 404.3 - Not Found&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The problem is that the IIS doesn’t know how to serve these new files unless we tell it how. This can be easily done in the web.config’s &amp;lt;system.webServer&amp;gt; section by adding the following snippet:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;staticContent&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.mp4&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;video/mp4&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.m4v&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;video/m4v&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.ogg&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;video/ogg&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.ogv&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;video/ogg&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.webm&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;video/webm&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.oga&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;audio/ogg&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.spx&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;audio/ogg&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.svg&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;images/svg+xml&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.svgz&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;images/svg+xml&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.eot&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.eot&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;application/vnd.ms-fontobject&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.otf&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;font/otf&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;mimeMap&lt;/span&gt; &lt;span class="attr"&gt;fileExtension&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.woff&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mimeType&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;font/x-woff&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;staticContent&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The above snippet includes support for most video, audio and font file types used by HTML5 and CSS3. &lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/mtY8vglUb9E/post.aspx</link>
      <comments>http://madskristensen.net/post/Prepare-webconfig-for-HTML5-and-CSS3.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=749b9137-6e3a-4638-9b92-a5d205d5f539</guid>
      <pubDate>Wed, 01 Dec 2010 19:38:16 -0700</pubDate>
      <category>ASP.NET</category>
      <category>Tips and tricks</category>
      <dc:publisher>mads kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=749b9137-6e3a-4638-9b92-a5d205d5f539</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=749b9137-6e3a-4638-9b92-a5d205d5f539</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Prepare-webconfig-for-HTML5-and-CSS3.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=749b9137-6e3a-4638-9b92-a5d205d5f539</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=749b9137-6e3a-4638-9b92-a5d205d5f539</feedburner:origLink></item>
    <item>
      <title>Demo of Image Optimizer</title>
      <description>&lt;p&gt;The &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/a56eddd3-d79b-48ac-8c8f-2db06ade77c3"&gt;Image Optimizer extension&lt;/a&gt; for Visual Studio is now ready for prime time. Therefore I've recorded a brief video demo of how it actually works.&lt;/p&gt;
&lt;p&gt;[vimeo:17202901]&lt;/p&gt;
&lt;p&gt;The Image Optimizer uses &lt;a href="http://smushit.com"&gt;SmushIt&lt;/a&gt; and &lt;a href="http://punypng.com"&gt;PunyPNG&lt;/a&gt; as backend for the image optimization. That means you get the same level of optimization as using those two services. If you are interested in the source code, you can find it on &lt;a href="http://imageoptimizer.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/0p4aU3y2bdw/post.aspx</link>
      <comments>http://madskristensen.net/post/Demo-of-Image-Optimizer.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=d98624f8-fa5f-4230-a9df-c4fe3853d8a7</guid>
      <pubDate>Thu, 25 Nov 2010 16:34:00 -0700</pubDate>
      <category>Videos</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=d98624f8-fa5f-4230-a9df-c4fe3853d8a7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=d98624f8-fa5f-4230-a9df-c4fe3853d8a7</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Demo-of-Image-Optimizer.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=d98624f8-fa5f-4230-a9df-c4fe3853d8a7</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=d98624f8-fa5f-4230-a9df-c4fe3853d8a7</feedburner:origLink></item>
    <item>
      <title>Image Optimizer (beta) - VS2010 extension</title>
      <description>&lt;p&gt;Most web developers know the &lt;a href="http://code.google.com/speed/page-speed/docs/payload.html#CompressImages"&gt;importance of optimizing images&lt;/a&gt; for faster page loading times, but it&amp;rsquo;s also a very cumbersome, time consuming and boring process. Then when you are done, the customer or designer gives you new images to use and you can start the process over and over and over again. The result is that we spend a lot of time optimizing images and also forget to do it from time to time.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I&amp;rsquo;ve been experimenting with a way to automate the process of optimizing images for use on web pages. This has resulted in a Visual Studio 2010 extension to do just that.&lt;/p&gt;
&lt;h2&gt;The extension&lt;/h2&gt;
&lt;p&gt;The idea with automating the optimization is that the images must have the same quality in color and fidelity as before they were optimized. That is done with proven algorithms, and when an image has been optimized, it cannot be further optimized by the same algorithm. Nothing happens if you run the optimization multiple times on the same image &amp;ndash; it will only be optimized the first time.&lt;/p&gt;
&lt;p&gt;If you run the optimization on an image that has already been optimized using other tools, you might still be able to optimize further, but often nothing will happen - the image will not be touched when it has been analyzed and no optimization is found possible.&lt;/p&gt;
&lt;p&gt;In this beta of the Image Optimizer extension, only JPEG and PNG files are supported, but that should hopefully cover ~90% of images in modern websites.&lt;/p&gt;
&lt;p&gt;When you right-click a folder in the Solution Explorer in Visual Studio, you now have a new menu item called &amp;ldquo;Optimize images&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://madskristensen.net/image.axd?picture=2010%2f11%2fcontext-menu.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;When clicking the menu item, the image optimization starts. It looks for all images in the clicked folder and all its subfolders. You can also select multiple folders before right-clicking. As the images are processed, the result of the optimization is printed to the Output Window in Visual Studio.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://madskristensen.net/image.axd?picture=2010%2f11%2foutput-window.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The extension uses &lt;a href="http://optipng.sourceforge.net/"&gt;OptiPNG&lt;/a&gt; for optimizing PNG files and &lt;a href="http://freshmeat.net/projects/jpegoptim/"&gt;jpegoptim&lt;/a&gt; for optimizing JPEG files. I will go into more details about how it works&amp;nbsp;in the coming weeks when the extension is more polished and open sourced.&lt;/p&gt;
&lt;h2&gt;Download&lt;/h2&gt;
&lt;p&gt;Please try it out and give me any feedback that will help improve it.&lt;/p&gt;
&lt;p&gt;Download the extension in the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/a56eddd3-d79b-48ac-8c8f-2db06ade77c3"&gt;Visual Studio Gallery&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/netSlave/~3/tja0Ffu7aS4/post.aspx</link>
      <comments>http://madskristensen.net/post/Image-Optimizer-(beta)-VS2010-extension.aspx#comment</comments>
      <guid isPermaLink="false">http://madskristensen.net/post.aspx?id=e7bb5a59-f49b-49b9-a9aa-788ae268f00a</guid>
      <pubDate>Sun, 07 Nov 2010 15:20:00 -0700</pubDate>
      <category>General</category>
      <dc:publisher>Mads Kristensen</dc:publisher>
      <pingback:server>http://madskristensen.net/pingback.axd</pingback:server>
      <pingback:target>http://madskristensen.net/post.aspx?id=e7bb5a59-f49b-49b9-a9aa-788ae268f00a</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://madskristensen.net/trackback.axd?id=e7bb5a59-f49b-49b9-a9aa-788ae268f00a</trackback:ping>
      <wfw:comment>http://madskristensen.net/post/Image-Optimizer-(beta)-VS2010-extension.aspx#comment</wfw:comment>
      <wfw:commentRss>http://madskristensen.net/syndication.axd?post=e7bb5a59-f49b-49b9-a9aa-788ae268f00a</wfw:commentRss>
    <feedburner:origLink>http://madskristensen.net/post.aspx?id=e7bb5a59-f49b-49b9-a9aa-788ae268f00a</feedburner:origLink></item>
  </channel>
</rss>

