<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-757209515540162326</id><updated>2010-02-01T17:17:23.568-06:00</updated><title type='text'>I Heart Microsoft</title><subtitle type='html'>(not really)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.newslacker.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default?start-index=26&amp;max-results=25'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>53</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-6336818564738214350</id><published>2009-09-04T21:10:00.005-05:00</published><updated>2009-09-04T21:29:17.270-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='Reflection'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ: Convert Anonymous Type</title><content type='html'>I wanted to use an anonymous type with a report viewer control in ASP.NET... of course that doesn't work unless you have a strongly typed object. And here's how I did it:&lt;br /&gt;&lt;code&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// The class of object I want to return&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        public class MyClass&lt;br /&gt;        {&lt;br /&gt;            public int id { get; set; }&lt;br /&gt;            public string text { get; set; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// The class used as the data source&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        public class SourceClass&lt;br /&gt;        {&lt;br /&gt;            public int source_id { get; set; }&lt;br /&gt;            public string source_text { get; set; }&lt;br /&gt;            public string source_unused { get; set; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// The method that queries the data source&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        public IEnumerable&amp;lt;MyClass&amp;gt; Get()&lt;br /&gt;        {&lt;br /&gt;            // strongly typed datasource&lt;br /&gt;            var list = new List&amp;lt;SourceClass&amp;gt;();&lt;br /&gt;            list.Add(new SourceClass { source_id = 1, source_text = "test 1", source_unused = "" });&lt;br /&gt;            list.Add(new SourceClass { source_id = 2, source_text = "test 2", source_unused = "" });&lt;br /&gt;            list.Add(new SourceClass { source_id = 3, source_text = "test 3", source_unused = "" });&lt;br /&gt;            list.Add(new SourceClass { source_id = 4, source_text = "test 4", source_unused = "" });&lt;br /&gt;&lt;br /&gt;            // query the list, map fields as new anonymous type&lt;br /&gt;            var results = from x in list &lt;br /&gt;                          select new { id = x.source_id, text = x.source_text };&lt;br /&gt;                        &lt;br /&gt;            // pass into the method as array of objects (can't cast an anonymous type to anything else)&lt;br /&gt;            return ConvertAnonymousType&amp;lt;MyClass&amp;gt;(results.ToArray());&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Converts a list of objects into a list of strongly typed objects.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="anonymouslyTypedList"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static IEnumerable&amp;lt;T&amp;gt; ConvertAnonymousType&amp;lt;T&amp;gt;(IEnumerable&amp;lt;object&amp;gt; list)&lt;br /&gt;        {&lt;br /&gt;            var stronglyTypedList = (List&amp;lt;T&amp;gt;) Activator.CreateInstance(typeof(List&amp;lt;T&amp;gt;), null);&lt;br /&gt;&lt;br /&gt;            foreach (var item in list)&lt;br /&gt;            {&lt;br /&gt;                var obj = (T) Activator.CreateInstance(typeof(T), null);&lt;br /&gt;                foreach (System.Reflection.PropertyInfo pi in typeof(T).GetProperties())&lt;br /&gt;                {&lt;br /&gt;                    var value = typeof(T).GetProperty(pi.Name).GetValue(item, null);&lt;br /&gt;                    typeof(T).GetProperty(pi.Name).SetValue(obj, value, null);&lt;br /&gt;                }&lt;br /&gt;                stronglyTypedList.Add(obj);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return stronglyTypedList;&lt;br /&gt;        }&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-6336818564738214350?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/6336818564738214350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=6336818564738214350' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6336818564738214350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6336818564738214350'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/09/linq-convert-anonymous-type.html' title='LINQ: Convert Anonymous Type'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-8940984697851624119</id><published>2009-07-07T14:08:00.007-05:00</published><updated>2009-07-07T14:45:30.030-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>SharePoint: Search Not Indexing</title><content type='html'>&lt;p&gt;At some point SharePoint 3.0 stopped indexing sites. That point must have been when updates were applied to the server, including one for .NET 3.5 SP1. At that point some vulnerability was patched, enabling this loop back check. The search service could no longer see the sites. Once the above entry was added the sites were suddenly available again without rebooting.&lt;/p&gt;&lt;strong&gt;The Error:&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content.&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;The Solution:&lt;/strong&gt;&lt;br /&gt;Disable the loopback check&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Click Start, click Run, type regedit, and then click OK.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In Registry Editor, locate and then click the following registry key:&lt;br /&gt;&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Right-click Lsa, point to New, and then click DWORD Value.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Type DisableLoopbackCheck, and then press ENTER.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Right-click DisableLoopbackCheck, and then click Modify.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the Value data box, type 1, and then click OK.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Quit Registry Editor, and then restart your computer.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;h4&gt;Misc Troubleshooting&lt;/h4&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Check the logs: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Check the database (&lt;emphasis&gt;server/WSS_Search&lt;/emphasis&gt;):&lt;br /&gt;&lt;code&gt;select DisplayURl, l.ErrorDesc, el.ErrorMsg, LastTouchStart, HostID, StartAddressID from MSSCrawlUrlLog l&lt;br /&gt; left outer join MSSCrawlErrorList el on l.ErrorID = el.ErrorID order by LastTouchStart&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-8940984697851624119?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/8940984697851624119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=8940984697851624119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/8940984697851624119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/8940984697851624119'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/07/sharepoint-search-not-indexing.html' title='SharePoint: Search Not Indexing'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-1085496920726110048</id><published>2009-05-27T11:23:00.004-05:00</published><updated>2009-05-27T11:32:30.466-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2003'/><title type='text'>Windows Server 2003: IIS not running aspx pages</title><content type='html'>Usually indicated by a "page not found" error even though you can get at static files like images, stylesheets, etc.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Open IIS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Expand Web Service Extensions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Make sure ASP.NET v1.1.4322 and ASP.NET v2.0.50727 are both allowed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If v2.0 is missing, run:&lt;code&gt;aspnet_regiis -i&lt;/code&gt; from the command line to add it&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-1085496920726110048?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/1085496920726110048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=1085496920726110048' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/1085496920726110048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/1085496920726110048'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/05/windows-server-2003-iis-not-running.html' title='Windows Server 2003: IIS not running aspx pages'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-5784199775064077952</id><published>2009-05-27T10:41:00.009-05:00</published><updated>2009-05-27T10:55:18.205-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xcopy'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>XCOPY: Exclude .CS and not .CSS</title><content type='html'>Add the following to your exclude text file:&lt;br /&gt;&lt;code&gt;.cs\&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Example:&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;From the command line...&lt;br /&gt;&lt;code&gt;xcopy c:\from.path c:\to.path /D /E /Y /EXCLUDE:exclude.txt&lt;/code&gt;&lt;br /&gt;With the following exclude.txt file (relative to the working directory):&lt;pre&gt;.config&lt;br /&gt;.sln&lt;br /&gt;.suo&lt;br /&gt;.csproj&lt;br /&gt;.vbproj&lt;br /&gt;.cs\&lt;br /&gt;.vb&lt;br /&gt;.pdb&lt;br /&gt;.refresh&lt;/pre&gt;Note: I know robocopy exists, I just haven't messed with it.&lt;br/&gt;Note: "XCOPY /D /E /Y" copies all files and directories recursively without prompting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-5784199775064077952?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/5784199775064077952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=5784199775064077952' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/5784199775064077952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/5784199775064077952'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/05/xcopy-exclude-cs-and-not-css.html' title='XCOPY: Exclude .CS and not .CSS'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-3084595249493108458</id><published>2009-05-19T10:53:00.003-05:00</published><updated>2009-05-19T10:55:16.198-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL 2005: CTE Example</title><content type='html'>&lt;code&gt;WITH MyCTE (Col1, Col2) (&lt;br /&gt;    SELECT Col1, Col2 FROM MyTable&lt;br /&gt;    UNION&lt;br /&gt;    SELECT Col1, Col2 FROM MyOtherTable&lt;br /&gt;)&lt;br /&gt;SELECT * FROM MyCTE&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-3084595249493108458?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/3084595249493108458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=3084595249493108458' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3084595249493108458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3084595249493108458'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/05/sql-2005-cte-example.html' title='SQL 2005: CTE Example'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-7548235542638891843</id><published>2009-03-16T10:59:00.004-05:00</published><updated>2009-03-16T11:14:36.747-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Rant: My Upgrade to .NET 3.5</title><content type='html'>&lt;p&gt;I've made the leap to ASP.NET 3.5 from 2.0. I'm sure that I'm not completely out of the 2.0 woods yet but I'm really liking the added dynamic features like &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx"&gt;Automatic Properties, Object Initializers, and Collection Initializers&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/03/13/new-orcas-language-feature-extension-methods.aspx"&gt;Extension Methods&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/08/new-orcas-language-feature-lambda-expressions.aspx"&gt;Lambda Expressions&lt;/a&gt;, and some helpful info on &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/21/new-orcas-language-feature-query-syntax.aspx"&gt;Query Syntax with LINQ&lt;/a&gt;. With the culmination of those technologies and the new &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; framework, I'm seeing Microsoft in a whole new light.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now, if I can memorize the syntax...&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Automatic Properties&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;public class Person {&lt;br /&gt;     public string FirstName { get; set; }&lt;br /&gt;     public string LastName  { get; set; }     &lt;br /&gt;     public int    Age       { get; set; }&lt;br /&gt; }&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;Object Initializers&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;Person person = new Person { FirstName="Scott", LastName="Guthrie", Age=32 };&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;Collection Initializers&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;List&lt;person&gt; people = new List&lt;person&gt;();&lt;br /&gt;people.Add( new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 } );&lt;/person&gt;&lt;/person&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-7548235542638891843?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/7548235542638891843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=7548235542638891843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/7548235542638891843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/7548235542638891843'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/03/rant-my-upgrade-to-net-35.html' title='Rant: My Upgrade to .NET 3.5'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-9211493789250111703</id><published>2009-01-27T10:28:00.005-06:00</published><updated>2009-01-27T11:41:10.778-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><title type='text'>Rant: Freedom vs Safety</title><content type='html'>The following explains why I regret my descent into programming over the last 12 years:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.journalhome.com/codecraft/9003/"&gt;Code Craft: Freedom vs Safety Languages&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001216.html"&gt;Coding Horror: A Scripter at Heart&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So I hate Microsoft, both because they only allow safety languages at their core, and because they are in a constant state of change. The use of safety languages in a realm where freedom languages should reign is unacceptable to me. It is a backward methodology, making client side interaction more complicated than I ever thought possible. To reverse the trend, and make my life more tolerable, I have tried to circumvent Microsoft's best practices by implementing the following:&lt;ol&gt;&lt;li&gt;Generate a data access layer (&lt;a href="http://www.mygenerationsoftware.com/portal/default.aspx"&gt;MyGeneration&lt;/a&gt; was recommended to me)&lt;/li&gt;&lt;li&gt;Define Views for the data in the code behind in an aspx/asmx that acts as an API&lt;/li&gt;&lt;li&gt;Implement &lt;a href="http://www.stringtemplate.org/"&gt;StringTemplate&lt;/a&gt; to render any dynamic web pages using data provided by Views.&lt;/li&gt;&lt;li&gt;Implement &lt;a href="http://www.mootools.net/"&gt;Mootools&lt;/a&gt; and/or &lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt; for the user interface.&lt;/li&gt;&lt;/ol&gt;I have spent roughly nine months working on this architecture and have nearly reached step 4, the fun part. Data access with caching, views that expose data, and virtualized pages using templates have all been completed. So now I'm almost functionally equivalent to where I was 1.5 years ago working with &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt; and &lt;a href="http://python.org/"&gt;Python&lt;/a&gt;. Thanks Microsoft!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-9211493789250111703?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/9211493789250111703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=9211493789250111703' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/9211493789250111703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/9211493789250111703'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/01/rant-freedom-vs-safety.html' title='Rant: Freedom vs Safety'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-5608315435638918070</id><published>2009-01-09T13:18:00.005-06:00</published><updated>2009-01-09T16:34:57.857-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>.NET 2.0: Return a property value from an object dynamically</title><content type='html'>&lt;code&gt;public static object GetObjectProperty(object o, string property)&lt;br /&gt;{&lt;br /&gt;   return o.GetType().GetProperty(property).GetValue(o, null);&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;AKA the simplest reflection you can use. Right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-5608315435638918070?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/5608315435638918070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=5608315435638918070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/5608315435638918070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/5608315435638918070'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/01/net-20-return-property-value-from.html' title='.NET 2.0: Return a property value from an object dynamically'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-4985992002225098464</id><published>2009-01-06T14:55:00.005-06:00</published><updated>2009-01-06T14:59:47.860-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005: Recursive Query (aka Common Table Expression)</title><content type='html'>SQL recursion for cascading results from the same table.&lt;br /&gt;&lt;code&gt;-- UP THE TREE&lt;br /&gt;DECLARE @Id INT&lt;br /&gt;SET @Id = 1&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;WITH myTree (Id, ParentId, Field)&lt;br /&gt;AS (&lt;br /&gt; -- anchor member declaration&lt;br /&gt; SELECT Id, ParentId, Field FROM myTable WHERE ParentId = @Id&lt;br /&gt;  UNION ALL &lt;br /&gt; -- recursive member declaration&lt;br /&gt; SELECT myTable.Id, myTable.ParentId, myTable.Field FROM myTable INNER JOIN myTree ON myTree.Id = myTable.ParentId&lt;br /&gt;)&lt;br /&gt;SELECT DISTINCT * FROM myTable INNER JOIN myTree ON myTree.Id = myTable.Id&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- DOWN THE TREE&lt;br /&gt;BEGIN&lt;br /&gt;WITH myTree (Id, ParentId, Field)&lt;br /&gt;AS (&lt;br /&gt; -- anchor member declaration&lt;br /&gt; SELECT Id, ParentId, Field FROM myTable WHERE Id = @Id&lt;br /&gt;  UNION ALL &lt;br /&gt; -- recursive member declarationjavascript:void(0)&lt;br /&gt; SELECT myTable.Id, myTable.ParentId, myTable.Field FROM myTable&lt;br /&gt;  INNER JOIN myTree ON myTree.ParentId = myTable.OrgId&lt;br /&gt;)&lt;br /&gt;SELECT DISTINCT * FROM myTable INNER JOIN myTree ON myTree.Id = myTable.Id&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I can't believe they call recursive queries "common table expressions." Who does that make sense to?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-4985992002225098464?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/4985992002225098464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=4985992002225098464' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/4985992002225098464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/4985992002225098464'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/01/sql-server-2005-recursive-query-aka.html' title='SQL Server 2005: Recursive Query (aka Common Table Expression)'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-3970474228893191093</id><published>2009-01-06T14:41:00.003-06:00</published><updated>2009-01-06T17:09:38.972-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005: Cursor Example</title><content type='html'>&lt;code&gt;DECLARE @id INT&lt;br /&gt;DECLARE db_cursor CURSOR FOR &lt;br /&gt;SELECT id From myTable&lt;br /&gt;OPEN db_cursor  &lt;br /&gt;FETCH NEXT FROM db_cursor INTO @id&lt;br /&gt;&lt;br /&gt;WHILE @@FETCH_STATUS = 0  &lt;br /&gt;BEGIN  &lt;br /&gt;       -- do something&lt;br /&gt;       FETCH NEXT FROM db_cursor INTO @id&lt;br /&gt;END  &lt;br /&gt;&lt;br /&gt;CLOSE db_cursor  &lt;br /&gt;DEALLOCATE db_cursor&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I have a terrible time remembering SQL syntax.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-3970474228893191093?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/3970474228893191093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=3970474228893191093' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3970474228893191093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3970474228893191093'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2009/01/sql-server-2005-cursor-example.html' title='SQL Server 2005: Cursor Example'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-7555168939378840796</id><published>2008-12-18T16:57:00.002-06:00</published><updated>2008-12-18T17:00:53.964-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005: Database Recovery</title><content type='html'>I'm hoping this code will work when I try disaster recovery after tonight's failed deployment:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Configure Database for Single User&lt;br /&gt;&lt;code&gt;ALTER DATABASE mydatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Restore Database&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Configure for Multi User&lt;br /&gt;&lt;code&gt;ALTER DATABASE mydatabase SET MULTI_USER&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-7555168939378840796?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/7555168939378840796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=7555168939378840796' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/7555168939378840796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/7555168939378840796'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/12/sql-server-2005-database-recovery.html' title='SQL Server 2005: Database Recovery'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-6200440545248780649</id><published>2008-11-03T16:04:00.003-06:00</published><updated>2008-11-03T16:07:22.970-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mootools'/><category scheme='http://www.blogger.com/atom/ns#' term='telerik'/><category scheme='http://www.blogger.com/atom/ns#' term='MochaUI'/><title type='text'>Telerik: Replace with Mootools + MochaUI?</title><content type='html'>One day I'm going to replace all consumer facing ASP.NET with Mootools and Mocha UI. What I will gain is a simple, smooth user interface that makes sense. What I have now is a bunch of broken bricks in a pile that the user gets to dig around in.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://demos.telerik.com/aspnet/prometheus/Controls/Examples/Default/DefaultCS.aspx"&gt;Telerik&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mootools.net/"&gt;MooTools&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mochaui.com/demo/"&gt;MochaUI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-6200440545248780649?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/6200440545248780649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=6200440545248780649' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6200440545248780649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6200440545248780649'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/11/telerik-replace-with-mootools-mochaui.html' title='Telerik: Replace with Mootools + MochaUI?'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-3800788612928173966</id><published>2008-11-03T15:52:00.005-06:00</published><updated>2008-11-03T15:59:42.335-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telerik'/><category scheme='http://www.blogger.com/atom/ns#' term='Rants'/><title type='text'>Telerik: Impression after month 3</title><content type='html'>I hate Telerik. As if Microsoft .NET controls weren't crippling enough, third parties like this had to come along and add in their own set of configurable controls. Don't get me wrong, their demos are top notch. I saw that the functionality I needed was available in one form or another and that they would get the job done just fine. I even committed to just learning to do everything on the client side with their API. &lt;br /&gt;&lt;br /&gt;Boy was I naive. Page loads now take forever due to size and the amount of processing it takes to render all of these fancy new controls. Ajax is now REQUIRED for an application to run smoothly or else you are looking at cripplingly heavy pages in excess of 800k/load. And speaking of using Ajax to load anything, why is there no transition property? Does everything have to be so jarringly ugly in the land of Microsoft? I'm so disgusted with myself for choosing this software package and making my boss believe that it would save us development time. All I have now is the ugliest admin tool I could ever have fathomed that runs 10x slower than the equivalent in Django and is far more inflexible without a tremendous amount of custom coding and configuration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-3800788612928173966?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/3800788612928173966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=3800788612928173966' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3800788612928173966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3800788612928173966'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/11/telerik-impression-after-month-3.html' title='Telerik: Impression after month 3'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-3427348978053283039</id><published>2008-11-03T15:46:00.003-06:00</published><updated>2008-11-03T16:00:06.687-06:00</updated><title type='text'>Telerik: Running Javascript after Ajax Postback</title><content type='html'>&lt;code&gt;RadAjaxPanel1.ResponseScripts.Add("alert('i hate microsoft (and telerik too)');");&lt;/code&gt;&lt;br /&gt;The trick here is to add functions to globally available scripts (I attached my functions to a script loaded in the master page) and call them from within an Update Panel. In this case a RadAjaxPanel. One day I might figure out why ScriptManager.RegisterStartupScripts doesn't do anything, yet doesn't throw an error either. Until then, this is my solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-3427348978053283039?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/3427348978053283039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=3427348978053283039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3427348978053283039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/3427348978053283039'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/11/telerik-running-javascript-after-ajax.html' title='Telerik: Running Javascript after Ajax Postback'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-4311551900619580859</id><published>2008-10-31T10:56:00.001-05:00</published><updated>2008-10-31T10:58:10.470-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005: Create Index Script Example</title><content type='html'>&lt;code&gt;create nonclustered index IX_TableName on Database.dbo.TableName (Column1, Column2, Column3)&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-4311551900619580859?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/4311551900619580859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=4311551900619580859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/4311551900619580859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/4311551900619580859'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/10/sql-2005-create-index-script-example.html' title='SQL Server 2005: Create Index Script Example'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-6199034060095054712</id><published>2008-07-16T16:43:00.002-05:00</published><updated>2008-07-16T16:52:16.419-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Management Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005: Data Flow Task: The product level is insufficient for component</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Problem:&lt;/span&gt; You fail to import data using the SQL Server Import and Export Wizard. In the validating step you check the messages only to find that it has failed because "The product level is insufficient for component..."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt; Rerun SQL 2005 setup on your local machine and be sure to check "Integration Services."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; I was confused by people telling me to look around for "SSIS" in setup. It actually goes by the name "SQL Server Intergration Services"... the windows service is conveniently names as such.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-6199034060095054712?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/6199034060095054712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=6199034060095054712' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6199034060095054712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6199034060095054712'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/sql-server-2005-data-flow-task-product.html' title='SQL Server 2005: Data Flow Task: The product level is insufficient for component'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-7105307237150157906</id><published>2008-07-11T16:47:00.003-05:00</published><updated>2009-11-06T07:14:39.751-06:00</updated><title type='text'>ASP.NET: Display an image from a stream</title><content type='html'>&lt;pre&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    Response.Clear();&lt;br /&gt;    Response.ContentType = "image/jpg";&lt;br /&gt;    System.Drawing.Image image = System.Drawing.Image.FromFile("c:\temp\somefile.jpg");&lt;br /&gt;    image.Save(Response.OutputStream, ImageFormat.Jpeg);&lt;br /&gt;    Response.End();&lt;br /&gt;}&lt;/pre&gt;This page loads an image from disk, converts it to a stream and writes it as the response for this page. The source would probably be binary data stored in a database or from a zip file in memory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-7105307237150157906?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/7105307237150157906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=7105307237150157906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/7105307237150157906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/7105307237150157906'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/aspnet-display-image-from-stream.html' title='ASP.NET: Display an image from a stream'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-8240040782000897798</id><published>2008-07-08T10:25:00.004-05:00</published><updated>2008-07-08T10:35:19.717-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#: Conditional Shorthand</title><content type='html'>&lt;pre&gt;return (i == 1) ? true : false;&lt;/pre&gt;is equivalent to&lt;pre&gt;if (i == 1)&lt;br /&gt; return true;&lt;br /&gt;else&lt;br /&gt; return false;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;"Null" Conditional Shorthand&lt;br /&gt;&lt;pre&gt;return myObject ?? new Object();&lt;/pre&gt;is equivalent to&lt;pre&gt;if (myObject == null)  &lt;br /&gt; return new Object();&lt;br /&gt;else&lt;br /&gt; return myObject;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-8240040782000897798?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/8240040782000897798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=8240040782000897798' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/8240040782000897798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/8240040782000897798'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/c-conditional-shorthand.html' title='C#: Conditional Shorthand'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-6775475458869417517</id><published>2008-07-08T10:19:00.007-05:00</published><updated>2008-07-08T10:34:02.659-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shortcuts'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#: Array initializer in a foreach loop</title><content type='html'>I find this comes in handy now and again:&lt;br /&gt;&lt;pre&gt;foreach (string x in new string[] { "x1", "x2", "x3" }) &lt;br /&gt;{&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-6775475458869417517?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/6775475458869417517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=6775475458869417517' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6775475458869417517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/6775475458869417517'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/c-array-initializer-in-foreach-loop.html' title='C#: Array initializer in a foreach loop'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-521342066701621805</id><published>2008-07-07T12:30:00.001-05:00</published><updated>2008-07-07T12:33:09.154-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>SQL Server 2005: Select a random row</title><content type='html'>&lt;pre&gt;SELECT TOP 1 column FROM table&lt;br /&gt;ORDER BY &lt;strong&gt;NEWID()&lt;/strong&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://www.petefreitag.com/item/466.cfm"&gt;...for other platforms&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-521342066701621805?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/521342066701621805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=521342066701621805' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/521342066701621805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/521342066701621805'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/sql-server-2005-select-random-row.html' title='SQL Server 2005: Select a random row'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-1246687348432041266</id><published>2008-07-03T09:30:00.004-05:00</published><updated>2008-07-03T09:40:38.291-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Management Studio'/><title type='text'>SQL Server Management Studio: Enter null values</title><content type='html'>Problem: You want to enter a null value into a field using the "Open Table" view.&lt;br /&gt;&lt;br /&gt;Solution: Press &lt;span style="font-weight: bold;"&gt;Ctrl + 0&lt;/span&gt; (zero) with the field highlighted.&lt;br /&gt;&lt;br /&gt;Notes: I kept pressing Ctrl - O (oh) and getting nowhere. I believe all fonts should use slashed zeros to prevent confusion in this matter. Works in Management Studio and Enterprise Manager.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-1246687348432041266?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/1246687348432041266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=1246687348432041266' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/1246687348432041266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/1246687348432041266'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/sql-server-management-studio-enter-null.html' title='SQL Server Management Studio: Enter null values'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-346317773671616372</id><published>2008-07-02T11:42:00.004-05:00</published><updated>2008-07-03T09:39:45.893-05:00</updated><title type='text'>Windows Server 2003: Turn on "allow remote desktop connections" remotely</title><content type='html'>If you get this:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;The client could not connect to the remote computer.&lt;br /&gt;&lt;br /&gt;Remote connections might not be enabled or the computer might be too busy to accept new connections.&lt;br /&gt;It is also possible that network problems are preventing your connection.&lt;br /&gt;&lt;br /&gt;Please try connecting again later. If the problem continues to occur, contact your administrator.&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_krfX3yW9NZA/SGuxcNIiyfI/AAAAAAAAAF4/y_xx86o616c/s1600-h/remote-desktop.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_krfX3yW9NZA/SGuxcNIiyfI/AAAAAAAAAF4/y_xx86o616c/s320/remote-desktop.JPG" alt="" id="BLOGGER_PHOTO_ID_5218459691358800370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Try this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Connect to a machine in the domain.&lt;/li&gt;&lt;li&gt;Start --&gt; Run --&gt; regedit --&gt; OK&lt;/li&gt;&lt;li&gt;File --&gt; Connect Ntwork Registry&lt;/li&gt;&lt;li&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server&lt;/li&gt;&lt;li&gt;You will find a REG_DWORD value named fDenyTSConnection.  Change this from 1 to 0.&lt;/li&gt;&lt;li&gt;Start a command prompt.&lt;/li&gt;&lt;li&gt;Issue a restart of the machine that contains the registry change. "shutdown -m \\myserver -r"&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_krfX3yW9NZA/SGuyZo8HZxI/AAAAAAAAAGA/peqHo66hfTk/s1600-h/remote-desktop-2.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_krfX3yW9NZA/SGuyZo8HZxI/AAAAAAAAAGA/peqHo66hfTk/s320/remote-desktop-2.JPG" alt="" id="BLOGGER_PHOTO_ID_5218460746794886930" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-346317773671616372?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/346317773671616372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=346317773671616372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/346317773671616372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/346317773671616372'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/07/windows-server-2003-turn-on-allow.html' title='Windows Server 2003: Turn on &quot;allow remote desktop connections&quot; remotely'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_krfX3yW9NZA/SGuxcNIiyfI/AAAAAAAAAF4/y_xx86o616c/s72-c/remote-desktop.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-5768281948635112234</id><published>2008-06-26T15:43:00.009-05:00</published><updated>2008-06-26T16:16:17.019-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox 3'/><title type='text'>FireFox 3: Crashes all the time!</title><content type='html'>Problem: Firefox 3 (and 2 before it) crashes all the time... like 20 times a day&lt;br /&gt;&lt;br /&gt;Solution: Add FireFox to the DEP (Data Execution Prevention) whitelist.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Control Panel -&gt; System -&gt; Advanced&lt;/li&gt;&lt;li&gt;Click "Settings" &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_krfX3yW9NZA/SGQAO33R14I/AAAAAAAAAFE/O2MHinOta88/s1600-h/turn-off-dep-1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_krfX3yW9NZA/SGQAO33R14I/AAAAAAAAAFE/O2MHinOta88/s320/turn-off-dep-1.JPG" alt="" id="BLOGGER_PHOTO_ID_5216294523915851650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the radio button that says "Turn on DEP for all programs... except..."&lt;/li&gt;&lt;li&gt;Click the "Add" button&lt;/li&gt;&lt;li&gt;Search for the FireFox.exe, usually C:\Program Files\Mozilla\FireFox\FireFox.exe&lt;/li&gt;&lt;li&gt;Click "OK"&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_krfX3yW9NZA/SGQAzSJ4hII/AAAAAAAAAFM/1jH9YP1Zgzw/s1600-h/turn-off-dep-2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_krfX3yW9NZA/SGQAzSJ4hII/AAAAAAAAAFM/1jH9YP1Zgzw/s320/turn-off-dep-2.JPG" alt="" id="BLOGGER_PHOTO_ID_5216295149448496258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Reboot&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Note: I work on ASP.NET crap every day and use as many online services I can because I use 2 computers, one at work and one at the home office. I typically have 2 gmails open, RememberTheMilk and several ajaxified applications that I work on daily, plus other viral, "must see" websites, blogs, and news sources.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-5768281948635112234?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/5768281948635112234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=5768281948635112234' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/5768281948635112234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/5768281948635112234'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/06/firefox-3-crashes-all-time.html' title='FireFox 3: Crashes all the time!'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_krfX3yW9NZA/SGQAO33R14I/AAAAAAAAAFE/O2MHinOta88/s72-c/turn-off-dep-1.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-9217558169947576444</id><published>2008-06-24T16:38:00.004-05:00</published><updated>2008-06-24T16:50:37.790-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='XSD'/><title type='text'>Visual Studio 2005: Failed to add TableAdapter: Exception has been thrown by the target of an invocation.</title><content type='html'>Problem: "Failed to add TableAdapter: Exception has been thrown by the target of an invocation"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_krfX3yW9NZA/SGFrNM1gakI/AAAAAAAAAE0/t_1Sq1XZXi8/s1600-h/failed-to-add-tableadapter.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_krfX3yW9NZA/SGFrNM1gakI/AAAAAAAAAE0/t_1Sq1XZXi8/s320/failed-to-add-tableadapter.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5215567717999864386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solution: Change to a system font. &lt;br /&gt;&lt;br /&gt;Notes: I kept getting this error each time I right clicked on the DataSet/XSD designer and chose any options. While playing around with different fonts I was able to successfully crash out of Visual Studio by adding a new DataSet from the Add New File wizard. I forced WindowBlinds to use a system font across the board and it solved the problem. I couldn't find the .exe that loads the designer to override that one settings by itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-9217558169947576444?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/9217558169947576444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=9217558169947576444' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/9217558169947576444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/9217558169947576444'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/06/visual-studio-2005-failed-to-add.html' title='Visual Studio 2005: Failed to add TableAdapter: Exception has been thrown by the target of an invocation.'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_krfX3yW9NZA/SGFrNM1gakI/AAAAAAAAAE0/t_1Sq1XZXi8/s72-c/failed-to-add-tableadapter.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-757209515540162326.post-8090461190771287658</id><published>2008-06-24T15:29:00.006-05:00</published><updated>2008-06-24T16:51:13.513-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><title type='text'>Visual Studio 2005: Choose Toolbox Items: An error occurred loading this property page.</title><content type='html'>Problem: "Choose Toolbox Items: An error occurred loading this property page."&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_krfX3yW9NZA/SGFcfx_mDsI/AAAAAAAAAEk/CGva5-MT9Bc/s1600-h/screen-bad.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_krfX3yW9NZA/SGFcfx_mDsI/AAAAAAAAAEk/CGva5-MT9Bc/s320/screen-bad.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5215551544537517762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solution: Change to a system font.&lt;br /&gt;In my case I had WindowBlinds 6 installed with a theme running Segoe UI as the font. This apparently caused the wizard to puke upon loading. I don't know how the two are related... just change the font to something standard like Tahoma or Trebuchet MS.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_krfX3yW9NZA/SGFcllxayOI/AAAAAAAAAEs/tFiyXtCOw1E/s1600-h/screen-good.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_krfX3yW9NZA/SGFcllxayOI/AAAAAAAAAEs/tFiyXtCOw1E/s320/screen-good.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5215551644336048354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: It was also recommended that I run devenv /setup from the VS command prompt, but this did nothing for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/757209515540162326-8090461190771287658?l=blog.newslacker.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.newslacker.net/feeds/8090461190771287658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=757209515540162326&amp;postID=8090461190771287658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/8090461190771287658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/757209515540162326/posts/default/8090461190771287658'/><link rel='alternate' type='text/html' href='http://blog.newslacker.net/2008/06/visual-studio-2005-choose-toolbox-items.html' title='Visual Studio 2005: Choose Toolbox Items: An error occurred loading this property page.'/><author><name>Newslacker</name><uri>http://www.blogger.com/profile/03817274309191238681</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04193647521008219765'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_krfX3yW9NZA/SGFcfx_mDsI/AAAAAAAAAEk/CGva5-MT9Bc/s72-c/screen-bad.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>