<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Stefan Barrett</title>
        <link>http://geekswithblogs.net/Stefan/Default.aspx</link>
        <description>blog</description>
        <language>en-US</language>
        <copyright>Stefan Barrett</copyright>
        <managingEditor>StefanBarrett@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Stefan Barrett</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/Stefan/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Leaving LA</title>
            <category>Life</category>
            <link>http://geekswithblogs.net/Stefan/archive/2008/11/03/126564.aspx</link>
            <description>&lt;p&gt;Left LA yesterday (or was it the day before &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt; - you cross the internation date-line on way back), and was not the most impressed about either UA (who I flew with) or the airport itself.&lt;/p&gt;
&lt;p&gt;Arrived about 3 hour early, and went to self service check in - they are obviously saving money by automating as much as possible (yes cheaper flights are nice, but..). Check in started pretty ok, the machines were pretty easy to use, but then the process sloweded. Because of my nationality and destination, an 'agent' had to check the passport. After waiting a little while one of the people who where handling queries, luggage, etc. (est. 1 person per 10 machines, they were busy) came over and informed me that 'agent' would have to check passport (they were just normal mortals) and there was currently no agents around.... By the time 2 'agents' showed up about half a hour later, possible as much as half of the machines had people waiting.. &lt;/p&gt;
&lt;p&gt;After waiting about 40 minutes, an 'agent' looked at my passport, gave me a ticket and I headed off to passport check.. Only to discover that I had been given the wrong ticket, one for another person who's surname started with the same 3 characters.... Life.. Luckly it only took a couple of minutes to get a replacement ticket - jumped the queue and went straight to the 'agent' who had issued the original.&lt;/p&gt;
&lt;p&gt;Went back to passport check/x-ray/etc. only to find a longer queue.. In LA, like some other places in the world, you have to take your shoes off so they can be x-rayed seperatly - and there's not much space to take them off, or put them back on again - everything is as cramped as possible.  And, of course, the x-ray machine broke down just before I went through so we had to wait another 5 minutes while they got it rebooted (not sure of OS). Once through all of that, I discovered that all the delays were not really a problem, since there was very little to do while waiting for flight home - I guess I'm a bit to used to being in international airports which tend to have more shops and restuants as opposed to airports servicing mainly locals.&lt;/p&gt;
&lt;p&gt;Ahhh well, it's just another 7 weeks, or so, until I fly again - it's Christmas time again &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/tounge_smile.gif" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126564"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126564" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/126564.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2008/11/03/126564.aspx</guid>
            <pubDate>Mon, 03 Nov 2008 19:55:09 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2008/11/03/126564.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/126564.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/126564.aspx</trackback:ping>
        </item>
        <item>
            <title>Back home</title>
            <category>Life</category>
            <link>http://geekswithblogs.net/Stefan/archive/2008/11/03/126516.aspx</link>
            <description>&lt;p&gt;Well, that was a fun week but it's nice to be home through got to go into work tomorrow. Might have changed teams while I was away &lt;img alt="" src="http://geekswithblogs.net/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt;.&lt;/p&gt;
