<?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.devmavens.com/~d/styles/itemcontent.css"?><rss version="2.0">
<channel>
    <title>DevMavens Feed</title>
    <link>http://DevMavens.com/</link>
    <description>DevMavens</description>
    <language>en-us</language>
    <docs>http://DevMavens.com/Rss</docs>
 
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.devmavens.com/Devmavens" type="application/rss+xml" /><item>
      <title>Cheesy ASP.NET MVC Project Upgrader for Visual Studio 2010 Beta 1</title>
      <author>Scott Hanselman</author>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/ZeT8yRHNRPw/CheesyASPNETMVCProjectUpgraderForVisualStudio2010Beta1.aspx</link>
      <description>WARNING: This is obscure and you likely don't care.  As Phil mentioned a little while back, ASP.NET MVC didn't ship with Visual Studio 2010 Beta 1, but will ship with Visual Studio 2010 Beta 2 (and beyond.)     When VS10 Beta 2 comes out, you won’t &lt;hr /&gt;Read more: &lt;a href="http://feedproxy.google.com/~r/ScottHanselman/~3/ZeT8yRHNRPw/CheesyASPNETMVCProjectUpgraderForVisualStudio2010Beta1.aspx"&gt;Cheesy ASP.NET MVC Project Upgrader for Visual Studio 2010 Beta 1&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/ScottHanselman"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Sat, 11 Jul 2009 10:41:39 GMT</pubDate>
      <guid>http://feedproxy.google.com/~r/ScottHanselman/~3/ZeT8yRHNRPw/CheesyASPNETMVCProjectUpgraderForVisualStudio2010Beta1.aspx</guid>
    </item>
 
    <item>
      <title>Mandelbrot set in a twitcode</title>
      <author>Bertrand Le Roy</author>
      <link>http://weblogs.asp.net/bleroy/archive/2009/07/10/mandelbrot-set-in-a-twitcode.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://twitter.com/KiniK"&gt;Kinik&lt;/a&gt; just published &lt;a href="http://twitter.com/KiniK/statuses/2575582146"&gt;a pretty amazing #twitcode version&lt;/a&gt; of a &lt;a href="http://en.wikipedia.org/wiki/Mandelbrot_set"&gt;Mandelbrot set&lt;/a&gt; visualization in JavaScript.&lt;/p&gt;  &lt;p&gt;Here’s the code:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;for&lt;/span&gt;(k=84;k-=1/32;document.write(k%3?i%8:&lt;span style="color: #a31515"&gt;'&amp;lt;br/&amp;gt;'&lt;/span&gt;))&lt;br /&gt;&lt;span style="color: blue"&gt;for&lt;/span&gt;(x=y=0,i=99;--i/y;x=t)t=x*x-y*y+1-k%3,y=1-k/42+y*x*2&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;And here’s what it renders:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/bleroy/Mandelbrot_23D68E9F.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mandelbrot" border="0" alt="Mandelbrot" src="http://weblogs.asp.net/blogs/bleroy/Mandelbrot_thumb_286C9959.png" width="504" height="368" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://twitter.com/KiniK/statuses/2575582146"&gt;http://twitter.com/KiniK/statuses/2575582146&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7145174" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/TalesFromTheEvilEmpire/~4/GYu6PvltZM8" height="1" width="1"/&gt; &lt;hr /&gt;Read more: &lt;a href="http://weblogs.asp.net/bleroy/archive/2009/07/10/mandelbrot-set-in-a-twitcode.aspx"&gt;Mandelbrot set in a twitcode&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/TalesFromTheEvilEmpire"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Sat, 11 Jul 2009 04:50:21 GMT</pubDate>
      <guid>http://weblogs.asp.net/bleroy/archive/2009/07/10/mandelbrot-set-in-a-twitcode.aspx</guid>
    </item>
 
    <item>
      <title>A (less) simple include for ASP.NET</title>
      <author>Bertrand Le Roy</author>
      <link>http://weblogs.asp.net/bleroy/archive/2009/07/10/a-less-simple-include-for-asp-net.aspx</link>
      <description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="(c) 2003 Bertrand Le Roy" border="0" alt="(c) 2003 Bertrand Le Roy" align="left" src="http://weblogs.asp.net/blogs/bleroy/DSCN2140_787CAEA3.jpg" width="184" height="244" /&gt; In &lt;a href="http://weblogs.asp.net/bleroy/archive/2009/07/09/a-simple-include-for-asp-net.aspx"&gt;yesterday’s post&lt;/a&gt;, I published the code for a simple include method for ASP.NET that I’ve been using in a couple of places, only to realize that it was fine for what I was doing but probably not very useful beyond that.&lt;/p&gt;  &lt;p&gt;So I spent some time today broadening its scope. It now supports nested includes (I modified the original post to reflect that change) and also setting properties on the control.&lt;/p&gt;  &lt;p&gt;You can still do plain includes:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt; &lt;span style="color: blue"&gt;this&lt;/span&gt;.Include(&lt;span style="color: #a31515"&gt;&amp;quot;contents.ascx&amp;quot;&lt;/span&gt;); &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;But now you can also set properties on the included user control using an anonymous object:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: #ffee62"&gt;&amp;lt;%&lt;/span&gt; &lt;span style="color: blue"&gt;this&lt;/span&gt;.Include(&lt;span style="color: #a31515"&gt;&amp;quot;contents.ascx&amp;quot;&lt;/span&gt;, &lt;span style="color: blue"&gt;new &lt;/span&gt;{number=2, what=&lt;span style="color: #a31515"&gt;&amp;quot;A&amp;quot;&lt;/span&gt;}); &lt;span style="background: #ffee62"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;The code for the helper considerably grew along the way but it’s still reasonable:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Linq;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Reflection;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Web.UI;

