<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Keith Barrows</title><subtitle type="html">Musings on Microsoft Technologies and other technical things</subtitle><id>http://weblogs.asp.net/kbarrows/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/kbarrows/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-04-25T17:29:23Z</updated><entry><title>Entity Frameworks 4.1 on SQL Server–some gotchas</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2011/03/25/entity-frameworks-4-1-on-sql-server-some-gotchas.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2011/03/25/entity-frameworks-4-1-on-sql-server-some-gotchas.aspx</id><published>2011-03-25T15:54:12Z</published><updated>2011-03-25T15:54:12Z</updated><content type="html">I am using MVC3, Visual Studio 2010 SP1 &amp;amp; Entity Framework 4.1. I was very excited to get my hands dirty with the Code First piece of the new Entity Frameworks.&amp;#160; There are some great articles out there for getting started and a couple of my favorites are: http://thedatafarm.com/blog/data-access/new-ef4-amp-ef4-1-content-on-msdn/ by Julie Lerman http://weblogs.asp.net/scottgu/archive/2011/03/19/rc-of-entity-framework-4-1-which-includes-ef-code-first.aspx by Scott Guthrie http://weblogs.asp...(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2011/03/25/entity-frameworks-4-1-on-sql-server-some-gotchas.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7732364" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="SQL Server" scheme="http://weblogs.asp.net/kbarrows/archive/tags/SQL+Server/default.aspx" /><category term="Entity Framework" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Entity+Framework/default.aspx" /></entry><entry><title>Some links of interest (varied)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2011/01/04/some-links-of-interest-varied.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2011/01/04/some-links-of-interest-varied.aspx</id><published>2011-01-04T18:34:06Z</published><updated>2011-01-04T18:34:06Z</updated><content type="html">&amp;#160; Entity Framework FAQ (new) This is a collection of frequently asked questions (and answers) about the Entity Framework (a .Net-based Object-Relational Mapping framework from Microsoft). &amp;#160; Mono for Android (blog entry) Mono for Android (install) MonoDroid (home page) MonoDroid is a development stack for using C# and core .NET APIs to develop Android-based applications. MonoDroid will be a commercial product licensed in a similar fashion to our Mono for iPhone product MonoTouch . &amp;#160;...(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2011/01/04/some-links-of-interest-varied.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7674272" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="Notes" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Notes/default.aspx" /></entry><entry><title>Utilizing Generics to make a Class structure more mutable…</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2011/01/03/utilizing-generics-to-make-a-class-structure-more-mutable.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2011/01/03/utilizing-generics-to-make-a-class-structure-more-mutable.aspx</id><published>2011-01-04T01:06:55Z</published><updated>2011-01-04T01:06:55Z</updated><content type="html">While the ASP.NET GridView control supports automatic paging I found it faster to use custom paging in several situations.&amp;#160; I found myself rewriting the same code over and over just to add the basic sorting capabilities to an ASP.NET GridView object.&amp;#160; So today I took just a little bit of time to encapsulate it all into a Class I can use and reuse on any page with a GridView.&amp;#160; In fact, it will probably take longer to write this blog entry than it took to encapsulate the functionality...(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2011/01/03/utilizing-generics-to-make-a-class-structure-more-mutable.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7673467" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="C# (Specific)" scheme="http://weblogs.asp.net/kbarrows/archive/tags/C_2300_+_2800_Specific_2900_/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/kbarrows/archive/tags/ASP.NET/default.aspx" /><category term="Generics" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Generics/default.aspx" /></entry><entry><title>Extension Methods make life easier (C#)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2010/02/25/extension-methods-make-life-easier-c.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2010/02/25/extension-methods-make-life-easier-c.aspx</id><published>2010-02-25T20:41:10Z</published><updated>2010-02-25T20:41:10Z</updated><content type="html">I use extension methods when I remember they exist.&amp;#160; I started getting tired of writing code to check strings for Null, Empty, Equal before using a database column when I remembered Extension Methods are there to make life easier!&amp;#160; Some great articles/blog entries on it can be found at: Extending Base Type Functionality with Extension Methods – Scott Mitchell, 4 Guys From Rolla New &amp;quot;Orcas&amp;quot; Language Feature: Extension Methods – Scott Guthrie, PM, Microsoft ASP.NET Team In a nutshell...(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2010/02/25/extension-methods-make-life-easier-c.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7362557" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="Extensions" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Extensions/default.aspx" /></entry><entry><title>Using LINQ to SQL Classes in VS2005</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2009/10/05/using-linq-to-sql-classes-in-vs2005.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2009/10/05/using-linq-to-sql-classes-in-vs2005.aspx</id><published>2009-10-05T19:18:06Z</published><updated>2009-10-05T19:18:06Z</updated><content type="html">I am having a devil of a time setting up LINQ for SQL in VS2005.&amp;#160; I have fx3.5 setup, have installed fx3.5SP1, etc, etc.&amp;#160; What googling has shown me is when I want to add a LINQ to SQL Classes item to my project I should see something like the first image.&amp;#160; Instead, what I am seeing is the second image. Please note some very fundamental differences between the two images.&amp;#160; I should have Categories, I do not.&amp;#160; I should see LINQ items, I do not… Any suggestions?&amp;#160; I do...(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2009/10/05/using-linq-to-sql-classes-in-vs2005.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7223746" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="fx 3.5" scheme="http://weblogs.asp.net/kbarrows/archive/tags/fx+3.5/default.aspx" /><category term="LINQ" scheme="http://weblogs.asp.net/kbarrows/archive/tags/LINQ/default.aspx" /><category term="VS2005" scheme="http://weblogs.asp.net/kbarrows/archive/tags/VS2005/default.aspx" /></entry><entry><title>Tidbits</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2009/07/21/tidbits.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2009/07/21/tidbits.aspx</id><published>2009-07-21T22:28:52Z</published><updated>2009-07-21T22:28:52Z</updated><content type="html">From time to time I get a slew of links that may/should be useful to others than just myself. The quotes are from these web pages and are not of my manufacture. 40+ Essential Front End Web Developer Cheat Sheets Quote: Today more or less everyone can put a simple web page together but implementation of professional Web based Application Front Ends is not as simple as some people may think. It is a complex task requiring deep knowledge of several technologies like html, css, javascript, php, etc....(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2009/07/21/tidbits.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7152454" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="Notes" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Notes/default.aspx" /></entry><entry><title>Blogging on ASP.NET Weblogs site again…</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2009/07/21/blogging-on-asp-net-weblogs-site-again.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2009/07/21/blogging-on-asp-net-weblogs-site-again.aspx</id><published>2009-07-21T17:58:27Z</published><updated>2009-07-21T17:58:27Z</updated><content type="html">Just a quick blog to say I finally have Live Writer setup to post computer technology related posts to http://weblogs.asp.net/kbarrows now.&amp;#160; I still have a few things to get setup like publishing images and files and such but that will fall in place soon.&amp;#160; I will still be posting all topics at http://sol3.net/blogs/starpilot/default.aspx ....(&lt;a href="http://weblogs.asp.net/kbarrows/archive/2009/07/21/blogging-on-asp-net-weblogs-site-again.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7152294" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="Announcements" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Announcements/default.aspx" /></entry><entry><title>Missed my High School Reunion :(</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/10/10/missed-my-high-school-reunion.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/10/10/missed-my-high-school-reunion.aspx</id><published>2008-10-10T18:59:46Z</published><updated>2008-10-10T18:59:46Z</updated><content type="html">&lt;table&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;Wish I had thought to google for this.&amp;#160; Another classmate just left me a message on MySpace and the link to my &lt;a href="http://www.ihs78.com/index.htm" target="_blank"&gt;HS Reunion site&lt;/a&gt;.&amp;#160; &amp;lt;sigh/&amp;gt;          &lt;br /&gt;          &lt;br /&gt;With all of this technology at hand it is still hard to know when periodic events like this happen.&amp;#160; How does everyone else stay abreast of events like this?&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:bcc80f02-c9ea-4ae8-81a9-5ec408511a99" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://www.ihs78.com/index.htm"&gt;&lt;img src="http://sol3.net/uploaded_images/MissedmyHighSchoolReunion_A8AB/0137a2bf5b214fa395a649f828596347.jpg" border="1px" /&gt;&lt;/a&gt;&lt;/div&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6669574" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="Personal" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Personal/default.aspx" /></entry><entry><title>Loading XML with accented characters breaks System.XmlDocument.Load()</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/09/26/loading-xml-with-accented-characters-breaks-system-xmldocument-load.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/09/26/loading-xml-with-accented-characters-breaks-system-xmldocument-load.aspx</id><published>2008-09-27T00:29:40Z</published><updated>2008-09-27T00:29:40Z</updated><content type="html">&lt;table cellspacing="5" cellpadding="5" width="100%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:b1011b61-4535-43ed-b9e1-ee9ec377c40c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://www.codeproject.com/KB/cs/EncodingAccents.aspx"&gt;&lt;img src="http://sol3.net/uploaded_images/LoadingXMLwithaccentedcharactersbre.Load_F5FB/4a6d2e380a24446e861498b3d10d463f.jpg" border="1px" /&gt;&lt;/a&gt;&lt;/div&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;It took me a bit of time but I finally found a solution for loading a XML file that has accented characters (like &amp;#225;&amp;#233;&amp;#237;&amp;#243;&amp;#250;&amp;#226;&amp;#228;) into a UTF-8 format.&amp;#160; I'm loading data for a client and it ended up having a name in it with an accented e character.&amp;#160; For the first time on this project System.XmlDocument.Load() was blowing up.&amp;#160; With a lot of Googling I finally found a link that gave me, what I hope, is the solution for this problem.&amp;#160; For now it is working so I'll go with it.&amp;#160; The link to the article I found is in the code sample below as well as the image to the left.&amp;#160; The magic happens by reading in while enforcing a double-byte encoding then saving out in an encoding that gives the visual representation we, in the US, would expect.&lt;/p&gt;          &lt;p&gt;Hope this helps someone else.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;br /&gt;  &lt;div class="csharpcode"&gt;   &lt;div class="csharpcode"&gt;     &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="preproc"&gt;#region&lt;/span&gt; Fix Character Encodings&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;// Need to drop accented characters back to normal characters...&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;// reference:  http://www.codeproject.com/KB/cs/EncodingAccents.aspx //&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;StreamReader sr = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(_pfInfo.WorkingFile, Encoding.GetEncoding(&lt;span class="str"&gt;&amp;quot;iso-8859-1&amp;quot;&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; fileContents = sr.ReadToEnd();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;sr.Close();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;sr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;StreamWriter sw = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamWriter(_pfInfo.WorkingFile, &lt;span class="kwrd"&gt;false&lt;/span&gt;, Encoding.GetEncoding(&lt;span class="str"&gt;&amp;quot;iso-8859-8&amp;quot;&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;sw.Write(fileContents);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;sw.Flush();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;sw.Close();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;sw = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
  &lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6643482" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author></entry><entry><title>Managed Extensibility Framework (MEF) is on CodePlex</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/09/08/managed-extensibility-framework-mef-is-on-codeplex.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/09/08/managed-extensibility-framework-mef-is-on-codeplex.aspx</id><published>2008-09-08T17:18:37Z</published><updated>2008-09-08T17:18:37Z</updated><content type="html">&lt;blockquote&gt;   &lt;p&gt;The Managed Extensibility Framework (MEF) is a new library in .NET that enables greater reuse of applications and components. Using MEF, .NET applications can make the shift from being statically compiled to dynamically composed. If you are building extensible applications, extensible frameworks and application extensions, then MEF is for you. &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;&lt;b&gt;CodePlex Links&lt;/b&gt;     &lt;li&gt;&lt;a href="http://www.codeplex.com/MEF" target="_blank"&gt;http://www.codeplex.com/MEF&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/MEF/Wiki/View.aspx?title=Overview&amp;amp;referringTitle=Home" target="_blank"&gt;MEF Overview&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;&lt;strong&gt;Blog Links&lt;/strong&gt;     &lt;li&gt;&lt;a href="http://blogs.msdn.com/brada/archive/2008/09/05/microsoft-extensibility-framework-released-on-codeplex.aspx" target="_blank"&gt;http://blogs.msdn.com/brada/archive/2008/09/05/microsoft-extensibility-framework-released-on-codeplex.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/kcwalina/archive/2008/09/05/MEFCodePlex.aspx" target="_blank"&gt;http://blogs.msdn.com/kcwalina/archive/2008/09/05/MEFCodePlex.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/gblock/archive/2008/09/06/mef-making-its-debut-on-codeplex.aspx" target="_blank"&gt;http://blogs.msdn.com/gblock/archive/2008/09/06/mef-making-its-debut-on-codeplex.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://hammett.castleproject.org/?p=319" target="_blank"&gt;http://hammett.castleproject.org/?p=319&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I've been doing a few projects with a plug-in architecture and am going to be playing with this to see how I can benefit from it. Hopefully, I'll post some stuff out here as well on this new journey.&lt;/p&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6609763" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="Architecture" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Architecture/default.aspx" /><category term="fx 3.5" scheme="http://weblogs.asp.net/kbarrows/archive/tags/fx+3.5/default.aspx" /><category term="Extensions" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Extensions/default.aspx" /></entry><entry><title>SQL Not In Revisited</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/08/27/sql-not-in-revisited.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/08/27/sql-not-in-revisited.aspx</id><published>2008-08-27T17:52:46Z</published><updated>2008-08-27T17:52:46Z</updated><content type="html">&lt;p&gt;I always seem to struggle with a NOT IN clause when there are more than one column to compare.&amp;#160; This, of course, comes up when I am trying to get records from one set that are NOT IN another set and the comparison has to be done across multiple columns.&amp;#160; For instance, if I want to compare table 1 (users) against table 2 (importedUsers) and I want to see if the mandatory fields are there and *NOT* work with those that fail I usually ended up doing a cursor.&amp;#160; But - there is a much easier way to do it and it does need a cursor!&amp;#160; Thanks to &lt;a href="http://sqladvice.com/blogs/dpenton/default.aspx" target="_blank"&gt;David Penton&lt;/a&gt; for pointing me in this direction!&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;DECLARE @impUsers TABLE(empID VARCHAR(50), hireDate SMALLDATETIME, userNew BIT, userChange BIT, userTerm BIT)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;INSERT INTO @impEmpTbl      &lt;br /&gt;( [empID]      &lt;br /&gt;, [hireDate]      &lt;br /&gt;, [userNew]      &lt;br /&gt;, [userChange]      &lt;br /&gt;, [userTerm]      &lt;br /&gt;)       &lt;br /&gt;SELECT i.empID, i.hireDate, 0, 1, 0      &lt;br /&gt;&amp;#160; FROM [ImportUsers] i      &lt;br /&gt; INNER JOIN Users u ON i.[empID] = u.[empID]      &lt;br /&gt; WHERE NOT EXISTS (SELECT 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM [Users] u2      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE u2.[empID]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[empID]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND u2.[lastName]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[lastName]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND u2.[firstName]&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[firstName]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND t2.[countryInfo]&amp;#160;&amp;#160; = i.[countryInfo]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND t2.[emailAddress]&amp;#160; = i.[emailAddress]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND t2.[region]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = i.[region])&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Sweet, simple and elegant.&amp;#160; The above query will produce a new record in the temp table for each record that has one or more changes across the 6 fields I am comparing in the NOT EXISTS clause.&amp;#160; What is happening inside the parenthesis is the elegant part.&amp;#160; The SQL Query Engine is comparing one row from the Import table to all rows in the Users (2) table.&amp;#160; If it finds a match then it returns 1 - which means it does exist.&amp;#160; This negates the overall WHERE clause and does not insert it into the temp table.&amp;#160; When doing this in a cursor it was taking 30-45 seconds.&amp;#160; As a T-SQL query it takes less than 3 seconds.&amp;#160; That's an order of magnitude faster!&lt;/p&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6571965" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="SQL" scheme="http://weblogs.asp.net/kbarrows/archive/tags/SQL/default.aspx" /></entry><entry><title>SQL XML - TreeView</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/08/25/sql-xml-treeview.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/08/25/sql-xml-treeview.aspx</id><published>2008-08-25T22:52:47Z</published><updated>2008-08-25T22:52:47Z</updated><content type="html">&lt;p&gt;I sometimes forget how to do an XML output formed in a tree when dealing with a single table parent/child relationship.&amp;#160; There is a great explanation on SQL Server Central on &lt;a href="http://www.sqlservercentral.com/articles/61821/" target="_blank"&gt;*how* to do this&lt;/a&gt;.&amp;#160; I am mainly capturing the link and the SQL I just generated to do this.&amp;#160; This query will drill down 12 levels at the most.&amp;#160; Just alter the case statement (pivot) to go deeper.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ALTER PROC getOrgUnitTreeAsXml      &lt;br /&gt;AS       &lt;br /&gt;BEGIN       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ;WITH OrgUnit1       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; AS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0 AS [Level],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [OrgUnitId],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnitParentID],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnit],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CAST( [orgUnitID] AS VARBINARY(MAX)) AS Sort       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM [orgUnit]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE [orgUnitParentID] IS NULL       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UNION ALL       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Level] + 1,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.[OrgUnitId],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.[orgUnitParentID],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.[orgUnit],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CAST( SORT + CAST(p.[orgUnitID] AS BINARY(4)) AS VARBINARY(MAX))       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM [orgUnit] p       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INNER JOIN OrgUnit1 c ON p.[orgUnitParentID] = c.[OrgUnitId]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,&amp;#160; OrgUnit2 AS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Level] + 1 AS Tag,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [OrgUnitId],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnitParentID],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [orgUnit],       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sort       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM OrgUnit1       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; , OrgUnit3 AS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SELECT       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (SELECT Tag FROM OrgUnit2 r2 WHERE r2.[OrgUnitId] = r1.[orgUnitParentID]) AS ParentTag       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM OrgUnit2 r1       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT Tag, ParentTag as Parent,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 1 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!1!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 1 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!1!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 2 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!2!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 2 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!2!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 3 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!3!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 3 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!3!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 4 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!4!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 4 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!4!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 5 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!5!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 5 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!5!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 6 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!6!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 6 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!6!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 7 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!7!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 7 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!7!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 8 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!8!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 8 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!8!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 9 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!9!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 9 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!9!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 10 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!10!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 10 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!10!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 11 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!11!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 11 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!11!name',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 12 THEN [OrgUnitId] ELSE NULL END AS 'OrgUnit!12!id',       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CASE WHEN tag = 12 THEN [orgUnit] ELSE NULL END AS 'OrgUnit!12!name'       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM OrgUnit3       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ORDER BY sort       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FOR XML EXPLICIT       &lt;br /&gt;END       &lt;br /&gt;GO&lt;/p&gt;&lt;/blockquote&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6564874" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="XML" scheme="http://weblogs.asp.net/kbarrows/archive/tags/XML/default.aspx" /><category term="SQL" scheme="http://weblogs.asp.net/kbarrows/archive/tags/SQL/default.aspx" /></entry><entry><title>Microsoft's Velocity - Caching turned up a notch</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/06/06/microsoft-s-velocity-caching-turned-up-a-notch.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/06/06/microsoft-s-velocity-caching-turned-up-a-notch.aspx</id><published>2008-06-06T19:28:41Z</published><updated>2008-06-06T19:28:41Z</updated><content type="html">&lt;p&gt;&lt;a href="http://msdn.microsoft.com/fi-fi/library/cc645013(en-us).aspx" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 5px 5px 15px; border-right-width: 0px" height="166" alt="velocity" src="http://sol3.net/uploaded_images/MicrosoftsVelocityCachingturnedupanotch_A14E/velocity.jpg" width="244" align="right" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Microsoft just released it's CTP-1 of a new caching product code named Velocity.&amp;#160; It is a distributed caching technology that should add extra velocity to your ASP.NET applications.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; &amp;#8220;Velocity&amp;#8221; is a distributed in-memory application cache platform for developing scalable, available, and high-performance applications. &amp;#8220;Velocity&amp;#8221; fuses memory across multiple computers to give a single unified cache view to applications. Applications can store any serializable CLR object without worrying about where the object gets stored. Scalability can be achieved by simply adding more computers on demand. &amp;#8220;Velocity&amp;#8221; also allows for copies of data to be stored across the cluster, thus protecting data against failures. &amp;#8220;Velocity&amp;#8221; can be configured to run as a service accessed over the network or can be run embedded with the distributed application. &amp;#8220;Velocity&amp;#8221; includes an ASP.NET session provider object that enables ASP.NET session objects to be stored in the distributed cache without having to write to databases. This increases the performance and scalability of ASP.NET applications (17 printed pages)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Some more resources:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Team Blog - &lt;a href="http://blogs.msdn.com/velocity"&gt;http://blogs.msdn.com/velocity&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Forum - &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2142&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2142&amp;amp;SiteID=1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Download - &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6253905" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/kbarrows/archive/tags/ASP.NET/default.aspx" /><category term="Caching" scheme="http://weblogs.asp.net/kbarrows/archive/tags/Caching/default.aspx" /></entry><entry><title>VS 2008 and .NET FX 3.5 SP1 (Beta)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/05/12/vs-2008-and-net-fx-3-5-sp1-beta.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/05/12/vs-2008-and-net-fx-3-5-sp1-beta.aspx</id><published>2008-05-12T19:40:45Z</published><updated>2008-05-12T19:40:45Z</updated><content type="html">&lt;table&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p&gt;The beta has been released.&amp;#160; &lt;a href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott Guthrie&lt;/a&gt; has a &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx" target="_blank"&gt;huge list of what to expect&lt;/a&gt;.&lt;/p&gt;          &lt;p&gt;(The image should link you directly to the download page.)&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;div class="wlWriterSmartContent" id="scid:32a77b7a-5ea4-47be-84fc-ff7471384e10:85c46cb4-b792-42e4-ad7c-a235be672054" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;&lt;img src="http://sol3.net/uploaded_images/VS2008and.NETFX3.5SP1Beta_A439/df2a40ac3fbc4203a872bd333927821f.jpg" border="0px" /&gt;&lt;/a&gt;&lt;/div&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6183289" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/kbarrows/archive/tags/ASP.NET/default.aspx" /><category term="fx 3.5" scheme="http://weblogs.asp.net/kbarrows/archive/tags/fx+3.5/default.aspx" /></entry><entry><title>ALT.NET?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/kbarrows/archive/2008/04/25/alt-net.aspx" /><id>http://weblogs.asp.net/kbarrows/archive/2008/04/25/alt-net.aspx</id><published>2008-04-25T23:29:23Z</published><updated>2008-04-25T23:29:23Z</updated><content type="html">&lt;p&gt;&lt;a href="http://sol3.net/uploaded_images/ALT.NET_D9CD/alt.netBig.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 5px 5px 15px; border-right-width: 0px" height="96" alt="alt.net-Big" src="http://sol3.net/uploaded_images/ALT.NET_D9CD/alt.netBig_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Do you know what happens when you read blogs?&amp;#160; You mine expands, dude!&amp;#160; Like Woaoooo...&lt;/p&gt;  &lt;p&gt;Something &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselman&lt;/a&gt; posted caught my attention.&amp;#160; He &lt;a href="http://www.hanselman.com/blog/ALTNETGeekCodeShouldYouCareAboutTheseALTNETGuys.aspx" target="_blank"&gt;posted about Alt.Net&lt;/a&gt;.&amp;#160; I am now searching out all things ALT.NET to make sure my head was wrapped around the ideas in a way that makes sense to me.&amp;#160; Pass the word...&lt;/p&gt;
Cross posted from my blog at http://schema.sol3.net/kbarrows&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6130575" width="1" height="1"&gt;</content><author><name>StarPilot</name><uri>http://weblogs.asp.net/members/StarPilot.aspx</uri></author><category term="ALT.NET" scheme="http://weblogs.asp.net/kbarrows/archive/tags/ALT.NET/default.aspx" /></entry></feed>