<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:blog="http://www.dotnetnuke.com/blog/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <title>David Archer</title>
    <description>A series of ramblings, snippets, thoughts and article links.</description>
    <link>http://www.ripteq.com.au/Blog/tabid/74/BlogId/3/Default.aspx</link>
    <language>en-US</language>
    <webMaster>info@ripteq.com.au</webMaster>
    <pubDate>Mon, 21 May 2012 08:32:14 GMT</pubDate>
    <lastBuildDate>Mon, 21 May 2012 08:32:14 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 4.1.0.0</generator>
    <item>
      <title>Enum Reverse Parse</title>
      <link>http://www.ripteq.com.au/Blog/tabid/74/EntryId/63/Enum-Reverse-Parse.aspx</link>
      <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;It’s pretty obvious in hindsight, but you can reverse an enum requested within a function using the following code:&lt;/p&gt;  &lt;p&gt;System.Enum.Parse(GetType([Class.Type]), “Text Enum Value”) = Enum Value&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;For example:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; “CarClass”

&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Enum&lt;/span&gt; Cars &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
Audi = 1
BMW = 2
Other = 3
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Enum&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;The resulting value of System.Enum.Parse(GetType(CarClass.Cars), “BMW”) is 2&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;To find the ‘text’ member of an Enum, you can use the following code:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; MyEnumVal &lt;span class="kwrd"&gt;As&lt;/span&gt; Cars
&lt;span class="kwrd"&gt;Dim&lt;/span&gt; i &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;

i = 2
MyEnumVal = &lt;span class="kwrd"&gt;CType&lt;/span&gt;(i, Cars)
Debug.WriteLine(MyEnumVal.ToString())&lt;/pre&gt;

