# Thursday, June 24, 2010

Interested in playing with extensions to Visual Studio 2010? You should be, just for the fun and productivity of it. But in case you need extra incentive, how does this sound:

What will you create with Visual Studio 2010?

Enter the Summer of Extension Competition and let the US and Canadian Developer community know! Show your peers what kind of extension you can build for Visual Studio 2010 for your chance to be featured on the ReadWriteWeb website. Other prizes include a one-year MSDN Embedded subscription license (a $1,199 USD value!), an Xbox Elite prize bundle and a Natural Wireless Ergonomic Desktop 700 Keyboard and Mouse. Prizes will be awarded to winners in both countries.

Just create your extension, upload it to the Visual Studio Gallery, and tag it with rww to enter. (ReadWriteWeb and Microsoft are sponsoring the contest.) More details at ReadWriteWeb, where you'll also find some handy resources and links.

Kate

Thursday, June 24, 2010 3:50:25 PM (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, June 22, 2010
The last (at least for now) in my series of articles on Visual Studio Extensions is live on Code Project. This one is on creating your own item and project templates. Like all the articles, it's really a train-the-presenter package designed to help you deliver a talk on this topic at a user group or Code Camp. If you care about the topic and would just appreciate the shortcut of a deck, working demos, and speaker notes that combine to hit a good talk length, then this is just what you need. It's all highly supplemented by videos - of all the demos and in one case of the entire talk. A quick reminder of the 7 articles I have there:
If you would rather learn the material than deliver the session, I suggest you follow the first few steps I recommend in the Introduction for a presenter:
  • If there is a recording of the entire talk, watch it from start to finish.
  • If there are only recordings of the demos, open the slide deck and read the slides to myself, pausing to play the demo videos at the appropriate points in the deck.
  • Read through the speaker notes to see what the author suggests I add to each slide as I present it.
You owe it to yourself to learn about extensions. Honestly, creating an item or project template will save you time the very first time you use it - it's quicker to make an use a template than to copy an old project and hand edit the file, project, and class names. And the astonishing array of free extensions on the Visual Studio Gallery is sure to include something that will save you time and frustration. Give it a whirl!

Kate

Tuesday, June 22, 2010 4:06:20 PM (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, June 20, 2010
The Windows API Code Pack is a wonderful library. It wraps many Windows 7 and Vista features so that you can use them from managed code without learning any interop techniques. I've made extensive use of it in demos, presentations, and training materials. I've also blogged about it extensively, primarily in my Client Development category and Windows 7 category.

Folks who've seen the Code Pack in action tell me they are going to use it in their Windows 7 applications immediately, and they're right to do so. Well now I'd like to do a bit of a headcount. If you have a real application (not a demo written to show how Windows 7 features work or how the Code Pack works) please drop me an email (you can see my domain, right? well my address before the @ is just my first name) and tell me who you are, where you work if you made the app for work, what the app does, and whether it's for sale or for internal use. Plus anything else you want to tell me like the Code Pack saved you weeks of work or got you promoted or helped you win the lottery :-). Unless you specify in the email that you're only telling me this, I will be passing it along to some other people, so keep that in mind. I really want to hear what you're using it for, so please let me know!

Kate

Sunday, June 20, 2010 1:26:23 PM (Eastern Daylight Time, UTC-04:00)  #    
# Friday, June 18, 2010

I was visiting a mentoring client today and we wanted to look at the config file for an application that is deployed with ClickOnce. So I needed to know where it was installed. I know that you can get to installation locations pretty quickly from the start menu:

So I took a look at the ClickOnce app in the start menu:

That's a problem - no Open File Location. I tried a little web searching but wasn't happy with what I found. Then I remembered.

Start the app - simple enough, since it's on your start menu. Then bring up task manager. If you right click the app on the Applications tab, there's no joy:

But ... if you choose Go To Process (or just switch to the process tab and look for the right EXE name) then we're in business:

The very first choice, Open File Location.

And when we get there, sure enough, there's a config file (among other things):

Completely obscure path, but who cares, I can confirm the config settings for the running app and that's all I needed.

Kate

Friday, June 18, 2010 12:17:23 PM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, June 16, 2010
I've written about banned APIs before - for security reasons some C Runtime functions like strcpy should not be used, and instead you should use replacements like strcpy_s that perform some checking before trusting the strings they're handed. You might also know that I really like the extension capabilities in Visual Studio 2010.

So how can I resist a Visual Studio extension that gives you wigglies if you use a banned API?


You even get a handy tooltip suggesting replacements. This is a must-install for any C++ developer. You can get zip of the source (you'll need the Visual Studio 2010 SDK to build it) with a prebuilt VSIX in it from the Security Development Lifecycle blog. It doesn't seem to be on the Visual Studio Gallery yet, but it should be! If you haven't met the VSIX format yet, prepare to be pleasantly surprised - it's a self contained one step installation vehicle for a Visual Studio extension. Just double click it and Visual Studio does the rest.

Kate
Wednesday, June 16, 2010 12:03:40 PM (Eastern Daylight Time, UTC-04:00)  #    
# Monday, June 14, 2010
Metaphors can be dangerous things. Just recently I got into a Twitter conversation with someone who was using the metaphor "it's like leaving your car unlocked, or your front door" - meaning something you would never do and would expect to be dangerous. But in my neck of the woods, that metaphor triggers different neurons, having a meaning more like something you regularly do and would never expect to be a problem. (I not only never lock my car in my or a neighbour's driveway, I also know many people who would leave their keys in their cars in someone else's driveway.) It doesn't really matter whether you think door locking is normal, the point is your metaphor needs to have the same meaning for your audience as it does for you.

For an example of a metaphor landing really badly, check out Scott Berkun's blog post on the "periodic table of visualization techniques." Now unlike Scott (who thinks the periodic table is obscure, complex, and unfondly remembered) I really like the periodic table. I think it carries a tremendous amount of important information in a very compact way, and explains some relationships succinctly. But I think it makes a poor metaphor when trying to discuss all the different ways you can present information visually. Plus, their particular version of it doesn't seem to have any actual periodicity, anything that's the same in each column, anything that's the same in each row, or any reason for the lengths of the rows. Always understand a metaphor before you use it. Otherwise you're working against your own goal - helping someone else understand your point.

Kate

Monday, June 14, 2010 11:52:59 AM (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, June 12, 2010
On the Sunday night before TechEd started, I had dinner at K Pauls. I had a number of delicious deep fried oysters that were going around on trays, in the sort of absent-minded sure-I'll-try-one way we tend to take appetizers when they're offered to us at these things. It was sufficiently delicious that it got my attention and I kept an eye out for them as the trays came around. After that I ate an amazing dinner and put the oysters out of my mind. Just three days later, on Wednesday night, I had dinner at Mulates. I had the ribs, but someone else at the table ordered some sort of platter/sampler and Logan, our fantastic waiter, had to say "I'm sorry, but there are no oysters in that tonight; they've closed the beds". Closed the beds. There may not be oysters there again for a generation. And now the oldest oyster-shucking operation in New Orleans is closed until further notice. (New York Times; WWL radio).

So sad. Real people, real jobs gone, real losses. And at the moment, nothing we can do to help.

Kate

Saturday, June 12, 2010 1:04:38 PM (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, June 10, 2010

Another terrific Tech Ed has come to a close. I never really got used to the weather in New Orleans, but I loved the food, I loved that we could walk to just about every dinner or party, and I loved the locals I met. I would have liked a little less walking within the convention centre itself - that building is a mile long and I had to go the whole length and back several times each day!

I have a few pictures from inside for you.

This is the "RD couch" in the community area. Good for hanging out while waiting to be on Channel 9. As you can see, non-RDs were hanging out here too.

The table for the Code Pack was giving away copies of the Code Pack on these slightly bizarre USB keys. I meant to keep one for myself but got carried away handing them out at my session (along with cards for a free trial of the Pluralsight On Demand! library). Also the shot-glass-on-a-string-of-beads is pretty brilliant for New Orleans swag. "Give it a shot!" they say.

This is the room for my C++ talk. That's Juval Lowy, who spoke right before me, up on stage. You can see he did a pretty good job of filling the room, which holds 1000. I got somewhat less than that, but was happy with the turnout and the evals for the C++ talk. Both my talks are available online already, by the way, which is astonishingly quick.

I love the "face time" with Microsoft people (including "my" product teams as well as folks in marketing, developer outreach and education, and so on), with my fellow RDs, MVPs, INETA folks, and speakers of all stripes, and with attendees. Booth duty, where you spend long minutes shifting your weight from foot to foot praying someone will come by, is a bit like of box of chocolates. An eager attendee comes forward, meets your eye, smiles ... for every "can you tell me where to find the blinky Windows 7 pen?" there is a good solid question or expression of interest in my actual technology. I got one question on Wednesday from someone who just wanted to know what booth to go to for it to be answered, only to learn it was this booth and that in fact I was probably the only person in building who could have answered it. I sure liked that one!

Next year, Atlanta:

But I may not have to wait a year for another Tech Ed experience. :-)

Kate

Thursday, June 10, 2010 10:09:42 AM (Eastern Daylight Time, UTC-04:00)  #