<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Chris May</title>
    <link>http://chrismay.org/</link>
    <description>{Consulting; .Net Development; IT Services}</description>
    <language>en-us</language>
    <copyright>Christopher May, Inc</copyright>
    <lastBuildDate>Thu, 28 Jan 2010 20:28:53 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>chris@christophermayinc.com</managingEditor>
    <webMaster>chris@christophermayinc.com</webMaster>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=6f8961fd-d014-4f22-9301-51b0d5148e20</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,6f8961fd-d014-4f22-9301-51b0d5148e20.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,6f8961fd-d014-4f22-9301-51b0d5148e20.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=6f8961fd-d014-4f22-9301-51b0d5148e20</wfw:commentRss>
      <title>Doing P2V with HyperV</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,6f8961fd-d014-4f22-9301-51b0d5148e20.aspx</guid>
      <link>http://chrismay.org/2010/01/28/Doing+P2V+With+HyperV.aspx</link>
      <pubDate>Thu, 28 Jan 2010 20:28:53 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;I had recently tried to use my Windows Home Server to restore a laptop image to a VM running inside HyperV.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;In the event that my machine totally died (not just a hard drive issue) I could restore the image to a VM and work from there while I got back on my feet with a new laptop.&lt;/P&gt;
&lt;P&gt;Unfortunately I didn't find any way to make this work.&amp;nbsp; I ended up doing all this work and in the end, I couldn't boot.&lt;/P&gt;
&lt;P&gt;A disk read error occurred&lt;BR&gt;Press ctrl+alt+delete to restart.&lt;/P&gt;
&lt;P&gt;I tried everything I could think of, repairing the MBR, running fixboot, doing a windows repair, restoring the hal dll from i386&amp;nbsp;etc.&amp;nbsp; Nothing worked.&lt;/P&gt;
&lt;P&gt;So I gave up on using WHS to create an instance of my dev machine, and fell back on just trying to do a P2V of any type.&lt;/P&gt;
&lt;P&gt;I came across &lt;A href="http://"&gt;Disk2VHD&lt;/A&gt;, a free Systernals tool.&amp;nbsp; This tool includes the options to run on the source machine while online, and also provides an option to "Fix" the HAL (hardware abstraction layer).&amp;nbsp; I think this was part of my original problem (the HAL issue).&amp;nbsp; My computer was setup to use SATA drivers, and HyperV only supports virtual IDE drivers.&amp;nbsp; I think (but am not sure) that this is what was causing my problem w/ using the WHS restore.&lt;/P&gt;
&lt;P&gt;So anyway, Disk2VHD runs super fast, and pretty soon I had a VHD to try out.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Now, this VHD didn't work either, but it would get me further along.&amp;nbsp; I would see the windows splash screen before the black screen of death.&lt;/P&gt;
&lt;P&gt;What followed was a weird set of steps trying to figure out why things wouldn't work, but in the end, I never ended up needing to disable anything.... so I'm just going to try to write down the steps I took as best I can.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;After the first BSOD I booted to safe mode (using F8).&lt;/LI&gt;
&lt;LI&gt;Safe mode worked, and it seemed to find some new hardware, as I would have expected, but I don't think it found any of the drivers it needed (so maybe I had ejected the virtual windows CD or something).&lt;/LI&gt;
&lt;LI&gt;Booting normally gave the black screen of death again.&lt;/LI&gt;
&lt;LI&gt;I then found this page with instructions on how to &lt;A href="http://www.petri.co.il/forums/showthread.php?t=41390"&gt;replace the HAL&lt;/A&gt;.&amp;nbsp; Really these instructions were how to do Disk2VHD to a working VM, but I had already done most of the steps except the hal replacement.&amp;nbsp; I'm going to replace those instructions below:&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Calibri&gt;1)&lt;/FONT&gt;Downloaded Disk2VHD (v 1.3) from sysinternals (free) and unzipped on the laptop&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;2)&lt;/FONT&gt;Find a place to store the new vhd - I used a 320GB external USB, but any storage device that pc can see and is big enough to hold your hard disk should work&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;3)&lt;/FONT&gt;Run Disk2VHD and input the name and location for the new file&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;4)&lt;/FONT&gt;On your virtual host create a new VPC (I use Virtual PC 2007) and add that new vhd you just created as the primary hard disk.&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;5)&lt;/FONT&gt;Make sure you have an ISO of WinXP or an actual disk. If using an iso you'll need to mount it so it can be booted from.&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;6)&lt;/FONT&gt;Fire up the new vpc and have it boot from that XP disc.&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;7)&lt;/FONT&gt;Let it run setup and then select option 2 (R) to get repair console&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;&lt;IMG class=inlineimg title=Cool border=0 alt="" src="http://www.petri.co.il/forums/images/smilies/icon_cool.gif"&gt;&lt;/FONT&gt;Login in to windows (need admin pw)&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;9)&lt;/FONT&gt;Type “cd system32” press enter&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;10)&lt;/FONT&gt;Assuming your CD (or mounted iso) is drive D - Type “expand d:\i386\halacpi.dl_” press enter&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;11)&lt;/FONT&gt;Type “copy halacpi.dll hal.dll” press enter and then press y&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;12)&lt;/FONT&gt;Reboot&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;13)&lt;/FONT&gt;Press F8 to get to safe mode&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;14)&lt;/FONT&gt;After the message that new stuff was installed, click OK for reboot&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Calibri&gt;15)&lt;/FONT&gt;After system boots back up, log in and install VM Additions&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;IIRC I still got the black screen of death.&amp;nbsp; It's possible that at this point behind the scenes it was doing a check of my disck or something, but I can't tell in the VM if the HDD is going or not so I just assumed it was locked.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;I booted to safe mode and used MSconfig to disable everything, and also used /SOS, and some other options.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;What followed was just a series of successful boots with me enabling more and more until I had everything enabled and it all still worked, so I'm not sure why I was getting the BlackSOD before I started this set of SafeMode boots.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;Another thing I did at some point (maybe more than once) was try to install the VM Integration Services, which says that it's updating the HAL, so maybe that had something to do with it too.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;The next 2 things that I'm going to try are, running a WHS restore to a VM that is already working (I don't think this will matter, but we'll see), and 2 trying to use the Disk2VHD on a machine that has a VHD mounted as a secondary drive.&amp;nbsp; I don't konw if this is even possible, but I was thinking that I could use WHS to create the VHD, mount the VHD as X: on some machine, and then tell Disk2VHD to create a VHD from X: and instruct it to to the "Fix HAL" thing.&amp;nbsp; I'm guessing that will not work as well, but we'll see.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=6f8961fd-d014-4f22-9301-51b0d5148e20"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,6f8961fd-d014-4f22-9301-51b0d5148e20.aspx</comments>
      <category>Hardware</category>
      <category>Misc</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=d2c7c4a3-54d7-4931-803e-b22d09a2484c</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,d2c7c4a3-54d7-4931-803e-b22d09a2484c.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,d2c7c4a3-54d7-4931-803e-b22d09a2484c.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=d2c7c4a3-54d7-4931-803e-b22d09a2484c</wfw:commentRss>
      <title>Connecting dynamically to mygeneration MyMeta.dbRoot</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,d2c7c4a3-54d7-4931-803e-b22d09a2484c.aspx</guid>
      <link>http://chrismay.org/2010/01/18/Connecting+Dynamically+To+Mygeneration+MyMetadbRoot.aspx</link>
      <pubDate>Mon, 18 Jan 2010 06:42:39 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;The amount of time that this cost me is astounding for such a stupid issue.&amp;nbsp; (And, I'm going to lay the blame fully on whoever wrote the dbRoot object in the MyGeneration project.&amp;nbsp; Total improper use of properties).&lt;/P&gt;
&lt;P&gt;The situation was this: I was trying to dynamically wire up all the plumbing that the mygeneration windows app does for you manually from the ZeusCmd command line.&lt;/P&gt;
&lt;P&gt;Doing this would allow me to switch from DB to DB within my code gen application.&lt;/P&gt;
&lt;P&gt;Because ZeusCmd runs first (it references my app and passes in what is needed), if you had previously saved a connection in your MyGeneration app, then this connection is used when ZeusCmd runs.&amp;nbsp; I didn't want this to happen because as I move from location to location different DB servers are available or not available, so if the last DB server I connected to was at office A, I didn't want my code gen crashing onload when I am out of said office.&lt;/P&gt;
&lt;P&gt;So I ran MyGeneration and changed my connection to be &amp;lt;None&amp;gt; and saved the settings.&amp;nbsp; Then in my code gen, I tried to manually create the dbRoot object (named meta here) that was previously created for me my ZeusCmd and my saved MyGeneration settings.&lt;/P&gt;
&lt;P&gt;Code like this:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;meta.Connect(&lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SQL"&lt;/SPAN&gt;, &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"Provider=SQLNCLI;Server=cmayt61p;Database=DBName;Trusted_Connection=yes;"&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Seemed to do the trick. &lt;/P&gt;
&lt;P&gt;However, my codegen started blowing up on my later in the process.&amp;nbsp; After tracking down the error I find that the mygeneration result column object can't figure out the .net type that would be the same as a sql server "int".&amp;nbsp; Strange, never had these problems before.&lt;/P&gt;
&lt;P&gt;A lot of debugging leads me to find that:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;meta.DbTarget
meta.Language &lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Are both returning "" when before they were returning "SqlClient" and "VB.NET" when I was not dynamically connecting.&lt;/P&gt;
&lt;P&gt;So here is where things get bad... anytime I try setting these properties to their values:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;meta.DbTarget &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SqlClient"&lt;/SPAN&gt;
meta.Language &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"VB.NET"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Nothing happens.&amp;nbsp; The values don't appear to stick.&lt;/P&gt;
&lt;P&gt;Eventually I even start trying to set the LanguageMappingFileName and DbTargetMappingFileName properties as well:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;meta.DbTarget &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SqlClient"&lt;/SPAN&gt;
meta.Language &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"VB.NET"&lt;/SPAN&gt;
meta.LanguageMappingFileName &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"C:\Program Files\MyGeneration13\Settings\Languages.xml"&lt;/SPAN&gt;
meta.DbTargetMappingFileName &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"C:\Program Files\MyGeneration13\Settings\DbTargets.xml"&lt;/SPAN&gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;I tried doing these property sets before connecting and after connecting.&lt;/P&gt;
&lt;P&gt;I tried&amp;nbsp;returning to having MyGeneration setup the meta object form me (and all these properties have their values) before dynamically connecting (and losing the DbTarget and Language property values).&lt;/P&gt;
&lt;P&gt;I even tried creating a brand new dbRoot object, as well as trying to read some hidden values in the IZeusInput object.&lt;/P&gt;
&lt;P&gt;But, in the end, it all came down to the this 1 little thing:&lt;/P&gt;
&lt;P&gt;You have to set the mapping file properties before you can set the DbTarget and Language properties.&lt;/P&gt;
&lt;P&gt;So this will work just fine:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;meta.Connect(&lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SQL"&lt;/SPAN&gt;, &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"Provider=SQLNCLI;Server=cmayt61p;Database=MSiUpgraded;Trusted_Connection=yes;"&lt;/SPAN&gt;)&lt;BR&gt;meta.LanguageMappingFileName &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"C:\Program Files\MyGeneration13\Settings\Languages.xml"&lt;/SPAN&gt;
meta.DbTargetMappingFileName &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"C:\Program Files\MyGeneration13\Settings\DbTargets.xml"&lt;/SPAN&gt;
meta.DbTarget &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SqlClient"&lt;/SPAN&gt;
meta.Language &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"VB.NET"&lt;/SPAN&gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;But this won't:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;meta.Connect(&lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SQL"&lt;/SPAN&gt;, &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"Provider=SQLNCLI;Server=cmayt61p;Database=MSiUpgraded;Trusted_Connection=yes;"&lt;/SPAN&gt;)&lt;BR&gt;meta.DbTarget &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"SqlClient"&lt;/SPAN&gt;
meta.Language &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"VB.NET"&lt;/SPAN&gt;
meta.LanguageMappingFileName &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"C:\Program Files\MyGeneration13\Settings\Languages.xml"&lt;/SPAN&gt;
meta.DbTargetMappingFileName &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: #e4e4e4; FONT-FAMILY: Courier New; COLOR: #666666; FONT-SIZE: 11px"&gt;"C:\Program Files\MyGeneration13\Settings\DbTargets.xml"&lt;/SPAN&gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;It just so happened that everywhere that I was testing this stuff in my code, I always set the DbTarget and Language properties first, and they would never stick.&lt;/P&gt;
&lt;P&gt;This is not a proper use of properties.&amp;nbsp; If a property set has conditional logic that will prevent it from setting, there is something wrong here.&amp;nbsp; At minimum something should happen, an exception being thrown maybe?&amp;nbsp; The proper thing to do in my mind would be to make DbTarget and Language readonly properties and have functions to set their value, which could return something indicating failure (or throw an exception).&lt;/P&gt;
&lt;P&gt;Property gets and sets should do just that, get and set properties.&amp;nbsp; There shouldn't be logic in there deciding if and when to actually perform the set that you have coded.&amp;nbsp; That is the job of a function.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE: &lt;/STRONG&gt;And I discovered as well that you have to connect first before you set any of these values, or none of them will stick.&amp;nbsp; So you have to 1) connect 2) set the file paths 3) set the language and dbtargets, in that order or nothing works.&lt;BR&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=d2c7c4a3-54d7-4931-803e-b22d09a2484c"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,d2c7c4a3-54d7-4931-803e-b22d09a2484c.aspx</comments>
      <category>Programming</category>
      <category>Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=7da3bd80-ba53-4ad0-8dc0-c56c755d732f</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,7da3bd80-ba53-4ad0-8dc0-c56c755d732f.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,7da3bd80-ba53-4ad0-8dc0-c56c755d732f.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=7da3bd80-ba53-4ad0-8dc0-c56c755d732f</wfw:commentRss>
      <title>jQuery Easing Demos</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,7da3bd80-ba53-4ad0-8dc0-c56c755d732f.aspx</guid>
      <link>http://chrismay.org/2010/01/06/jQuery+Easing+Demos.aspx</link>
      <pubDate>Wed, 06 Jan 2010 03:49:01 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;This page has a quick demo of all the easing methods in the jQuery Easing plugin:&amp;nbsp; &lt;A href="http://www.commadot.com/jquery/easing.php"&gt;http://www.commadot.com/jquery/easing.php&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Pretty cool.&amp;nbsp; Just click on any of the boxes to see the easing action.&lt;/P&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=7da3bd80-ba53-4ad0-8dc0-c56c755d732f"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,7da3bd80-ba53-4ad0-8dc0-c56c755d732f.aspx</comments>
      <category>Programming</category>
      <category>Programming/Javascript</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=5e7546c9-ea1a-4e52-8285-d34d3b42cab4</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,5e7546c9-ea1a-4e52-8285-d34d3b42cab4.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,5e7546c9-ea1a-4e52-8285-d34d3b42cab4.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=5e7546c9-ea1a-4e52-8285-d34d3b42cab4</wfw:commentRss>
      <title>Where is the jQuery Effects Core effects.core.js </title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,5e7546c9-ea1a-4e52-8285-d34d3b42cab4.aspx</guid>
      <link>http://chrismay.org/2010/01/06/Where+Is+The+JQuery+Effects+Core+Effectscorejs.aspx</link>
      <pubDate>Wed, 06 Jan 2010 03:31:22 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;I was trying to use some jQuery effects on this page:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://docs.jquery.com/UI/Effects"&gt;http://docs.jquery.com/UI/Effects&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And none of them were working.&amp;nbsp; After a while, I realized it was because I didn't have the "jQuery Effects Core" or as they list it on that page: effects.core.js&lt;/P&gt;
&lt;P&gt;Turns out you need to download it as part of the UI package here: &lt;A href="http://jqueryui.com/download"&gt;http://jqueryui.com/download&lt;/A&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=5e7546c9-ea1a-4e52-8285-d34d3b42cab4"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,5e7546c9-ea1a-4e52-8285-d34d3b42cab4.aspx</comments>
      <category>Programming</category>
      <category>Programming/Javascript</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=d3bedd71-28f9-478b-99d8-a70f61ea6e00</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,d3bedd71-28f9-478b-99d8-a70f61ea6e00.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,d3bedd71-28f9-478b-99d8-a70f61ea6e00.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=d3bedd71-28f9-478b-99d8-a70f61ea6e00</wfw:commentRss>
      <title>Removing all extended properties from SQL Server</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,d3bedd71-28f9-478b-99d8-a70f61ea6e00.aspx</guid>
      <link>http://chrismay.org/2009/12/11/Removing+All+Extended+Properties+From+SQL+Server.aspx</link>
      <pubDate>Fri, 11 Dec 2009 17:27:26 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;About a year ago, we tried using a tool to get our SQL schema into a souce control system.&amp;nbsp; It was supposed to work like this: every night the process would run and checkin each object as a file into TFS.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Well, aside from not working, it also added Extended Properties to all our objects in SQL Server.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Not really a big deal, except when we would run our database comparison tools between production and development these would cause it so that almost everything would appear out of sync.&lt;/P&gt;
&lt;P&gt;I ended up writing my own service to check in all our SQL objects into TFS, but we were left with all these Extended Properties all over the place.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So I finally got around to cleaning them up using the script below:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: black; FONT-SIZE: 11px"&gt;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;select&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'EXEC sp_dropextendedproperty 
@name = '''&lt;/SPAN&gt; + sys.extended_properties.name + &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;''' 
,@level0type = ''schema'' 
,@level0name = '&lt;/SPAN&gt; + object_schema_name(extended_properties.major_id) + &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'
,@level1type = '''&lt;/SPAN&gt; + 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: fuchsia; FONT-SIZE: 11px"&gt;CASE&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;WHEN&lt;/SPAN&gt;  
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xtype = &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'U'&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;THEN&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'table'&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;WHEN&lt;/SPAN&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xtype = &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'FN'&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;THEN&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'function'&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;WHEN&lt;/SPAN&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xtype = &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'V'&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;THEN&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'view'&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;WHEN&lt;/SPAN&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xtype = &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'P'&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;THEN&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'procedure'&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;end&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'''
,@level1name = '''&lt;/SPAN&gt; + &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: fuchsia; FONT-SIZE: 11px"&gt;object_name&lt;/SPAN&gt;(extended_properties.major_id) + &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;''''&lt;/SPAN&gt;
&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;from&lt;/SPAN&gt; sys.extended_properties
&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;INNER&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: silver; FONT-SIZE: 11px"&gt;JOIN&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: lawngreen; FONT-SIZE: 11px"&gt;sysobjects&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;ON&lt;/SPAN&gt; sys.extended_properties.major_id  = &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: lawngreen; FONT-SIZE: 11px"&gt;sysobjects&lt;/SPAN&gt;.id
&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: blue; FONT-SIZE: 11px"&gt;where&lt;/SPAN&gt; extended_properties.class_desc = &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'OBJECT_OR_COLUMN'&lt;/SPAN&gt;
&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: silver; FONT-SIZE: 11px"&gt;and&lt;/SPAN&gt; extended_properties.minor_id = 0
&lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: silver; FONT-SIZE: 11px"&gt;and&lt;/SPAN&gt; extended_properties.name &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: silver; FONT-SIZE: 11px"&gt;like&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR: transparent; FONT-FAMILY: Courier New; COLOR: red; FONT-SIZE: 11px"&gt;'VSS%'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;This script will produce a record set that you can copy and paste into another query window to run to clean out all the extended properties.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Note: all the generated extended properties that this tool created on our DB started with "VSS" so that is why I have that extra item in my where clause.&amp;nbsp; You'll probably want to remove that.&lt;/P&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=d3bedd71-28f9-478b-99d8-a70f61ea6e00"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,d3bedd71-28f9-478b-99d8-a70f61ea6e00.aspx</comments>
      <category>Programming</category>
      <category>Programming/Database</category>
      <category>Programming/Database/SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=0d019894-1dff-477c-ba18-947e293918a5</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,0d019894-1dff-477c-ba18-947e293918a5.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,0d019894-1dff-477c-ba18-947e293918a5.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=0d019894-1dff-477c-ba18-947e293918a5</wfw:commentRss>
      <title>Tricking the HP WHS update to run on original WHS machines</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,0d019894-1dff-477c-ba18-947e293918a5.aspx</guid>
      <link>http://chrismay.org/2009/11/30/Tricking+The+HP+WHS+Update+To+Run+On+Original+WHS+Machines.aspx</link>
      <pubDate>Mon, 30 Nov 2009 16:50:48 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;&lt;A href="http://www.mediasmartserver.net/wiki/index.php/Installing_the_HP_MediaSmart_Server_2.5_Update_on_the_EX47x"&gt;Here is the article&lt;/A&gt; on how to install the update on the EX47X machines.&lt;/P&gt;
&lt;BLOCKQUOTE style="MARGIN-RIGHT: 0px" dir=ltr&gt;
&lt;P&gt;When HP released the HP MediaSmart Server 2.5 Update for the EX48x machines, they also &lt;SUP id=cite_ref-0 class=reference&gt;&lt;A title="" href="http://www.mediasmartserver.net/wiki/index.php/Installing_the_HP_MediaSmart_Server_2.5_Update_on_the_EX47x#cite_note-0"&gt;[1]&lt;/A&gt;&lt;/SUP&gt; announced the full software would not be available to first generation users due "to hardware differences" anhd "the underlying software architecture". Based on that statement, Nigel Wilks (Cougar) and Alex Kuretz (Yakuza) started work on a way&lt;SUP id=cite_ref-1 class=reference&gt;&lt;A title="" href="http://www.mediasmartserver.net/wiki/index.php/Installing_the_HP_MediaSmart_Server_2.5_Update_on_the_EX47x#cite_note-1"&gt;[2]&lt;/A&gt;&lt;/SUP&gt; to make the update available to EX47x owners, dubbed "SanEncore" after the code names for the EX47x (San Juan) and the EX48x (Encore). &lt;/P&gt;
&lt;P&gt;Cougar and Yakuza have also developed a Windows Home Server &lt;A title=Add-In href="http://www.mediasmartserver.net/wiki/index.php/Add-In"&gt;Add-In&lt;/A&gt; to fake the Update package into thinking it is running on a 2.1 machine, and handles some of the missing configuration items so that the 2.5 update is sucesful. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=0d019894-1dff-477c-ba18-947e293918a5"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,0d019894-1dff-477c-ba18-947e293918a5.aspx</comments>
      <category>Cool</category>
      <category>Hardware</category>
      <category>Hardware/Gadgets</category>
      <category>Hareware/Servers</category>
      <category>Misc</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=99400ee6-1a68-41b3-b4e6-be099f31566e</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,99400ee6-1a68-41b3-b4e6-be099f31566e.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,99400ee6-1a68-41b3-b4e6-be099f31566e.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=99400ee6-1a68-41b3-b4e6-be099f31566e</wfw:commentRss>
      <title>CSLA 3.5 Child and Parent Patterns</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,99400ee6-1a68-41b3-b4e6-be099f31566e.aspx</guid>
      <link>http://chrismay.org/2009/11/28/CSLA+35+Child+And+Parent+Patterns.aspx</link>
      <pubDate>Sat, 28 Nov 2009 00:12:18 GMT</pubDate>
      <description>&lt;div&gt;From this post: &lt;br&gt;&lt;a href="http://forums.lhotka.net/forums/thread/25658.aspx"&gt;http://forums.lhotka.net/forums/thread/25658.aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Child pattern:&lt;br&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;[Serializable]
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; Child : BusinessBase&amp;lt;Child&amp;gt;
{
  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;internal&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;static&lt;/span&gt; Child NewChild()
  {
    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; DataPortal.CreateChild&amp;lt;Child&amp;gt;();
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;internal&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;static&lt;/span&gt; Child GetChild()
  {
    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; DataPortal.FetchChild&amp;lt;Child&amp;gt;();
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; Child()
  { 
    MarkAsChild();
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Child_Create()
  {
    &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// initialize new child here&lt;/span&gt;
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Child_Fetch()
  {
    &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// load child data here&lt;/span&gt;
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Child_Insert()
  {
    &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// insert child data here&lt;/span&gt;
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Child_Update()
  {
    &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// update child data here&lt;/span&gt;
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Child_DeleteSelf()
  {
    &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// delete child data here&lt;/span&gt;
  }
}

&lt;/span&gt;&lt;/pre&gt;Editable root pattern:&lt;br&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;[Serializable]
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; RootParent : BusinessBase&amp;lt;RootParent&amp;gt;
{
  &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// other class code here ...&lt;/span&gt;

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;protected&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;override&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; DataPortal_Insert()
  {
    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; (SqlConnection cn &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; SqlConnection(...))
    {
      &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// insert parent data here&lt;/span&gt;

      FieldManager.UpdateChildren();
    }
  }

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;protected&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;override&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; DataPortal_Update()
  {
    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; (SqlConnection cn &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; SqlConnection(...))
    {
      &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// update parent data here&lt;/span&gt;

      FieldManager.UpdateChildren();
    }
  }
}
&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;Editable Root List:&lt;br&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;[Serializable]
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; ChildList : BusinessListBase&amp;lt;ChildList, Child&amp;gt;
{
  &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// other class code here ...&lt;/span&gt;

  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;protected&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;override&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; DataPortal_Update()
  {
    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;using&lt;/span&gt; (SqlConnection cn &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; SqlConnection(...))
    {
      Child_Update();
    }
  }
}
&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;Editable Child List:&lt;br&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;[Serializable]
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; ChildList : BusinessListBase&amp;lt;ChildList, Child&amp;gt;
{
  &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;internal&lt;/span&gt; ChildList()
  {
    MarkAsChild();
  }

  &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;// other class code here ...&lt;/span&gt;
}
&lt;/span&gt;&lt;/pre&gt;If you use the DataPortal methods for creating the child objects (i.e. FetchChild) then you don't have to bother with the MarkAsChild() stuff.&lt;br&gt;&lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=99400ee6-1a68-41b3-b4e6-be099f31566e"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,99400ee6-1a68-41b3-b4e6-be099f31566e.aspx</comments>
      <category>Programming</category>
      <category>Programming/.Net</category>
      <category>Programming/.Net/C#</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=e3208665-4c1b-4d57-9c16-43477f9052cb</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,e3208665-4c1b-4d57-9c16-43477f9052cb.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,e3208665-4c1b-4d57-9c16-43477f9052cb.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=e3208665-4c1b-4d57-9c16-43477f9052cb</wfw:commentRss>
      <title>Turn an Enum into a list in VB.Net with optional CSLA</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,e3208665-4c1b-4d57-9c16-43477f9052cb.aspx</guid>
      <link>http://chrismay.org/2009/11/27/Turn+An+Enum+Into+A+List+In+VBNet+With+Optional+CSLA.aspx</link>
      <pubDate>Fri, 27 Nov 2009 21:16:10 GMT</pubDate>
      <description>&lt;div&gt;From time to time you might have an enum that you want to databind to something as if it were a list, so I wrote some classes that turn an Enum into a list that you can databind.&amp;nbsp; &lt;br&gt;&lt;br&gt;I created ways to do this in CSLA and also w/o CSLA.&amp;nbsp; I made the non-CSLA versions 1 work so that you can either use a sub class, or just use generics when defining the type of your list.&amp;nbsp; You can do the same with the CSLA versions if you want by changing some of the generics, but I didn't bother.&lt;pre&gt;&lt;br&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;'*** csla&lt;/span&gt;&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; cslaList &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; MyTestTypeList &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; MyTestTypeList.GetList&lt;br&gt;&lt;br&gt;&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;'*** non-csla with inherited subclass and without&lt;/span&gt;&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; list &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt; MyTestTypeList2&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; list2 &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt; EnumList2(Of MyTestType)&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;'*** enum we are using&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt; MyTestType&lt;br&gt;    something &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; 1&lt;br&gt;    here &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; 2&lt;br&gt;    ok &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; 3&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;'*** csla&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;Serializable()&amp;gt; _&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt; MyTestTypeList&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Inherits&lt;/span&gt; EnumList(Of mytesttype, MyTestTypeList)&lt;br&gt;&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt;&lt;br&gt;&amp;lt;Serializable()&amp;gt; _&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt; EnumList(Of T &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Structure&lt;/span&gt;, R &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; EnumList(Of T, R))&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Inherits&lt;/span&gt; Csla.NameValueListBase(Of &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;String&lt;/span&gt;, &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Integer&lt;/span&gt;)&lt;br&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Shared&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Function&lt;/span&gt; GetList() &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; R&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Return&lt;/span&gt; Csla.DataPortal.Fetch(Of R)()&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Function&lt;/span&gt;&lt;br&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Protected&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt;()&lt;br&gt;        &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;' require use of factory method &lt;/span&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt;&lt;br&gt;&lt;br&gt;    &amp;lt;Csla.RunLocal()&amp;gt; _&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Overloads&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt; DataPortal_Fetch() &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;'ByVal criteria As Object)&lt;/span&gt;&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Me&lt;/span&gt;.IsReadOnly &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;False&lt;/span&gt;&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;For&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Each&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;item&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; T &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;In&lt;/span&gt; [&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;].GetValues(&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;GetType&lt;/span&gt;(T))&lt;br&gt;            &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; name &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;String&lt;/span&gt; &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; [&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;].GetName(&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;GetType&lt;/span&gt;(T), &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;item&lt;/span&gt;)&lt;br&gt;            &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Add&lt;/span&gt;(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt; Csla.NameValueListBase(Of &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;String&lt;/span&gt;, &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Integer&lt;/span&gt;).NameValuePair(name, [&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;].Parse(&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;GetType&lt;/span&gt;(T), name)))&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Next&lt;/span&gt;&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Me&lt;/span&gt;.IsReadOnly &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;True&lt;/span&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt; &lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;'*** non-csla&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt; MyTestTypeList2&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Inherits&lt;/span&gt; EnumList2(Of MyTestType)&lt;br&gt;&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt; EnumList2(Of T &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Structure&lt;/span&gt;)&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Inherits&lt;/span&gt; List(Of EnumListItem)&lt;br&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Structure&lt;/span&gt; EnumListItem&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; Name &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;String&lt;/span&gt;&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; Value &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Integer&lt;/span&gt;&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt;(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;ByVal&lt;/span&gt; name &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;String&lt;/span&gt;, &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;ByVal&lt;/span&gt; value &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Integer&lt;/span&gt;)&lt;br&gt;            &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Me&lt;/span&gt;.Name &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; name&lt;br&gt;            &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Me&lt;/span&gt;.Value &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; value&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Structure&lt;/span&gt; &lt;br&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt;()&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;For&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Each&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;item&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; T &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;In&lt;/span&gt; [&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;].GetValues(&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;GetType&lt;/span&gt;(T))&lt;br&gt;            &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Dim&lt;/span&gt; name &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;As&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;String&lt;/span&gt; &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; [&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;].GetName(&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;GetType&lt;/span&gt;(T), &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;item&lt;/span&gt;)&lt;br&gt;            &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Add&lt;/span&gt;(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;New&lt;/span&gt; EnumListItem(name, [&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Enum&lt;/span&gt;].Parse(&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;GetType&lt;/span&gt;(T), name)))&lt;br&gt;        &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Next&lt;/span&gt;&lt;br&gt;    &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Sub&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;End&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;Class&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=e3208665-4c1b-4d57-9c16-43477f9052cb"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,e3208665-4c1b-4d57-9c16-43477f9052cb.aspx</comments>
      <category>Programming</category>
      <category>Programming/.Net</category>
      <category>Programming/.Net/VB.Net</category>
    </item>
    <item>
      <trackback:ping>http://chrismay.org/Trackback.aspx?guid=c64a01e7-f350-4e99-96fc-264a22d54415</trackback:ping>
      <pingback:server>http://chrismay.org/pingback.aspx</pingback:server>
      <pingback:target>http://chrismay.org/PermaLink,guid,c64a01e7-f350-4e99-96fc-264a22d54415.aspx</pingback:target>
      <dc:creator>Chris May</dc:creator>
      <wfw:comment>http://chrismay.org/CommentView,guid,c64a01e7-f350-4e99-96fc-264a22d54415.aspx</wfw:comment>
      <wfw:commentRss>http://chrismay.org/SyndicationService.asmx/GetEntryCommentsRss?guid=c64a01e7-f350-4e99-96fc-264a22d54415</wfw:commentRss>
      <title>IBM Customer Service</title>
      <guid isPermaLink="false">http://chrismay.org/PermaLink,guid,c64a01e7-f350-4e99-96fc-264a22d54415.aspx</guid>
      <link>http://chrismay.org/2009/11/19/IBM+Customer+Service.aspx</link>
      <pubDate>Thu, 19 Nov 2009 17:28:48 GMT</pubDate>
      <description>&lt;div&gt;&lt;P&gt;This chat takes place after I have already chatted with a different support group, called the IBM parts divions, and the IBM tech support division:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;Thank you for accepting our chat service, how may I assist you?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;When I customize an x3500, at last screen it says: (5652) Planar Base [$699.00] is required for this configuration and has been added for you. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;What is Planar Base and what about my configuration makes it a requirement?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;Is this for yourself (your company) or a client of yours?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;mysefl&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;I see. I'm not too familiar with the planar base. I can have a specialist contact you to further discuss this need of yours&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;ok. How long does that normally take?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;our usual turnaround is 48 hours&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;however we can try to have somebody contact you by end of day tomorrow&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;but I can't make any promises&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;ok my number is (630) 708-0629&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;May I have your full name, telephone number, email address, job title, company name and physical address?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;Chris May, (630) 708-0629, &lt;A href="mailto:cmay@RealNameRemoved.com"&gt;cmay@RealNameRemoved.com&lt;/A&gt; that should be good&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;B&gt;&lt;SPAN class=OperatorName&gt;Mohammed: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #999999"&gt;&lt;SPAN class=OperatorText&gt;unfortunately without all the information requested above, I will not be able to have a specialist contact you&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;B&gt;&lt;SPAN class=VisitorName&gt;you: &lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;SPAN class=VisitorText&gt;ok forget it I'll just buy a Dell&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE:&lt;/STRONG&gt; I did buy a Dell.&amp;nbsp; Stupid IBM couldn't have someone take 5 minutes and answer a question for someone who wanted to give them $3000.&amp;nbsp; &lt;/P&gt;&lt;img width="0" height="0" src="http://chrismay.org/aggbug.ashx?id=c64a01e7-f350-4e99-96fc-264a22d54415"/&gt;&lt;/div&gt;</description>
      <comments>http://chrismay.org/CommentView,guid,c64a01e7-f350-4e99-96fc-264a22d54415.aspx</comments>
      <category>Hardware</category>
      <category>Hareware/Servers</category>
      <category>Misc</category>
    </item>
  </channel>
</rss>