&lt;p&gt;This will yield the value of ‘BMW’.&lt;/p&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com.au/Blog/tabid/74/EntryId/63/Enum-Reverse-Parse.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: Enum Reverse Parse&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <category domain="http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx">Code</category>
      <comments>http://www.ripteq.com.au/Blog/tabid/74/EntryId/63/Enum-Reverse-Parse.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com.au/Blog/tabid/74/EntryId/63/Enum-Reverse-Parse.aspx</guid>
      <pubDate>Thu, 26 Apr 2012 05:43:44 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=63</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/54/Default.aspx">Enum Reverse Parse</blog:tag>
    </item>
    <item>
      <title>Saving a NULL value</title>
      <link>http://www.ripteq.com.au/Blog/tabid/74/EntryId/62/Saving-a-NULL-value.aspx</link>
      <description>&lt;p&gt;I often have requirements where NULL values need to be saved to the database if the data legitimately does not exist.  I’ve used many work-arounds in the past (like using a default value such as zero, or a date like 01/01/1900 to denote no data), however for the current project I wanted a consistent real life approach.&lt;/p&gt;  &lt;p&gt;Enter nullable types and parameters.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In this case, I have a table that contains a field called ‘DateOfDeath’.  This is NOT a field you want to enter incorrect data!&lt;/p&gt;  &lt;p&gt;My function to update a record within this table looks like:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;font size="1"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; UpdatePerson(PersonID &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;, GenderID &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;, CountryOfCitizenshipID &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;, CountryOfBirthID &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;,
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;font size="1"&gt;                                 StateofBirth &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;, PlaceofBirth &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;, DateofBirth &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; DateTime,
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;font size="1"&gt;                                 DateofDeath &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Nullable(&lt;span style="color: #0000ff"&gt;Of&lt;/span&gt; DateTime), DateofDeathSpecified &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Boolean&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; ResultDetail&lt;/font&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;pre&gt; &lt;/pre&gt;

&lt;p&gt;In my case, I’ve used a standard EntitySpaces function to save the data to the database, however this should work with your ORM of choice.&lt;/p&gt;

&lt;p&gt;On the calling side of the function, all you need to do is set the value to ‘Nothing’, and a NULL value is saved to the database record.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; bolDeathSpecified &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;
&lt;span class="kwrd"&gt;Dim&lt;/span&gt; dteDateOfDeath &lt;span class="kwrd"&gt;As&lt;/span&gt; Nullable(Of DateTime)
&lt;span class="kwrd"&gt;If&lt;/span&gt; CheckEditDateOfDeathSpecified.Checked = &lt;span class="kwrd"&gt;True&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
     bolDeathSpecified = &lt;span class="kwrd"&gt;True&lt;/span&gt;
      dteDateOfDeath = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.DateEditDateOfDeath.EditValue
 &lt;span class="kwrd"&gt;Else&lt;/span&gt;
     bolDeathSpecified = &lt;span class="kwrd"&gt;False&lt;/span&gt;
     dteDateOfDeath = &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

result = obj.UpdatePerson(PersonID, &lt;span class="kwrd"&gt;Me&lt;/span&gt;.LookUpEditGender.EditValue,
          &lt;span class="kwrd"&gt;Me&lt;/span&gt;.LookUpEditCitizenship.EditValue, &lt;span class="kwrd"&gt;Me&lt;/span&gt;.LookUpEditBirthCountry.EditValue,
          &lt;span class="kwrd"&gt;Me&lt;/span&gt;.TextEditStateOfBirth.Text, &lt;span class="kwrd"&gt;Me&lt;/span&gt;.TextEditPlaceOfBirth.Text, &lt;span class="kwrd"&gt;Me&lt;/span&gt;.DateEditDOB.EditValue,
          dteDateOfDeath, bolDeathSpecified)&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com.au/Blog/tabid/74/EntryId/62/Saving-a-NULL-value.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: nullable,types,VB.Net,EntitySpaces,saving null&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <category domain="http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx">Code</category>
      <comments>http://www.ripteq.com.au/Blog/tabid/74/EntryId/62/Saving-a-NULL-value.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com.au/Blog/tabid/74/EntryId/62/Saving-a-NULL-value.aspx</guid>
      <pubDate>Tue, 22 Nov 2011 05:53:23 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=62</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/51/Default.aspx">nullable</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/52/Default.aspx">types</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/3/Default.aspx">VB.Net</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/1/Default.aspx">EntitySpaces</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/53/Default.aspx">saving null</blog:tag>
    </item>
    <item>
      <title>Dropping multiple tables and stored procedures in T-SQL</title>
      <link>http://www.ripteq.com.au/Blog/tabid/74/EntryId/61/Dropping-multiple-tables-and-stored-procedures-in-T-SQL.aspx</link>
      <description>&lt;p&gt;Sometimes, you need to delete/drop a number of tables and stored procedures in a database.  This is mostly for testing deployment scripts, or just plain fixing an install gone wrong.&lt;/p&gt;  &lt;p&gt;Below are some handy scripts for achieving this, although use with caution!  And remember if something goes wrong, I told you nothing ….&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Dropping all tables that begin with ‘Smith_’&lt;/h2&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @id &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(255)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @dropCommand &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(255)&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; tableCursor &lt;span class="kwrd"&gt;CURSOR&lt;/span&gt; &lt;span class="kwrd"&gt;FOR&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; name &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.tables &lt;span class="kwrd"&gt;WHERE&lt;/span&gt; name &lt;span class="kwrd"&gt;like&lt;/span&gt; &lt;span class="str"&gt;'Smith_%'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;OPEN&lt;/span&gt; tableCursor&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;FETCH&lt;/span&gt; &lt;span class="kwrd"&gt;next&lt;/span&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; tableCursor &lt;span class="kwrd"&gt;INTO&lt;/span&gt; @id&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;WHILE&lt;/span&gt; @@fetch_status=0&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;SET&lt;/span&gt; @dropcommand = N&lt;span class="str"&gt;'drop table '&lt;/span&gt; + @id&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;EXECUTE&lt;/span&gt;(@dropcommand)&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;FETCH&lt;/span&gt; &lt;span class="kwrd"&gt;next&lt;/span&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; tableCursor &lt;span class="kwrd"&gt;INTO&lt;/span&gt; @id&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CLOSE&lt;/span&gt; tableCursor&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;DEALLOCATE&lt;/span&gt; tableCursor&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Dropping all stored procedures that begin with ‘Smith_’&lt;/h2&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @UserStoredProcedure    &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(100)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @Command                &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(100)&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; UserStoredProcedureCursor &lt;span class="kwrd"&gt;CURSOR&lt;/span&gt; &lt;span class="kwrd"&gt;SCROLL&lt;/span&gt; &lt;span class="kwrd"&gt;STATIC&lt;/span&gt; READ_ONLY &lt;span class="kwrd"&gt;FOR&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; Specific_Name&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; INFORMATION_SCHEMA.ROUTINES&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; Specific_Name &lt;span class="kwrd"&gt;Like&lt;/span&gt; &lt;span class="str"&gt;'Smith_%'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;OPEN&lt;/span&gt; UserStoredProcedureCursor&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;FETCH&lt;/span&gt; &lt;span class="kwrd"&gt;NEXT&lt;/span&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; UserStoredProcedureCursor&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; @UserStoredProcedure&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt; &lt;span class="kwrd"&gt;WHILE&lt;/span&gt; (@@FETCH_STATUS = 0) &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;SET&lt;/span&gt; @Command = &lt;span class="str"&gt;'DROP PROCEDURE '&lt;/span&gt; + @UserStoredProcedure&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @Command&lt;/pre&gt;

  &lt;pre&gt;       &lt;span class="rem"&gt;-- when you are ready to execute, uncomment below&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;EXEC&lt;/span&gt; (@Command)&lt;/pre&gt;

  &lt;pre class="alt"&gt;       &lt;span class="kwrd"&gt;FETCH&lt;/span&gt; &lt;span class="kwrd"&gt;NEXT&lt;/span&gt; &lt;span class="kwrd"&gt;FROM&lt;/span&gt; UserStoredProcedureCursor&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;INTO&lt;/span&gt; @UserStoredProcedure&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;CLOSE&lt;/span&gt; UserStoredProcedureCursor&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;DEALLOCATE&lt;/span&gt; UserStoredProcedureCursor&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com.au/Blog/tabid/74/EntryId/61/Dropping-multiple-tables-and-stored-procedures-in-T-SQL.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: T-SQL,TSQL,SQL Server&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <category domain="http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx">Code</category>
      <comments>http://www.ripteq.com.au/Blog/tabid/74/EntryId/61/Dropping-multiple-tables-and-stored-procedures-in-T-SQL.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com.au/Blog/tabid/74/EntryId/61/Dropping-multiple-tables-and-stored-procedures-in-T-SQL.aspx</guid>
      <pubDate>Tue, 01 Nov 2011 00:27:55 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=61</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/21/Default.aspx">T-SQL</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/20/Default.aspx">TSQL</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/50/Default.aspx">SQL Server</blog:tag>
    </item>
    <item>
      <title>Infographics Love</title>
      <link>http://www.ripteq.com.au/Blog/tabid/74/EntryId/59/Infographics-Love.aspx</link>
      <description>&lt;p&gt;I’ve been a long time supporter of the concept of infographics.  The concept of being able to craft a graphic (static or animated) that conveys a story is a powerful tool.  Recently, I’ve seen the combination of story-telling combined with data visualisation, and the effect is mind-blowing.&lt;/p&gt;  &lt;p&gt;The ABC has a fantastic series called ‘Hungry Beast’.  A particular segment called ‘The Beast File’ features animated infographics to illustrate little known or complex facts.  Patrick Clair (a motion designer from Sydney, Australia) seems to specialise in creating some of my favourite infographics.  Check out his blog for some sensation examples of his work at &lt;a title="http://patrickclair.blogspot.com/" href="http://patrickclair.blogspot.com/"&gt;http://patrickclair.blogspot.com/&lt;/a&gt;, or design firm &lt;a href="http://columnfivemedia.com/"&gt;http://columnfivemedia.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Some tools that help create infographics are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.wordle.net/" href="http://www.wordle.net/"&gt;http://www.wordle.net/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Online tool to generate ‘word clouds’ &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.tagxedo.com/" href="http://www.tagxedo.com/"&gt;http://www.tagxedo.com/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Online toll that builds word art &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.gliffy.com/" href="http://www.gliffy.com/"&gt;http://www.gliffy.com/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;On line chart maker &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://inkscape.org/" href="http://inkscape.org/"&gt;http://inkscape.org/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;A vector based graphics editor &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.google.com/publicdata/home" href="http://www.google.com/publicdata/home"&gt;http://www.google.com/publicdata/home&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Google’s public data area for analysing some large, public datasets &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www-958.ibm.com/software/data/cognos/manyeyes/" href="http://www-958.ibm.com/software/data/cognos/manyeyes/"&gt;http://www-958.ibm.com/software/data/cognos/manyeyes/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;IBM data visualisation centre &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.densitydesign.org/research/fineo/" href="http://www.densitydesign.org/research/fineo/"&gt;http://www.densitydesign.org/research/fineo/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Create “Sankey” Diagrams from your own data sets &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com.au/Blog/tabid/74/EntryId/59/Infographics-Love.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: infographics&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <comments>http://www.ripteq.com.au/Blog/tabid/74/EntryId/59/Infographics-Love.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com.au/Blog/tabid/74/EntryId/59/Infographics-Love.aspx</guid>
      <pubDate>Sat, 08 Oct 2011 05:15:56 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=59</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/23/Default.aspx">infographics</blog:tag>
    </item>
    <item>
      <title>EntitySpaces Query Object</title>
      <link>http://www.ripteq.com.au/Blog/tabid/74/EntryId/56/EntitySpaces-Query-Object.aspx</link>
      <description>&lt;p&gt;I recently tried to implement a form that dynamically re-loaded data based on a parent item.  When I re-queried the collection, I realised that the EntitySpaces collection was accumulating my WHERE statements (ie. Load records where Category=1, Category=2, etc.).  There seemed to be no way to clear the WHERE part of the query.&lt;/p&gt;  &lt;p&gt;Enter the ‘Query’ object!  The function now works beautifully.&lt;/p&gt;  &lt;h3&gt;Old Syntax&lt;/h3&gt;  &lt;pre class="code"&gt;coll.Query.Where(coll.Query.EntityConnectionID.Equal(_entityConnectionID))
coll.Query.Load()
&lt;span style="color: blue"&gt;Me&lt;/span&gt;.GridControl1.RefreshDataSource()&lt;/pre&gt;

&lt;h3&gt;New Syntax&lt;/h3&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;Dim &lt;/span&gt;q &lt;span style="color: blue"&gt;As New &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntityObjectQuery
&lt;/span&gt;q.Where(q.EntityConnectionID.Equal(_entityConnectionID))
coll.Load(q)&lt;br /&gt;&lt;span style="color: blue"&gt;Me&lt;/span&gt;.GridControl1.RefreshDataSource()&lt;/pre&gt;

&lt;h3&gt;Note:&lt;/h3&gt;

&lt;p&gt;You can also use other features of the .es class, such as:&lt;/p&gt;

&lt;p&gt;&lt;font face="Lucida Console"&gt;q.es.Top = 15&lt;/font&gt; (limits the return collection to the Top 15 records)&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com.au/Blog/tabid/74/EntryId/56/EntitySpaces-Query-Object.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: EntitySpaces,Queries&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <comments>http://www.ripteq.com.au/Blog/tabid/74/EntryId/56/EntitySpaces-Query-Object.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com.au/Blog/tabid/74/EntryId/56/EntitySpaces-Query-Object.aspx</guid>
      <pubDate>Wed, 31 Aug 2011 07:53:59 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=56</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/1/Default.aspx">EntitySpaces</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/11/Default.aspx">Queries</blog:tag>
    </item>
    <item>
      <title>Infographics Love</title>
      <link>http://www.ripteq.com/Blog/tabid/74/EntryId/45/Infographics-Love.aspx</link>
      <description>&lt;p&gt;I’ve been a long time supporter of the concept of infographics.  The concept of being able to craft a graphic (static or animated) that conveys a story is a powerful tool.  Recently, I’ve seen the combination of story-telling combined with data visualisation, and the effect is mind-blowing.&lt;/p&gt;  &lt;p&gt;The ABC has a fantastic series called ‘Hungry Beast’.  A particular segment called ‘The Beast File’ features animated infographics to illustrate little known or complex facts.  Patrick Clair (a motion designer from Sydney, Australia) seems to specialise in creating some of my favourite inforgraphics.  Check out his blog for some sensation examples of his work at &lt;a title="http://patrickclair.blogspot.com/" href="http://patrickclair.blogspot.com/"&gt;http://patrickclair.blogspot.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Some tools that help create infographics are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.wordle.net/" href="http://www.wordle.net/"&gt;http://www.wordle.net/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Online tool to generate ‘word clouds’ &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.tagxedo.com/" href="http://www.tagxedo.com/"&gt;http://www.tagxedo.com/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Online toll that builds word art &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.gliffy.com/" href="http://www.gliffy.com/"&gt;http://www.gliffy.com/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;On line chart maker &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://inkscape.org/" href="http://inkscape.org/"&gt;http://inkscape.org/&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;A vector based graphics editor &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.google.com/publicdata/home" href="http://www.google.com/publicdata/home"&gt;http://www.google.com/publicdata/home&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;Google’s public data area for analysing some large, public datasets &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www-958.ibm.com/software/data/cognos/manyeyes/" href="http://www-958.ibm.com/software/data/cognos/manyeyes/"&gt;http://www-958.ibm.com/software/data/cognos/manyeyes/&lt;/a&gt; &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;IBM data visualisation centre &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a title="http://www.densitydesign.org/research/fineo/" href="http://www.densitydesign.org/research/fineo/"&gt;http://www.densitydesign.org/research/fineo/&lt;/a&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Create “Sankey” Diagrams from your own data sets&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com/Blog/tabid/74/EntryId/45/Infographics-Love.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: infographics&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <comments>http://www.ripteq.com/Blog/tabid/74/EntryId/45/Infographics-Love.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com/Blog/tabid/74/EntryId/45/Infographics-Love.aspx</guid>
      <pubDate>Wed, 13 Jul 2011 21:49:17 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=45</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/23/Default.aspx">infographics</blog:tag>
    </item>
    <item>
      <title>Backing up SQL Express</title>
      <link>http://www.ripteq.com.au/Blog/tabid/74/EntryId/44/Backing-up-SQL-Express.aspx</link>
      <description>&lt;p&gt;SQL Express is a fantastic database server.  And cheap!  It’s so good, it now makes it’s way into many production environments.  &lt;/p&gt;  &lt;p&gt;However, one of the issues with SQL Express is that you don’t get the SQL Agent component that most use to automate their backup routines.  Never fear – below are some batch file scripts that can be run via Windows Scheduled Task to replicate the backup functionality, as well as deleting backup files older than x days.&lt;/p&gt;  &lt;h1&gt;Create a backup&lt;/h1&gt;  &lt;p&gt;Below is a batch script that will backup your SQL Express databases.  Be sure to change lines 2 and 3 for your specific backup folder and server name:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Original Source: &lt;a title="http://www.codecapers.com/post/How-to-Backup-a-SQL-Express-Database.aspx" href="http://www.codecapers.com/post/How-to-Backup-a-SQL-Express-Database.aspx"&gt;http://www.codecapers.com/post/How-to-Backup-a-SQL-Express-Database.aspx&lt;/a&gt;&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;@echo off
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; BACKUP_DIR=C:\TEMP\DB
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SERVER&lt;/span&gt;=.\SQLEXPRESS
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt; /f "&lt;span style="color: #8b0000"&gt;tokens=2&lt;/span&gt;" %%d &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; ('echo %date%') &lt;span style="color: #0000ff"&gt;do&lt;/span&gt; (
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;   &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; /f "&lt;span style="color: #8b0000"&gt;tokens=1-3 delims=/&lt;/span&gt;" %%j &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; ('echo %%d') &lt;span style="color: #0000ff"&gt;do&lt;/span&gt; (
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;      &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; &lt;span style="color: #0000ff"&gt;month&lt;/span&gt;=%%j
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;      &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; &lt;span style="color: #0000ff"&gt;day&lt;/span&gt;=%%k
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;      &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; &lt;span style="color: #0000ff"&gt;year&lt;/span&gt;=%%l
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;   )
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;)
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; /a &lt;span style="color: #0000ff"&gt;day&lt;/span&gt;=%&lt;span style="color: #0000ff"&gt;day&lt;/span&gt;%-1
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; %&lt;span style="color: #0000ff"&gt;day&lt;/span&gt;% lss 10 (
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;   &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; &lt;span style="color: #0000ff"&gt;day&lt;/span&gt;=0%&lt;span style="color: #0000ff"&gt;day&lt;/span&gt;%
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;)
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; &lt;span style="color: #0000ff"&gt;year&lt;/span&gt;=%&lt;span style="color: #0000ff"&gt;year&lt;/span&gt;:~2,3%
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; mydate=%&lt;span style="color: #0000ff"&gt;month&lt;/span&gt;%%&lt;span style="color: #0000ff"&gt;day&lt;/span&gt;%%&lt;span style="color: #0000ff"&gt;year&lt;/span&gt;%
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt; /f "&lt;span style="color: #8b0000"&gt;tokens=1-2 delims=: &lt;/span&gt;" %%a &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; ('&lt;span style="color: #0000ff"&gt;time&lt;/span&gt; /t') &lt;span style="color: #0000ff"&gt;do&lt;/span&gt; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; XTime=%%a%%b
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;sqlcmd -S %&lt;span style="color: #0000ff"&gt;SERVER&lt;/span&gt;% -d master -Q "&lt;span style="color: #8b0000"&gt;exec sp_msforeachdb 'BACKUP DATABASE [?] TO DISK=''%BACKUP_DIR%\?.Full.%mydate%.%XTIME%.bak'''&lt;/span&gt;"&lt;/pre&gt;&lt;/pre&gt;

