Click here to Skip to main content
15,891,864 members
Articles / Programming Languages / C#

C# List View v1.3

Rate me:
Please Sign up or sign in to vote.
4.90/5 (168 votes)
2 Mar 2004CPOL13 min read 2.1M   55.8K   434  
A fully featured completely managed C# ListView.
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 1.3
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">1.3</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1">this is my long string</data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        [base64 mime encoded serialized .NET Framework object]
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        [base64 mime encoded string representing a byte array form of the .NET Framework object]
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used forserialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>1.3</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="glacialList1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="glacialList1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="glacialList1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="imageList1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="imageList1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="imageList1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </data>
  <data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw
        MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT
        eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA
        AABwEQAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABUAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQC
        AAEoAwABQAEBAgABEAMAAQEBAAEIBgABFBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQAB
        wAHcAcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQAD
        QgEAAzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB
        /wEzAwABZgMAAZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgAC
        ZgIAAWYBmQIAAWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwB
        MwIAAcwBZgIAAcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMB
        AAFmAQABMwEAAZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB
        /wEAATMBZgIAATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMB
        AAEzAZkBZgEAATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkB
        AAEzAswBAAEzAcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYB
        AAEzAQABZgEAAWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYB
        MwGZAQABZgEzAcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMB
        AAFmAZkBZgEAAWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQAB
        ZgHMAf8BAAFmAf8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkB
        MwGZAQABmQEAAZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYC
        AAGZAWYBMwEAAZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkB
        zAEAApkB/wEAAZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgAB
        mQH/ATMBAAGZAcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwB
        AAGZAQABzAEAAcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwB
        ZgIAAcwBZgEzAQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkB
        ZgEAAcwCmQEAAcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB
        /wIAAcwB/wEzAQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8B
        AAGZAQABzAEzAgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYB
        MwEAAcwCZgEAAf8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkB
        AAH/AZkBzAEAAf8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8B
        AAL/ATMBAAHMAf8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8B
        AAL/AWYBAAEhAQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD
        +AEAAfAB+wH/AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP//wD/AIgAAXkB
        UQHtBgABcwFRAwABeQFRAe0GAAFzAVEDAAF5AVEB7QYAAXMBUSkAAXkBUQHtBgABcwFRAwABeQFRAe0G
        AAFzAVEDAAF5AVEB7QYAAXMBUQMAAXkBUQHtBgABcwFRGwABeQFRAe0GAAFzAVEDAAF5AVEB7QYAAXMB
        UQMAAXkBUQHtBgABcwFRAwABeQFRAe0GAAFzAVEDAAF5AVEB7QYAAXMBUV0AARoBMQFKAesEAAFRATAB
        mQMAARoBMQFKAesEAAFRATABmQMAARoBMQFKAesEAAFRATABmSkAARoBMQFKAesEAAFRATABmQMAARoB
        MQFKAesEAAFRATABmQMAARoBMQFKAesEAAFRATABmQMAARoBMQFKAesEAAFRATABmRsAARoBMQFKAesE
        AAFRATABmQMAARoBMQFKAesEAAFRATABmQMAARoBMQFKAesEAAFRATABmQMAARoBMQFKAesEAAFRATAB
        mQMAARoBMQFKAesEAAFRATABmV4AAXoBMQEpAUoBAAHtAVEBMQFSBQABegExASkBSgEAAe0BUQExAVIF
        AAF6ATEBKQFKAQAB7QFRATEBUisAAXoBMQEpAUoBAAHtAVEBMQFSBQABegExASkBSgEAAe0BUQExAVIF
        AAF6ATEBKQFKAQAB7QFRATEBUgUAAXoBMQEpAUoBAAHtAVEBMQFSHQABegExASkBSgEAAe0BUQExAVIF
        AAF6ATEBKQFKAQAB7QFRATEBUgUAAXoBMQEpAUoBAAHtAVEBMQFSBQABegExASkBSgEAAe0BUQExAVIF
        AAF6ATEBKQFKAQAB7QFRATEBUl8AAZoBWQE3AQMBSgEwAjgBeQUAAZoBWQE3AQMBSgEwAjgBeQUAAZoB
        WQE3AQMBSgEwAjgBeSsAAZoBWQE3AQMBSgEwAjgBeQUAAZoBWQE3AQMBSgEwAjgBeQUAAZoBWQE3AQMB
        SgEwAjgBeQUAAZoBWQE3AQMBSgEwAjgBeR0AAZoBWQE3AQMBSgEwAjgBeQUAAZoBWQE3AQMBSgEwAjgB
        eQUAAZoBWQE3AQMBSgEwAjgBeQUAAZoBWQE3AQMBSgEwAjgBeQUAAZoBWQE3AQMBSgEwAjgBeWAAAXoC
        OAE3AjgBMQcAAXoCOAE3AjgBMQcAAXoCOAE3AjgBMS0AAXoCOAE3AjgBMQcAAXoCOAE3AjgBMQcAAXoC
        OAE3AjgBMQcAAXoCOAE3AjgBMR8AAXoCOAE3AjgBMQcAAXoCOAE3AjgBMQcAAXoCOAE3AjgBMQcAAXoC
        OAE3AjgBMQcAAXoCOAE3AjgBMWEAAVgFOAEDAfgGAAFYBTgBAwH4BgABWAU4AQMB+CwAAVgFOAEDAfgG
        AAFYBTgBAwH4BgABWAU4AQMB+AYAAVgFOAEDAfgeAAFYBTgBAwH4BgABWAU4AQMB+AYAAVgFOAEDAfgG
        AAFYBTgBAwH4BgABWAU4AQMB+F8AAVEBMQU4ATABKQFtBAABUQExBTgBMAEpAW0EAAFRATEFOAEwASkB
        bSoAAVEBMQU4ATABKQFtBAABUQExBTgBMAEpAW0EAAFRATEFOAEwASkBbQQAAVEBMQU4ATABKQFtHAAB
        UQExBTgBMAEpAW0EAAFRATEFOAEwASkBbQQAAVEBMQU4ATABKQFtBAABUQExBTgBMAEpAW0EAAFRATEF
        OAEwASkBbV0AAXkBWQF6AVkDOAFZAXoBWQFSAXkCAAF5AVkBegFZAzgBWQF6AVkBUgF5AgABeQFZAXoB
        WQM4AVkBegFZAVIBeSgAAXkBWQF6AVkDOAFZAXoBWQFSAXkCAAF5AVkBegFZAzgBWQF6AVkBUgF5AgAB
        eQFZAXoBWQM4AVkBegFZAVIBeQIAAXkBWQF6AVkDOAFZAXoBWQFSAXkaAAF5AVkBegFZAzgBWQF6AVkB
        UgF5AgABeQFZAXoBWQM4AVkBegFZAVIBeQIAAXkBWQF6AVkDOAFZAXoBWQFSAXkCAAF5AVkBegFZAzgB
        WQF6AVkBUgF5AgABeQFZAXoBWQM4AVkBegFZAVIBeV8AAZoBWQI4AZkJAAGaAVkCOAGZCQABmgFZAjgB
        mS8AAZoBWQI4AZkJAAGaAVkCOAGZCQABmgFZAjgBmQkAAZoBWQI4AZkhAAGaAVkCOAGZCQABmgFZAjgB
        mQkAAZoBWQI4AZkJAAGaAVkCOAGZCQABmgFZAjgBmWMAARoBWQE4AVIKAAEaAVkBOAFSCgABGgFZATgB
        UjAAARoBWQE4AVIKAAEaAVkBOAFSCgABGgFZATgBUgoAARoBWQE4AVIiAAEaAVkBOAFSCgABGgFZATgB
        UgoAARoBWQE4AVIKAAEaAVkBOAFSCgABGgFZATgBUmUAAXoBOAF5CwABegE4AXkLAAF6ATgBeTEAAXoB
        OAF5CwABegE4AXkLAAF6ATgBeQsAAXoBOAF5IwABegE4AXkLAAF6ATgBeQsAAXoBOAF5CwABegE4AXkL
        AAF6ATgBeWUAAZoBWAEaCwABmgFYARoLAAGaAVgBGjEAAZoBWAEaCwABmgFYARoLAAGaAVgBGgsAAZoB
        WAEaIwABmgFYARoLAAGaAVgBGgsAAZoBWAEaCwABmgFYARoLAAGaAVgBGmYAAZkNAAGZDQABmTMAAZkN
        AAGZDQABmQ0AAZklAAGZDQABmQ0AAZkNAAGZDQABmf8AngABQgFNAT4HAAE+AwABKAMAAUABAQIAARAD
        AAEBAQABAQUAAYABAhYAA/8BAB7/CgAe/woAAfgB/AHjAfMBjwHPBP8B+AH8AeMB8wGPAc4CPwL/AfgB
        /AHjAfMBjwHOAT8BOAH8Af8KAAH4AXgB4QHjAYcBjwT/AfgBeAHhAeMBhwGOAR4BPwL/AfgBeAHhAeMB
        hwGOAR4BOAF4Af8KAAH8ASEB8AGHAcIBHwT/AfwBIQHwAYcBwgEfAQgBfwL/AfwBIQHwAYcBwgEfAQgB
        fAEhAf8KAAH8AQEB8AEHAcABHwT/AfwBAQHwAQcBwAEfAQABfwL/AfwBAQHwAQcBwAEfAQABfAEBAf8K
        AAH+AQMB+AEPAeABPwT/Af4BAwH4AQ8B4AE/AYAD/wH+AQMB+AEPAeABPwGAAf4BAwH/CgAB/gEBAfgB
        BwHgAR8E/wH+AQEB+AEHAeABHwGAAX8C/wH+AQEB+AEHAeABHwGAAX4BAQH/CgAB/AEAAfABAwHAAQ8E
        /wH8AQAB8AEDAcABDwEAAT8C/wH8AQAB8AEDAcABDwEAATwBAAH/CgAB+AEAAWABAQGAAQcE/wH4AQAB
        YAEBAYABBgEAAR8C/wH4AQABYAEBAYABBgEAARgBAAF/CgAB/wEHAfwBHwHwAX8F/wEHAfwBHwHwAX8B
        wQT/AQcB/AEfAfABfwHBAf8BBwH/CgAB/wEPAfwBPwHwBv8BDwH8AT8B8AH/AcME/wEPAfwBPwHwAf8B
        wwH/AQ8B/woAAf8BjwH+AT8B+Ab/AY8B/gE/AfgB/wHjBP8BjwH+AT8B+AH/AeMB/wGPAf8KAAH/AY8B
        /gE/AfgG/wGPAf4BPwH4Af8B4wT/AY8B/gE/AfgB/wHjAf8BjwH/CgAB/wHfAf8BfwH9Bv8B3wH/AX8B
        /QH/AfcE/wHfAf8BfwH9Af8B9wH/Ad8B/woAHv8KAAs=
</value>
  </data>
  <data name="mainMenu1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="mainMenu1.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>122, 17</value>
  </data>
  <data name="mainMenu1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="menuItem1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="menuItem1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="menuItem2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="menuItem2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>(Default)</value>
  </data>
  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>8, 8</value>
  </data>
  <data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </data>
  <data name="$this.Name">
    <value>Form1</value>
  </data>
  <data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>80</value>
  </data>
  <data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </data>
  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
</root>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Chief Technology Officer Primary Architects, Inc.
United States United States
I started my programming career in the late 80's with video games and have since written games on the AppleIIgs, SNES, Saturn, Playstation, and PC. After leaving the games industry and joining the ranks of consultants I began doing a lot of work with client/server applications, data movement, and communications. I've also become a recent convert to the XP principles of software development. Despite my defection to the business world I am still an avid gamer and I can be found on the gamezone most weekends slugging it out with others in the various online games there.

I currently live in Utah where I run PA (enterprise architecture consulting firm) and occasionally guest speak at architect forums. I mountain bike (badly), golf (very badly), and have fun (often).

Comments and Discussions