&lt;span style="color: blue"&gt;public static class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IncludeHelper &lt;/span&gt;{
    &lt;span style="color: blue"&gt;public static void &lt;/span&gt;Include(&lt;span style="color: blue"&gt;this &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TemplateControl &lt;/span&gt;host,&lt;br /&gt;                               &lt;span style="color: blue"&gt;string &lt;/span&gt;virtualPath) {
        Include(host, virtualPath, &lt;span style="color: blue"&gt;null&lt;/span&gt;);
    }

    &lt;span style="color: blue"&gt;public static void &lt;/span&gt;Include(&lt;span style="color: blue"&gt;this &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TemplateControl &lt;/span&gt;host,&lt;br /&gt;                               &lt;span style="color: blue"&gt;string &lt;/span&gt;virtualPath,&lt;br /&gt;                               &lt;span style="color: blue"&gt;object &lt;/span&gt;properties) {
        &lt;span style="color: blue"&gt;var &lt;/span&gt;resolvedPath = host.ResolveUrl(virtualPath);
        &lt;span style="color: blue"&gt;var &lt;/span&gt;include = host.LoadControl(resolvedPath);
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(properties != &lt;span style="color: blue"&gt;null&lt;/span&gt;) {
            &lt;span style="color: blue"&gt;var &lt;/span&gt;includeType = include.GetType();
            &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;fieldInfo &lt;span style="color: blue"&gt;in&lt;br /&gt;                         &lt;/span&gt;properties.GetType().GetProperties()) {
                &lt;span style="color: blue"&gt;var &lt;/span&gt;targetInfo = includeType.GetMember(&lt;br /&gt;                    fieldInfo.Name,
                    &lt;span style="color: #2b91af"&gt;MemberTypes&lt;/span&gt;.Field |&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;MemberTypes&lt;/span&gt;.Property,
                    &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.IgnoreCase |&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance |&lt;br /&gt;                    &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Public)
                    .FirstOrDefault();
                &lt;span style="color: blue"&gt;var &lt;/span&gt;targetPropertyInfo = targetInfo &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyInfo&lt;/span&gt;;
                &lt;span style="color: blue"&gt;if &lt;/span&gt;(targetPropertyInfo != &lt;span style="color: blue"&gt;null&lt;/span&gt;) {
                    targetPropertyInfo.SetValue(&lt;br /&gt;                        include,&lt;br /&gt;                        fieldInfo.GetValue(properties, &lt;span style="color: blue"&gt;null&lt;/span&gt;),&lt;br /&gt;                        &lt;span style="color: blue"&gt;null&lt;/span&gt;);
                }
                &lt;span style="color: blue"&gt;else &lt;/span&gt;{
                    &lt;span style="color: blue"&gt;var &lt;/span&gt;targetFieldInfo = targetInfo &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;FieldInfo&lt;/span&gt;;
                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(targetFieldInfo != &lt;span style="color: blue"&gt;null&lt;/span&gt;) {
                        targetFieldInfo.SetValue(&lt;br /&gt;                            include,&lt;br /&gt;                            fieldInfo.GetValue(properties, &lt;span style="color: blue"&gt;null&lt;/span&gt;));
                    }
                    &lt;span style="color: blue"&gt;else &lt;/span&gt;{
                        &lt;span style="color: blue"&gt;throw new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ArgumentException&lt;/span&gt;(
                            &lt;span style="color: #a31515"&gt;&amp;quot;There is no property of field with &amp;quot; +&lt;br /&gt;                            &amp;quot;that name on the target control.&amp;quot;&lt;/span&gt;,
                            fieldInfo.Name);
                    }
                }
            }
        }
        &lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;writer =&lt;br /&gt;                   &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HtmlTextWriter&lt;/span&gt;(host.Page.Response.Output)) {
            include.RenderControl(writer);
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;I hope this helps. Again, if you are OK with the regular syntax to include a user controls, you probably shouldn’t use this and stick to what you know. I built this because I’m not entirely satisfied with that syntax and because I have a clear use case where it makes more sense. Make your own opinion and follow it :)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7145123" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/TalesFromTheEvilEmpire/~4/GteMORUT8vU" height="1" width="1"/&gt; &lt;hr /&gt;Read more: &lt;a href="http://weblogs.asp.net/bleroy/archive/2009/07/10/a-less-simple-include-for-asp-net.aspx"&gt;A (less) simple include for ASP.NET&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/TalesFromTheEvilEmpire"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Sat, 11 Jul 2009 02:57:44 GMT</pubDate>
      <guid>http://weblogs.asp.net/bleroy/archive/2009/07/10/a-less-simple-include-for-asp-net.aspx</guid>
    </item>
 
    <item>
      <title>Hanselminutes on 9 - The .NET Micro Framework with Colin Miller</title>
      <author>Scott Hanselman</author>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/Yte8PKsD00M/HanselminutesOn9TheNETMicroFrameworkWithColinMiller.aspx</link>
      <description>I'm was Building 42 yesterday and stopped by the offices of Colin Miller. He runs the .NET Micro Framework, which is a &amp;quot;Tiny CLR&amp;quot; and supporting libraries that run on embedded systems in as little as 32k! (although usually more). &lt;hr /&gt;Read more: &lt;a href="http://feedproxy.google.com/~r/ScottHanselman/~3/Yte8PKsD00M/HanselminutesOn9TheNETMicroFrameworkWithColinMiller.aspx"&gt;Hanselminutes on 9 - The .NET Micro Framework with Colin Miller&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/ScottHanselman"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 22:25:10 GMT</pubDate>
      <guid>http://feedproxy.google.com/~r/ScottHanselman/~3/Yte8PKsD00M/HanselminutesOn9TheNETMicroFrameworkWithColinMiller.aspx</guid>
    </item>
 
    <item>
      <title>Hanselminutes Podcast 170 - Kanban Boards for Agile Project Management with Zen Author Nate Kohari</title>
      <author>Scott Hanselman</author>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/Xq2VKrzCrLM/HanselminutesPodcast170KanbanBoardsForAgileProjectManagementWithZenAuthorNateKohari.aspx</link>
      <description>My one-hundred-and-seventieth podcast is up. Today Scott chats with Nate Kohari, author of Ninject, about Nate's new Kanban-inspired project &amp;quot;Zen.&amp;quot; Are project boards something your agile team should be thinking about?  Links from the Show &lt;hr /&gt;Read more: &lt;a href="http://feedproxy.google.com/~r/ScottHanselman/~3/Xq2VKrzCrLM/HanselminutesPodcast170KanbanBoardsForAgileProjectManagementWithZenAuthorNateKohari.aspx"&gt;Hanselminutes Podcast 170 - Kanban Boards for Agile Project Management with Zen Author Nate Kohari&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/ScottHanselman"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 21:11:49 GMT</pubDate>
      <guid>http://feedproxy.google.com/~r/ScottHanselman/~3/Xq2VKrzCrLM/HanselminutesPodcast170KanbanBoardsForAgileProjectManagementWithZenAuthorNateKohari.aspx</guid>
    </item>
 
    <item>
      <title>Silverlight 3 Released</title>
      <author>Scott Guthrie</author>
      <link>http://weblogs.asp.net/scottgu/archive/2009/07/10/silverlight-3-released.aspx</link>
      <description>&lt;font size="2" face="arial"&gt;   &lt;p&gt;Today we officially shipped the final release of Silverlight 3.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Silverlight 3 Features&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Silverlight 3 is a major update and delivers a ton of new features and capabilities.&amp;#160; Some of the new Silverlight 3 runtime capabilities include:&lt;/p&gt;    &lt;h4&gt;&lt;u&gt;HD Media&lt;/u&gt;&lt;/h4&gt;    &lt;p&gt;Silverlight 3 now supports hardware graphics acceleration – enabling both video and graphics compositing to be offloaded onto a GPU.&amp;#160; This can dramatically lower CPU usage on a computer, and enables HD video to be played on older low end machines.&amp;#160; You can now deliver and play 1080p HD video experiences over the web.&lt;/p&gt;    &lt;p&gt;Silverlight 3 includes new media codec support for H.264 video, AAC audio and MPEG-4 content.&amp;#160; This enables you to easily play and stream media encoded using these standards.&amp;#160; Silverlight 3 also includes raw bitstream audio/video APIs that enable you to create additional codecs (in any .NET language) that support playing any other media format.&amp;#160; Silverlight 3 also adds a variety of additional media features that enable better logging (for media analytics and ad monetization scenarios), provide the ability to disable screen-savers when playing long-form video content, and enable content protection.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.iis.net/media" target="_blank"&gt;IIS Media Services&lt;/a&gt; is a free server product that complements Silverlight and provides the ability to efficiently stream media over HTTP.&amp;#160; It enables both on-demand and live HD video to be delivered using “smooth streaming” - which is an adaptive streaming algorithm that can deliver video at bitrates optimized for a client’s network conditions and CPU capabilities.&amp;#160; Check out &lt;a href="http://www.iis.net/media/experiencesmoothstreaming" target="_blank"&gt;this demo&lt;/a&gt; to see a good example of smooth streaming in action with Silverlight.&lt;/p&gt;    &lt;p&gt;The HD support within Silverlight, combined with the Smooth Streaming support of IIS Media Services, enables a dramatically better video experiences on the web.&amp;#160; This past week alone, we’ve had multiple customers broadcast live HD events using Silverlight and smooth streaming (up to 3MBits) including: Wimbledon, the Tour de France, AVP Volleyball, and the Michael Jackson Memorial Service.&lt;/p&gt;    &lt;h4&gt;&lt;u&gt;Immersive Graphics&lt;/u&gt;&lt;/h4&gt;    &lt;p&gt;The new GPU acceleration capabilities of Silverlight 3 enable even richer and more immersive graphic experiences.&lt;/p&gt;    &lt;p&gt;Silverlight 3 also adds new perspective 3D support that can be used with graphic elements, videos and controls.&amp;#160; Silverlight 3 also includes new bitmap and pixel APIs, as well as the ability to create and apply custom pixel shader effects (e.g. blur, dropshadow, swirl, etc) to any image, video element, or control.&amp;#160; Easing support can also now be used to enable more textured motion within animations.&lt;/p&gt;    &lt;h4&gt;&lt;u&gt;Out of Browser Support&lt;/u&gt;&lt;/h4&gt;    &lt;p&gt;Silverlight 3 enables applications to run outside the browser and taken offline.&amp;#160; Users can safely install web applications on their computers, and create persistent shortcuts to them on the desktop, start menu and taskbar (this is supported on both Windows and the Mac).&lt;/p&gt;    &lt;p&gt;New network detection support within Silverlight enables developers to monitor the network status of a machine and switch between offline and online modes within their applications.&amp;#160; Silverlight 3 also includes an automatic update mechanism for applications – so that clients who have installed applications are automatically updated when new application versions are deployed on the originating webserver.&lt;/p&gt;    &lt;h4&gt;&lt;u&gt;Application Development&lt;/u&gt;&lt;/h4&gt;    &lt;p&gt;Silverlight 3 includes a ton of new application development features.&lt;/p&gt;    &lt;p&gt;The Silverlight 3 runtime/SDK combined with the Silverlight Toolkit now includes ~100 UI controls that enable common scenarios (layout, data, charting, child windows, etc) while also providing full styling and template customization support.&lt;/p&gt;    &lt;p&gt;Silverlight 3 enables richer data binding features.&amp;#160; Element to element binding support between controls is now enabled.&amp;#160; Validation error template support has been added to controls (enabling better error message display).&amp;#160; Hierarchical data binding is supported by the DataGrid.&amp;#160; And a new DataForm control enables better master/detail scenarios.&amp;#160; Silverlight 3 also now enables SaveFileDialog support.&lt;/p&gt;    &lt;p&gt;Silverlight 3 includes a new navigation framework that enables deep-linking and forward/back button integration within the browser.&amp;#160; This also enables search engine optimization (SEO) support so that content within a Silverlight application can be indexed by search engines – including Google, Bing and Yahoo.&amp;#160; Silverlight 3 also supports the ability to cache assemblies on the client, and re-use them across multiple applications (decreasing the download size and improving the startup time of applications).&lt;/p&gt;    &lt;p&gt;Silverlight 3 includes much better text rendering and font support.&amp;#160; Text rendered using Silverlight 3 applications is much crisper and cleaner than previous releases, and applications now have access to local fonts.&amp;#160; The Silverlight 3 styling system also now supports merged resource dictionaries, BasedOn style inheritance support, and the ability for styles to be reset any number of times.&amp;#160; Silverlight 3 also adds richer accessibility support, and is the first browser plug-in to provide access to all system colors, allowing partially-sighted people to make changes such as high contrast color schemes for ease of readability using familiar operating system controls.&lt;/p&gt;    &lt;p&gt;Silverlight 3 includes richer networking support.&amp;#160; WCF error faults are now supported across the network.&amp;#160; Server-side push duplex support is now easier to setup.&amp;#160; Binary XML serialization of payloads is now supported.&amp;#160; The new .NET RIA Services framework (which now has a go-live license) can be used to easily build multi-tier data applications that span the client and server.&amp;#160; .NET RIA Services enables you to write validation code once and have it applied on both the client and middle-tier layers of your applications.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Visual Studio 2008 Tools for Silverlight 3&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are also shipping a free download that enables Silverlight 3 development support for VS 2008 and Visual Web Developer 2008 Express (which is free).&amp;#160; The VS 2008 Tools for Silverlight download provides project support, intellisense, compilation, and debugging for Silverlight 3 applications.&amp;#160; The next release of Visual Studio - VS 2010 - will add to this and provide a fully interactive WYSIWYG designer for Silverlight (including data binding support within the designer).&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en" target="_blank"&gt;Click here to download&lt;/a&gt; the VS 2008 Tools for Silverlight (this will also install the SL3 developer runtime + sdk).&amp;#160; &lt;a href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246" target="_blank"&gt;Click here to download&lt;/a&gt; the Silverlight Toolkit (which adds additional controls).&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Expression Studio 3&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today we are also shipping a release candidate (RC) of Expression Blend 3 (including Sketchflow) that enables rich editing of Silverlight 3 applications and projects.&amp;#160; &lt;/p&gt;    &lt;p&gt;You can download the Expression Blend 3 + Sketchflow RC &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; &lt;/p&gt;    &lt;p&gt;Expression Blend 3 is a &lt;em&gt;major&lt;/em&gt; update and enables dramatically richer tooling support.&amp;#160; Some of its improvements include:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Sketchflow&lt;/strong&gt;: SketchFlow makes it significantly easier to create prototypes, experiment with dynamic user experiences, and incorporate feedback from customers.&amp;#160; If you haven’t seen or tried it yet - you must.&amp;#160; It really is a game changing new way to create great user centric applications. &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Intellisense&lt;/strong&gt;: Blend 3 includes C#, VB and XAML intellisense support.&amp;#160; You can now write code and event handlers within Blend without having to switch to VS.&amp;#160; &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Behaviors&lt;/strong&gt;: Blend 3 includes behavior support which can encapsulate complex design interactions into reusable components that can be directly applied to a control within the design surface.&amp;#160; This enables designers to quickly add functionality and behavior to applications without having to write code. &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Adobe Photoshop and Illustrator Import&lt;/strong&gt;: Blend 3 now has built-in support for importing Photoshop and Illustrator files.&amp;#160; As part of the import process you can view and pick individual Photoshop layers to import, customize and regroup layers, and have Photoshop/Illustrator elements retain their original formats within XAML: including layer positions, editable text and font settings, and vector element conversion to XAML. &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Sample Data:&lt;/strong&gt; Blend 3 adds design-time sample data support which makes it easy to mock up data-connected applications and see what they look like without requiring access to live data.&amp;#160; You can generate sample data or import sample data from an XML file and it is available to controls on the artboard at design-time. You can customize your sample data details, and you can easily switch between using sample data and using live data at run-time. &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;TFS&lt;/strong&gt;: Blend 3 now includes Team Foundation Server (TFS) support – allowing you to use source control and enlist within projects.&amp;#160; Blend shares the same project and solution format as Visual Studio – allowing both VS and Blend to work simultaneously on the same projects and enabling seamless editing between them. &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Other Improvements&lt;/strong&gt;: Additional enhancements including improved animation and easing function support, 3D transform support, visual effects support, and an improved visual state manager designer. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Christian Schormann has a &lt;a href="http://electricbeach.org/?p=214" target="_blank"&gt;great blog post&lt;/a&gt; that describes Expression Blend 3 in more detail.&amp;#160; &lt;/p&gt;    &lt;p&gt;The final release of Expression Studio 3 (which includes the Blend + Sketchflow, Web, Encoder and Design products) will ship within the next 30 days.&amp;#160; Expression Studio 3 will be included as part of the MSDN Premium and higher subscriptions (meaning MSDN Premium customers don’t have to pay anything extra to get all of the Expression Studio products).&amp;#160; Expression Studio 3 will also be available for standalone purchase for $599 (with discounts available for upgrades from previous versions of Expression and/or competitive products).&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Summary&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Today’s release is a major update of our Silverlight stack of products – and comes only 9 months after the release of Silverlight 2.&amp;#160; &lt;/p&gt;    &lt;p&gt;You can learn more about Silverlight 3 and the tools that go along with it from the below sites:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.silverlight.net" target="_blank"&gt;www.silverlight.net&lt;/a&gt; (tutorials, downloads and forums where you can get help) &lt;/li&gt;      &lt;li&gt;&lt;a href="http://expression.microsoft.com/en-us/default.aspx" target="_blank"&gt;expression.microsoft.com&lt;/a&gt; (Expression community home) &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.microsoft.com/silverlight" target="_blank"&gt;www.microsoft.com/silverlight&lt;/a&gt; (Silverlight home – some V3 feature demos &lt;a href="http://www.microsoft.com/silverlight/overview/top-features/default.aspx" target="_blank"&gt;here&lt;/a&gt;)&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7144844" width="1" height="1"&gt; &lt;hr /&gt;Read more: &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/07/10/silverlight-3-released.aspx"&gt;Silverlight 3 Released&lt;/a&gt; | &lt;a href="http://weblogs.asp.net/scottgu/rss.aspx"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 20:35:31 GMT</pubDate>
      <guid>http://weblogs.asp.net/scottgu/archive/2009/07/10/silverlight-3-released.aspx</guid>
    </item>
 
    <item>
      <title>Advertising and the Principle of Least Surprise</title>
      <author>Steve Smith</author>
      <link>http://stevesmithblog.com/blog/advertising-and-the-principle-of-least-surprise/</link>
      <description>&lt;p&gt;Advertising on the Internet is here to stay, and love it or hate it, good advertising is certainly preferable to bad advertising.&amp;#160; One thing that is important for advertising is that it follow the &lt;a href="http://stevesmithblog.com/blog/principle-of-least-surprise/"&gt;Principle of Least Surprise, which I recently discussed as it pertains to software application development&lt;/a&gt;.&amp;#160; In online advertising, this principle can be applied in a couple of ways.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/File:BurmaShaveSigns_Route66.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="800px-BurmaShaveSigns_Route66" border="0" alt="800px-BurmaShaveSigns_Route66" align="right" src="http://stevesmithblog.com/files/media/image/WindowsLiveWriter/AdvertisingandthePrincipleofLeastSurpris_A1AE/800px-BurmaShaveSigns_Route66_3.jpg" width="397" height="225" /&gt;&lt;/a&gt; First, recognize that advertisements in general are an annoyance to users.&amp;#160; Given the choice, 99.3% of users (remember, 75% of all stats are made up on the spot) would do away with advertisements if they could do so without an consequences.&amp;#160; Further, for every cool web application or site on the internet, there are 10 more that are copycats with nearly the same feature set (or will be, in about 6 months after one grows popular).&amp;#160; Thus, annoying users &lt;em&gt;too much&lt;/em&gt; can have grave consequences.&lt;/p&gt;  &lt;p&gt;Second, recognize that users associate products and brands with advertising &lt;em&gt;even if they don’t click on the ads&lt;/em&gt;.&amp;#160; I know, this is crazy talk since so many advertisers think the only thing worth measuring on the interwebs when it comes to ads is clicks, but I’ll let you in on a secret: &lt;em&gt;A lot more users see the ads than click on them&lt;/em&gt;.&amp;#160; Anybody who’s been online for a few years remembers the X10 product because of their annoying pop-under ads.&amp;#160; For a while there, you couldn’t follow 3 links from anywhere online without an X10 ad popping under your window.&amp;#160; I don’t think I ever once clicked on one of those ads, but I certainly closed a lot of them, and now X10 is forever etched in my memory in association with “annoying.”&amp;#160; Now, X10 may consider that a success.&amp;#160; Better to be remembered as annoying than never heard of.&amp;#160; But if you’re Microsoft or Coca-Cola or IBM, folks already know about you, so adding associations with negative emotions is not a good thing.&lt;/p&gt;  &lt;p&gt;So what does this have to do with the Principle of Least Surprise, which is mainly related to user interface design and software usability?&amp;#160; Consider certain modes of advertising, such as pop-up ads, interstitial ads, and ads that take over the user’s screen for some period of time.&amp;#160; Each of these prevents the user from doing what they wanted to be doing, which almost by definition causes annoyance.&amp;#160; What’s more, often these ads make their entrance after some delay, so the user &lt;em&gt;thought&lt;/em&gt; the page had loaded and &lt;em&gt;thought&lt;/em&gt; they could go ahead and start reading/scrolling/navigating an then &lt;strong&gt;BAM&lt;/strong&gt;! in comes this ad to ruin their experience.&amp;#160; Ads that are jarring to the user experience, that surprise the user and/or prevent them from interacting with the application, are violating the PoLS, hurting the usability of the web site/application, and the user is learning to associate the product or company that is responsible for the ad with this negative experience.&lt;/p&gt;  &lt;p&gt;Likewise, in traditional non-intrusive ads, the PoLS applies to the experience the customer receives when they click on the ad.&amp;#160; Consider an ad that offers a “Free Trial – Click Here” which is not at all uncommon.&amp;#160; If the user clicks on this ad and is immediately taken to the “Download Trial” page, that is no surprise.&amp;#160; It’s exactly what the user expected and it’s very likely that a fairly large percentage of the users who clicked on the ad will then proceed to download the trial software (a great many still won’t for various reasons, but not because they were surprised about where the ad took them).&amp;#160; Now consider the all-too-common alternate scenario, where the user is taken to the company’s home page or to the product’s home page.&amp;#160; Most home pages make poor landing pages for advertisements – the offer and call to action in the advertisement should be reinforced consistently in the landing page, and it’s unlikely that a company or product home page will be so designed to match any given ad.&amp;#160; Further, the home page or product page will almost certainly include a link to “Buy Now”.&amp;#160; This is good design – it’s important for users to be able to easily be able to purchase products from the site.&amp;#160; However, if the user arrived at this page from an advertisement promising “Free Trial” and now the only prominent link they see on the page is “Buy Now”, they’re going to feel tricked.&amp;#160; It reeks of classic bait-and-switch tactics.&amp;#160; The user experience is going to be surprise, followed quickly by resentment and anger that they were tricked into clicking on something with the promise of a free trial only to be immediately asked to pull out their wallet and “Buy Now”.&lt;/p&gt;  &lt;p&gt;Effective online advertising campaigns should consist of more than a text ad or banner that links to the home page.&amp;#160; The most effective campaigns include a custom offer or call to action which must be tied into a landing page experience that explains and reinforces this call to action.&amp;#160; If the ad promises a free trial, then the most prominent link on the landing page should be to download the free trial.&amp;#160; If you remember the Principle of Least Surprise and optimize the user’s experience as they go from ad to landing page to wherever that takes them next, your users will have a much more pleasant experience, and even the ones who don’t buy today will at least retain this positive association with your company, brand, or product.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/StevenSmith/~4/viW8hIjAdvc" height="1" width="1"/&gt; &lt;hr /&gt;Read more: &lt;a href="http://stevesmithblog.com/blog/advertising-and-the-principle-of-least-surprise/"&gt;Advertising and the Principle of Least Surprise&lt;/a&gt; | &lt;a href="http://feeds.stevesmithblog.com/StevenSmith"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 19:28:00 GMT</pubDate>
      <guid>http://stevesmithblog.com/blog/advertising-and-the-principle-of-least-surprise/</guid>
    </item>
 
    <item>
      <title>Keeping ELMAH's Error Log Size In Check</title>
      <author>Scott Mitchell</author>
      <link>http://feedproxy.google.com/~r/ScottOnWriting/~3/4iNGWZ2sP3Y/13882.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://code.google.com/p/elmah/"&gt;Error Logging Modules And Handlers (ELMAH)&lt;/a&gt; is a free, open source error logging library for ASP.NET applications that provides automated error logging and notification and, unlike health monitoring, offers a built-in log viewer web page along with a host of other nifty features. If you're not using ELMAH or have never heard of it I highly recommend that you check it out. It's the first thing I add to any new ASP.NET project I start.&lt;/p&gt;
