<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>INauseous()</title>
        <link>http://geekswithblogs.net/cicorias/Default.aspx</link>
        <description>Shawn Cicoria - Solution Architect, Craftsman and Artisan - INauseous() - Main Blog Here: www.Cicoria.com</description>
        <language>en-US</language>
        <copyright>Shawn Cicoria</copyright>
        <managingEditor>shawn@cicoria.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>INauseous()</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/cicorias/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>SharePoint 2010 and Claims Based Awareness</title>
            <category>SharePoint</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/23/sharepoint-2010-and-claims-based-awareness.aspx</link>
            <description>&lt;p&gt;The industry it moving towards identity standards, and with the recent release of Windows Identity Foundation (fka Geneva), and the beta of SharePoint 2010, it’s important to take a look at the direction of how identity is being normalized into a “service” within the SharePoint object model.&lt;/p&gt;  &lt;p&gt;With SPS 2010, the SPUser object is now a claims identity.  Identity management has been normalized to a approach that internally uses an STS that takes all “provider” or external STS identities, then creates a SPUser claims identity.  This can have implications for LOB application design.  Even Windows identities are presented within SPS as a claims identity after banging against the SP STS for claims transformation.&lt;/p&gt;  &lt;p&gt;Venky Veeraraghavan has a great video up on Channel 9 on how WIF was used to create this model within SharePoint and how we get 1) Identities “In”, 2) Identities “within”, and 3) Identities “out” – specifically, when talking to downstream back-end LOB applications, DB, Web Services, etc.  These are all things WIF and claims based identity is moving the industry.  &lt;/p&gt;  &lt;p&gt;This is certainly how we all should be looking at identity management and authentication scenarios.&lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_10_20.xap" /&gt; &lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/4/6/8/4/0/5/IdElement17Venky_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://channel9.msdn.com/App_Themes/default/vp09_10_20.xap, postid=504864" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136486"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136486" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136486.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/23/sharepoint-2010-and-claims-based-awareness.aspx</guid>
            <pubDate>Mon, 23 Nov 2009 16:57:44 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136486.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/23/sharepoint-2010-and-claims-based-awareness.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136486.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136486.aspx</trackback:ping>
        </item>
        <item>
            <title>SharePoint 2007 and InfoPath 2010 Client &amp;ndash; current install issues&amp;hellip;</title>
            <category>SharePoint</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/17/sharepoint-2007-and-infopath-2010-client-ndash-current-install-issueshellip.aspx</link>
            <description>&lt;p&gt;Ok, I’ve been bitten twice in the past week on this.  If you have InfoPath 2010 Beta installed and you’ve also got SharePoint 2007 running, at least with the latest SP2 and October CU, you run into an issue that surfaces in the logs as follows&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;One or more types failed to load. Please refer to the upgrade log for more details&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;When you pull that log apart, you’ll see that it’s attempting to load a few types such as Microsoft.Office.InfoPath.Server.DocumentLifetime.XmlFormHost' from assembly 'Microsoft.Office.InfoPath.Server.&lt;/p&gt;  &lt;p&gt;Which, they fail – removing InfoPath from the install works.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136360"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136360" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136360.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/17/sharepoint-2007-and-infopath-2010-client-ndash-current-install-issueshellip.aspx</guid>
            <pubDate>Tue, 17 Nov 2009 18:24:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136360.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/17/sharepoint-2007-and-infopath-2010-client-ndash-current-install-issueshellip.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136360.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136360.aspx</trackback:ping>
        </item>
        <item>
            <title>Loopback Check on Windows 2008, etc.</title>
            <category>Utilities</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/17/loopback-check-on-windows-2008-etc.aspx</link>
            <description>&lt;p&gt;This KB article (&lt;a href="http://support.microsoft.com/kb/926642" target="_blank"&gt;KB926642&lt;/a&gt;) explains 2 methods for handling the scenarios that we as developers require for using a local machine for development.  My option has been, going forward, of being explicitly in the host names that my development machine will use.  From that article:&lt;/p&gt;  &lt;p&gt;Method 1 (recommended): Create the Local Security Authority host names that can be referenced in an NTLM authentication request&lt;/p&gt; To do this, follow these steps for all the nodes on the client computer:   &lt;ol&gt;   &lt;li&gt;Click &lt;strong&gt;Start&lt;/strong&gt;, click &lt;strong&gt;Run&lt;/strong&gt;, type regedit, and then click &lt;strong&gt;OK&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Locate and then click the following registry subkey: &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Right-click &lt;strong&gt;MSV1_0&lt;/strong&gt;, point to &lt;strong&gt;New&lt;/strong&gt;, and then click &lt;strong&gt;Multi-String Value&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;In the &lt;strong&gt;Name&lt;/strong&gt; column, type BackConnectionHostNames, and then press ENTER. &lt;/li&gt;    &lt;li&gt;Right-click &lt;strong&gt;BackConnectionHostNames&lt;/strong&gt;, and then click &lt;strong&gt;Modify&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;In the &lt;strong&gt;Value&lt;/strong&gt; data box, type the CNAME or the DNS alias, that is used for the local shares on the computer, and then click &lt;strong&gt;OK&lt;/strong&gt;.       &lt;br /&gt;&lt;b&gt;Note &lt;/b&gt;Type each host name on a separate line.       &lt;br /&gt;&lt;b&gt;Note &lt;/b&gt;If the BackConnectionHostNames registry entry exists as a REG_DWORD type, you have to delete the BackConnectionHostNames registry entry. &lt;/li&gt;    &lt;li&gt;Exit Registry Editor, and then restart the computer. &lt;/li&gt; &lt;/ol&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136359"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136359" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136359.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/17/loopback-check-on-windows-2008-etc.aspx</guid>
            <pubDate>Tue, 17 Nov 2009 18:21:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136359.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/17/loopback-check-on-windows-2008-etc.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136359.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136359.aspx</trackback:ping>
        </item>
        <item>
            <title>Tongue in Cheek Geek Humor from the PDC</title>
            <category>Non-Tech</category>
            <category>Architecture</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/17/tongue-in-cheek-geek-humor-from-the-pdc.aspx</link>
            <description>&lt;p&gt;An old colleague (&lt;a href="http://biffgaut.com/" target="_blank"&gt;Biff Gaut&lt;/a&gt;) of mine has a great daily newsletter from the PDC.  This is certainly targeted for those of us looking for a “light” look at all things new that come out of PDC, but at times very technical with a perspective from someone who has been in the industry for some time (20+ years), started off as a C or C++ developer (not sure how early as I started with C/ASM).&lt;/p&gt;  &lt;p&gt;But, as always, with the technical content comes the sometimes dry, humor that only Biff can interweave into the Geek content.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.biffspdcnewsletter.com/2009/PDC2009Day1.aspx" href="http://www.biffspdcnewsletter.com/2009/PDC2009Day1.aspx"&gt;http://www.biffspdcnewsletter.com/2009/PDC2009Day1.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To subscribe, find the email on his page it’s  “editor AT biffspdcnewsletter.com”&lt;/p&gt;  &lt;p&gt;To go back a few years, take a look at some of his prescience`:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.biffspdcnewsletter.com/default.aspx" href="http://www.biffspdcnewsletter.com/default.aspx"&gt;http://www.biffspdcnewsletter.com/default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Kind of reminds me of &lt;a href="http://www.amazon.com/Bunnys-Guide-Activex-Carlton-Egremont/dp/0201485362" target="_blank"&gt;Mr. Bunny’s Guide to ActiveX&lt;/a&gt; – which is on my all time favorite reading list – if you know anything about ActiveX in the early days (COM to be specific), then this book is also a great, dry humor read.&lt;/p&gt;  &lt;p&gt;Biff, I apologize for the overuse of the word “dry” in this post.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136353"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136353" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136353.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/17/tongue-in-cheek-geek-humor-from-the-pdc.aspx</guid>
            <pubDate>Tue, 17 Nov 2009 14:26:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136353.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/17/tongue-in-cheek-geek-humor-from-the-pdc.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136353.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136353.aspx</trackback:ping>
        </item>
        <item>
            <title>Cleanup your Features&amp;hellip;</title>
            <category>SharePoint</category>
            <category>Utilities</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/11/cleanup-your-featureshellip.aspx</link>
            <description>&lt;p&gt;Many times, your coding, etc. SharePoint features.  You’ll code something up, deploy, activate, etc.  &lt;/p&gt;  &lt;p&gt;Using WSP builder, while a convenient tool, it also leaves some orphans around.  It forcibly deletes the solution leaving any place it’s activate with some “broken features”.&lt;/p&gt;  &lt;p&gt;Fortunately, there’s a tool to help you cleanup those orphans.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://featureadmin.codeplex.com/"&gt;http://featureadmin.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136219"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136219" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136219.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/11/cleanup-your-featureshellip.aspx</guid>
            <pubDate>Wed, 11 Nov 2009 20:34:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136219.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/11/cleanup-your-featureshellip.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136219.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136219.aspx</trackback:ping>
        </item>
        <item>
            <title>Minor update to the WSS Command Prompt&amp;hellip;</title>
            <category>Utilities</category>
            <category>SharePoint</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/11/minor-update-to-the-wss-command-prompthellip.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Take the following and paste into a VBS file – then run.&lt;/p&gt;  &lt;p&gt;Still need to choose the Link, then set the “Run as administrator” when UAC is on…&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;pre class="brush: plain; ruler: true;"&gt;Set Shell = CreateObject("WScript.Shell") 
