<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Craig Skibo's WebLog : PDC</title><link>http://blogs.msdn.com/craigskibo/archive/tags/PDC/default.aspx</link><description>Tags: PDC</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Hello again</title><link>http://blogs.msdn.com/craigskibo/archive/2003/11/13/51697.aspx</link><pubDate>Thu, 13 Nov 2003 23:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:51697</guid><dc:creator>CraigSkibo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/craigskibo/comments/51697.aspx</comments><wfw:commentRss>http://blogs.msdn.com/craigskibo/commentrss.aspx?PostID=51697</wfw:commentRss><description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;
    &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
        Hi everybody. No, I have not forgotten about you. When I got back from LA I had a
        lot more work piled up than I planned on, then I took a few days off to work on a
        few things around the house, and then the last week I have been fighting off a cold.
        But I should be able to make more posts in the future because I finally, after 1 ½
        months of fighting with my telco, got DSL connected. I will not go into details, but
        they messed things up so bad that I would have switched to cable a long time ago if
        I would have been able to keep my home e-mail address.
    &lt;/p&gt;
    &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = 
"urn:schemas-microsoft-com:office:office" /&gt;
        &lt;o:p&gt;&amp;#160;&lt;/o:p&gt;
    &lt;/p&gt;
    &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
        So what have I been working on lately? Mostly code cleanup. Over the years a VS has
        been written using different wrapper libraries that has made upgrading the automation
        code to be a bit of a pain. After some changes, most of the automation model now uses
        ATL, and adding new interfaces to an object is a breeze. What kinds of new interfaces?&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Well,
        we have a new one called LifetimeInforamtion that will let you find out if an object
        is still around. For example, suppose you have an Add-in that has a reference on a
        Command object. Then code in a macro runs which calls Command.Delete on the command
        the Add-in has a reference on. If the Add-in starts to call methods or properties
        on that Command object, those methods/properties will fail and you would not know
        why. Using the LifetimeInformation.HasBeenDeleted property you can determine if the
        object has been deleted. Remember zombies from my 10/10 post? This property lets you
        find out if something is zombied. While this new interface is not too useful for development,
        it is debugging helper, allowing you to look in on an object’s lifetime.
    &lt;/p&gt;
    &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
        &lt;o:p&gt;&amp;#160;&lt;/o:p&gt;
    &lt;/p&gt;
    &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
        Before I go, I want to say hello to a few people. First, for those I spoke with at
        PDC -- either at the conference or at the hotel, and to those who asked me to sign
        their copy of the book, I enjoyed hearing (both the good and the bad) about how you
        are using VS. Keep sending the suggestions our way. Second, I want to say hello to
        the folks over at the VSNetAddin Yahoo group. If you are interested in the VS Automation
        Model, this group is a very valuable resource for tips, tricks, and help for when
        you get stuck. I frequently read their messages; although I don’t get to respond too
        often (usually because somebody replies before I get a chance to). 
    &lt;/p&gt;
&lt;/body&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=51697" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/craigskibo/archive/tags/Automation/default.aspx">Automation</category><category domain="http://blogs.msdn.com/craigskibo/archive/tags/Coding/default.aspx">Coding</category><category domain="http://blogs.msdn.com/craigskibo/archive/tags//default.aspx" /><category domain="http://blogs.msdn.com/craigskibo/archive/tags/PDC/default.aspx">PDC</category></item><item><title>PDC Wednesday</title><link>http://blogs.msdn.com/craigskibo/archive/2003/10/29/51696.aspx</link><pubDate>Thu, 30 Oct 2003 02:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:51696</guid><dc:creator>CraigSkibo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/craigskibo/comments/51696.aspx</comments><wfw:commentRss>http://blogs.msdn.com/craigskibo/commentrss.aspx?PostID=51696</wfw:commentRss><description>It has been a long couple of days, I have talked with a lot of customers in the past 24 hours, and I was up until 3:00AM last night talking about Add-ins, macros, and the like. But I need to say, I am quite excited about what I have been hearing.

After weeks, and months of writing code, you tend to hear only the horror stories of where we went wrong, the one bug that seems to bring a project to its knees, and makes somebody’s life miserable. You definitely start to question if what you are doing is the right thing. But Then I talk to people, see the products, hear the success stories, and everything seems right in the world again. I am now ready to go back to Redmond and write a whole lot of new code to fix where we could do better. I also got a lot of feedback about new features we should add. Some of them I will try to get into Whidbey, some we do not have the time but should make it into the next version.

I got to go to a few talks about Longhorn, showing all the new UI enhancements. I need to say that I am quite impressed. Some of it definitely is toyish, but it looks really good. Unfortunately we will need to wait a little while before it ships.
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=51696" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/craigskibo/archive/tags//default.aspx" /><category domain="http://blogs.msdn.com/craigskibo/archive/tags/PDC/default.aspx">PDC</category></item><item><title>PDC Monday</title><link>http://blogs.msdn.com/craigskibo/archive/2003/10/28/51694.aspx</link><pubDate>Tue, 28 Oct 2003 22:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:51694</guid><dc:creator>CraigSkibo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/craigskibo/comments/51694.aspx</comments><wfw:commentRss>http://blogs.msdn.com/craigskibo/commentrss.aspx?PostID=51694</wfw:commentRss><description>I have not been making as many posts lately as I should, so I will be making a few posts today combined into one…