&lt;h1&gt;Delete old backup files&lt;/h1&gt;

&lt;p&gt;Below is a script to delete old backups … (Original source: &lt;a title="http://blogs.technet.com/b/heyscriptingguy/archive/2006/11/17/how-can-i-delete-all-the-bak-files-in-a-folder-that-are-more-than-7-days-old.aspx" href="http://blogs.technet.com/b/heyscriptingguy/archive/2006/11/17/how-can-i-delete-all-the-bak-files-in-a-folder-that-are-more-than-7-days-old.aspx"&gt;http://blogs.technet.com/b/heyscriptingguy/archive/2006/11/17/how-can-i-delete-all-the-bak-files-in-a-folder-that-are-more-than-7-days-old.aspx&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;Remember to change the directory details in line 24 to the folder that contains your SQL backup files.&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;dtmDate = Date - 7
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;strDay = &lt;span style="color: #0000ff"&gt;Day&lt;/span&gt;(dtmDate)
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Len&lt;/span&gt;(strDay) &lt; 2 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;    strDay = "&lt;span style="color: #8b0000"&gt;0&lt;/span&gt;" &amp; strDay
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;strMonth = &lt;span style="color: #0000ff"&gt;Month&lt;/span&gt;(dtmDate)
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Len&lt;/span&gt;(strMonth) &lt; 2 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;    strMonth = "&lt;span style="color: #8b0000"&gt;0&lt;/span&gt;" &amp; strMonth
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;strYear = &lt;span style="color: #0000ff"&gt;Year&lt;/span&gt;(dtmDate)
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;strTargetDate = strYear &amp; strMonth &amp; strDay
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;strComputer = "&lt;span style="color: #8b0000"&gt;.&lt;/span&gt;"
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; objWMIService = &lt;span style="color: #0000ff"&gt;GetObject&lt;/span&gt;("&lt;span style="color: #8b0000"&gt;winmgmts:\\&lt;/span&gt;" &amp; strComputer &amp; "&lt;span style="color: #8b0000"&gt;\root\cimv2&lt;/span&gt;")
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; FileList = objWMIService.ExecQuery _
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;    ("&lt;span style="color: #8b0000"&gt;ASSOCIATORS OF {Win32_Directory.Name='C:\Scripts'} Where &lt;/span&gt;" _
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;        &amp; "&lt;span style="color: #8b0000"&gt;ResultClass = CIM_DataFile&lt;/span&gt;")
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; objFile &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; FileList
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;    strDate = &lt;span style="color: #0000ff"&gt;Left&lt;/span&gt;(objFile.CreationDate, 8)
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;    &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; strDate &lt; strTargetDate &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; objFile.Extension = "&lt;span style="color: #8b0000"&gt;bak&lt;/span&gt;" &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;            objFile.Delete
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #e9e9e9; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 11px"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Many thanks to Michael Ceranski (&lt;a title="http://www.codecapers.com/" href="http://www.codecapers.com/"&gt;http://www.codecapers.com/&lt;/a&gt;) and ‘The Scripting Guy’ (&lt;a title="http://blogs.technet.com/b/heyscriptingguy/" href="http://blogs.technet.com/b/heyscriptingguy/"&gt;http://blogs.technet.com/b/heyscriptingguy/&lt;/a&gt;) for the code snippets.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com.au/Blog/tabid/74/EntryId/44/Backing-up-SQL-Express.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: SQL Express,Backup,Batch Files&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <category domain="http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx">Code</category>
      <comments>http://www.ripteq.com.au/Blog/tabid/74/EntryId/44/Backing-up-SQL-Express.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com.au/Blog/tabid/74/EntryId/44/Backing-up-SQL-Express.aspx</guid>
      <pubDate>Mon, 04 Jul 2011 06:16:24 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=44</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/37/Default.aspx">SQL Express</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/38/Default.aspx">Backup</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/39/Default.aspx">Batch Files</blog:tag>
    </item>
    <item>
      <title>Essential tools for modern information workers</title>
      <link>http://www.ripteq.com/Blog/tabid/74/EntryId/42/Essential-tools-for-modern-information-workers.aspx</link>
      <description>&lt;p&gt;This isn’t so much a post for software development.  It’s more a modern day information worker’s essential tools list!  I should clarify what I mean by ‘modern day information worker’.  In the last 2 years, broadband has finally become ubiquitous.  You don’t carry a laptop or smartphone without portable broadband data access.  Along with Cloud services, this was the game changer.&lt;/p&gt;  &lt;p&gt;I didn’t really upgrade the way I worked until I moved to using a desktop PC for the first time in my life.  I’ve always lugged a (heavy) performance laptop to both my workplace, home and when travelling.  Hence, I always had everything with me.&lt;/p&gt;  &lt;p&gt;I’ve now traded this for a high spec MacBook Air 13” (which I love!), and a mega-grunty (that’s a technical term) desktop.&lt;/p&gt;  &lt;p&gt;Suddenly I was faced with the dilemma of managing work across 2 machines.  Gone are the days of copying files onto USB sticks, or emailing yourself files.  I was determined to find a seamless way of working such that I didn’t have to manage this sort of headache. &lt;/p&gt;  &lt;p&gt;I had some overriding premises.  Make it simple, make it easy, make it robust, and make it easy to support (very important if you have family members who are like the Bermuda Triangle for technology!).&lt;/p&gt;  &lt;p&gt;I’ve split the list into the following areas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h5&gt;Email, Contacts and Calendar&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;File Management&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Note Management&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Invoicing&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Cloud Accounting&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Project Management&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Backup&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Remote Access&lt;/h5&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;h5&gt;Source Control&lt;/h5&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Email, Contacts and Calendar&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.google.com/apps/intl/en-au/business/features.html" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 6px 12px 2px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_3.png" width="244" height="49" /&gt;&lt;/a&gt;Use a cloud service.  It’s that simple.  I use &lt;a href="http://www.google.com/apps/intl/en-au/business/features.html" target="_blank"&gt;Google Apps&lt;/a&gt; together with &lt;a href="http://www.google.com/apps/intl/en/business/outlook_sync.html" target="_blank"&gt;Google Sync&lt;/a&gt;, Microsoft Outlook 2010 and an iPhone.  Make sure you use the Google Sync configuration on your &lt;a href="http://mail.google.com/support/bin/answer.py?hl=en-GB&amp;answer=138740" target="_blank"&gt;iPhone&lt;/a&gt; and PC’s (not POP) and everything will sync beautifully across your devices.  I am delighted with the experience and service quality.   &lt;/p&gt;  &lt;p&gt;For USD$50 per user per year, you get 25GB storage, web portal access, an ‘Exchange’ like experience whereby your email (Inbox and Sent), Contacts and Calendars are synchronised across all your devices (computers and phones).  I add a contact on my phone, and it’s there like magic on both computers.  I send an email on my laptop, and it appears in the sent mail on my phone.  Magic.&lt;/p&gt;  &lt;p&gt;You can limit the size of your mail box synchronised with your computers, so if you’re looking for a really old item you just go to your web mail portal.&lt;/p&gt;  &lt;h3&gt;Other communication tools are:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.skype.com/intl/en/home" target="_blank"&gt;Skype&lt;/a&gt; (essential) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/en-us/office365/online-software.aspx" target="_blank"&gt;Office 365&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.webex.com.au" target="_blank"&gt;WebEx&lt;/a&gt; (although, beware.  Its a great service and very easy to setup a subscription.  But to cancel was a monumental effort!). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;File Management&lt;/h1&gt;  &lt;p&gt;I use two solutions here.  &lt;/p&gt;  &lt;h2&gt;&lt;a href="http://www.dropbox.com" target="_blank"&gt;DropBox&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://www.dropbox.com" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 6px 10px 4px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_6.png" width="436" height="161" /&gt;&lt;/a&gt;DropBox is amazing.  I can’t talk highly enough about this service.  DropBox is basically a file synchronisation service that is available almost everywhere (computers, phones, web).  The entry level is a free 2GB account.  You can download an application that designates a folder as your ‘DropBox’ folder.  You then work like normal, except that anything you do under the DropBox folder is trickled up to your online storage account.  This means folders, files – the works.  I haven’t found any sort of file size or type limitation.  It is brilliant!&lt;/p&gt;  &lt;p&gt;You can download this software onto other computers, sign in with your account details, and like magic the files are synchronised.&lt;/p&gt;  &lt;p&gt;I set up all commonly used files and current project files under DropBox.  This way, when I make a change on my laptop – it’s there like magic on my Desktop.  If I need a file at a client site or on a Virtual Machine, I just log into the web portal and download/upload the file required.&lt;/p&gt;  &lt;p&gt;You can also manage folder sharing with other parties, or send a web link to a common file in your Public folder.&lt;/p&gt;  &lt;p&gt;These files are also available on all common smart phones, and there are many application that integrate with DropBox allowing you to upload content directly (such as Photo application on your iPhone, etc.).&lt;/p&gt;  &lt;p&gt;You can upgrade your storage with a paid account and it’s well worth the money.  A paid subscriber can also elect to have access to older versions of a file (source control), and you can also recover accidentally deleted files.&lt;/p&gt;  &lt;p&gt;If your 2 computers are located on the same network, then the local network is used for copy files.  This saves return trips to the web and so is cheaper and faster.&lt;/p&gt;  &lt;p&gt;I’ll say it again.  DropBox is brilliant!  Not only does the synchronising of files work well, your have an online backup of critical working files that includes versioning.  And it just works – no management required.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;&lt;a href="http://www.secondcopy.com" target="_blank"&gt;SecondCopy&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;The other solution I use here is more for synchronising more static files.  I have a large hard drive at home (a &lt;a href="http://www.qnap.com/" target="_blank"&gt;QNAP NAS&lt;/a&gt;) that I used for local storage and backup.  I choose to ‘synchronise’ a number of directories with my Desktop machine so that if I change anything locally, it’s copied to the NAS.  Likewise, if anything is changed on the NAS, it gets copied to my Desktop.&lt;/p&gt;  &lt;p&gt;For this I use Second Copy.  It’s a scheduled file synchronisation tool and works very well.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Note Taking&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 4px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_2.png" width="352" height="155" /&gt;&lt;/a&gt;For note taking and capturing snippets of information, I use &lt;a href="http://www.evernote.com/" target="_blank"&gt;Evernote&lt;/a&gt;.  Evernote is a little like DropBox.  You can access a free account with generous limits, from just about every device known to mankind (computers, phones, tablets, and the web).  Like DropBox, Evernote synchronises everything to your web account ensuring that all devices auto-magically have access to your latest musings.&lt;/p&gt;  &lt;p&gt;Searching for information is also brilliant.  You can tag notes, and it will also index text WITHIN images so that these also appear in search results.&lt;/p&gt;  &lt;p&gt;Know it, use it, love it!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Invoicing and Timesheets&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_10.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 4px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_3.png" width="195" height="97" /&gt;&lt;/a&gt;Cash flow is king.  I’ll say it again, cash flow is king.  Have a great process for capturing what you do, invoicing for it, and receiving payment.  Or, go back to working for someone else (where they will make you timesheet what you do, so that they can invoice it and chase payment).&lt;/p&gt;  &lt;p&gt;After many years of trying to find/build a better mouse trap, I now use Freshbooks with a 3rd party add-on called &lt;a href="http://www.timersync.com/" target="_blank"&gt;Timersync&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.freshbooks.com" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_25.png" width="685" height="452" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Freshbooks allows you to setup Clients, Projects, Rates, Tasks, etc.  You can then capture time against Projects and then raise invoices.  These are emailed to your clients via a link.  When they click the link, they are presented with a professional looking portal that shows then invoices, payment history, invoice disputes, support notes, and their details.  You can also link Freshbooks with on line payment gateways such as PayPal so that clients can pay you directly.  And of course there is an iPhone app (of course!).&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Other alternatives to Freshbooks are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.getharvest.com/" target="_blank"&gt;Harvest&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.thrivesolo.com/" target="_blank"&gt;Solo&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Cloud Accounting&lt;/h1&gt;  &lt;p&gt;For more fully featured applications, you can go the whole hog and use a cloud based accounting system.  The best reviews I have read are for:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.saasu.com/" href="http://www.saasu.com/"&gt;http://www.saasu.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.saasu.com" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_16.png" width="681" height="447" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.xero.com"&gt;http://www.xero.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.xero.com" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_15.png" width="692" height="454" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Project Management&lt;/h1&gt;  &lt;p&gt;Many of the above tools involve some sort of project management, or at least the ability to categorise something as belonging to a project.  If you want to get a little more serious about project management, there are a number of excellent tools.&lt;/p&gt;  &lt;p&gt;I currently use Axosoft’s OnTime product.  This is mostly because I know it, and I forked out $800 in license fees.  OnTime has both a Windows Client, a Web Client, a Customer Portal, and an iPhone client.  You have the option of self hosting, or paying a monthly subscription.  It is highly configurable, and quite useful.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.axosoft.com"&gt;http://www.axosoft.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_18.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_6.png" width="702" height="454" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.atlassian.com/" href="http://www.atlassian.com/"&gt;http://www.atlassian.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_22.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_8.png" width="733" height="490" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.fogcreek.com/fogbugz/" href="http://www.fogcreek.com/fogbugz/"&gt;http://www.fogcreek.com/fogbugz/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_20.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_7.png" width="735" height="391" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Backup&lt;/h1&gt;  &lt;p&gt;I use a number of backup strategies, however the more I move my data and systems to the cloud, the more comfortable I get.  Part of moving your systems to the cloud is the promise of redundancy.  However, it doesn’t hurt to be a little paranoid.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.crashplan.com" target="_blank"&gt;CrashPlan (Cloud based, good storage limits, multi-computer)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_33.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_13.png" width="209" height="97" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.acronis.com" target="_blank"&gt;Acronis (local backup to an external hard drive)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Remote Access&lt;/h1&gt;  &lt;p&gt;Accessing computers remotely can be pretty handy.  Especially when travelling with a netbook, and you require access to your home desktop system.  LogMeIn has a web based interface, as well as an iPhone and iPad application.&lt;/p&gt;  &lt;p&gt;&lt;a title="https://secure.logmein.com/" href="https://secure.logmein.com/"&gt;https://secure.logmein.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Source Control&lt;/h1&gt;  &lt;p&gt;I use Subversion. It’s fast, easy, free (although there are some excellent 3rd party add ins I highly recommend) and works. I use VisualSVN for both server and Visual Studio 2010 integration.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.visualsvn.com"&gt;http://www.visualsvn.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_36.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_14.png" width="534" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For database source control I use Red-Gate’s excellent Source Control, which works in conjunction with Subversion.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.red-gate.com/products/sql-development/sql-source-control/" href="http://www.red-gate.com/products/sql-development/sql-source-control/"&gt;http://www.red-gate.com/products/sql-development/sql-source-control/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_37.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/3/42/Windows-Live-Writer-Essential-tools-for-modern-information-w_12154-image_thumb_15.png" width="728" height="544" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sourcegear.com/" target="_blank"&gt;SourceGear&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-foundation-server/overview" target="_blank"&gt;Microsoft Team Foundation Server 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.fogcreek.com/kiln/" target="_blank"&gt;Kiln (Mercurial)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com/Blog/tabid/74/EntryId/42/Essential-tools-for-modern-information-workers.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: Tools,DropBox,Evernote,Axosoft,TFS,Google Apps,Google Sync,Subversion,Xero,Freshbooks,SecondCopy,Crashplan&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.ripteq.com.au/Blog/tabid/74/CatID/2/Default.aspx&gt;Experience&lt;/a&gt;&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <category domain="http://www.ripteq.com.au/Blog/tabid/74/CatID/2/Default.aspx">Experience</category>
      <comments>http://www.ripteq.com/Blog/tabid/74/EntryId/42/Essential-tools-for-modern-information-workers.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com/Blog/tabid/74/EntryId/42/Essential-tools-for-modern-information-workers.aspx</guid>
      <pubDate>Fri, 17 Jun 2011 02:12:22 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=42</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/25/Default.aspx">Tools</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/26/Default.aspx">DropBox</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/27/Default.aspx">Evernote</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/28/Default.aspx">Axosoft</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/29/Default.aspx">TFS</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/30/Default.aspx">Google Apps</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/31/Default.aspx">Google Sync</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/32/Default.aspx">Subversion</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/33/Default.aspx">Xero</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/34/Default.aspx">Freshbooks</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/35/Default.aspx">SecondCopy</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/36/Default.aspx">Crashplan</blog:tag>
    </item>
    <item>
      <title>EntitySpaces Multiple Database Connections</title>
      <link>http://www.ripteq.com/Blog/tabid/74/EntryId/37/EntitySpaces-Multiple-Database-Connections.aspx</link>
      <description>&lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.ripteq.com.au/Portals/0/Blog/Files/1/4/Windows-Live-Writer-e9c99953fe05_DA4F-EntitySpacesLogo_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px solid; border-left: 0px solid; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px solid; border-right: 0px solid; padding-top: 0px" title="EntitySpacesLogo" alt="EntitySpacesLogo" src="/Portals/0/Blog/Files/1/4/Windows-Live-Writer-e9c99953fe05_DA4F-EntitySpacesLogo_thumb.png" width="280" height="62"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I often use EntitySpaces in projects and find that it works very well for multiple database connections.  &lt;/p&gt; &lt;p&gt;The guidance for using multiple connections is:&lt;/p&gt; &lt;p&gt;Register a connection as the ‘Default’&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0,0,0); font-size: 13px"&gt;&lt;strong&gt;'Initialise EntitySpaces&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class="code"&gt;        
            &lt;span style="color: green"&gt;'Initialise Entity Spaces
            &lt;/span&gt;&lt;span style="color: rgb(43,145,175)"&gt;esProviderFactory&lt;/span&gt;.Factory = &lt;span style="color: blue"&gt;New &lt;/span&gt;EntitySpaces.Loader.&lt;span style="color: rgb(43,145,175)"&gt;esDataProviderFactory&lt;/span&gt;()

            &lt;span style="color: blue"&gt;Dim &lt;/span&gt;conn &lt;span style="color: blue"&gt;As New &lt;/span&gt;&lt;span style="color: rgb(43,145,175)"&gt;esConnectionElement
            &lt;/span&gt;&lt;span style="color: green"&gt;'Manually register a connection 
            &lt;/span&gt;conn.ConnectionString = “…insert connection string …”
            conn.Name = &lt;span style="color: rgb(163,21,21)"&gt;"PrimaryDatabase"
            &lt;/span&gt;conn.Provider = &lt;span style="color: rgb(163,21,21)"&gt;"EntitySpaces.SqlClientProvider"
            &lt;/span&gt;conn.ProviderClass = &lt;span style="color: rgb(163,21,21)"&gt;"DataProvider"
            &lt;/span&gt;conn.SqlAccessType = &lt;span style="color: rgb(43,145,175)"&gt;esSqlAccessType&lt;/span&gt;.DynamicSQL
            conn.ProviderMetadataKey = &lt;span style="color: rgb(163,21,21)"&gt;"esDefault"
            &lt;/span&gt;conn.DatabaseVersion = &lt;span style="color: rgb(163,21,21)"&gt;"2005"

            &lt;/span&gt;&lt;span style="color: rgb(43,145,175)"&gt;esConfigSettings&lt;/span&gt;.ConnectionInfo.Connections.Add(conn)
            &lt;span style="color: rgb(43,145,175)"&gt;esConfigSettings&lt;/span&gt;.ConnectionInfo.Default = &lt;span style="color: rgb(163,21,21)"&gt;"PrimaryDatabase"
&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;You can then add as many other connections, registering each with a unique name (only set one connection as the default).&lt;/p&gt;
&lt;p&gt;To use a named connection, use the following syntax:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;esUtility&lt;/h3&gt;&lt;pre&gt;esUtility u = new esUtility();
u.ConnectionName = "OptiQBackupDataBase";&lt;/pre&gt;
&lt;h3&gt;Business Objects&lt;/h3&gt;&lt;pre&gt;// Single Entity
Employees emp = new Employees();
emp.es.Connection.Name = "OptiQBackupDataBase";

// Collection 
EmployeesCollection coll = new EmployeesCollection();
coll.es.Connection.Name = "OptiQBackupDataBase";

// Dynamic Query
EmployeesQuery query = new EmployeesQuery();
query.es2.Connection.Name = "OptiQBackupDataBase";&lt;/pre&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com/Blog/tabid/74/EntryId/37/EntitySpaces-Multiple-Database-Connections.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: EntitySpaces,Database&lt;/div&gt;&lt;div class="category"&gt;Category: &lt;a href=http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx&gt;Code&lt;/a&gt;&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <category domain="http://www.ripteq.com.au/Blog/tabid/74/CatID/1/Default.aspx">Code</category>
      <comments>http://www.ripteq.com/Blog/tabid/74/EntryId/37/EntitySpaces-Multiple-Database-Connections.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com/Blog/tabid/74/EntryId/37/EntitySpaces-Multiple-Database-Connections.aspx</guid>
      <pubDate>Mon, 13 Jun 2011 01:39:44 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=37</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/1/Default.aspx">EntitySpaces</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/4/Default.aspx">Database</blog:tag>
    </item>
    <item>
      <title>LightSwitch Beta Deployment</title>
      <link>http://www.ripteq.com/Blog/tabid/74/EntryId/36/LightSwitch-Beta-Deployment.aspx</link>
      <description>&lt;p&gt;Recently, I had to develop an admin interface to a web application.  I thought I would use &lt;a href="http://msdn.microsoft.com/en-au/lightswitch"&gt;Microsoft Visual Studio LightSwitch&lt;/a&gt;, as this seems to be the compelling use case.&lt;/p&gt;  &lt;p&gt;The experience building the application was very pleasant, and the resulting application was streets better than what I expected.  The early user experience was (and I quote), “WOOT WOOT”.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:8747F07C-CDE8-481f-B0DF-C6CFD074BF67:d3f8fbe9-b5e1-472f-bc3f-082bdffff545" class="wlWriterSmartContent"&gt;&lt;a title="LightSwitch Application" href="http://www.ripteq.com.au/Portals/0/Blog/Files/1/5/Windows-Live-Writer-LightSwitch-Beta-Deployment_E43C-CMSAdmin-8x6.png" rel="thumbnail"&gt;&lt;img style="border-bottom: 0px solid; border-left: 0px solid; border-top: 0px solid; border-right: 0px solid" alt="" src="/Portals/0/Blog/Files/1/5/Windows-Live-Writer-LightSwitch-Beta-Deployment_E43C-CMSAdmin_11.png" width="680" height="483" /&gt;&lt;/img&gt;&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;However the deployment experience I had was not so good, and I banged my head against the door for a number of days trying to get the application hosted on a virtual server.&lt;/p&gt;  &lt;h1&gt;Publish Options&lt;/h1&gt;  &lt;p&gt;You have 2 supported publish options – direct publish from Visual Studio, or develop a ‘Web Deploy Package’.&lt;/p&gt;  &lt;p&gt;I think most developers will end up using the package, however I tinkered with the direct publish initially and found no joy.  I think Enterprise Developers may end up using this option, however I struggled to get this too work (you might have another experience).&lt;/p&gt;  &lt;p&gt;Generating a package is pretty straight forward.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Troubleshooting&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Check the web.config on the production server &lt;/li&gt;    &lt;li&gt;Check the connection strings and sql permissions &lt;/li&gt;    &lt;li&gt;Web Deploy.  LightSwitch Beta 2 uses the Web Deploy 1.1 library.  Currently shipping is Web Deploy 2.0.  I found I had to completely remove Web Deploy 2.0 (through Remove Programmes, AND the Server ‘Features’ setting), before installing Web Deploy 1.1 through the &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank"&gt;Web Platform Installer&lt;/a&gt;.  Apparently the install order is important (&lt;strong&gt;Note&lt;/strong&gt;: I haven’t gone back and re-installed Web Deploy 2.0 to see if this breaks the install process). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h1&gt;Resources&lt;/h1&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-au/lightswitch" target="_blank"&gt;MSDN Developer Centre&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/category/vslightswitch" target="_blank"&gt;LightSwitch Forums&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/03/23/deployment-guide-how-to-configure-a-web-server-to-host-lightswitch-applications.aspx" target="_blank"&gt;Beth Massi - LightSwitch Deployment Guide&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;a href=http://www.ripteq.com/Blog/tabid/74/EntryId/36/LightSwitch-Beta-Deployment.aspx&gt;More ...&lt;/a&gt;&lt;div class="tags"&gt;Tags: LightSwitch,Deployment&lt;/div&gt;</description>
      <author>info@ripteq.com.au</author>
      <comments>http://www.ripteq.com/Blog/tabid/74/EntryId/36/LightSwitch-Beta-Deployment.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.ripteq.com/Blog/tabid/74/EntryId/36/LightSwitch-Beta-Deployment.aspx</guid>
      <pubDate>Mon, 13 Jun 2011 01:39:15 GMT</pubDate>
      <trackback:ping>http://www.ripteq.com.auDesktopModules/BlogTrackback.aspx?id=36</trackback:ping>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/5/Default.aspx">LightSwitch</blog:tag>
      <blog:tag blog:url="http://www.ripteq.com.au/Blog/tabid/74/TagID/6/Default.aspx">Deployment</blog:tag>
    </item>
  </channel>
</rss>