Set Env = Shell.Environment("PROCESS") 
DesktopPath = Shell.SpecialFolders("Desktop") 
Set link = Shell.CreateShortcut(DesktopPath &amp;amp; "\WSS CMD.lnk") 

cssHive = Env("CommonProgramFiles") &amp;amp; "\Microsoft Shared\web server extensions\12" 
currentPath = RTrim(Replace(WScript.ScriptFullName, WScript.ScriptName, "")) 
envBatFile = "setWssPath.cmd" 

CreateBatFile currentPath &amp;amp; setWssPath &amp;amp; envBatFile, cssHive 

link.Arguments = "/k " &amp;amp; " " &amp;amp; Chr(34) &amp;amp; currentPath &amp;amp; envBatFile &amp;amp; Chr(34) 
link.Description = "WSS Command Prompt" 
link.HotKey = "CTRL+SHIFT+W" 
link.IconLocation = "%SystemRoot%\system32\SHELL32.dll,94" 
link.TargetPath = "%comspec%" 
link.WindowStyle = 1 
link.WorkingDirectory = cssHive 
link.Save 
Sub CreateBatFile(fileName, cssHive) 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set file = fso.CreateTextFile(fileName, True) 
    file.WriteLine("@SET PATH=%PATH%;" &amp;amp; cssHive &amp;amp; "\bin") 
    file.WriteLine("@ECHO WSS CMD Shell - Shawn Cicoria") 
    file.WriteLine("CD " &amp;amp; cssHive)