&lt;p&gt;It's interesting comparing LA with Tokyo -Toyko has more people and may be bigger, but LA is more spread out. You can walk a lot further in LA without seeing anything than you can in Tokyo.&lt;/p&gt;
&lt;p&gt;LA does have a metro but it does not cover much of the city, so assuming you have no car, you switch to metro busses. Part of the problem is how spread out LA is - I don't think I've ever got on a underground train, which for part of its journey travelled above ground; part of the time as a normal train and part of the time as a tram travelling the city streets.&lt;/p&gt;
&lt;p&gt;The bus network does seem to cover most of the city, but was a lot more confusing for a tourist  than most undergrounds are.&lt;/p&gt;
&lt;p&gt;Compared with Tokyo which has a hugh Metro and JR [main line train system] network. This makes it easy to get around central Tokyo (which is like the entire LA area, but compressed). One point LA's favour was that it was a bit cheaper to buy a daily travel pass ($5, approx 500 yen) through it looked like extra payments might be required in some cases.&lt;br /&gt;
Tokyo does have a bus network as well, but never tried it - partly because have never needed to, and partly due to the language. All the metro stations I've seen have signs in English (as well as Japanese of course) - including the station names.&lt;/p&gt;
&lt;p&gt;Another difference was not so good; in the week I was there I observed a car crash (bad enough that some liquid was pouring out the front of one of the cars) and saw two people fighting. I also got asked for money a number of times (through to be fair that's happened in every US city I've been to, and used to happen in London as well) and once somebody tried to buy something from me - didn't try to clarify.&lt;/p&gt;
&lt;p&gt;Ahh well.. Went to a pizza place in downtown LA where they had some quite acceptable pizzas - apart from the toppings they had a honey wheat dough that produced a very nice base.&lt;/p&gt;
&lt;p&gt;Visited Long Beach and walked along the beach for a couple of hours - quite nice.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126516"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126516" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/126516.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2008/11/03/126516.aspx</guid>
            <pubDate>Mon, 03 Nov 2008 18:11:46 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2008/11/03/126516.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/126516.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/126516.aspx</trackback:ping>
        </item>
        <item>
            <title>PDC [ It went so fast</title>
            <category>PDC08</category>
            <link>http://geekswithblogs.net/Stefan/archive/2008/11/03/126513.aspx</link>
            <description>&lt;p&gt;Back home after a conference which flew by.&lt;/p&gt;
&lt;p&gt;The main bits I'm going to be playing with, will be the .NET 4.0 - I wonder how long it will be before we can get our hands on it.&lt;/p&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;One of the main selling points for me, was the new &lt;em&gt;dynamic&lt;/em&gt; keyword, which a number of presenters got a laugh from describing as "... statically declaring as dynamic". This will make talking to office (from C#) a lot easier but the potential for abuse is quite high. Basically it allows you to write something like:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;dynamic something = someObject.someChildObject;&lt;br /&gt;
something.Func();&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;Where the someChildObject property on someObject actually returns a object. At run time, and not compile time, Func gets resolved. &lt;/p&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;This would allow somebody to write something like:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;dynamic func(dynamic a, dynamic b)&lt;br /&gt;
{&lt;br /&gt;
        return a.Func(b);&lt;br /&gt;
}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;You can pass anything into this function, as long as 'a' has a function which takes 'b' and returns something.&lt;/p&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126513"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126513" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/126513.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2008/11/03/126513.aspx</guid>
            <pubDate>Mon, 03 Nov 2008 17:27:23 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2008/11/03/126513.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/126513.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/126513.aspx</trackback:ping>
        </item>
        <item>
            <title>PDC08 - Day 3</title>
            <category>PDC</category>
            <category>PDC08</category>
            <link>http://geekswithblogs.net/Stefan/archive/2008/10/29/126362.aspx</link>
            <description>&lt;p&gt;PDC seems to be all about &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;.NET 4.0 and beyond&lt;/li&gt;
    &lt;li&gt;How to make use of all the cores in our machines&lt;/li&gt;
    &lt;li&gt;How to make use of the cloud&lt;/li&gt;
    &lt;li&gt;Windows 7&lt;/li&gt;
    &lt;li&gt;Touch screens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The added features in .NET 4.0 I could use now - so it's sort of useful that they've given us a VPC with VS2010 on it. That's enough to play with, but personally I would have prefered to get a image so I could install it on a existing system.&lt;/p&gt;
&lt;p&gt;Recycling seems to be much more important this year - which is good. Bit of warning regarding the bag would have been nice.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126362"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126362" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/126362.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2008/10/29/126362.aspx</guid>
            <pubDate>Wed, 29 Oct 2008 21:40:02 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2008/10/29/126362.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/126362.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/126362.aspx</trackback:ping>
        </item>
        <item>
            <title>Blogging and TechEd 2006</title>
            <category>TechEd2006</category>
            <category>VS2005</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/15/82004.aspx</link>
            <description>&lt;P&gt;When I went to TechEd, I though I would do a bit of blogging every day, but I had forgotten just how busy you can get here. There's just so much to see. While you do get the DVD's containing all the sessions (except Chalk-Talk ones), it takes at least 8 weeks and nothing beats being there.&lt;/P&gt;
&lt;P&gt;Have got a copy of Visual Studio for Database&amp;nbsp;professionals, which will be installed as soon as possible. While I'm not sure about&amp;nbsp;using in production environment yet (if nothing else, it's not the finished version),&amp;nbsp;the assistance it can give in development and testing&amp;nbsp;means its worth looking at now.&lt;/P&gt;
&lt;P&gt;Micorsoft needs to tidy up it's marketing regarding WCF, WPF, Link, WF, etc. when it coming to what versions it will be released in (first time I've heard of .Net 3.5). It seems that .Net 3.0 will come out with Vista, but actually .Net 3.0 is more .Net 2.0 + WCF, WPF, WF. So you still use Visual Studio 2005 to work it. Then in 2007 we get Orcas/Visual Studio 2007 with .Net 3.5 which includes Linq. But at the end of the day, apart from bug fixes, we are still talking about .Net 2.0 with extras.&lt;/P&gt;
&lt;P&gt;Microsoft seems to have a small problem in classifying the level of some of the sessions, typically rating them slight higher than they warrent.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82004"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=82004" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/82004.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/15/82004.aspx</guid>
            <pubDate>Thu, 15 Jun 2006 18:54:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/15/82004.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/82004.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/82004.aspx</trackback:ping>
        </item>
        <item>
            <title>End of the first day</title>
            <category>TechEd2006</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/13/81804.aspx</link>
            <description>&lt;FONT size=2&gt;
