<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>Software Development</title>
        <link>http://weblogs.sqlteam.com/billg/category/29.aspx</link>
        <description>Software Development</description>
        <language>en-US</language>
        <copyright>Bill Graziano</copyright>
        <managingEditor>graz@sqlteam.com</managingEditor>
        <generator>Subtext Version 1.9.4.0</generator>
        <item>
            <title>Code To Live</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2007/09/27/Code-To-Live.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;The &lt;a href="http://channel9.msdn.com/shows/Code_To_Live"&gt;Code To Live&lt;/a&gt; video starts with an All-Girl AC/DC cover band.  I'm not really sure what else you need to know.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/thesenator/"&gt;Steve Loethen&lt;/a&gt; is a Developer Evangelist for Microsoft here in Kansas City (or some such related job -- I never really remember what he does).  We used to work together at this odd little company years ago.  I'm certain he would be voted the Microsoft employee most likely to be mistaken for a biker.  He and his co-host travel the country talking to developers.  With a Harley.  Dressed like bikers.  I'm not sure who cast Steve in that role but it's sheer brilliance.  The other guy is no slouch in the biker category either.  &lt;/p&gt; &lt;p&gt;The video after the All-Girl AC/DC cover band is actually pretty cool.  The first episode covers gaming and XNA.  I'm afraid my game programming skills stop at turning on an XBOX but I certainly appreciate those that write them.  I'm kind of curious where this will go.  Steve tends to get himself into some interesting predicaments so who knows what will happen.&lt;/p&gt; &lt;p&gt;Did I mention "Hells Bells", the All-Girl AC/DC cover band yet? &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="605EEA63-B54B-4e6d-A290-F5E9E8229FC1:87b8d4fe-fc31-4068-83e0-17b681cd9138" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;/div&gt; &lt;div class="wlWriterSmartContent" id="605EEA63-B54B-4e6d-A290-F5E9E8229FC1:b38fc5c7-b2e0-4d5e-84ed-032782f80213" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;/div&gt; &lt;p&gt; &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:e84f0b44-1cc1-48c7-ae9c-9c57e2f15fc2" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/codetolive" rel="tag"&gt;codetolive&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/60344.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2007/09/27/Code-To-Live.aspx</guid>
            <pubDate>Thu, 27 Sep 2007 05:04:32 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2007/09/27/Code-To-Live.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/60344.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/60344.aspx</trackback:ping>
        </item>
        <item>
            <title>LINQ Article on MSDN</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2007/06/05/LINQ-Article-on-MSDN.aspx</link>
            <description>&lt;p&gt;MSDN has one of the better articles I've read on LINQ: &lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/06/csharp30/default.aspx"&gt;The Evolution Of LINQ And Its Impact On The Design Of C#&lt;/a&gt;.  It really helped to see the design history to understand why things are the way they are.  Very good article.&lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/60222.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2007/06/05/LINQ-Article-on-MSDN.aspx</guid>
            <pubDate>Tue, 05 Jun 2007 10:45:39 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2007/06/05/LINQ-Article-on-MSDN.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/60222.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/60222.aspx</trackback:ping>
        </item>
        <item>
            <title>SQL Server 2005 object scripting tool source code</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2005/12/24/8613.aspx</link>
            <description>I posted the &lt;A href="http://www.sqlteam.com/downloads/scriptio.0.5.1.0.zip"&gt;source code&lt;/A&gt; for my SQL Server 2005 object scripting tool. The code reads like something I threw together to see if I could really do this. Because that's what it is. You can read a &lt;A href="http://weblogs.sqlteam.com/billg/archive/2005/11/22/8414.aspx"&gt;prior post&lt;/A&gt; that describes a little of what it does. 