End Sub&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136217"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136217" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136217.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/11/minor-update-to-the-wss-command-prompthellip.aspx</guid>
            <pubDate>Wed, 11 Nov 2009 19:59:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136217.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/11/minor-update-to-the-wss-command-prompthellip.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136217.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136217.aspx</trackback:ping>
        </item>
        <item>
            <title>SharePoint 2010 Developer | Learn | Channel 9</title>
            <category>SharePoint</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/11/sharepoint-2010-developer--learn--channel-9.aspx</link>
            <description>&lt;p&gt;Ted Pattison and Andrew Connell have a bunch of Learning SharePoint 2010 content up on Channel 9.&lt;/p&gt;  &lt;p&gt;I can say, having attended Ted’s classes in the past, he’s one of the best to learn SharePoint development from.  He’s been at the forefront of getting to the reality of how to build things while working with the guidelines, rules, constraints of a “managed” platform such as SharePoint.  &lt;/p&gt;  &lt;p&gt;If you get a chance take a look at these videos – even better, if you can attend in person, check out &lt;a title="http://www.criticalpathtraining.com/" href="http://www.criticalpathtraining.com/"&gt;http://www.criticalpathtraining.com/&lt;/a&gt; for classes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/learn/courses/SharePoint2010Developer/"&gt;SharePoint 2010 Developer | Learn | Channel 9&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136207"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136207" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136207.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/11/sharepoint-2010-developer--learn--channel-9.aspx</guid>
            <pubDate>Wed, 11 Nov 2009 16:36:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136207.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/11/sharepoint-2010-developer--learn--channel-9.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136207.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136207.aspx</trackback:ping>
        </item>
        <item>
            <title>TeamPrise acquired by Microsoft.</title>
            <category>TFS</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/11/09/teamprise-acquired-by-microsoft.aspx</link>
            <description>&lt;p&gt;TeamPrise – the cross platform “client” for TFS, with Eclipse support (plug-in), command line – has been acquired by Microsoft.&lt;/p&gt;  &lt;p&gt;So, we’ve been pushing folks to a 3rd parties to get back to the ALM Mothership – which is by far the best Enterprise class ALM platform that can scale from “1” person (see 2010 TFS) to thousands, geo-distributed – now, we can offer it direct resolving client’s concerns.&lt;/p&gt;  &lt;p&gt;Not that the SourceGear guys are of concern, they’ve been around for quite some time.&lt;/p&gt;  &lt;p&gt;This is great news.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/presspass/press/2009/nov09/11-09TeamprisePR.mspx"&gt;http://www.microsoft.com/presspass/press/2009/nov09/11-09TeamprisePR.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.teamprise.com"&gt;http://www.teamprise.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/pathways/teamprise/" href="http://www.microsoft.com/pathways/teamprise/"&gt;http://www.microsoft.com/pathways/teamprise/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136158"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136158" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/136158.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/11/09/teamprise-acquired-by-microsoft.aspx</guid>
            <pubDate>Mon, 09 Nov 2009 16:39:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/136158.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/11/09/teamprise-acquired-by-microsoft.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/136158.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/136158.aspx</trackback:ping>
        </item>
        <item>
            <title>Making a Windows 7 bootable USB&amp;hellip;</title>
            <category>Utilities</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/10/22/making-a-windows-7-bootable-usbhellip.aspx</link>
            <description>&lt;p&gt;This get’s even easier.  &lt;a href="http://store.microsoft.com" target="_blank"&gt;The Microsoft store&lt;/a&gt; has released a utility that will, from an ISO (eg. one you get from the Microsoft Store) create a bootable USB flash drive.&lt;/p&gt;  &lt;p&gt;The direct link is here to the description page&lt;/p&gt;  &lt;p&gt;&lt;a title="http://store.microsoft.com/Help/ISO-Tool" href="http://store.microsoft.com/Help/ISO-Tool"&gt;http://store.microsoft.com/Help/ISO-Tool&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135653"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135653" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/135653.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/10/22/making-a-windows-7-bootable-usbhellip.aspx</guid>
            <pubDate>Thu, 22 Oct 2009 21:45:20 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/135653.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/10/22/making-a-windows-7-bootable-usbhellip.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/135653.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/135653.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Web Part Designer in Visual Studio 2010</title>
            <category>.NET</category>
            <category>SharePoint</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/10/03/visual-web-part-designer-in-visual-studio-2010.aspx</link>
            <description>&lt;p&gt;In the October edition of MSDN Magazine, there’s a great article that does a quick rundown of building a component that can be surfaced as a Web Part via the Gallery and placed in Web Part zones on pages.&lt;/p&gt;  &lt;p&gt;The article by Steve Fox is here: &lt;a href="http://msdn.microsoft.com/en-us/magazine/ee309510.aspx" target="_blank"&gt;Steve Fox - Visual Studio 2010 Tools for SharePoint Development – MSDN Magazine October 2009&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There’s a couple very important aspect that might not be 100% clear from the title – 1st, you’re really visually designing a User Control (ASCX).  So, this is really just a “visual user control designer and web part cookbook combination deployment helper”…&lt;/p&gt;  &lt;p&gt;And 2nd– this all works today, you just don’t get the magical build of the CAML based manifests, feature.xml, DDF, etc. to rapidly get into the “code –&amp;gt; build –&amp;gt; debug –&amp;gt; test –&amp;gt; code” cycles needed to increase the velocity of development.  Well, actually you can – with a couple of 3rd party tools.&lt;/p&gt;  &lt;p&gt;I’m not saying this isn’t a good thing – having VS2010 provide this capability.  In fact, what they are providing is industrialization of development patterns into a model that provided directly in the VS 2010 environment that was “cobbled” together either through the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=FB9D4B85-DA2A-432E-91FB-D505199C49F6&amp;amp;displaylang=en" target="_blank"&gt;VseWss&lt;/a&gt; extensions or tools such as &lt;a href="http://www.codeplex.com/wspbuilder" target="_blank"&gt;WSP Builder&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;User Controls&lt;/h4&gt;  &lt;p&gt;Now, why are User Controls potentially a concern.  In one word “versioning”.  Since, even in the example, most user controls are deployed to the farm into the “12” or “Root” hive of SharePoint – they are Farm based artifacts – in that you get 1 and only 1 of these “ASCX” files to be reused wherever they are statically referenced.&lt;/p&gt;  &lt;p&gt;That doesn’t give you true “Side-by-Side” (SxS) installation – which we can get with an Assembly that packages our Server control or Web Part Server control into a strong named that we can explicitly reference at runtime.&lt;/p&gt;  &lt;p&gt;That means if you have 2 Web Apps, Sites, whatever, that want to use distinct versions, you have to provide a way to have basically 2 complete “sets” of all these artifacts and using the way the example code was presented, you’d have to come up with a way to put a version name in the “filename”.&lt;/p&gt;  &lt;p&gt;So, how would you change the ASCX portion of the component for site #2 and redeploy?  Well, one way is to change the following – which is in your truly compiled class that probably made it into the GAC:  You can change a couple of things – 1st, the name of the ASCX file:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;private const string _ascxPath =