&lt;p&gt;As with any sort of logging service is is important that ELMAH's log be periodically pruned. If you let ELMAH's log grow unchecked it can reduce performance when querying the log and suck up disk space, which is especially important in hosted environments where there are typically hard disk quote limits for each user on the database server. The good news is that there are a number of techniques you can employ to help ensure that your ELMAH error log stays a reasonable size.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Use error filtering.&lt;/strong&gt; ELMAH offers a rich set of error filtering rules that you can use to instruct ELMAH &lt;em&gt;not&lt;/em&gt; to log certain types of errors, which can help keep ELMAH's log size down. I use error filtering to filter out 404 errors. While logging 404 errors can alert you to broken URLs on your site or others, if you've ever managed an Internet-facing website you know that it's not uncommon to receive a deluge of requests from bots searching for security holes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Setup a weekly job in SQL Server.&lt;/strong&gt; If your website is hosted in a dedicated environment you can (likely) setup a job on SQL Server. In past projects I've used a job that ran once a week on Sunday at 2:00 AM that would delete all ELMAH log entries older than three months.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update the &lt;font face="Courier New"&gt;ELMAH_LogError&lt;/font&gt; stored procedure to delete old log entries. &lt;/strong&gt;This approach works well for applications in a shared environment as you do not need permissions to create SQL jobs, but rather just permission to create/alter a stored procedure. The &lt;font face="Courier New"&gt;ELMAH_LogError&lt;/font&gt; stored procedure is the stored procedure used by the SQL Server provider for logging errors; it inserts a record into the &lt;font face="Courier New"&gt;ELMAH_Error&lt;/font&gt; table. Update this table by adding a &lt;font face="Courier New"&gt;DELETE&lt;/font&gt; statement that deletes all log records older than a certain threshold. For example, the following &lt;font face="Courier New"&gt;DELETE&lt;/font&gt; statement removes all log entries more than 90 days old.&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;DELETE FROM [ELMAH_Error]&lt;br /&gt;WHERE TimeUtc &amp;lt; DATEDIFF(d, -90, getdate())&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Add the above statement after the &lt;font face="Courier New"&gt;INSERT&lt;/font&gt; statement in the stored procedure. Doing so will cause the error log to be pruned of entries older than 90 days anytime a new error is logged. (I've never used an ELMAH log provider other than the SQL Server provider, so I'm not certain what stored procedures or queries or other things would need to be changed to implement such log trimming using an alternate provider.)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Keep in mind that trimming the error log brings with it a &lt;a href="http://scottonwriting.net/sowblog/posts/13765.aspx"&gt;tradeoff&lt;/a&gt;: you are removing error log entries that might be important for analysis later in time. If this is the case, if you think you might need to review that error log from more than 90 days in the past, then before deleting records from the error log you should archive them somewhere.&lt;/p&gt;
&lt;p&gt;Happy Programming!&lt;/p&gt; &lt;hr /&gt;Read more: &lt;a href="http://feedproxy.google.com/~r/ScottOnWriting/~3/4iNGWZ2sP3Y/13882.aspx"&gt;Keeping ELMAH's Error Log Size In Check&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/ScottOnWriting"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 12:52:00 GMT</pubDate>
      <guid>http://feedproxy.google.com/~r/ScottOnWriting/~3/4iNGWZ2sP3Y/13882.aspx</guid>
    </item>
 
    <item>
      <title>SubSonic 3.0.0.2 Is Released</title>
      <author>Rob Conery</author>
      <link>http://feedproxy.google.com/~r/wekeroad/EeKc/~3/agIAr2sMeec/</link>
      <description>Yes, I know how it looks, but I also know that most of the bug reports stem from the same bugs, so the sooner I get that out of the way, the closer we are to stability.
