<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Robert McLaws: FunWithCoding.NET</title><link>http://weblogs.asp.net/rmclaws/default.aspx</link><description>Public Shared Function BrainDump(ByVal dotNet As String) As [Value]</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Some Useful TFS Customization Resources</title><link>http://weblogs.asp.net/rmclaws/archive/2007/11/15/some-useful-tfs-customization-resources.aspx</link><pubDate>Thu, 15 Nov 2007 21:24:55 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5237995</guid><dc:creator>interscape</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=5237995</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2007/11/15/some-useful-tfs-customization-resources.aspx#comments</comments><description>&lt;p&gt;Over the last few days, I've been trying to get my TFS system upgraded with some customizations that members of my team have requested. TFS is a very well-designed system, but unfortunately the out-of-the-box process of customizing your processes leaves a little to be desired.&lt;/p&gt; &lt;p&gt;It took me a couple hours of tinkering, but I figured out how to add some new statuses to the MSF for Agile templates, as well as new fields and UI for tracking the steps to reproduce a bug. I'll be posting those modifications in a bit, but in the meantime, I've assembled some of the resources that I found helpful on my Custom TFS templating journey. I hope they're useful.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2007/10/05/tfs-power-tools-release-work-item-templates-bulk-edit.aspx" target="_blank"&gt;Bulk editing work items using TFS Power Tools "templates"&lt;/a&gt;  &lt;li&gt;&lt;a href="http://blogs.infosupport.com/marcelv/archive/2007/02/28/How-to-Fix-TFS-report-fragility-regarding-state-names-and-other-reporting-fields.aspx" target="_blank"&gt;One method of adding new statuses without breaking reports&lt;/a&gt;  &lt;li&gt;&lt;a href="http://weblogs.asp.net/dmckinstry/archive/2006/01/03/434440.aspx" target="_blank"&gt;Dave McKinstry's Guide to TFS Process Customization&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;And some other cool TFS Stuff:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.applicationaspect.com/SiteSections/ProductCenter/TeamDef/Gadgets.aspx" target="_blank"&gt;Vista Sidebar Gadgets for TFS&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.applicationaspect.com/SiteSections/ProductCenter/TeamDef/ScreenshotGallery.aspx" target="_blank"&gt;TeamDef - Time Management for TFS&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.code-magazine.com/Article.aspx?quickid=990712152" target="_blank"&gt;CoDE Magazine - Data Dude Meets Team Build&lt;/a&gt;  &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa537171(office.11).aspx" target="_blank"&gt;Microsoft Office Requirements Authoring Starter Kit&lt;/a&gt; (using structured Word documents to populate a TFS database with requirements and work items)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I'm stepping up the use of TFS on my team for project management, so as I come across more resources that I find useful, I'll post them.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5237995" width="1" height="1"&gt;</description></item><item><title>Work With .NET Projects From a Network Share</title><link>http://weblogs.asp.net/rmclaws/archive/2007/03/22/work-with-net-projects-from-a-network-share.aspx</link><pubDate>Thu, 22 Mar 2007 06:03:41 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2078095</guid><dc:creator>interscape</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=2078095</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2007/03/22/work-with-net-projects-from-a-network-share.aspx#comments</comments><description>&lt;p&gt;I've tried a couple different methods from a bunch of different websites, and none of them worked. The only thing that worked for me was &lt;a href="http://support.microsoft.com/kb/320268/"&gt;this post from the Microsoft Knowledge Base&lt;/a&gt;. It is the only place on the internet that gives the proper caspol command for issuing Full Trust to a network share. It is:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;&lt;var&gt;Drive&lt;/var&gt;:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\&lt;var&gt;computername&lt;/var&gt;\&lt;var&gt;sharename&lt;/var&gt;\*" FullTrust -exclusive on&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Note the 4 slashes after the "file" and then the 2 backslashes for the full network path. Trust me, it will save you a lot of headaches.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2078095" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Expression Web Doesn't Do Non-GAC'd 3rd Party Controls</title><link>http://weblogs.asp.net/rmclaws/archive/2006/12/13/expression-web-doesn-t-do-non-gac-d-3rd-party-controls.aspx</link><pubDate>Thu, 14 Dec 2006 02:19:04 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1233586</guid><dc:creator>interscape</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=1233586</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/12/13/expression-web-doesn-t-do-non-gac-d-3rd-party-controls.aspx#comments</comments><description>&lt;p&gt;This is just ridiculous. First &lt;a href="http://www.windows-now.com/blogs/robert/archive/2006/12/01/apparently-web-developers-don-t-do-web-design.aspx"&gt;Expression web is not for developers&lt;/a&gt;, then &lt;a href="http://blogs.msdn.com/webdevtools/archive/2006/12/11/expression-web-1-0-released-perfect-companion-to-visual-studio.aspx"&gt;it goes great with Visual Studio&lt;/a&gt; (which is for developers), and now they &lt;a href="http://blogs.msdn.com/andrewj/archive/2006/12/13/custom-asp-net-controls-and-expression-web.aspx"&gt;don't do custom controls&lt;/a&gt; that aren't signed and installed in the GAC. What the hell? Did Microsoft have ANY idea what kind of deployment NIGHTMARE that would be? What if the people on your team are writing their own controls that are updated frequently. You mean that the designer has to know enough about the GAC to be constantly pulling the BINs from source control and copy them to the Windows\Assembly folder? Have they not ever dealt with &lt;a href="http://weblogs.asp.net/pleloup/archive/2003/07/29/21647.aspx"&gt;Assembly Hell&lt;/a&gt; before?&lt;/p&gt; &lt;p&gt;I'd really like to see what other component vendors and developers have to say about this. Seriously, I don't know what MS is smoking over there, but this whole Expression Web thing is really starting to feel half-assed. I never thought the DevDiv could botch something this badly.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1233586" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/.NET/default.aspx">.NET</category></item><item><title>VSTE for DB Professionals MSDN Download Tip</title><link>http://weblogs.asp.net/rmclaws/archive/2006/12/09/vste-for-db-professionals-msdn-download-tip.aspx</link><pubDate>Sat, 09 Dec 2006 20:22:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1202080</guid><dc:creator>interscape</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=1202080</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/12/09/vste-for-db-professionals-msdn-download-tip.aspx#comments</comments><description>&lt;p&gt;I don't know if this has been posted about yet, but as an FYI to you MSDN subscribers out there, here's an installation tip. There are two downloads&amp;nbsp;for&amp;nbsp;"VSTE for DB Professionals": A 3.2GB full version and a 19MB "trial" version. The naming is a little confusing, but you can install the "trial" version on a fully-licensed VSTS install, and you'll get the full version of VSTEDB.&lt;/p&gt; &lt;p&gt;That will save you from downloading the full 3.2GB install... like I stared to.&lt;/p&gt; &lt;p&gt;HTH.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1202080" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/.NET/default.aspx">.NET</category></item><item><title>ASP.NET: Authenticated but not Authorized</title><link>http://weblogs.asp.net/rmclaws/archive/2006/12/04/asp-net-authenticated-but-not-authorized.aspx</link><pubDate>Mon, 04 Dec 2006 08:13:42 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1120218</guid><dc:creator>interscape</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=1120218</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/12/04/asp-net-authenticated-but-not-authorized.aspx#comments</comments><description>&lt;p&gt;Does anyone know if there is a built-in way to trigger the Membership/Roles/FormsAuth system to redirect to a separate page if the current user is authenticated, but not authorized to view the current page? Right now I'm handling &lt;font face="Courier New"&gt;Application.Authenticate&lt;/font&gt; and checking &lt;font face="Courier New"&gt;UrlAuthorizationModule.CheckUrlAccessForPrincipal&lt;/font&gt;, but I'm not sure that's the best way, and it's not as clean as I'd like. Thanks!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1120218" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Are You Building Cool Solutions with Vista &amp; Office?</title><link>http://weblogs.asp.net/rmclaws/archive/2006/11/22/are-you-building-cool-solutions-with-vista-office.aspx</link><pubDate>Wed, 22 Nov 2006 16:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:999792</guid><dc:creator>interscape</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=999792</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/11/22/are-you-building-cool-solutions-with-vista-office.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;m helping Microsoft coordinate some launch efforts in the Southwest US. So if you live and work in one of the following areas:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Las Vegas &lt;/li&gt;&lt;li&gt;Utah &lt;/li&gt;&lt;li&gt;Colorado &lt;/li&gt;&lt;li&gt;Arizona &lt;/li&gt;&lt;li&gt;New Mexico&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;... and are building cool solutions on Office 2007, Windows Vista, or .NET 3.0, &lt;a href="http://www.windows-now.com/blogs/robert/archive/2006/11/21/what-are-you-doing-with-vista-and-office.aspx"&gt;please read this post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=999792" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WPF/default.aspx">WPF</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WWF/default.aspx">WWF</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WinFX/default.aspx">WinFX</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Office+2007/default.aspx">Office 2007</category></item><item><title>Microsoft, Yahoo Adopt Google Sitemaps</title><link>http://weblogs.asp.net/rmclaws/archive/2006/11/16/microsoft-yahoo-adopt-google-sitemaps.aspx</link><pubDate>Thu, 16 Nov 2006 07:04:19 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:937454</guid><dc:creator>interscape</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=937454</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/11/16/microsoft-yahoo-adopt-google-sitemaps.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://news.com.com/2100-1025_3-6136041.html?part=rss&amp;amp;tag=2547-1_3-0-5&amp;amp;subj=news"&gt;News.com is reporting&lt;/a&gt; that later today, Microsoft and Yahoo will announce that they are adopting the &lt;a href="http://www.sitemaps.org/" target="_blank"&gt;Sitemaps 0.90&lt;/a&gt; format, formerly known as &lt;a href="http://www.google.com/webmasters/sitemaps" target="_blank"&gt;Google Sitemaps&lt;/a&gt;. Now, &lt;a href="http://communityserver.org/Default.aspx"&gt;Community Server&lt;/a&gt; users can submit their &lt;a href="http://communityserver.org/files/folders/add-ons/entry528224.aspx"&gt;existing Google Sitemaps feeds&lt;/a&gt; to be indexed by the other two top search engine players as well.&lt;/p&gt; &lt;p&gt;This is definitely the best thing to happen to search since OpenSearch.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=937454" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Community+Server/default.aspx">Community Server</category></item><item><title>.NET 3.0 has RTMed!</title><link>http://weblogs.asp.net/rmclaws/archive/2006/11/06/DotNet-Framework-3.0-RTM.aspx</link><pubDate>Tue, 07 Nov 2006 00:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:857931</guid><dc:creator>interscape</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=857931</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/11/06/DotNet-Framework-3.0-RTM.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve posted the details &lt;a href="http://www.windows-now.com/blogs/robert/archive/2006/11/06/net-framework-3-0-winfx-rtm.aspx"&gt;over at Windows-Now.com&lt;/a&gt;. Time to build cool stuff with WPF!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=857931" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WPF/default.aspx">WPF</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WWF/default.aspx">WWF</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WinFX/default.aspx">WinFX</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/CardSpaces/default.aspx">CardSpaces</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/InfoCard/default.aspx">InfoCard</category></item><item><title>Get Initials from a String in VB.NET</title><link>http://weblogs.asp.net/rmclaws/archive/2006/10/16/Get-Initials-from-a-String-in-VB.NET.aspx</link><pubDate>Mon, 16 Oct 2006 06:25:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:671033</guid><dc:creator>interscape</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=671033</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/10/16/Get-Initials-from-a-String-in-VB.NET.aspx#comments</comments><description>&lt;p&gt;So I&amp;#39;ve been in way over my head lately, converting a massive spaghetti-code Classic ASP application to .NET 2.0. Recently my client supplied with one of those Intro-to-Programming exam questions that was kinda fun, so I thought I&amp;#39;d post the answer here.&lt;/p&gt;&lt;p&gt;He needed to pull a person&amp;#39;s initials out of a string, and he needed to handle either &amp;quot;LastName, FirstName&amp;quot; or &amp;quot;FirstName LastName&amp;quot;.&lt;/p&gt;&lt;p&gt;Now, you can&amp;#39;t just strip out all the capital letters, because Scottish guys like me will throw a wrench in that logic. So the easies way to do it is to split the string with a space character, and grab the first letter from each resulting string.&lt;/p&gt;&lt;p&gt;So here is the result, with a few test cases called from a test webpage for good measure. Hope you like:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(GetInitialsFromString(&amp;quot;Robert McLaws&amp;quot;) &amp;amp; &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(GetInitialsFromString(&amp;quot;Bill Gates&amp;quot;) &amp;amp; &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(GetInitialsFromString(&amp;quot;Robert W. McLaws&amp;quot;) &amp;amp; &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(GetInitialsFromString(&amp;quot;McLaws, Robert&amp;quot;) &amp;amp; &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(GetInitialsFromString(&amp;quot;McLaws, Robert W.&amp;quot;) &amp;amp; &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function GetInitialsFromString(ByVal fullName As String) As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If fullName.Contains(&amp;quot;,&amp;quot;) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fullName = NormalizeName(fullName)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim nameArray As String() = fullName.Split(&amp;quot; &amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim initials As String = String.Empty&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each name As String In nameArray&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; initials += name.Chars(0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return initials.ToUpper()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function NormalizeName(ByVal fullName As String) As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim name As String() = fullName.Split(&amp;quot;,&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return String.Format(&amp;quot;{0} {1}&amp;quot;, Trim(name(1)), Trim(name(0)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;So if anyone ever needs to do this... there you go :). It&amp;#39;s also a useful function for person-related .NET objects, so you can grab the initials by calling PersonObject.Initials instead of having to do it manually.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=671033" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rmclaws/archive/tags/VS2005/default.aspx">VS2005</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/rmclaws/archive/tags/Visual+Basic/default.aspx">Visual Basic</category></item><item><title>Leaving VB Developers in the Cold with XNA Express</title><link>http://weblogs.asp.net/rmclaws/archive/2006/08/16/Leaving-VB-Developers-in-the-Cold-with-XNA-Express.aspx</link><pubDate>Wed, 16 Aug 2006 08:02:19 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:470459</guid><dc:creator>interscape</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rmclaws/rsscomments.aspx?PostID=470459</wfw:commentRss><comments>http://weblogs.asp.net/rmclaws/archive/2006/08/16/Leaving-VB-Developers-in-the-Cold-with-XNA-Express.aspx#comments</comments><description>&lt;p&gt;Do you know VB and want to write games for Windows Vista and the Xbox 360? Sorry, you're SOL... &lt;a href="http://msdn.microsoft.com/directx/xna/faq/" target="_blank"&gt;XNA Studio Express&lt;/a&gt; is not for you. Didn't you know, man? &lt;u&gt;Real games&lt;/u&gt; are made in C#.&lt;/p&gt; &lt;p&gt;What a load of crap.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=470459" width="1" height="1"&gt;</description></item></channel></rss>