@"~/CONTROLTEMPLATES/SampleWebPartProject/ProductInfo/" +
@"ProductInfoUserControl.ascx";&lt;/pre&gt;

&lt;p&gt;If you change the name of the ASCX file, well, that didn’t buy you much.  Because, all instances across the Farm will still use this.&lt;/p&gt;

&lt;h4&gt;Option 1&lt;/h4&gt;

&lt;p&gt;Another way is to change the prefix of the path “~/CONTROLTEMPLATES/” – to something unique.  For that one, in the past I’ve simply use IIS virtual path mapping to a specific feature folder that contains the version name in the folder.  So, for example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Site1: “~/_MYCONTROLS”  is mapped to   “..\12\TEMPLATE\FEATURE\ControlsV1”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Site2: “~/_MYCONTROLS”  is mapped to   “..\12\TEMPLATE\FEATURE\ControlsV2”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The only difference being that it’s physically mapped to a different location (physical directory) – so at runtime it picks up the mapped version through IIS virtual directory magic.  &lt;/p&gt;

&lt;p&gt;This can be automated, creation of process through AppCmd as follows: (I've left out the full 12\14 hive path).&lt;/p&gt;

&lt;pre class="brush: plain;"&gt;AppCmd.exe ADD vdir /app.name:"LitwareInc/" /path:/_MYCONTROLS /physicalPath:c:\...\FEATURE\ControlsV2&lt;/pre&gt;

&lt;p&gt;So, what’ve got now is a single assembly, the true “web part server control” instantiating the version you really need. All for just a little bit more on the configuration side.&lt;/p&gt;

&lt;h4&gt;Option 2&lt;/h4&gt;

&lt;p&gt;An option that I’d like the template to automatically provide is to externalize the control name (ASCX) file to use at Web Part configuration time through the use of a property on the web part.  This could then be managed through the Web Part property editors that we get for free in SharePoint.&lt;/p&gt;

&lt;p&gt;This way at Page or Web Part configuration time, you either explicitly set this property or you provide some default in the code.  So, a property like the following would surface in the property editor allowing an “administrator”.  &lt;/p&gt;

&lt;p&gt;So, this is what I’ve done in the past that works:  In the web part define a configurable property as follows:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;[WebBrowsable]
[WebDisplayName("Control File Name")]
[WebDescription("Name of the ASCX file in the feature folder")]
[Category("Custom")]
[Personalizable(PersonalizationScope.Shared)]
public string ControlFileName {
    get;
    set;
}&lt;/pre&gt;

&lt;p&gt;Then change the code in the Web Part class to the following (in fact, this is where you can now have a “universal” User Control loader and just one way to wrap these User Controls from a single GAC deployed Web Part shell&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;protected override void CreateChildControls()
{
string ctrlPath= @"~/_MYCONTROLS/" + this.ControlFileName;  //maybe validate this - er, does it end in ASCX?
Control control = this.Page.LoadControl(ctrlPath);
Controls.Add(control);
base.CreateChildControls();
}&lt;/pre&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f646aafc-195c-4f49-b8b7-058590928885" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Development" rel="tag"&gt;Development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135269"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135269" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/135269.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/10/03/visual-web-part-designer-in-visual-studio-2010.aspx</guid>
            <pubDate>Sat, 03 Oct 2009 17:26:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/cicorias/comments/135269.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/10/03/visual-web-part-designer-in-visual-studio-2010.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/135269.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/135269.aspx</trackback:ping>
        </item>
        <item>
            <title>Connecting to Verizon Wireless Broadband</title>
            <category>Utilities</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/08/13/connecting-to-verizon-wireless-broadband.aspx</link>
            <description>&lt;p&gt;For some reason all of a sudden I started getting PPP errors during connection on VZW broadband on my Mobile phone.&lt;/p&gt;  &lt;p&gt;So, I had to re-initialize the connection on the phone.  This also works when tethering the phone and you don’t have to use the VZW software&lt;/p&gt;  &lt;p&gt;• Device: Smartphone wireless USB modem&lt;/p&gt;  &lt;p&gt;• Connection Name: [[whatever name you want]]&lt;/p&gt;  &lt;p&gt;• Number To Dial: #777&lt;/p&gt;  &lt;p&gt;• Connection Availability: Anyone's Use&lt;/p&gt;  &lt;p&gt;• Username: [[your phone #]]@vzw3g.com. Example: 9175551234@vzw3g.com&lt;/p&gt;  &lt;p&gt;• Password: vzw&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134081"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134081" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/134081.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/08/13/connecting-to-verizon-wireless-broadband.aspx</guid>
            <pubDate>Fri, 14 Aug 2009 06:11:31 GMT</pubDate>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/08/13/connecting-to-verizon-wireless-broadband.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/134081.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/134081.aspx</trackback:ping>
        </item>
        <item>
            <title>MSDN Library &amp;ndash; Low Bandwidth Mode&amp;hellip;</title>
            <category>Non-Tech</category>
            <category>.NET</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/05/28/msdn-library-ndash-low-bandwidth-modehellip.aspx</link>
            <description>&lt;p&gt;If you’re needing access to MSDN library from a 3g tethered, or low bandwidth at a location, MSDN Library is now published in a mode that lowers the payload…&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/default(loband).aspx" href="http://msdn.microsoft.com/en-us/library/default(loband).aspx"&gt;http://msdn.microsoft.com/en-us/library/default(loband).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Much more detail on Scott Hanselman’s blog on the HOW…&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.hanselman.com/blog/LowBandwidthViewAndOtherHiddenAndFutureFeaturesOfMSDN.aspx" href="http://www.hanselman.com/blog/LowBandwidthViewAndOtherHiddenAndFutureFeaturesOfMSDN.aspx"&gt;http://www.hanselman.com/blog/LowBandwidthViewAndOtherHiddenAndFutureFeaturesOfMSDN.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132478"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132478" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/132478.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/05/28/msdn-library-ndash-low-bandwidth-modehellip.aspx</guid>
            <pubDate>Fri, 29 May 2009 05:17:33 GMT</pubDate>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/05/28/msdn-library-ndash-low-bandwidth-modehellip.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/132478.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/132478.aspx</trackback:ping>
        </item>
        <item>
            <title>This version of the enterprise library cannot be installed side by side with version 4.0 on x64</title>
            <category>.NET</category>
            <category>Utilities</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/05/22/this-version-of-the-enterprise-library-cannot-be-installed-side.aspx</link>
            <description>When upgrading to Enterprise Library 4.1 on an x64 machine, even though you’ve run the 4.0 uninstaller, and even removed the registry key, you’ll still end up with an installer complaining that you can’t do side-by-side install.  The issue is the key is actually under the Wow node for x86 compatability – just remove this key…   &lt;pre class="brush: plain;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Enterprise Library v4&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132369"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132369" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/132369.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/05/22/this-version-of-the-enterprise-library-cannot-be-installed-side.aspx</guid>
            <pubDate>Sat, 23 May 2009 00:55:44 GMT</pubDate>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/05/22/this-version-of-the-enterprise-library-cannot-be-installed-side.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/132369.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/132369.aspx</trackback:ping>
        </item>
        <item>
            <title>Building a Mini URL Service – Part 2 – The Algorithm</title>
            <category>.NET</category>
            <category>SharePoint</category>
            <category>MyMiniUrl</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/05/05/building-a-mini-url-service--part-2--the.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://cicoria.com/CS1/blogs/cedarlogic/archive/2009/05/04/building-a-mini-url-service-part-1.aspx"&gt;Part 1&lt;/a&gt; – Part 2&lt;/p&gt;
&lt;p&gt;The first order of business is what URL shortening approach should be used to take some very long URL, which in IE7 is limited to 2,083 characters (&lt;a href="http://support.microsoft.com/kb/208427"&gt;KB208427&lt;/a&gt;) and provide a nice compact link.&lt;/p&gt;
&lt;p&gt;The first part of the link (protocol + server + port) is generally controlled by what domain name you can get – for me, my little demo is &lt;a href="http://MyMiniUrl.net"&gt;http://MyMiniUrl.net&lt;/a&gt;. The rest of the URL – the path is something in your control.&lt;/p&gt;
&lt;p&gt;Doing a search I came across a few approaches but settled on a &lt;a href="http://en.wikipedia.org/wiki/Base_62"&gt;Base 62&lt;/a&gt; approach that uses a sequence generation maintained in the persistence tier. The idea is to generate a unique sequential number, then convert that numeric to a Base 62 representation. For the sequence generation, I just relied on the DB layer (MySql or MS SQL) to generate this from an identity column.&lt;/p&gt;
&lt;p&gt;Once that identity value is generated, it gets run through a Base 62 conversion to a string representation. That string along with the identity (from the DB), the full Long URL, and a cryptographic hash of the Long URL is stored in the DB. The basic DB table schema is as follows (for MySQL):&lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="101" valign="top"&gt;
            &lt;p&gt;Column&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="120" valign="top"&gt;
            &lt;p&gt;Type&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="228" valign="top"&gt;
            &lt;p&gt;Description&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="101" valign="top"&gt;
            &lt;p&gt;urlId&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="120" valign="top"&gt;
            &lt;p&gt;Bigint(20)&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="228" valign="top"&gt;
            &lt;p&gt;Identity column&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="101" valign="top"&gt;
            &lt;p&gt;miniUrl&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="120" valign="top"&gt;
            &lt;p&gt;Char(12)&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="228" valign="top"&gt;
            &lt;p&gt;Shortened “path” of the URL&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="101" valign="top"&gt;
            &lt;p&gt;fullUrlHash&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="120" valign="top"&gt;
            &lt;p&gt;Char(32)&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="228" valign="top"&gt;
            &lt;p&gt;Crypto hash of Full URL using MD5&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="101" valign="top"&gt;
            &lt;p&gt;fullUrl&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="120" valign="top"&gt;
            &lt;p&gt;Varchar(4096)&lt;/p&gt;
            &lt;/td&gt;
            &lt;td width="228" valign="top"&gt;
            &lt;p&gt;Full URL provided&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The indices are as follows:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Primary – index on urlID &lt;/li&gt;
    &lt;li&gt;fullUrlHash – Unique index &lt;/li&gt;
    &lt;li&gt;miniUrl – I left this as “not unique” given my persistence pattern starts off with this value as null. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, when the URL service is asked to create a short URL, it first checks to see if the URL was already generated. To do that the UrlService uses the basic pattern: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Checks the URL pattern to a matching regular expression (in the config file) &lt;/li&gt;
    &lt;li&gt;Generates a MD5 hash of the full URL &lt;/li&gt;
    &lt;li&gt;Checks to see if the hash already exists doing a SQL lookup on the hashed value of the full URL
    &lt;ol&gt;
        &lt;li&gt;If exists, just return the existing shortened URL &lt;/li&gt;
        &lt;li&gt;If doesn’t exist
        &lt;ol&gt;
            &lt;li&gt;Insert new Long URL, Hash of URL &lt;/li&gt;
            &lt;li&gt;Get new identity key &lt;/li&gt;
            &lt;li&gt;Convert new identity key to Base 62 &lt;/li&gt;
            &lt;li&gt;Return short URL using Base 62 representation &lt;/li&gt;
        &lt;/ol&gt;
        &lt;/li&gt;
    &lt;/ol&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now, for the Base 62 algorithm, I looked around at a few approaches, and &lt;a href="http://www.shrinkrays.net/About.aspx"&gt;Chris&lt;/a&gt; had a good post on various approaches as well – &lt;a href="http://www.shrinkrays.net/articles/friendly-unique-id-generation/part-2.aspx"&gt;Friendly Unique Id generation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Starting with his code, I also found another approach located &lt;a href="http://javaconfessions.com/2008/09/convert-between-base-10-and-base-62-in_28.html"&gt;here&lt;/a&gt;, then finalized on the following:&lt;/p&gt;
&lt;div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;        &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; baseNum = 62;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;        &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;readonly&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;String&lt;/span&gt; baseDigits = &lt;span style="color: rgb(163, 21, 21);"&gt;"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"&lt;/span&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Base62ToString(&lt;span style="color: blue;"&gt;long&lt;/span&gt; fromValue)&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;        {&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;            &lt;span style="color: blue;"&gt;string&lt;/span&gt; toValue = fromValue == 0 ? &lt;span style="color: rgb(163, 21, 21);"&gt;"0"&lt;/span&gt; : &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;            &lt;span style="color: blue;"&gt;int&lt;/span&gt; mod = 0;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;            &lt;span style="color: blue;"&gt;while&lt;/span&gt; (fromValue != 0)&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;            {&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;                mod = (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)(fromValue % baseNum); &lt;span style="color: green;"&gt;//should be safe&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;                toValue = baseDigits.Substring(mod, 1) + toValue;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;                fromValue = fromValue / baseNum;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;            }&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;            &lt;span style="color: blue;"&gt;return&lt;/span&gt; toValue;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;font size="2"&gt;        }&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The basic approach is to loop through the source value, grab the remainder, convert that remainder to Base 62 and append it to a string return value, until there’s nothing left. &lt;/p&gt;
&lt;p&gt;So, in terms of “string” vs. StringBuilder performance, I also tried using StringBuilder in place of string concatenation, but performance, in a loop of a billion iterations was far better (about 60%) just with simple string concatenation. Now, I’m not too concerned with garbage collection at this point, I just wanted something quick and efficient – and in the end correct.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131821"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131821" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/131821.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/05/05/building-a-mini-url-service--part-2--the.aspx</guid>
            <pubDate>Tue, 05 May 2009 20:22:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/05/05/building-a-mini-url-service--part-2--the.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/131821.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/131821.aspx</trackback:ping>
        </item>
        <item>
            <title>Building a Mini URL Service &amp;ndash; Part 1</title>
            <category>SharePoint</category>
            <category>.NET</category>
            <category>Utilities</category>
            <category>MyMiniUrl</category>
            <link>http://geekswithblogs.net/cicorias/archive/2009/05/04/building-a-mini-url-service--part-1.aspx</link>
            <description>&lt;p&gt;This set of posts is about a "Mini URL" service that I created initially to help provide a means to automate shortening of URL's for sending in emails to users in SharePoint. If you've used SharePoint and at times you need to send a link to a List or Document item one way is to "right-click" the item (whether it's a folder, list item, or document) then if it's IE choose "Copy Shortcut". You can then just past that into an email and send over to your recipient. &lt;/p&gt;  &lt;p&gt;Recently, I also noticed that even the White House Tweets (&lt;a href="http://twitter.com/whitehouse"&gt;http://twitter.com/whitehouse&lt;/a&gt; ) are using another well known URL shortening service. A quick look around and you'll see that there are quite a few out there now. &lt;/p&gt;  &lt;p&gt;So, I stripped what I built into very basic ASP.NET Web Site and created a service that is now hosted at &lt;a href="http://godaddy.com"&gt;GoDaddy&lt;/a&gt; at &lt;a href="http://MyMiniUrl.net"&gt;http://MyMiniUrl.net&lt;/a&gt;. This intended as a pure demo project and the full SharePoint integration won't initially be made available until I work out some minor issues – mostly related to "packaging". But for now, I wanted to just document some of the initial steps, challenges, and work-around that I encountered building this along with some of the decisions (trade-offs) I made along the way. &lt;/p&gt;  &lt;p&gt;The initial technical goals of the service are as follows: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Provide a very basic redirection service for short URL – i.e. &lt;a href="http://myminiurl.net/B"&gt;http://myminiurl.net/B&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Hosted on &lt;a href="http://www.iis.net" target="_blank"&gt;IIS7&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Hosted on GoDaddy with their form of "Application/Domain" mapping – you'll see a minor challenge here later related to how Request.ApplicationPath, the tilde (“~”) don’t work as expected… &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;Provide Persistence tier independence through Provider model &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.common.dbproviderfactories.aspx"&gt;&amp;lt;system.data/DbProviderFactories&amp;gt;&lt;/a&gt; &lt;/div&gt;      &lt;ol&gt;       &lt;li&gt;MS SQL &lt;/li&gt;        &lt;li&gt;MySQL &lt;/li&gt;        &lt;li&gt;Future (&lt;a href="http://sqlite.phxsoftware.com/"&gt;SQL Lite&lt;/a&gt;) &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Pluggable &lt;a href="http://msdn.microsoft.com/en-us/library/zec9k340(VS.85).aspx"&gt;HttpModule&lt;/a&gt; for incorporating into existing web sites &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The SharePoint integration aspect, not yet provided here, is implemented as an ECB (Edit Control Block) menu option that allows immediate automated generation (or lookup if the URL has been shortened already) then presentation of a quick Application page that allows the user to specify an email or pick from People Picker to send out. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/cicorias/WindowsLiveWriter/BuildingaMiniURLServicePart1_DEC1/MyMiniUrlEcb_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="MyMiniUrlEcb" border="0" alt="MyMiniUrlEcb" src="http://geekswithblogs.net/images/geekswithblogs_net/cicorias/WindowsLiveWriter/BuildingaMiniURLServicePart1_DEC1/MyMiniUrlEcb_thumb_1.png" width="212" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Again, I've not published that part of this yet until I address a few issues. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:987e6e82-5408-4d79-baee-60da03d7b2fd" class="wlWriterSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Development" rel="tag"&gt;Development&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131729"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131729" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cicorias/aggbug/131729.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shawn Cicoria</dc:creator>
            <guid>http://geekswithblogs.net/cicorias/archive/2009/05/04/building-a-mini-url-service--part-1.aspx</guid>
            <pubDate>Mon, 04 May 2009 23:15:19 GMT</pubDate>
            <comments>http://geekswithblogs.net/cicorias/archive/2009/05/04/building-a-mini-url-service--part-1.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/cicorias/comments/commentRss/131729.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/cicorias/services/trackbacks/131729.aspx</trackback:ping>
        </item>
    </channel>
</rss>