I can’t thank the contributors enough for their help, and also the people who stick it out with me [...] &lt;hr /&gt;Read more: &lt;a href="http://feedproxy.google.com/~r/wekeroad/EeKc/~3/agIAr2sMeec/"&gt;SubSonic 3.0.0.2 Is Released&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/wekeroad/EeKc"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 08:10:11 GMT</pubDate>
      <guid>http://feedproxy.google.com/~r/wekeroad/EeKc/~3/agIAr2sMeec/</guid>
    </item>
 
    <item>
      <title>How Not to Advertise on the Internet</title>
      <author>Jeff Atwood</author>
      <link>http://www.codinghorror.com/blog/archives/001286.html</link>
      <description>Browser based games are all the rage, and understandably so. Why not build your game for the largest audience in the world, using freely available technology, and pay zero licensing fees?

One such game is Evony, formerly known as Civony -- a &lt;hr /&gt;Read more: &lt;a href="http://www.codinghorror.com/blog/archives/001286.html"&gt;How Not to Advertise on the Internet&lt;/a&gt; | &lt;a href="http://feeds.feedburner.com/codinghorror"&gt;Subscribe&lt;/a&gt;</description>
      <pubDate>Fri, 10 Jul 2009 03:59:59 GMT</pubDate>
      <guid>http://www.codinghorror.com/blog/archives/001286.html</guid>
    </item>
 
  </channel>
</rss>
