<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/"><channel><title>SteelePrice.Net</title><link>http://blog.steeleprice.net/</link><description>Thinking outside the box</description><managingEditor>H. Steele Price, IV</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>H. Steele Price, IV</dc:creator><title>dotNetDave - dotNetTips.Utility 3.5 Released</title><link>http://blog.steeleprice.net/archive/2009/07/03/1732.aspx</link><pubDate>Fri, 03 Jul 2009 16:41:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/07/03/1732.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1732.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/07/03/1732.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1732.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1732.aspx</trackback:ping><description>&lt;p&gt; Dave McCarter has released a great package of Tips and Helpers.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;After lots new coding, refactoring and upgrading to .NET 3.5, dotNetTips.Utility 3.5 is finally released! This assembly is much of the common code I have been writing for the past 8+ years all wrapped up in a nice package and easy to use. &lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;read more: &lt;a href="http://dotnettips.com/2009/07/03/dotNetTipsUtility35Released.aspx"&gt;dotNetTips.Utility 3.5 Released&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;What’s great about this is that you will get some serious tools and the VB.Net source to see how they work.&amp;nbsp; Dave is a proponent of Standards and you can see in this library how he implements some of the techniques he talks about.&lt;/p&gt; &lt;p&gt;From AvailablePhysicalMemory to UsStateCollection the helpers get you from nowhere to somewhere fast.&lt;/p&gt; &lt;p&gt;Highly Recommended!&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Codeplex Project: &lt;a title="http://dotnettips.codeplex.com/" href="http://dotnettips.codeplex.com/"&gt;http://dotnettips.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1732.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Tweeps List: Visual Basic Influencers</title><link>http://blog.steeleprice.net/archive/2009/07/01/1731.aspx</link><pubDate>Wed, 01 Jul 2009 09:00:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/07/01/1731.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1731.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/07/01/1731.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1731.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1731.aspx</trackback:ping><description>&lt;p&gt;Antonio has put together a great list of VB Influencers to follow on Twitter &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.cto20.com/home/entryid/112/tweeps-list-microsoft-visual-basic-mvp-rsquo-s.aspx"&gt;Antonio Chagoury - Tweeps List: Microsoft Visual Basic MVP’s&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;While his title says MVPs, there are some other influencers listed&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1731.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>I'm A VB (imavb.net campaign)</title><link>http://blog.steeleprice.net/archive/2009/06/29/1715.aspx</link><pubDate>Mon, 29 Jun 2009 07:59:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/06/29/1715.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1715.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/06/29/1715.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1715.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1715.aspx</trackback:ping><description>&lt;blockquote&gt; &lt;p&gt;Who is the “typical VB.NET developer”? Is there one? There are millions of VB.NET developers in the world, and they each have their own unique story.&lt;/p&gt; &lt;p&gt;Here’s mine:&lt;/p&gt; &lt;p&gt;· &lt;b&gt;How long have you been using VB?&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;Since V1. In 1992, I was looking for a replacement to QBasic when developing a Point of Sale Application for Windows. &lt;p&gt;· &lt;b&gt;What industry do you work in?&lt;/b&gt; &lt;p&gt;Software Development. We are very diversified in our client base, touching Medical Records, Financial Services, Home Automation, Factory Floor Control, Online Gaming, Media and Training. &lt;p&gt;· &lt;b&gt;How big is your development team?&lt;/b&gt; &lt;p&gt;We are a small shop in terms of size. We leverage Code Generation heavily to compensate for not having code monkeys to type in all the repetitive code that goes along most applications. &lt;p&gt;· &lt;b&gt;What kind of apps do you most commonly build?&lt;/b&gt; &lt;p&gt;Line of Business Web Applications. &lt;p&gt;· &lt;b&gt;What’s the most interesting app you’ve ever built?&lt;/b&gt; &lt;p&gt;That's Top Secret. :-) I am doing my most interesting app development right now! Think Silverlight, Home Automation and Green Technology. Details will come out soon. &lt;p&gt;· &lt;b&gt;Please tell us about an app that you’re working on at the moment.&lt;/b&gt; &lt;p&gt;Currently one of my applications is a system for helping Non-Profit Organization raise funds and advertise. We built the Proof of Concept in Silverlight 1.1 and are currently re-engineering for release in Silverlight 3. &lt;p&gt;· &lt;b&gt;What other technologies do you most commonly use?&lt;/b&gt; &lt;p&gt;Code Generation, this is a pretty broad definition... I use many technologies depending on the needs of my client. Some of those include: Silverlight, WCF, ASP.Net, ASP.Net MVC, MEF and nHibernate. &lt;p&gt;· &lt;b&gt;What are some of your favorite VB features?&lt;/b&gt; &lt;p&gt;XML Literals, Background compiler, Linq syntax in VB, Case Insensitivity. &lt;p&gt;· &lt;b&gt;What do you like most about VB as a programming language?&lt;/b&gt; &lt;p&gt;I like VB because I can use it everywhere I work (asp, silverlight, office) and still retain a sense of familiarity with my syntax. VB code is much easier for me to read and review than other more cryptic languages. Also pretty much EVERYONE can read and understand my code... even the perl developers. I can't really say that about any other language. &lt;p&gt;&lt;b&gt;For other interviews in this series, please visit &lt;/b&gt;&lt;a href="http://imavb.net/"&gt;&lt;b&gt;http://imavb.net&lt;/b&gt;&lt;/a&gt;&lt;b&gt;. &lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1715.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Send a NameValueCollection ToXElement</title><link>http://blog.steeleprice.net/archive/2009/06/23/1705.aspx</link><pubDate>Tue, 23 Jun 2009 14:12:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/06/23/1705.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1705.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/06/23/1705.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1705.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1705.aspx</trackback:ping><description>&lt;p&gt;I do lots of work with collections and one thing I tend to frequently is log all the information I can about a certain Request under certain conditions.&lt;/p&gt; &lt;p&gt;I found myself needing to serialize or save all the Request.ServerVariables.&lt;/p&gt; &lt;p&gt;Now, we could walk through the items, blah, blah, blah, this ends up being much easier with an Extension Method:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Module&lt;/span&gt; NameValueCollectionExtension
    &amp;lt;Runtime.CompilerServices.Extension()&amp;gt; _
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; ToXElement(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; self &lt;span class="kwrd"&gt;As&lt;/span&gt; NameValueCollection, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; RootElementName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; XElement
        &lt;span class="kwrd"&gt;With&lt;/span&gt; self
            &lt;span class="kwrd"&gt;If&lt;/span&gt; RootElementName = &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                RootElementName = .&lt;span class="kwrd"&gt;GetType&lt;/span&gt;().Name
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; xel &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; XElement(RootElementName)
            &lt;span class="kwrd"&gt;If&lt;/span&gt; .HasKeys &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                &lt;span class="kwrd"&gt;For&lt;/span&gt; i &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 0 &lt;span class="kwrd"&gt;To&lt;/span&gt; .Count - 1
                    xel.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; XElement(.Keys(i), .Item(.Keys(i))))
                &lt;span class="kwrd"&gt;Next&lt;/span&gt;
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; xel
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

    &amp;lt;Runtime.CompilerServices.Extension()&amp;gt; _
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; ToXElement(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; self &lt;span class="kwrd"&gt;As&lt;/span&gt; NameValueCollection) &lt;span class="kwrd"&gt;As&lt;/span&gt; XElement
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; self.ToXElement(&lt;span class="kwrd"&gt;String&lt;/span&gt;.Empty)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Module&lt;/pre&gt;
&lt;p&gt;To use this in your code, save the above as a Module.&lt;/p&gt;
&lt;p&gt;Then in your ASPX Code Behind or elsewhere applicable (like Silverlight), simply use this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; data = Request.ServerVariables.ToXElement()&lt;/pre&gt;
&lt;p&gt;Or This:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; data = Request.ServerVariables.ToXElement(&lt;span class="str"&gt;"ServerVariables"&lt;/span&gt;)&lt;/pre&gt;
&lt;p&gt;I took the consideration of allowing you to set a ROOT Element if you don’t want to use the Variable’s Type Name by providing an Override that accepts a String for the Name.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Et, voila! You have a perfectly good XML Snapshot of all the Request’s Server Variables:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HttpServerVarsCollection&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ALL_HTTP&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;HTTP_CACHE_CONTROL:no-cache
              HTTP_CONNECTION: Keep(-Alive)
              HTTP_CONTENT_LENGTH:7654
              HTTP_CONTENT_TYPE:application/x-www-form-urlencoded
              HTTP_ACCEPT:image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
              HTTP_ACCEPT_ENCODING: gzip, deflate
              HTTP_ACCEPT_LANGUAGE: en(-us)
              HTTP_COOKIE: ASP.NET_SessionId = *********************
              HTTP_HOST:localhost:22318
              HTTP_REFERER:http://localhost:22318/Public/MyPage.aspx
              HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; MS-RTC LM 8; .NET CLR 4.0.20506)
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ALL_HTTP&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ALL_RAW&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Cache-Control: no-cache
             Connection: Keep(-Alive)
             Content-Length: 7654
             Content-Type: application/x-www-form-urlencoded
             Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
                     Accept(-Encoding) : gzip, deflate
                     Accept(-Language) : en(-us)
             Cookie: ASP.NET_SessionId = *****************
             Host: localhost:22318
             Referer: http://localhost:22318/Public/MyPage.aspx
             User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; MS-RTC LM 8; .NET CLR 4.0.20506)
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ALL_RAW&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;APPL_MD_PATH&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;APPL_PHYSICAL_PATH&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;C:\SourceCode\SomeProject\trunk\MyApp\&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;APPL_PHYSICAL_PATH&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AUTH_TYPE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AUTH_USER&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AUTH_PASSWORD&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LOGON_USER&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;DREAMSHOP\steele&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LOGON_USER&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;REMOTE_USER&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_COOKIE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_FLAGS&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_ISSUER&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_KEYSIZE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_SECRETKEYSIZE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_SERIALNUMBER&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_SERVER_ISSUER&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_SERVER_SUBJECT&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CERT_SUBJECT&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CONTENT_LENGTH&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;7654&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;CONTENT_LENGTH&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;CONTENT_TYPE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;application/x-www-form-urlencoded&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;CONTENT_TYPE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;GATEWAY_INTERFACE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTPS&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTPS_KEYSIZE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTPS_SECRETKEYSIZE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTPS_SERVER_ISSUER&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTPS_SERVER_SUBJECT&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;INSTANCE_ID&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;INSTANCE_META_PATH&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LOCAL_ADDR&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;127.0.0.1&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LOCAL_ADDR&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PATH_INFO&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/Public/MyPage.aspx&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PATH_INFO&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PATH_TRANSLATED&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;C:\SourceCode\SomeProject\trunk\MyApp\Public\MyPage.aspx&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PATH_TRANSLATED&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;QUERY_STRING&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;REMOTE_ADDR&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;127.0.0.1&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;REMOTE_ADDR&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;REMOTE_HOST&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;127.0.0.1&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;REMOTE_HOST&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;REMOTE_PORT&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;REQUEST_METHOD&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;POST&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;REQUEST_METHOD&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SCRIPT_NAME&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/Public/MyPage.aspx&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SCRIPT_NAME&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SERVER_NAME&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;localhost&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SERVER_NAME&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SERVER_PORT&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;22318&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SERVER_PORT&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SERVER_PORT_SECURE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;0&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SERVER_PORT_SECURE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SERVER_PROTOCOL&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;HTTP/1.1&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SERVER_PROTOCOL&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SERVER_SOFTWARE&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;URL&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/Public/MyPage.aspx&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;URL&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_CACHE_CONTROL&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;no-cache&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_CACHE_CONTROL&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_CONNECTION&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Keep-Alive&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_CONNECTION&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_CONTENT_LENGTH&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;7654&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_CONTENT_LENGTH&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_CONTENT_TYPE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;application/x-www-form-urlencoded&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_CONTENT_TYPE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_ACCEPT&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_ACCEPT&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_ACCEPT_ENCODING&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;gzip, deflate&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_ACCEPT_ENCODING&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_ACCEPT_LANGUAGE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;en-us&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_ACCEPT_LANGUAGE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_COOKIE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;ASP.NET_SessionId=**********&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_COOKIE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_HOST&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;localhost:22318&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_HOST&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_REFERER&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;http://localhost:22318/Public/MyPage.aspx&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_REFERER&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HTTP_USER_AGENT&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; MS-RTC LM 8; .NET CLR 4.0.20506)&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HTTP_USER_AGENT&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;HttpServerVarsCollection&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Remember, this is NOT limited to HttpServerVariables, it works with ANY NameValueCollection.&lt;/p&gt;
&lt;p&gt;This can be a huge amount of data depending on what you are doing.&amp;nbsp; You can always use Linq to get a subset of the Collection, or .Remove() some known XElements, like ALL_HTTP, ALL_RAW or All the empty nodes before persisting or displaying this.&lt;/p&gt;
&lt;p&gt;Extension Methods offer a great solution to common problems when you don’t have access to write a Method for the Class.&amp;nbsp; They are also great for making shortcuts to common scenarios for work you do with Collections or Conversions.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cynotwhynot.com/blog/post/RequestServerVariables2c-the-LINQ-way.aspx" target="_blank"&gt;Click here for another useful extension for NameValueCollection by Tony Cavaliere&lt;/a&gt; from which I derived this idea, Thanks for sharing Tony!&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1705.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Misfit Geek Podcast - Does VB have a Future?  &amp;hellip; Absolutely.</title><link>http://blog.steeleprice.net/archive/2009/06/19/1704.aspx</link><pubDate>Fri, 19 Jun 2009 10:30:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/06/19/1704.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1704.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/06/19/1704.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1704.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1704.aspx</trackback:ping><description>&lt;blockquote&gt; &lt;p&gt;Lisa Feigenbaum from the .NET Managed Languages Group about Visual Basic .NET. Does VB.NET have a future ? Does Microsoft love C# more than VB.NET? &lt;a href="http://misfitgeek.com/podcast/misfit-geek-podcast-episode-2-does-vb-have-a-future/" target="_blank"&gt;Listen and find out&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Of course it does… As Lisa says, it’s not in Microsoft’s best interest to stop moving VB.NET forward.&lt;/p&gt; &lt;p&gt;Yes, there is a bias about VB in general, but 99.9% of this comes from VB perception and not VB.NET.&amp;nbsp; VB.NET is completely different and people do not realize it’s only related by SOME (not nearly all) syntax.&amp;nbsp; The underlying IL is not really any different from C# when compiled.&amp;nbsp; This is a marked difference in the way VB works internally.&lt;/p&gt; &lt;p&gt;Overall, I think this is a good refresher for people who (quite wrongly) think VB is going nowhere.&amp;nbsp; VB is here for the long haul, bashers need to just get over it… You will see VB.Net development continue for the rest of most of our careers.&amp;nbsp; That makes me a very happy developer.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Anyone still bashing VB is A) ignorant of what VB.Net really is and B) no different from being a racist, beating a drum that is stupid and irrelevant.&lt;/p&gt; &lt;p&gt;&lt;a href="http://misfitgeek.com/podcast/misfit-geek-podcast-episode-2-does-vb-have-a-future/"&gt;Misfit Geek Podcast&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1704.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>VB Extension Methods for Repeating Strings</title><link>http://blog.steeleprice.net/archive/2009/06/15/1703.aspx</link><pubDate>Mon, 15 Jun 2009 14:23:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/06/15/1703.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1703.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/06/15/1703.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1703.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1703.aspx</trackback:ping><description>&lt;p&gt;I was looking for a way to create some Repeating Strings easily and I got tired of typing. &lt;/p&gt; &lt;p&gt;You may notice that the String() constructor will allow you to create single repeating characters, but it does not let you create repeating Strings.&lt;/p&gt; &lt;p&gt;For example, creating this is simple: &lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; zeros &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;(&lt;span class="str"&gt;"0"&lt;/span&gt;, 10)&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;which results in a String of ten zeros or “0000000000”.&lt;/p&gt;
&lt;p&gt;This is a great way to make String with a single repeating character.&amp;nbsp; So how to I repeat whole strings?&lt;/p&gt;
&lt;p&gt;The first technique would be to use StringBuilder.Append, which is pretty efficient and apparently what most people use.&lt;/p&gt;
&lt;p&gt;Then I saw this fairly old (2005) &lt;a href="http://weblogs.asp.net/egarmon/archive/2005/01/12/351707.aspx" target="_blank"&gt;post from Eddie Garmon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As a result, here is my VB version of String.Repeat()&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Module&lt;/span&gt; StringExtensions
    &lt;span class="rem"&gt;''' &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;''' Maximum performance for Initializing a repeating String&lt;/span&gt;
    &lt;span class="rem"&gt;''' &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;''' &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;
    &amp;lt;Runtime.CompilerServices.Extension()&amp;gt; _
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; Repeat(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; input &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; count &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;If&lt;/span&gt; input &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;
        &lt;span class="kwrd"&gt;ElseIf&lt;/span&gt; (input = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Empty) &lt;span class="kwrd"&gt;OrElse&lt;/span&gt; (count &amp;lt; 1) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;.Empty
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;.Join(input, &lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;(count) {})
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Module&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; in VB, don’t forget the {} Initializer or String uses the wrong Constructor and you get a compile error.&lt;/p&gt;
&lt;p&gt;Now I have a really simple way to create repeated strings:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; repeated = &lt;span class="str"&gt;"&amp;lt;col/&amp;gt;"&lt;/span&gt;.Repeat(5)
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;or this: &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; repeatThis = &lt;span class="str"&gt;"&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;"&lt;/span&gt;
&lt;span class="kwrd"&gt;Dim&lt;/span&gt; repeated = repeatThis.Repeat(5)
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;which is easier to type than:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; repeated = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Join(input, &lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;(5) {})
&lt;/pre&gt;
&lt;p&gt;In addition, it’s going to handle the basic Error Trapping so I don’t have to repeat that every time too.&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1703.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>WPF Line of Business Application Training</title><link>http://blog.steeleprice.net/archive/2009/06/01/1702.aspx</link><pubDate>Mon, 01 Jun 2009 12:23:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/06/01/1702.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1702.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/06/01/1702.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1702.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1702.aspx</trackback:ping><description>&lt;p&gt;Right on the heels of the last major Phoenix event, we are happy to have &lt;strong&gt;&lt;a href="http://blogs.msdn.com/jaimer/"&gt;Jaime Rodriquez&lt;/a&gt; &lt;/strong&gt;and &lt;a href="http://karlshifflett.wordpress.com/"&gt;&lt;strong&gt;Karl Shifflett&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;presenting a &lt;strong&gt;FREE&lt;/strong&gt; 2 day course on the subject.&amp;nbsp; If you can possibly get there, then you should.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.msregistration.com/content/eventselection.asp?eventid=21398&amp;amp;CcpSubsiteID=85&amp;amp;vdid=455" target="_blank"&gt;Registration Link&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Day One:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Lap Around WPF  &lt;li&gt;WPF Tools ( Blend, Visual Studio 2008)  &lt;li&gt;Graphics Subsystem  &lt;li&gt;Layout  &lt;li&gt;WPF Fundamentals and new concepts  &lt;ul&gt; &lt;li&gt;Application Model  &lt;li&gt;Dependency Properties  &lt;li&gt;Trees (logical &amp;amp; visual)  &lt;li&gt;Events  &lt;li&gt;Threading  &lt;li&gt;Resources&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Controls  &lt;li&gt;Styling  &lt;li&gt;Templating  &lt;li&gt;Q&amp;amp;A with instructors at end of day &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Day Two: &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;WPF integration with Win32 and Windows Forms  &lt;li&gt;Data binding  &lt;li&gt;Introduction to Model-View-ViewModel  &lt;li&gt;Commanding in M-V-VM  &lt;li&gt;Views, Navigation and Transitions  &lt;li&gt;Data Validation  &lt;li&gt;Error handling, Model dialogs, Logging  &lt;li&gt;Unit Testing  &lt;li&gt;MVVM &amp;amp; LOB tips and tricks  &lt;li&gt;Q&amp;amp;A with the instructor&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Knowing Karl, this is going to be a really DEEP DIVE, not a simple demo of stuff we would never use in production.&amp;nbsp; I was very impressed by what Jaime presented last week and I was sorry to see him cut short.&lt;/p&gt; &lt;p&gt;I’ll be there helping out when I can on the Silverlight side of things and with M-V-VM the Architecture Pattern in General.&lt;/p&gt; &lt;p&gt;The real thing about programming in an architectural model like this is that it is a complete paradigm shift from the Winforms or Asp.Net style of programming.&amp;nbsp; The Architecture is the most important thing to understand when you are creating Applications with these new Frameworks.&amp;nbsp; Understanding the Architecture in full will help you to understand how what YOU do every day fits into that structure, making you a more valuable team member.&amp;nbsp; If you are a Team of One, then it is even more important for you as a developer to really “get this.”&lt;/p&gt; &lt;p&gt;Every one of these concepts also applies to Silverlight, with the possible exception of Win32 Interop.&amp;nbsp; If you think you would look more to Silverlight than WPF this tour is still going to help you in 90% of its content.
&lt;/p&gt;
&lt;p&gt;Here’s a quote from Jaime:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Yes, joining our training and learning WPF will help you learn Silverlight. In fact, having trained both in the past, I think our training will help you much better understand Silverlight and prepare for the future. Things like Dependency Properties, RoutedEvents, are in Silverlight, but are not fully implemented yet. In our WPF training, we explain the whys and hows of all of these. Some of this goodness will continue to trickle into Silverlight over time and I have heard from people it helps to understand the design principle behind it.” &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;See you There!&lt;/p&gt;
&lt;img src ="http://blog.steeleprice.net/aggbug/1702.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>AZGroups.org 2009 Scott Guthrie Event</title><link>http://blog.steeleprice.net/archive/2009/04/24/1675.aspx</link><pubDate>Fri, 24 Apr 2009 12:20:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/04/24/1675.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1675.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/04/24/1675.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1675.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1675.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://www.azgroups.org"&gt;AZGroups&lt;/a&gt; is pleased to present their 2009 Main Community Event featuring Scott Guthrie, Glenn Block and Jamie Rodriguez.&lt;/p&gt; &lt;p&gt;Here are the details and the link to register at the bottom of the post.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Sessions&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;ASP.NET MVC&lt;/strong&gt;&lt;br&gt;&lt;em&gt;Presented By Scott Guthrie (ScottGu)&lt;/em&gt; &lt;p&gt;We’ll walkthrough building an application from scratch using the recent ASP.NET MVC 1.0 release.&amp;nbsp; You’ll learn what ASP.NET MVC is, the design decisions behind it, and how to build a real application with it.&amp;nbsp; We’ll cover topics ranging from the basics of application creation through to concepts like unit testing and dependency injection. &lt;br&gt;&lt;strong&gt;Silverlight 3&lt;/strong&gt; &lt;p&gt;&lt;em&gt;Presented By Scott Guthrie (ScottGu)&lt;/em&gt; &lt;p&gt;We’ll walkthrough building applications using the new Silverlight 3 release.&amp;nbsp; We’ll cover some of the power the new SL3 release provides, and then dive into how to program applications with it.&amp;nbsp; We’ll cover how to build data applications with it, build eye popping graphic solutions, and enable out of the browser applications with it. &lt;p&gt;&lt;strong&gt;Building openly extensible applications in .NET 4.0&lt;/strong&gt; &lt;p&gt;&lt;em&gt;Presented By Glenn Block&lt;br&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt;Are you tired of building monolithic style apps? Are you tired of hacking your app to bits to meet just one more requirement. Do you want to enable third parties to provide add-on value to your apps?&amp;nbsp; If the answer to any of these is yes, then come learn about the new Managed Extensibility Framework which ships in .NET 4.0.&amp;nbsp; Applications built on MEF dynamically discover and compose available components at runtime. This makes MEF ideal for third-party extensibility scenarios, where the type and number of extensions are undefined. With MEF you can enable customers and third-parties to take your apps where no man has gone before.&amp;nbsp; &lt;br&gt;&lt;strong&gt;The Microsoft Client Continuum: Sharing code, skills and tools between WPF and Silverlight&lt;/strong&gt; &lt;p&gt;&lt;em&gt;Presented By Jaime Rodriguez&lt;br&gt;&lt;/em&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt;Are you wondering why Microsoft has both WPF and Silverlight?&amp;nbsp; Do they really need two technologies (given how similar they are)?&amp;nbsp; This session will walk you through the different scenarios that both Silverlight and WPF are addressing today, we will cover the similarities, and differences between the platforms, and share pragmatic advise for building applications that exploit both platforms. &lt;p&gt;&lt;strong&gt;Speakers&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;Scott Guthrie&lt;/strong&gt; is corporate vice president of Microsoft's .NET Developer Platform, where he runs the development teams responsible for delivering Microsoft Visual Studio developer tools and Microsoft .NET Framework technologies for building client and Web applications.&lt;br&gt;A founding member of the .NET project, Guthrie has played a key role in the design and development of Visual Studio and the .NET Framework since 1999. Guthrie is also responsible for Microsoft's Web server platform and development tools teams. He has also more recently driven the development of Silverlight – a cross browser, cross platform plug-in for delivering next generation media experiences and rich internet applications for the Web.&lt;br&gt;Today, Guthrie directly manages the development teams that build the Common Language Runtime (CLR), ASP.NET, Silverlight, Windows Presentation Foundation (WPF), IIS, Commerce Server and the Visual Studio Tools for Web, Client and Silverlight development.&lt;br&gt;Guthrie graduated with a degree in computer science from Duke University. &lt;p&gt;&lt;strong&gt;Jaime Rodriguez&lt;/strong&gt; is a Senior Technical Evangelist in Microsoft's Client Evangelism team. Jaime's current mission is to show customers how easy it is to accomplish both great software architecture and amazing user experiences using Windows Presentation Foundation and Silverlight. You can follow Jaime's musings at http://blogs.msdn.com/jaimer. &lt;br&gt;&lt;strong&gt;Glenn Block&lt;/strong&gt; is an industry expert with broad enterprise software development experience including architecture and system design. Strong proficiency in designing software frameworks and infrastructure. Driver of technical strategy for small and large organizations. Professional speaker who has presented at both industry and community events.&lt;br&gt;Glenn Block’s Specialties:&lt;br&gt;Agile practices, Architecture, Design patterns, Driving Technical Strategy, Program Management, Product Planning &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Registration: &lt;a href="http://scottgu2009.eventbrite.com/"&gt;AZGroups.org 2009 Scott Guthrie Event&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1675.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Twitter Ticker - Visual Basic</title><link>http://blog.steeleprice.net/archive/2009/04/23/1674.aspx</link><pubDate>Thu, 23 Apr 2009 13:43:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/04/23/1674.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1674.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/04/23/1674.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1674.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1674.aspx</trackback:ping><description>&lt;p&gt;Serge came up with a cool use of the Twitter API for his blog…&lt;/p&gt; &lt;blockquote&gt; &lt;h2&gt;Twitter Ticker - VB&lt;/h2&gt; &lt;p&gt;25 latest tweets about Visual Basic &lt;p&gt;&lt;a href="http://sergeb.com/blog/twitter-ticker-vb.aspx"&gt;sergeb.com: Twitter Ticker - Visual Basic&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Nice idea to get live aggregated info from social networks that apply directly to your content&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1674.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>LINQ to Objects - Debugging</title><link>http://blog.steeleprice.net/archive/2009/04/23/1673.aspx</link><pubDate>Thu, 23 Apr 2009 12:16:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/04/23/1673.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1673.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/04/23/1673.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1673.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1673.aspx</trackback:ping><description>&lt;p&gt; Found this link today… awesome stuff here, expect a VB sample here soon.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Declarative language constructs like query comprehension syntax often worries imperatively trained developers. I hear this quite a bit, and the excuse of “It Just Works” is often not satisfactory for most of them :-). Combine this with interesting behavioral differences like lazy evaluation and lots of developers get lost in paradise. &lt;p&gt;Actually the perceived problem is not with LINQ itself, typically a lack of solid understanding about the query execution model causes grief. So one thing that can help to address this problem is a better visualization of how a query executes. Advanced query “providers” like LINQ to SQL offer logging capabilities to inspect what’s going on, but LINQ to Objects lacks such a capability. &lt;p&gt;In this post, we’ll have a look at possible approaches to make debugging LINQ to Objects (and hence LINQ to XML) queries easier. At the end of the day you’ll come to the conclusion it all boils down to knowing precisely what the semantics of the various operators are and how the execution works in the face of laziness etc.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/archive/2009/04/23/linq-to-objects-debugging.aspx"&gt;LINQ to Objects - Debugging - B# .NET Blog&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1673.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>More intuitive way to page Linq queries.</title><link>http://blog.steeleprice.net/archive/2009/04/09/1663.aspx</link><pubDate>Thu, 09 Apr 2009 10:05:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/04/09/1663.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1663.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/04/09/1663.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1663.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1663.aspx</trackback:ping><description>&lt;P&gt;I found this today from Paul Welter&amp;#8230; &lt;B&gt;&lt;A href="http://www.loresoft.com/snippets/easier-way-to-page-linq-queries/"&gt;Easier way to page Linq queries.&lt;/A&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Here is the Proper VB Equivalent Snippet:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Imports&lt;/SPAN&gt; System.Collections.Generic
&lt;SPAN class=kwrd&gt;Imports&lt;/SPAN&gt; System.Linq
&lt;SPAN class=kwrd&gt;Imports&lt;/SPAN&gt; System.Text
&lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Module&lt;/SPAN&gt; PageQuery
    &lt;SPAN class=rem&gt;''' &amp;lt;summary&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' Easily get Pages for an IQueryable(Of T)&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;/summary&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;typeparam name="T"&amp;gt;any IQueryable supported Type&amp;lt;/typeparam&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;param name="query"&amp;gt;The Query we are Paginating&amp;lt;/param&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;param name="page"&amp;gt;Page Number (starts at 1)&amp;lt;/param&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;param name="pageSize"&amp;gt;Number of Items per Page&amp;lt;/param&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;returns&amp;gt;Reduced query with a single page of information&amp;lt;/returns&amp;gt;&lt;/SPAN&gt;
    &lt;SPAN class=rem&gt;''' &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/SPAN&gt;
    &amp;lt;Runtime.CompilerServices.Extension()&amp;gt; _
    &lt;SPAN class=kwrd&gt;Public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Function&lt;/SPAN&gt; Paginate(Of T)(&lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; query &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; IQueryable(Of T), _
                                   &lt;SPAN class=kwrd&gt;Optional&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; page &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Integer&lt;/SPAN&gt; = 1, _
                                   &lt;SPAN class=kwrd&gt;Optional&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;ByVal&lt;/SPAN&gt; pageSize &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Integer&lt;/SPAN&gt; = 10) &lt;SPAN class=kwrd&gt;As&lt;/SPAN&gt; IQueryable(Of T)
        &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; query &lt;SPAN class=kwrd&gt;Is&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Nothing&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Return&lt;/SPAN&gt; query
        &lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; skip = Math.Max(pageSize * (page - 1), 0)
        &lt;SPAN class=kwrd&gt;Return&lt;/SPAN&gt; query.Skip(skip).Take(pageSize)
    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Function&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Module&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;I found this to be more intuitive for doing this:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; query = From row &lt;SPAN class=kwrd&gt;In&lt;/SPAN&gt; db.Invoices _
            Order By row.InvoiceID Descending _
            &lt;SPAN class=kwrd&gt;Select&lt;/SPAN&gt; row
&lt;SPAN class=kwrd&gt;Return&lt;/SPAN&gt; query.Paginate(page, pageSize).ToList()
&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Instead of this:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Return&lt;/SPAN&gt; query.Skip(skipRows).Take(takeRows).ToList()
&lt;/PRE&gt;
&lt;P&gt;Notes: VB doesn&amp;#8217;t like the Namespace in the C# Sample code and it&amp;#8217;s not needed for us.&amp;nbsp; Also remember you should always use an Order By when Paging.&lt;/P&gt;
&lt;P&gt;I also added a trap so that if the Query is Nothing it doesn&amp;#8217;t throw a NullReferenceException.&lt;/P&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1663.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>PLINQO - Supercharged LINQ to SQL Now Available</title><link>http://blog.steeleprice.net/archive/2009/04/07/1662.aspx</link><pubDate>Tue, 07 Apr 2009 11:53:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/04/07/1662.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1662.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/04/07/1662.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1662.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1662.aspx</trackback:ping><description>&lt;p&gt;Eric has released PLINQO version 3.0 in BOTH C# and VB for CodeSmith&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Changes are an inevitable part of any project. The LINQ to SQL designer in Visual Studio provides a lot of support for manipulating entities, but does NOT make it easy when a refactor is required. The LINQ to SQL designer requires that the entity be dropped and recreated to generate the necessary updates. When the entity is dropped, any updates made for that entity are also lost and now must be re-created. This is time consuming, tedious and results in work being done over and over again. With PLINQO, make changes, right-click, generate, DONE!&lt;/p&gt; &lt;p&gt;PLINQO Rules! Yes, PLINQO provides several different ways to lay down the law. Rules can be added programmatically or declaratively through attributes. Constraints like property length and required field rules can be enforced. Regular Expression data validation as well as several built in rules including authorization rules are possible with PLINQO. Before any data is saved, the rules are automatically executed against any entities in your change set. If any rules are broken, a BrokenRulesException will be thrown with a list of the rules that were broken and the entity will not be updated. &lt;br&gt;The PLINQO rule manager generates rules based on the schema and any custom rules can be added to the rules collection. The rules are enforced when any attempt to save changes is made. Custom rules are a snap to add and the AddSharedRules partial method on each entity is the place to add them. Only a few lines of code and a custom rule can be added.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://plinqo.com/default.aspx?AspxAutoDetectCookieSupport=1"&gt;PLINQO - Supercharged LINQ to SQL&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Very good stuff here.&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1662.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>XML Literals, WCF and LINQ</title><link>http://blog.steeleprice.net/archive/2009/03/30/1657.aspx</link><pubDate>Mon, 30 Mar 2009 22:39:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/03/30/1657.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1657.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/03/30/1657.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1657.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1657.aspx</trackback:ping><description>&lt;P&gt;My most recent article is up at Visual Studio Magazine Online.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;I choose to pick the tools that apply directly to a problem I need to solve and use those new capabilities to enhance my productivity. Even more power and flexibility comes when we can take several of these capabilities and combine them for a unique solution to a problem. 
&lt;P&gt;We're going to look specifically at three pieces of the framework that can be combined to provide a new technique. This technique helps in writing more responsive ASP.NET pages, while at the same time making the code more readable. The three technologies are: XML literals, Windows Communication Foundation (WCF) Factory Services and LINQ. XML literals and LINQ are new in Visual Basic 9 (VB9). LINQ gives us a common syntax for querying just about any data, be it SQL, XML or objects. Even though WCF has been here for a while, the out-of-the-box readiness for building factory services is little-known. Here we'll show you how to create WCF services without changes to config files for endpoints, behaviors and bindings.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://visualstudiomagazine.com/columns/article.aspx?editorialsid=3053"&gt;Visual Studio Magazine Online | On VB: XML Literals, WCF and LINQ&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I look forward to presenting more of these in the future. I will also be talking about this these techniques for a while, hopefully at the next Desert Code Camp.&lt;/P&gt;
&lt;P&gt;Code samples for this article: &lt;A href="http://code.digitaldreamshop.com/tracking/projects/vsm0903/documents"&gt;Templating with XML Literals&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1657.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>VB Samples for Silverlight Toolkit Available in March 2009 Release</title><link>http://blog.steeleprice.net/archive/2009/03/25/1654.aspx</link><pubDate>Wed, 25 Mar 2009 16:20:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/03/25/1654.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1654.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/03/25/1654.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1654.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1654.aspx</trackback:ping><description>&lt;p&gt;We lobbied hard for this, now we have it… GO USE IT! :-)&lt;/p&gt; &lt;blockquote&gt; &lt;h3&gt;What's New? &lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Read the complete list of changes at the &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20March%202009%20change%20list"&gt;Silverlight Toolkit March 2009 change list&lt;/a&gt;&lt;/b&gt;.  &lt;li&gt;More than &lt;b&gt;40 new features&lt;/b&gt; and bug fixes all based on your feedback!  &lt;li&gt;Six new controls: &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#Accordion"&gt;Accordion&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#DomainUpDown"&gt;DomainUpDown&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#LayoutTransformer"&gt;LayoutTransformer&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#TimePicker"&gt;TimePicker&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#TimeUpDown"&gt;TimeUpDown&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#TransitioningContentControl"&gt;TransitioningContentControl&lt;/a&gt;&lt;/b&gt;.  &lt;li&gt;New chart series: &lt;b&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&amp;amp;ANCHOR#AreaSeries"&gt;AreaSeries&lt;/a&gt;&lt;/b&gt;.  &lt;li&gt;&lt;b&gt;Two new themes&lt;/b&gt; have been added: &lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;amp;ANCHOR#BubbleCremeTheme"&gt;Bubble Creme&lt;/a&gt; and &lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;amp;ANCHOR#TwilightBlueTheme"&gt;Twilight Blue&lt;/a&gt;.  &lt;li style="background-color: yellow"&gt;The sample browser has been updated with &lt;b&gt;VB Samples&lt;/b&gt;.  &lt;li&gt;Now released as a full &lt;b&gt;MSI-based install&lt;/b&gt;!  &lt;li&gt;Full source for &lt;b&gt;Silverlight SDK controls&lt;/b&gt; including the &lt;b&gt;new Silverlight LOB controls&lt;/b&gt;.  &lt;li&gt;&lt;b&gt;Improved Designer UX&lt;/b&gt; in both Visual Studio 2008 and Expression Blend. We've included new controls icons for the Toolbox, property tooltips, better property organization and easier editing in the property editor and many more improvements.  &lt;li&gt;Many new &lt;b&gt;charting improvements&lt;/b&gt;!  &lt;li&gt;&lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#Expander"&gt;Expander&lt;/a&gt; and &lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;ANCHOR#Viewbox"&gt;Viewbox&lt;/a&gt; have been &lt;b&gt;moved into the &lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Quality%20Bands&amp;amp;ANCHOR#Stable"&gt;Stable&lt;/a&gt; Quality Band&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;a href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=20430"&gt;Silverlight Toolkit - Release: March 2009&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1654.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Visual Basic QuickStarts and How-to Topics for the Composite Application Guidance for WPF and Silverlight - February 2009</title><link>http://blog.steeleprice.net/archive/2009/03/25/1653.aspx</link><pubDate>Wed, 25 Mar 2009 11:43:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2009/03/25/1653.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1653.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2009/03/25/1653.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1653.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1653.aspx</trackback:ping><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt;The Composite Application Guidance for WPF and Silverlight is designed to help you more easily build enterprise-level Windows Presentation Foundation (WPF) and Silverlight client applications. It will help you design and build enterprise-level composite WPF client applications—composite applications use loosely coupled, independently evolvable pieces that work together in the overall application. &lt;/blockquote&gt; &lt;p&gt;This is a great set of guidelines for building WPF, Silverlight Applications and shows you how to build a common framework between the two.&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1653.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Why I choose to ignore reports of the death of Linq to Sql...</title><link>http://blog.steeleprice.net/archive/2008/11/29/1594.aspx</link><pubDate>Sat, 29 Nov 2008 15:19:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2008/11/29/1594.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1594.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2008/11/29/1594.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1594.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1594.aspx</trackback:ping><description>&lt;P&gt;From all the great tools we have out there such as LLBLGen Pro, nHibernate and OpenAccess, why do I stick with a half baked moving target from Microsoft?&amp;nbsp; Simply because it is in the box?&amp;nbsp; Not really, it is because this is what most clients will be ASKING me to use.&lt;/P&gt;
&lt;P&gt;There are a lot of things to like about Linq to Sql, and yet there are a lot to dislike as well.&lt;/P&gt;
&lt;P&gt;My #1 Problem with L2S is the way the DataContext works, it is in no way designed for use in a mostly stateless or disconnected scenario.&amp;nbsp; With a little effort you can work around this with some generous use of attach and being careful how you load and save objects.&lt;/P&gt;
&lt;P&gt;My #1 Problem with L2E is the way the object model works.&amp;nbsp; I hate not having access to defined columns in my DB when I really do want them and there is no valid option in the designer to support them.&lt;/P&gt;
&lt;P&gt;As an example for this, I have a Login table that deals with all my User Security.&amp;nbsp; Every table has a CreatedBy and UpdatedBy column... They all have a foreign key mapping back to Login to make sure no one enters an invalid login in these fields...&lt;/P&gt;
&lt;P&gt;This is a pretty common scenario and generally is no big deal.&amp;nbsp; Except with the model proposed by L2E I will have hundreds of associations back to the Login Table (none of which get named properly even when all the FK_xxx names are set.&amp;nbsp; I have to manually wade through all the tables and change the names on BOTH sides to something that makes sense.&lt;/P&gt;
&lt;P&gt;This is AWEFUL!&amp;nbsp; I would never, never use an association such as "give me all addresses updated by John".&amp;nbsp; To make these matters worse, I can't even get the Address's CreatedById unless I load the entire Login object and reference it like this: Address.CreatedByLogin.LoginId which sucks when you are programming and creating queries.&lt;/P&gt;
&lt;P&gt;Are there ways around this?&amp;nbsp; sure, but they are all so complex and tedious that using L2E is simply too complex for 80% of my work.&amp;nbsp; In the 20% case where I really do need the extra features complex mapping, I would be using some other tool such as LLBLGen Pro or OpenAccess because it is far easier to work with.&lt;/P&gt;
&lt;P&gt;80% of our work is dealing with read-mostly scenarios and rich web presentations of the data.&lt;/P&gt;
&lt;P&gt;What handles this best?&amp;nbsp; Linq to Sql, why?&amp;nbsp; Because it is easy to use and with &lt;A href="http://damieng.com/blog/2008/09/14/linq-to-sql-template-for-visual-studio-2008"&gt;Damien Guard's T4 Templates&lt;/A&gt; I can pound out a new DBML really fast.&lt;/P&gt;
&lt;P&gt;Will Linq to Sql really die?&amp;nbsp; Eventually, but not in the next couple years. here is a quote from Damien about it:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;H5&gt;Where next&lt;/H5&gt;
&lt;P&gt;The decision has been made that &lt;A href="http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx"&gt;Entity Framework is the recommended solution for LINQ to relational scenarios&lt;/A&gt; but we are committed to looking after our users and are approaching this in two ways. 
&lt;P&gt;Firstly we are going to make sure LINQ to SQL continues to operate as it should. This doesn&amp;#8217;t just mean making sure what we had works in .NET 4.0 but also fixing a number of issues that have arisen as people pick it up for more advanced projects and put it into production environments. 
&lt;P&gt;Secondly we will evolve LINQ to Entities to encompass the features and ease of use that people have come to expect from LINQ to SQL. In .NET 4.0 this already includes additional LINQ operators and better persistence-ignorance. 
&lt;P&gt;This isn&amp;#8217;t to say LINQ to SQL won&amp;#8217;t ever get new features. The communities around LINQ to SQL are a continuous source of ideas and we need to consider how they fit the minimalistic lightweight approach LINQ to SQL is already valued for. Where these suggestions fit with this strategy we will be working hard to get them into the product. Some enhancements like the T4 templates can be released independently but runtime elements need to stick to the .NET Framework schedule. 
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;In conclusion&lt;/H5&gt;
&lt;P&gt;DON&amp;#8217;T PANIC &lt;BR&gt;(in large, friendly letters) 
&lt;P&gt;LINQ to SQL will continue to work and EF will better address the needs of LINQ to SQL users with each new release.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;In fact, I have a self-servicing class that all my L2S Entities inherit from and makes this scenario extremely simple and friendly for a developer to create fast, easily accessible data with plenty of robust data integrity.&lt;/P&gt;
&lt;P&gt;By the time L2S is truly finished, there will be another solution, or the EF team will finally figure out how to adopt the L2S scenarios that make it so attractive.&amp;nbsp; So for today, I am sticking with Linq to Sql instead of abandoning it in fear that EF will be the only solution.&lt;/P&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1594.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>PDC Overload</title><link>http://blog.steeleprice.net/archive/2008/11/05/1580.aspx</link><pubDate>Wed, 05 Nov 2008 13:47:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2008/11/05/1580.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1580.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2008/11/05/1580.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1580.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1580.aspx</trackback:ping><description>&lt;p&gt;In the past, I have usually blogged about PDC as it happens.&amp;nbsp; This year there were so many things going on that I decided to wait until I returned to enter all the pertinent details for the VB Developer that were announced or shown at PDC.&lt;/p&gt; &lt;p&gt;Where do I start?&amp;nbsp; There are several entries that I will be writing over the next couple weeks to cover these.&amp;nbsp; In addition, some things I am working on are destined for publishing to another outlet, more on that when it happens.&lt;/p&gt; &lt;p&gt;One think I want to get out up front.&amp;nbsp; The VB Language Team has a new leader, We will all miss &lt;a href="http://www.panopticoncentral.net"&gt;Paul Vick&lt;/a&gt; and his invaluable contributions to the language as its leader for the past 10 years who will now move to "Language Designer Emeritus".&amp;nbsp; Fear not VB Enthusiasts, his successor, &lt;a href="http://blogs.msdn.com/lucian/"&gt;Lucian Wischik&lt;/a&gt; will provide the forward thinking we need to keep VB.Net a great language and a terrific development platform.&lt;/p&gt; &lt;p&gt;I had the pleasure to talk with both while at PDC and my take away from conversations with Lucian, is that VB is in good hands and I expect to see great things come from his tenure as Language Specification Lead.&lt;/p&gt; &lt;p&gt;One of my first entries to come this week will be about something I have been working on that is &lt;em&gt;only available&lt;/em&gt; using VB and XML Literals.&amp;nbsp; I hope to provide some more insight into using VB in a practical sense to solve real-world problems in the coming months so stay tuned as these get posted.&lt;/p&gt; &lt;p&gt;VB10 is going to get some really important updates in the next release to further improve your productivity.&amp;nbsp; Among these are array literals, collection initializers, automatic properties, implicit line continuations, statement lambdas, generic variance, and a feature that embeds primary interop assembly types in your assembly so you don’t have to deploy the PIA.&amp;nbsp; There is also something coming for the Framework in general that make Parallel Processing really easy. &lt;/p&gt; &lt;p&gt;I will be writing samples on how to implement these in your general development over the next few weeks as we get the availability of a CTP that we can use.&lt;/p&gt; &lt;p&gt;Rest assured, VB.Net is not going away anytime soon and will remain my language of choice for all development.&amp;nbsp; Rumors of the Death of VB are nothing more than false rumors or in some cases wishful thinking by language bigots.&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1580.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>jQuery to ship with ASP.NET MVC and Visual Studio</title><link>http://blog.steeleprice.net/archive/2008/09/28/1568.aspx</link><pubDate>Sun, 28 Sep 2008 12:45:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2008/09/28/1568.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1568.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2008/09/28/1568.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1568.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1568.aspx</trackback:ping><description>&lt;blockquote&gt; &lt;p&gt;from: &lt;a href="http://www.hanselman.com/blog/jQueryToShipWithASPNETMVCAndVisualStudio.aspx"&gt;Scott Hanselman's Computer Zen - jQuery to ship with ASP.NET MVC and Visual Studio&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Microsoft is going to make jQuery part of the official dev platform. JQuery will come with Visual Studio in the long term, and in the short term it'll ship with ASP.NET MVC. We'll also ship a version includes Intellisense in Visual Studio.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;The Announcement Blog Posts&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;ScottGu on the jQuery/Microsoft goodness&lt;/a&gt; &lt;li&gt;&lt;a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/"&gt;John Resig on the jQuery/Microsoft &lt;/a&gt;announcement&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This is cool because we're using jQuery just as it is. It's Open Source, and we'll use it and ship it via its MIT license, unchanged. If there's changes we want, we'll submit a patch just like anyone else. JQuery will also have full support from PSS like any other Microsoft product, starting later this year. Folks have said Microsoft would never include Open Source in the platform, I'm hoping this move is representative of a bright future. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This is really good news for jQuery users.&amp;nbsp; It means that it will just be there all the time and there will be a stable, supported reference to use when debating the reasons to use it to management.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jquery.com"&gt;jQuery&lt;/a&gt; makes developing with Javascript much easier and does wonders for manipulating CSS at runtime.&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1568.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>Silverlight 2 RC0 is now available to developers</title><link>http://blog.steeleprice.net/archive/2008/09/25/1565.aspx</link><pubDate>Thu, 25 Sep 2008 23:45:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2008/09/25/1565.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1565.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2008/09/25/1565.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1565.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1565.aspx</trackback:ping><description>&lt;blockquote&gt; &lt;p&gt;Silverlight 2 Release Candidate 0 (Silverlight 2 RC0) is now available to developers for testing purposes&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://silverlight.net/GetStarted/sl2rc0.aspx"&gt;The Official Microsoft Silverlight Site&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Time to get ready for the next release.&amp;nbsp; There are some interesting breaking changes, the most important being a change to the Object reference from the web page hosting your Silverlight App.&lt;/p&gt; &lt;p&gt;I will sure write up some gotchas if I run across anything strange.&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1565.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>H. Steele Price, IV</dc:creator><title>LINQ to SQL T4 template for Visual Studio 2008</title><link>http://blog.steeleprice.net/archive/2008/09/23/1564.aspx</link><pubDate>Tue, 23 Sep 2008 03:48:00 GMT</pubDate><guid>http://blog.steeleprice.net/archive/2008/09/23/1564.aspx</guid><wfw:comment>http://blog.steeleprice.net/comments/1564.aspx</wfw:comment><comments>http://blog.steeleprice.net/archive/2008/09/23/1564.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.steeleprice.net/comments/commentRss/1564.aspx</wfw:commentRss><trackback:ping>http://blog.steeleprice.net/services/trackbacks/1564.aspx</trackback:ping><description>&lt;p&gt;Damien Guard has made his T4 Templates Output to VB (yeah!).&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://damieng.com/blog/2008/09/14/linq-to-sql-template-for-visual-studio-2008"&gt;LINQ to SQL T4 template for Visual Studio 2008&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;The latest update to my template for generating LINQ to SQL classes from DBML is now available. &lt;p&gt;If you want to customize the LINQ to SQL code generation phase in your project without additional tool dependencies this could be what you’re looking for.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I was looking for a better way to customize the Linq to SQL CodeSpit and this lets us do it from inside Visual Studio in a very painless way.&amp;nbsp; No extra tools required.&amp;nbsp; CodeSmith and CodeRush are still quite valueable, but this method integrates very nicely without requiring extra tools.&lt;/p&gt; &lt;p&gt;Thanks to &lt;a href="http://www.thinqlinq.com/"&gt;Jim Wooley&lt;/a&gt; for pointing me to it, I was not aware how far this had come.&lt;/p&gt; &lt;p&gt;What's T4?&amp;nbsp; In short, It's Native Code Generation inside Visual Studio 2008 (and 2005 with extensions)&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.olegsych.com/tag/t4/"&gt;Oleg Sych explains most of it here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;When I first saw this, I did not think it was what I needed, it turns out it was EXACTLY what I needed, I just didn't know it.&amp;nbsp; This is well worth your time to investigate if you are doing any code generation for LINQ. (or anything else for that matter, T4 doesn't care, you can codegen a UI using XAML or HTML with it quite easily).&lt;/p&gt;&lt;img src ="http://blog.steeleprice.net/aggbug/1564.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>