&lt;P&gt;No major announcements in this TechEd, through there are new products such Visual Studio for Database. Went to a number of sessions today ; First one was about business reporting which was interesting through not sure if it end user extensible enough for&amp;nbsp;the system I'm currently working on, but I guess that's one of the advantages of TechEd, is&amp;nbsp;that I can grap somebody and ask them.&lt;/P&gt;
&lt;P&gt;The next session covered the architecture version of visual studio. Nothing really new, but it was the first time I had seen it all in one go, with such a coherent explaination.&lt;/P&gt;
&lt;P&gt;The next one covered wcf and how you don't need to use it with soap. In otherwords, you can use in cases where performance is important and you don't want to through all of the soap xml around.&lt;/P&gt;
&lt;P&gt;Then a session covering dlink which didn't really cover anything new. &lt;/P&gt;
&lt;P&gt;The last session covered new features in VC++ 2005. Most of it is common with the other visual studio languages. It was a interesting presentation particularly the focus on keystrokes. The most interesting feature was what you could do in the in the find window. E.g. To shell out, put in &amp;gt;shell cmd&lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81804"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81804" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/81804.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/13/81804.aspx</guid>
            <pubDate>Wed, 14 Jun 2006 04:48:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/13/81804.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/81804.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/81804.aspx</trackback:ping>
        </item>
        <item>
            <title>Siteseeing Boston</title>
            <category>TechEd2006</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/12/81512.aspx</link>
            <description>&lt;P&gt;The TechEd bus driver, driving back to the hotel this evening, had a problem getting to the hotel (lots of 1 way roads plus some instructions about what roads he could driver on), so saw a bit of Boston. It looks like quite a facinating place, and on Saturday, before I go home, I've got to go out and a good look at the place.&lt;/P&gt;
&lt;P&gt;I had a wander around yesterday, and found a interesting food court which I shall have to return to. The only problem I have at TechEd, is that I usually snack so much doing the day that come the evening, I'm not hungry. There's just to much interesting food, through I wish they had something other than orange and cranberry to drink (non-fizzy). Ever since my first TechEd in 2004, I don't drink that much fizzy drinks. &lt;/P&gt;
&lt;P&gt;Ahhh well.. The only think I've seen so far which worries me a little bit about the conference center is the number of toilets. Perhaps they are hidden away, but there does not seem to be that many of them. Shall be interesting tomorrow when everybody else is around.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81512"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81512" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/81512.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/12/81512.aspx</guid>
            <pubDate>Mon, 12 Jun 2006 06:33:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/12/81512.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/81512.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/81512.aspx</trackback:ping>
        </item>
        <item>
            <title>PreCon over</title>
            <category>TechEd2006</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/12/81509.aspx</link>
            <description>&lt;P&gt;Well, that's the precon over. Went to a session about using WSE 3.0/ASMX now, which had some interesting points in it. If you use the WSE 3.0 way of definition services, they move across to WCF very easily. In fact there was very little coding change, and that was mostly in the address part of the service.&lt;/P&gt;