&lt;P&gt;The ClickOnce deployment is available here: &lt;A href="http://www.sqlteam.com/publish/scriptio/"&gt;http://www.sqlteam.com/publish/scriptio/&lt;/A&gt; 
&lt;P&gt;It's at version 0.5.1 as I type this. New features include: 
&lt;UL&gt;
&lt;LI&gt;Connect to SQL Server using SQL Server accounts 
&lt;LI&gt;Option to include collation in the script 
&lt;LI&gt;Can optionally qualify creates, drops foreign keys with the schema&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Most recent install and source code:&amp;nbsp; &lt;A href="http://weblogs.sqlteam.com/billg/archive/2006/06/13/10208.aspx"&gt;http://weblogs.sqlteam.com/billg/archive/2006/06/13/10208.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/8613.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2005/12/24/8613.aspx</guid>
            <pubDate>Sat, 24 Dec 2005 18:05:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2005/12/24/8613.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/8613.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/8613.aspx</trackback:ping>
        </item>
        <item>
            <title>Scripting Objects in SQL Server 2005</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2005/11/22/8414.aspx</link>
            <description>&lt;P&gt;After working with SQL Server 2005 I've discovered that I can't script out one object per file and include both the DROP and CREATE in the same file.&amp;nbsp; Which is driving me absolutely crazy!&amp;nbsp; So I wrote a little utility and thought I'd share it.&amp;nbsp; If you'd like to see this functionality included in a future service pack you can &lt;A href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=9eb6c773-2dbb-4a27-b9d8-225d6ed4385a"&gt;vote for this feature&lt;/A&gt; through MSDN Feedback Center.&lt;/P&gt;
&lt;P&gt;This utility requires .NET 2.0 and the SQL Server 2005 client tools installed on the machine.&amp;nbsp; The application is deployed as a ClickOnce application.&amp;nbsp; It can be installed at:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.sqlteam.com/publish/scriptio/"&gt;http://www.sqlteam.com/publish/scriptio/&lt;/A&gt;&amp;nbsp;(Location Updated)&lt;A href="http://publish.cleardata.biz/scriptio/"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I haven't released the source code yet but will soon.&amp;nbsp; The application is still fairly limited in terms of error handling and such.&amp;nbsp; I also don't have the automatic error reporting wired up yet.&amp;nbsp; I haven't done as much work as I'd like testing the scripting of CLR objects yet.&amp;nbsp; It does do a darn good job of creating scripts though.&amp;nbsp; If you'd like to test it or have need of this functionality give it a whirl.&lt;/P&gt;
&lt;P&gt;The ClickOnce install only works if you view the page through IE.&amp;nbsp; ClickOnce apparently doesn't support FireFox yet.&amp;nbsp; Oh well.&amp;nbsp; The application will automatically update as I roll out new releases.&lt;/P&gt;
&lt;P&gt;If you have comments or feature requests please &lt;A href="http://weblogs.sqlteam.com/billg/contact.aspx"&gt;email me&lt;/A&gt; or post them in the comments here.&amp;nbsp; Let me know what you think.&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/8414.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2005/11/22/8414.aspx</guid>
            <pubDate>Tue, 22 Nov 2005 20:58:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2005/11/22/8414.aspx#feedback</comments>
            <slash:comments>64</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/8414.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/8414.aspx</trackback:ping>
        </item>
        <item>
            <title>Automatic bug reporting using FogBugz 4.0</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2005/06/19/6113.aspx</link>
            <description>&lt;P&gt;I had a previous post about &lt;A href="http://weblogs.sqlteam.com/billg/archive/2004/06/26/usingscout.aspx"&gt;automatic bug reporting using FogBugz 3.0&lt;/A&gt;.&amp;nbsp; I recently upgraded to &lt;A href="http://www.fogcreek.com/FogBugz/"&gt;FogBugz 4.0&lt;/A&gt; so I had to go through the process of setting this up again.&amp;nbsp; (You can read the previous post to see why I did it this way.)&amp;nbsp; Everything worked as before except the file list was slightly different.&amp;nbsp; You can find the files you'll need listed in &lt;FONT face="Courier New"&gt;preheader.asp&lt;/FONT&gt; and &lt;FONT face="Courier New"&gt;FogBugzClasses.inc&lt;/FONT&gt;.&amp;nbsp; After copying those everything worked perfectly.&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/6113.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2005/06/19/6113.aspx</guid>
            <pubDate>Sun, 19 Jun 2005 13:19:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2005/06/19/6113.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/6113.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/6113.aspx</trackback:ping>
        </item>
        <item>
            <title>More SQL Server NAnt Tasks</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2005/05/08/4914.aspx</link>
            <description>&lt;P&gt;I've updated my NAnt tasks to 0.94 (&lt;A href="http://www.sqlteam.com/downloads/ClearData.NAntTasks-0.94-src.zip"&gt;source&lt;/A&gt; and &lt;A href="http://www.sqlteam.com/downloads/ClearData.NAntTasks-0.94.zip"&gt;binary&lt;/A&gt;).  I've added three new tasks.&lt;/P&gt;
