Robert McLaws: FunWithCoding.NET

Public Shared Function BrainDump(ByVal dotNet As String) As [Value]

News

<script type="text/javascript"><!-- google_ad_client = "pub-4330602465258980"; google_hints = "ASP.NET, VB.NET, C#, C#.NET, WindowsForms, .NET Framework, VS2005, Visual Studio, XAML, WinFX, Windows Workflow, WPF, WCF, Atlas, NetFX3, Visual Studio Orcas"; google_ad_width = 120; google_ad_height = 240; google_ad_format = "120x240_as"; google_ad_type = "text_image"; google_ad_channel ="4997399242"; google_color_border = "B6C9E7"; google_color_bg = "EFEFEF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "002C99"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<!--
-->

You should feel free to challenge me, disagree with me, or tell me I'm completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever. That said, I will most likely only delete abusive, profane, rude, or annonymous comments, so keep it polite, please.

Blogroll

Cool .NET Articles

My .NET Tools

My Builder.com Articles

My MSKB Articles

Why All The Fuss About Strong Name Keys?

A couple weeks ago, I was very strongly frustrated. Why? Because I fielded about 30 e-mails in the span of a few days that all basically went like this:

"I went to buy ScrollingGrid, but I couldn't, because it asked me for a "Public Key Token" from a "Strong Name Key". I don't know what either of those things are. Can you please help?"

It was ridiculously frustrating, not just that nobody knew what a Strong-Name Key is, but that we were losing sales because of it. So I got this crazy idea. I then asked for some volunteers to help me with a project. So what was it? Pictures speak 1000 words:

Signing Your Assembly (Click to enlarge)

And so, ladies and gentlemen, I'd like to introduce you to:


(special thanks go out to Tony Pino for the killer logo)

DeadBolt.NET is an add-in for VS.NET 2003, written by Michael O'Hearn, Jamie Cansdale (of NUnitAddin fame), and myself, that manages your Assembly Signing Key. I think “Assembly Signing Key” is a lot easier to understand (especially for strong-name newbies) than “Strong Name Key”, so that's the terminology I'll be using from here on out, and I hope that other people do too.

So how does it work? It's very simple really. The following screenshot shows the different options that are available:

DeadBolt.NET - Main Options (Click to enlarge)

The DeadBolt.NET installer includes a copy of SN.EXE, and basically we're executing shell commands to create and manage your key. You can use existing Assembly Signing Keys with it too, as you can see by the 3rd menu option. Now, if you want to sign an assembly, just right-click on the AssemblyInfo file, and select “Sign My Assembly”, and you're good to go. The whole point of the thing though is to make it easy for you to access your PublicKeyToken from the ASK. The 4th option down brings up this screen:

Viewing Your PublicKeyToken (Click to enlarge)

Now, if you want to go buy one of our other products (hint hint), you have easy access to the information necessary to get you the lowest price possible. Hopefully that concept will catch on as well.

Because I think that the simplification of Assembly Signing is desperately needed, and it will help sales of our other products, I'm making this tool free for everyone. The next version of the product will have extra features that you'll have to pay to get, but this basic functionality will always be free. The only caveat is that you will need to register to download it, but an occasional announcement e-mail from me is a small price to pay for such a nifty utility. NO REGISTRATION REQUIRED. Right now, it only works in Visual Studio .NET 2003, but Jamie and I are working to make it compatible with VS.NET 2002 as well.

You can get more information at http://www.interscapeusa.com/Products/DeadBolt, or download it directly here. Feel free to wander around the site too, I just completed a massive upgrade that took the better part of two days to roll out. We made some pretty significant changes to the site, which I will detail in my Corporate Blog this evening.

Stay tuned... more announcements are on the way. As always, I'd love to hear what you think. Let me know if you have any problems with the site or the app.

Comments

denny said:

the link to download is broken....
gives an error message..... and seems to cross link to scrolling grid ?
# December 23, 2003 9:06 AM

Joe Coder said:

Man, I should have put my scrolling grid up for sale. I wrote one of these over a year ago for a client :).
# December 23, 2003 11:10 AM

Greg Duncan said:

Nice...
Thanks for taking the time to do this.
# December 23, 2003 2:53 PM

Shane Bauer said:

Great tool. Saves me some typing.
# December 23, 2003 4:59 PM

Robert McLaws said:

Thanks guys... I'm glad it's working out for you. If I helped just one person, then it did what it was intended.
# December 23, 2003 6:30 PM

Robert Brown said:

This is nice, but it would be WAY cooler if it took care of strong naming the interop dll's for (non .Net) COM objects.

I know that's beyond the issue you were trying to address, but is there any chance of a version 1.1 with this? This is an area where some automation would be really helpful.
# December 28, 2003 9:42 PM

Robert McLaws said:

We're always taking feedback for features for future releases. I'm in the process of looking into the strong-naming system, to see if there isn't a way to improve the published identity verification system.

E-mail me using my contact form and let me know some more details of what you're talking about, and we'll look into it.
# December 28, 2003 10:17 PM

Sam Gentile said:

Robert Brown,

I am going to build such a tool that will completly take care of the COM objects and generating Interop assemblies with all the options, signing and such. I will do it either as part of my MSDN COM Interop series or after.
# January 3, 2004 8:51 AM