&lt;P&gt;Basically what you should do, is to to define your contract through a interface:&lt;/P&gt;
&lt;P&gt;[WebServiceBinding(....)]&lt;BR&gt;public interface ICommunicate&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [WebMethod]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void DoSomething();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;That way you almost don't need attributes on the class itself, and you can remove the contract into a seperate dll.&lt;/P&gt;
&lt;P&gt;Funny enough, this is exactly how WCF does things.&lt;/P&gt;
&lt;P&gt;The main eye openner for me, was that while they can't be represented in the schema, you can still use generic objects on the server side which simply translate into arrays on the wire and client side.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81509"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81509" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/81509.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/12/81509.aspx</guid>
            <pubDate>Mon, 12 Jun 2006 06:21:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/12/81509.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/81509.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/81509.aspx</trackback:ping>
        </item>
        <item>
            <title>Blogging from a PDA</title>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/12/81504.aspx</link>
            <description>&lt;P&gt;Or rather not. Seems I can't login from my PDA into geekswithblogs, hitting the logon button does nothing.&lt;/P&gt;
&lt;P&gt;It would have been so handy, while sitting in the TechEd sessions.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81504"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81504" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/81504.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/12/81504.aspx</guid>
            <pubDate>Mon, 12 Jun 2006 06:09:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/12/81504.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/81504.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/81504.aspx</trackback:ping>
        </item>
        <item>
            <title>Registration</title>
            <category>TechEd2006</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/11/81459.aspx</link>
            <description>&lt;P&gt;Got my bag, which looks nice. Got Vista and Office in it, and a detachable bit for the laptop. Looks nice and sturdy this year.&lt;/P&gt;
&lt;P&gt;But it's a over the shoulder one again.. Personally I think backpacks are better once you start putting weight into it.&lt;/P&gt;
&lt;P&gt;Time to get some munchies and have a look around.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81459"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81459" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/81459.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/11/81459.aspx</guid>
            <pubDate>Sun, 11 Jun 2006 16:15:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/11/81459.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/81459.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/81459.aspx</trackback:ping>
        </item>
        <item>
            <title>Arrived</title>
            <category>TechEd2006</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/06/10/81410.aspx</link>
            <description>&lt;P&gt;Finally arrived (minor issue with airspace congestion and somebodys mislead bag), only 1 hour late. It's raining.&lt;/P&gt;