&lt;P&gt;The first is a task to &lt;STRONG&gt;load an Excel spreadsheet into a SQL Server table&lt;/STRONG&gt;.  We've found this to be a fair way to manage code tables.  They're easy to edit and print out for review.  They don't handle the foreign key checking until we load them in but that's been a fair trade-off for their ease of use.&lt;/P&gt;
&lt;P&gt;The second task &lt;STRONG&gt;imports an image file into SQL Server&lt;/STRONG&gt;.  It's basically a mirror image of TEXTCOPY.EXE except that it's a NAnt task and the trust connection works.&lt;/P&gt;
&lt;P&gt;The last task is an &lt;STRONG&gt;updated SQL task from NAntContrib.&lt;/STRONG&gt;  This version adds back proper column formatting for result sets.  They should come out nice and lined up.  We have SELECT statements in our build that we wanted to see in a readable format.&lt;/P&gt;
&lt;P&gt;I'm considering writing a task that will execute a series of SQL files against SQL Server to create stored procedures.  The key being that it will sequence them properly.  I've got a rough draft working but it's not very fast at this point.  It will also process the command files that Visual Studio generates.&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/4914.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2005/05/08/4914.aspx</guid>
            <pubDate>Sun, 08 May 2005 19:26:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2005/05/08/4914.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/4914.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/4914.aspx</trackback:ping>
        </item>
        <item>
            <title>NAnt Task to Restore a SQL Server Database</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2005/04/21/restoredb.aspx</link>
            <description>&lt;P&gt;In my long tradition of releasing odd utilities (ok, utility) that no one but me uses I think I've come up with a winner.  On one of my projects we've created an extensive database build process using &lt;A href="http://nant.sourceforge.net/"&gt;NAnt&lt;/A&gt;.  This process creates the database with all its objects and runs a series of jobs to populate data.  Much of that data comes from other databases on the same server.  At the start of the build process we need to restore a series of database backups as of specific dates.  Since this script can run against a variety of developer workstations, test servers, QA servers, etc. we need to restore these backups into a variety of directories.&lt;/P&gt;
&lt;P&gt;This NAnt task will restore a database backup onto the target server.  The task will query the server to determine the proper location for the data files and log files and move them to the proper directory.  It will also rename the files based on the database name.  It can set the database to simple recovery mode and shrink it.  It handles multiple data and log files but only restores the first backup in a backup file.&lt;/P&gt;
&lt;P&gt;You can download the &lt;A href="http://www.sqlteam.com/downloads/ClearData.NAntTasks-0.91.zip"&gt;binary&lt;/A&gt; and the &lt;A href="http://www.sqlteam.com/downloads/ClearData.NAntTasks-0.91-src.zip"&gt;source code&lt;/A&gt;.  It is a NAnt task so you'll need to be using NAnt to use it.  Installation is as simple as dropping the DLL into NAnt's &lt;FONT face="Courier New"&gt;bin&lt;/FONT&gt; directory.&lt;/P&gt;
&lt;P&gt;If you're running any kind of build script in your development process and aren't using NAnt I'd encourage you to look at it.  It's a great tool!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE&lt;/STRONG&gt;: I've release 0.92 which you can download here: (&lt;A href="http://www.sqlteam.com/downloads/ClearData.NAntTasks-0.92.zip"&gt;binary&lt;/A&gt; and &lt;A href="http://www.sqlteam.com/downloads/ClearData.NAntTasks-0.92-src.zip"&gt;source code&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE&lt;/STRONG&gt;: I've released &lt;A href="http://weblogs.sqlteam.com/billg/archive/2005/05/08/4914.aspx"&gt;0.94&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/4597.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2005/04/21/restoredb.aspx</guid>
            <pubDate>Thu, 21 Apr 2005 19:52:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2005/04/21/restoredb.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/4597.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/4597.aspx</trackback:ping>
        </item>
        <item>
            <title>Setting up a separate web site for automatic error reports in FogBUGZ</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2004/06/26/usingscout.aspx</link>
            <description>&lt;P&gt;That has to be most cumbersome title I've ever used but it describes what I'm doing.&amp;nbsp; We recently started using &lt;A href="http://www.fogcreek.com/FogBUGZ/"&gt;FogBUGZ&lt;/A&gt; for our bug and inquiry tracking for a couple of applications we've developed.&amp;nbsp; We're running it on a server behind a firewall.&amp;nbsp; FogBUGZ gives you a way for your application to &lt;A href="http://www.fogcreek.com/fogbugz/help/UsingFogBUGZtoGetCrashRep.html"&gt;automatically submit any untrapped errors&lt;/A&gt; through a special ASP page.&amp;nbsp; Instead of trying to make just that ASP page available through our firewall I wanted to create web site with only that page.&amp;nbsp; It turned out to be a little more complicated than I thought but it works great now.&amp;nbsp; Here's what I did:&lt;/P&gt;