I got into LA late Sunday night. I waited in long lines at the ticket counter and (because I forgot my keys in my pocket) I spent a lot of time being searched by security, but I was lucky. Because of the fires many people had trouble getting here, and I know of a few who drove from Seattle to LA. One woman in the VS group, whose plane had been delayed over and over, finally got an alternate plane out. Unfortunately her luggage was on a different plane. The PDC Expo came to the rescue, though. Almost every booth was handing out T-Shirts, so she now has enough to wear until her luggage arrives. I did see the fires from the plane, I want to almost say they looked “cool”, but people have been loosing their homes and even their lives, so I don’t think that is the right way to describe it.

The wireless setup has been very convenient. Wi-Fi is setup at the conference (for free) allowing access anywhere you go. And even the hotel has Wi-Fi (again, free). I have been sitting in the bar at the hotel restaurant at night browsing the web, reading and responding to mail, and preparing this blog entry. At PDC 2001 the hotel I was staying at had wired broadband, but they were charging $30 a day. A lot has changed in just a few years.


I spent much of my time yesterday meeting with people at the Expo booth. Many of the questions we got were the standard ones about the automation model and VSIP, which means that we really need to work on that FAQ that we have been planning. I did go to a talk about MSBuild, it is some really cool technology making building software much easier both within and outside of VS.


Earlier this week we switched back to standard time. That makes it a bit easier for taking the telescope out in the back yard since it is darker earlier and I don’t need to stay up as late to see the planets. Unfortunately, this also means that not too long from now it will be dark around 4:30PM. I hate going to work in the morning when it is dark, and driving home from work in the dark.


There has not been too much here lately about new features in the next version of Visual Studio, code named Whidbey. Since more info is being given about the next version I will try to pick up the pace of descriptions about what we are doing. This time I would like to talk about the new way that VS will find and load Add-ins. VB5 would look for an .INI file, open and read its contents, then load the Add-ins it described. This was not the best way to create Add-ins since you had to write some special code, or even hand-modify, the .INI file when the Add-in is installed. Then in VS 6 we would look to the registry, enumerating the list of Add-in ProgIDs and do the appropriate loading of the defined Add-ins. This type of registry-based Add-in loading was good for VC/ATL written Add-ins because it was easy to modify .rgs files to register the Add-in, less optimal for VB6 Add-ins but still workable if you used the Add-in Designer because it would automatically generate the registry keys when it was registered. Then there was the requirement that the DLL be registered. This worked for COM Add-ins, but was a real pain to the .NET developer.

To make it easier for the .NET developer, and to fit into the xcopy deployment, non-registration spirit of .NET, we now have a way of loading Add-ins from XML files. The extension of this XML file is .Addin, and has a format such as the following:

&lt;Extensibility&gt;
	&lt;ApplicationHost&gt;
		&lt;Name&gt;Microsoft Visual Studio&lt;/Name&gt;
		&lt;Version&gt;8.0&lt;/Version&gt;
	&lt;/ApplicationHost&gt;
	&lt;Addin&gt;
		&lt;Description&gt;Decsription of the Add-in&lt;/Description&gt;
		&lt;FriendlyName&gt;Short name of the Add-in&lt;/FriendlyName&gt;
		&lt;Assembly&gt;C:\foo.dll&lt;/Assembly&gt;
		&lt;FullClassName&gt;ClassNamespace.ClassName&lt;/FullClassName&gt;
&lt;CommandPreload&gt;0&lt;/CommandPreload&gt;
		&lt;LoadBehavior&gt;1&lt;/LoadBehavior&gt;
	&lt;/Addin&gt;
&lt;/Extensibility&gt;

The &lt;Assembly&gt; tag can contain either a full path to an assembly, a path relative from the .Addin file to the assembly, or the full name of an assembly within the GAC. You can even give a UNC or URL to an Add-in.

So now when you create an Add-in, you generate an XML file that looks like that above, write a class that implements the IDTExtensibility interface, and put it in a specific directory on your hard disk. After doing this VS will find, load, and (depending on how you declare your Add-in within the .Addin file) run the Add-in.

There is also now a page within the Tools | Options dialog box that will allow you to select which folders on disk to look for .Addin files. Not only that but options are also available on this dialog box for completely enabling and disabling running both Add-ins and macros, for security reasons. 

I will not be talking about it today (I need something for the next time I post), but you can add additional entries in the .Addin XML file to control other features of extensibility. More on those later

&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=51694" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/craigskibo/archive/tags/Automation/default.aspx">Automation</category><category domain="http://blogs.msdn.com/craigskibo/archive/tags//default.aspx" /><category domain="http://blogs.msdn.com/craigskibo/archive/tags/Astronomy/default.aspx">Astronomy</category><category domain="http://blogs.msdn.com/craigskibo/archive/tags/PDC/default.aspx">PDC</category></item><item><title>I Love LA!</title><link>http://blogs.msdn.com/craigskibo/archive/2003/10/23/51693.aspx</link><pubDate>Thu, 23 Oct 2003 21:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:51693</guid><dc:creator>CraigSkibo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/craigskibo/comments/51693.aspx</comments><wfw:commentRss>http://blogs.msdn.com/craigskibo/commentrss.aspx?PostID=51693</wfw:commentRss><description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;
    &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;
        Well, I really don’t love it, but it is a nice **little** town. PDC starts next week,
        and I will be arriving Sunday night for the festivities. I will try to update this
        blog nights during PDC, talking about all the new technologies that I see. And if
        you happen to be at PDC, I will be working at the VS booth in the expo hall, “Ask
        the Experts”, etc. So stop by, say hello, and if you have any questions feel free
        to ask.
    &lt;/p&gt;
&lt;/body&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=51693" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/craigskibo/archive/tags//default.aspx" /><category domain="http://blogs.msdn.com/craigskibo/archive/tags/PDC/default.aspx">PDC</category></item></channel></rss>