&lt;P&gt;Going to go out and have a look at Boston, and later wander over to check out a &lt;A href="http://codebetter.com/blogs/jeffrey.palermo/archive/2006/05/31/Party_with_Palermo_2006_final.aspx"&gt;party&lt;/A&gt;. As usual with TechEd there's a number of parties going on in the background, and it's not always the easiest to find out about them (or register in &lt;A href="https://mcp.microsoft.com/MCP/influencer/Default.aspx"&gt;time&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Minor irratation, had to pay extra for WiFi connect at hotel, but that's life.&lt;/P&gt;
&lt;P&gt;Tomorrow should be fun.&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;P&gt;The next two TechEd's are:&lt;/P&gt;
&lt;P&gt;New Orleans, LA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; June 3 - 8, 2007&lt;BR&gt;Orlando, FL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; June 8 - 13, 2008&lt;/P&gt;
&lt;P&gt;Which, I guess, shows the type of planning which is required to run such a event.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81410"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=81410" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/81410.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/06/10/81410.aspx</guid>
            <pubDate>Sun, 11 Jun 2006 00:35:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/06/10/81410.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/81410.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/81410.aspx</trackback:ping>
        </item>
        <item>
            <title>Refactoring and tests</title>
            <link>http://geekswithblogs.net/Stefan/archive/2006/05/05/77416.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;One of things I've always been interested in was to try a bit of TDD, but never seemed to be on a project where it was possible, but I thought with my current project I could do a bit of organised unit testing making use of VS2005 to generate the initial skeleton test classes. Had started going through the test code, completing the test cases, and some bits quite useful. Normally I would create an exe, which called into my code to test it, but this time I could just select a test and run it. Which was all well and good.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Then I had to do a bit of refactoring on my original code, and hit a pain point. The refactor involved changing about 12 lines of code, of which 6 were function headers (inheritance was involved). The number of tests which had to be changed, without being able to recompile the code or use intelli-sense, was not nice. Then change all the code to enable compilation. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;This made me think about what seems to be a conflict between refactoring and TDD. I wonder if sites that do a lot of TDD do less refactoring or more (since it can help in ensuring the code still contains the same functionality). In my code, I could have solved my problem by introducing another function which I could have had tests for, but this would have introduced duplicate code.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So perhaps projects using TDD, do a different type of refactoring then other projects.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77416"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77416" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/77416.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/05/05/77416.aspx</guid>
            <pubDate>Sat, 06 May 2006 02:18:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/05/05/77416.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/77416.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/77416.aspx</trackback:ping>
        </item>
        <item>
            <title>Having fun with VS2005, XML and partial classes.</title>
            <category>VS2005</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/04/28/76635.aspx</link>
            <description>&lt;P&gt;Currently working on a data transformation engine (yes I know you can buy things like this, but it takes less time to write it than to get the company to buy it), which involves a lot of xml. First step is to create the schema descriping the transformation which I do in VS2005. Got VS2005 to crash once (just closed down) while editing a complicated bit of schema, but unable to replicate for now. When I restarted it, it did give me a choice of recovering the schema file, but it was a 5 hour old one, however luckely I had saved everything less then 10 minutes beforehand. &lt;BR&gt;Then it's a case of running xsd.exe over the file to generate the class files, using a DOS prompt (through I notice there's a custom tool property to look at later).&lt;BR&gt;I then make good use of the fact that all the classes generated are partial classes, and since I'm also using inheritance (definied through the xml itself) this is getting to be quite powerful. &lt;BR&gt;I then go into a different solution where I'm writing the actual xml and MDI application. I start it up, and it crashes. I look at the stack trace and notice that while I see the start of the stack trace, and the end, there's a section in the middle which I can't see. And it's were the xml generated classes would be. Of course I don't want to look at them, but since they have been extended (via partial classes), there is code I want to see there. It took me a little while to realise that VS2005 was hiding them because the 'Enable just my Code' option was checked (Tools/Options/Debugging/General). Because they were defined in another assembly, they were helpfully hidden by VS.&lt;BR&gt;Ok, so I turn the option off, so I can see my code, except that I still can't see it. It turns out all the auto-generated code had a attribute on it which told VS not to show it. Which I'm sure is very usefull when using fully auto-generated code, but is a real pain if you have extended the classes via partial classes.&lt;BR&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=76635"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=76635" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/76635.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/04/28/76635.aspx</guid>
            <pubDate>Fri, 28 Apr 2006 09:24:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/04/28/76635.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/76635.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/76635.aspx</trackback:ping>
        </item>
        <item>
            <title>Things I like about VS2005 - Part 1</title>
            <link>http://geekswithblogs.net/Stefan/archive/2006/04/28/76636.aspx</link>
            <description>&lt;P&gt;Apart from the usual stuff that everybody mentions (Snippets, auto-completion of keywords, generics), there's a number of things I've come across.&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#000080&gt;1) In the property window for a file, there's a option to copy to Output directory. &lt;BR&gt;&lt;/FONT&gt;The number of times I've had to put in a post build step to copy a xml file..&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000080&gt;2) Auto-completion of xml. &lt;BR&gt;&lt;/FONT&gt;If you start filling in a xml document for which there's a schema, you get all the normal VS2005 auto-completion logic.&amp;nbsp;&amp;nbsp;In fact it will also generate stubs for all your mandatory attributes and elements (like a snippet would do it)&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000080&gt;3) Non list generics&lt;/FONT&gt;&lt;BR&gt;I used to have a function which looked like:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public IService GetService(Type serviceType)&lt;BR&gt;Which was called like this:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFormService ifs = (IFormService)GetService(TypeOf(IFormService))&lt;BR&gt;but with generics, I can define it like this:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public T GetService&amp;lt;T&amp;gt;() where T : IService&lt;BR&gt;which means to call it, I can d&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFormService ifs = GetService&amp;lt;IFormService&amp;gt;()&lt;BR&gt;Which means I don't have to cast or enter the type name more than twice.&lt;BR&gt;Of course in Orcas, I should be able do&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var ifs = GetService&amp;lt;IFormService&amp;gt;()&lt;BR&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=76636"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=76636" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/76636.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/04/28/76636.aspx</guid>
            <pubDate>Fri, 28 Apr 2006 09:31:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/04/28/76636.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/76636.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/76636.aspx</trackback:ping>
        </item>
        <item>
            <title>Serialization</title>
            <category>VS2005</category>
            <link>http://geekswithblogs.net/Stefan/archive/2006/04/09/74651.aspx</link>
            <description>&lt;P&gt;Still working on my query generator, and thought I would do the load/save logic so that I don't have to rebuild the same queries again and again during testing. &lt;BR&gt;Ok, so I have a class like this:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;public &amp;nbsp;class FieldContainer&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;private List&amp;lt;BasicField&amp;gt; fields;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;public void Load()&lt;BR&gt;&amp;nbsp;{}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;public void Save()&lt;BR&gt;&amp;nbsp;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;...........&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;So I figured the fastest way would be to serialize it out to a xml file.&lt;BR&gt;Obvious problem; what the list contains is objects which inherit from BasicField, and during serialization they can't be resolved (because the serialization code only knows about basicField). The exception message says to use XmlInclude or some soap attribute. However, I don't want to use those attributes on my BasicField definition itself (don't want the base class to know about any inherited classes), and unfortunately they can't be used on properties, so I can't put them on the field definition itself.&lt;BR&gt;A bit of further research found XmlArrayItem, which I could apply to the collection:&lt;BR&gt;So, I had:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;&amp;nbsp;[XmlArrayItem(typeof(DataField)),&amp;nbsp;.... ]&lt;BR&gt;&amp;nbsp;public List&amp;lt;BasicField&amp;gt; fields;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;But this presented another problem. The clue is in the de-serialization code:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&amp;nbsp;XmlSerializer xs = new XmlSerializer(typeof(List&amp;lt;BasicField&amp;gt;));&lt;BR&gt;&amp;nbsp;StreamReader sr = new StreamReader("Fields.xml");&lt;BR&gt;&amp;nbsp;data = (List&amp;lt;BasicField&amp;gt;)xs.Deserialize(sr);&lt;BR&gt;&amp;nbsp;sr.Close();&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;There's no way to tell the deserialization about the inheriting classes. Ok, so the XmlSerializer does raise events if it does not understand something (e.g. UnknownElement), but that seemed to more extra work. Also, I would be using the attributes for saving and the events for loading, messy.&lt;BR&gt;In the end, I created another class which just has the List in it, and then serialize that class.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;&amp;nbsp;public class DataWrapper&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;[XmlArrayItem(Type=typeof(DataField)),&amp;nbsp;&amp;nbsp;&amp;nbsp;.....]&lt;BR&gt;&amp;nbsp;&amp;nbsp;public List&amp;lt;BasicField&amp;gt; AllFields = new List&amp;lt;BasicField&amp;gt;();&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;This way the XmlSerializer can work out all the types. So everything fixed, I ran the code again. Failed again.&lt;BR&gt;When serializing, I got a &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;System.InvalidOperationException: The type System.String may not be used in this context.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This seems to be generated when the generated serializing assembly tries to serialize the first item in my list.&lt;BR&gt;Used XmlIgnore (to stop the serialization of individual properties) on the properties to 'debug' the situation (since you can't access the code which does the actual serialization, this seems to be the easiest way?), and tracked the problem down to this:&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;public System.Type FieldType;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;A property which returned 'Type'. At first, I had to wonder why the exception mentions string. So I thought, that's odd, I&amp;nbsp;guess that means 'Type' is not serializable. Mmmmm... Ahhh.. Of course, the problem is rather similar to my first problem. Because the actual type stored is not actually Type, but rather a type which inherits from Type.&lt;BR&gt;Wanting a fast answer, I added XmlIgnore to the FieldType property, and added another property:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&amp;nbsp;public string FieldTypeString&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return FieldType.ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;FieldType = Type.GetType(value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Since at run-time all the used types are resolable. Through I do wonder if there's any other way of doing it?&lt;/P&gt;
&lt;P&gt;It's been to long since I've done serialization, but it tends to be one of those things which you do a lot of, and then don't touch for&amp;nbsp;a year.&lt;BR&gt;
&lt;HR id=null&gt;
While running through the problem, got plenty of exceptions, which allowed me to explore the exception window.. Which is not quite as good as I thought initially, particularly when getting serializing exceptions, it's not really giving me much. I always have to click on Inner Exception.&lt;BR&gt;Also the 'Get general Help for this exception' only does the outer exception, no the inner one.&lt;BR&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=74651"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=74651" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Stefan/aggbug/74651.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Stefan Barrett</dc:creator>
            <guid>http://geekswithblogs.net/Stefan/archive/2006/04/09/74651.aspx</guid>
            <pubDate>Sun, 09 Apr 2006 14:41:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/Stefan/archive/2006/04/09/74651.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Stefan/comments/commentRss/74651.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Stefan/services/trackbacks/74651.aspx</trackback:ping>
        </item>
    </channel>
</rss>