&lt;P&gt;First, I created a new folder called &lt;FONT face="Courier New"&gt;websubmit&lt;/FONT&gt; in&amp;nbsp;&lt;FONT face="Courier New"&gt;C:\Program Files\FogBUGZ.&lt;/FONT&gt;&amp;nbsp; This is right next to the default FogBUGZ web site which is cleverly called &amp;#8220;&lt;FONT face="Courier New"&gt;website&lt;/FONT&gt;&amp;#8220;.&lt;/P&gt;
&lt;P&gt;Second, I copied the following files to that directory:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;adovbs.inc&lt;BR&gt;CArea.asp&lt;BR&gt;CAreaList.asp&lt;BR&gt;CBug.asp&lt;BR&gt;CBugEvent.asp&lt;BR&gt;CBugEventList.asp&lt;BR&gt;CBugList.asp&lt;BR&gt;CBugScoutInfo.asp&lt;BR&gt;CCategory.asp&lt;BR&gt;CCategoryList.asp&lt;BR&gt;CCVSList.asp&lt;BR&gt;CDuplicates.asp&lt;BR&gt;CFileUpload.asp&lt;BR&gt;CFilter.asp&lt;BR&gt;CFilterList.asp&lt;BR&gt;CFixFor.asp&lt;BR&gt;CFixForList.asp&lt;BR&gt;CMailbox.asp&lt;BR&gt;CMailboxList.asp&lt;BR&gt;CPerson.asp&lt;BR&gt;CPersonList.asp&lt;BR&gt;CPriority.asp&lt;BR&gt;CPriorityList.asp&lt;BR&gt;CProject.asp&lt;BR&gt;CProjectList.asp&lt;BR&gt;CSiteConfiguration.asp&lt;BR&gt;CStatus.asp&lt;BR&gt;CStatusList.asp&lt;BR&gt;dbUpgrade.asp&lt;BR&gt;dlg.asp&lt;BR&gt;icons.asp&lt;BR&gt;lang.asp&lt;BR&gt;langfunc.asp&lt;BR&gt;preheader.asp&lt;BR&gt;scoutsample.html **&lt;BR&gt;scoutSubmit.asp&lt;BR&gt;util.asp&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;** &lt;FONT face="Courier New"&gt;Scoutsample.html&lt;/FONT&gt; is a sample HTML file for testing bug submission to scoutSubmit.asp.&amp;nbsp; Delete it when you're done testing.&lt;/P&gt;
&lt;P&gt;Third, I created a web site for the new directory.&amp;nbsp; I changed it to use the same login as the main FogBUGZ web site.&amp;nbsp; Choose Directory Security -&amp;gt; Anonymous Authentication -&amp;gt; Edit and change the user for anonymous access to whatever the regular web site uses.&lt;/P&gt;
&lt;P&gt;Fourth, I created a new registry key to for the database login.&amp;nbsp; I exported the registry key &lt;FONT face="Courier New"&gt;HKLM\SOFTWARE\Fog Creek Software\FogBUGZ\C:/Program Files/FogBUGZ/website&lt;/FONT&gt;.&amp;nbsp; I removed the subkey information for Dispatcho at the bottom and updated the key to be the path to my new directory (i.e. replaced &lt;FONT face="Courier New"&gt;website&lt;/FONT&gt; with &lt;FONT face="Courier New"&gt;websubmit&lt;/FONT&gt;).&amp;nbsp; I reimported this back into the registry.&lt;/P&gt;
&lt;P&gt;After a quick test using scoutsample.html everything is working fine.&amp;nbsp; Now I can make this site public and be reasonbly safe against people getting into my bug database.&lt;/P&gt;
&lt;P&gt;(See the &lt;A href="http://weblogs.sqlteam.com/billg/archive/2005/06/19/6113.aspx"&gt;related post&amp;nbsp;for FogBugz 4.0&lt;/A&gt;)&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/1679.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2004/06/26/usingscout.aspx</guid>
            <pubDate>Sat, 26 Jun 2004 18:02:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2004/06/26/usingscout.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/1679.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/1679.aspx</trackback:ping>
        </item>
        <item>
            <title>Easy Multi-Threaded Client</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2004/05/19/1349.aspx</link>
            <description>Here's a great little tool that &lt;A href="http://www.windowsforms.net/articles/easythread.aspx"&gt;helps you write a simple multi-threaded app&lt;/A&gt;.&amp;nbsp; It gives you an easy way to move certain tasks to a background thread.&amp;nbsp; Neat idea!&amp;nbsp; Now I can move much of the database stuff to a background thread on one of the apps I'm working on.&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/1349.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2004/05/19/1349.aspx</guid>
            <pubDate>Wed, 19 May 2004 16:27:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2004/05/19/1349.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/1349.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/1349.aspx</trackback:ping>
        </item>
        <item>
            <title>A Sneak Preview of Visual C# Whidbey</title>
            <link>http://weblogs.sqlteam.com/billg/archive/2004/03/08/csharpfeatures.aspx</link>
            <description>&lt;P&gt;MSDN has an article about some of the &lt;A href="http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dv_vstechart/html/whidbey_csharp_preview.asp"&gt;new features in C#/Whidbey&lt;/A&gt;.&amp;nbsp; It's a pretty neat article that talks about&amp;nbsp; the language enchancements and new features in Visual Studio.&amp;nbsp; I'm most interested in Generics and Partial Types at this point.&amp;nbsp; Generics will give me an easy way to create custom collections of business objects.&amp;nbsp; I'll be able to define one &amp;#8220;generic&amp;#8221; collection that all my business objects can use.&amp;nbsp; Right now I'm creating type specific collections.&lt;/P&gt;
&lt;P&gt;Partial Types will really help with code generation.&amp;nbsp; Partial Types allow a class to be defined in more than one physical file.&amp;nbsp; I can use a code generator to provide some of the basic functions and properties to match my database.&amp;nbsp; Then I can add additional code in a second file.&amp;nbsp; Any changes to my database or cod generation template will only affect the generated file and not my addtions in the second file.&amp;nbsp; It's a minor point but it's becoming a pain as I do more and more with &lt;A href="http://www.ericjsmith.net/codesmith/"&gt;CodeSmith&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Visual Studio gains a feature called Expansions.&amp;nbsp; Basically this allows you to easily copy in code snippets and then update certain parameters.&amp;nbsp; For example, I could have a snippet to create a simple public property and then just change the name and datatype. &lt;A href="http://weblogs.sqlteam.com/damianm/archive/2004/02/25/979.aspx"&gt;Damian linked&lt;/A&gt; to a similar tool called &lt;A href="http://www.dvxp.com/en/QuickCode.aspx"&gt;QuickCode.NET&lt;/A&gt; the other day.&amp;nbsp; I haven't had a chance to play with it but it looks interesting.&lt;/P&gt;
&lt;P&gt;So I'm ready for Whidbey.&amp;nbsp; Can I have it now please?&amp;nbsp; :)&lt;/P&gt;&lt;img src="http://weblogs.sqlteam.com/billg/aggbug/1036.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Graziano</dc:creator>
            <guid>http://weblogs.sqlteam.com/billg/archive/2004/03/08/csharpfeatures.aspx</guid>
            <pubDate>Mon, 08 Mar 2004 18:10:00 GMT</pubDate>
            <comments>http://weblogs.sqlteam.com/billg/archive/2004/03/08/csharpfeatures.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/billg/comments/commentRss/1036.aspx</wfw:commentRss>
            <trackback:ping>http://weblogs.sqlteam.com/billg/services/trackbacks/1036.aspx</trackback:ping>
        </item>
    </channel>
</rss>