Jason Bower's WebLog

Framework SDK Tips

This post is to provide some tips for people who may or may not have been using the .NET Framework SDK. Most of these tips apply to the .NET Framework SDK v2.0 Beta, but some will also work with previous versions.

1. Most people do not know this, but the SDK is included with Visual Studio. Look at your start menu you will see a Microsoft .NET Framework SDK program group.

2. Whidbey Tip: We have added a SDK command prompt that will set all of the environment variables you need to build basic .NET Framework applications. Once you start using the command line to do you work you will learn that you can't live without it.

3. Debugger: The SDK includes a lightweight graphical debugger called DbgCLR. There is a shortcut to this in the SDK v2.0 Start menu. If you ever need to debug something, but don't want to install VS this is the way to go. Just install the SDK tools only and you have everything you need.

4. C++ compilers. The .NET Framework SDK includes cl.exe, link.exe, and vcbuild so that you can build C++ applications.

5. Mage.exe and PermCalc.exe. These are new tools that you can use to generate click once manifest files. Mage has a GUI that is pretty easy to use and will help you create the manifest files that click once needs. PermCalc.exe is a little bit hard to find. It's in the VS directory. Just type PermCalc in the SDK command prompt and you will get the details on it.

6. ILDasm.exe. I had built .NET Framework applications before coming to work for Microsoft and never user Ildasm, but since someone on my team introduced me to this tool I have found it extremely useful. Run Ildasm and open up a managed assembly of exe. You can then browse through all of the namespaces, classes, properties, methods, etc. It is extremely helpful when you are dealing with poorly documented software.

If you are an avid SDK user let me know. I'm looking for customers to gather feedback from, invite into beta programs, and recognize as MVP's.

 

Published Thursday, July 22, 2004 5:55 PM by jbower

Comments

 

Jerry Pisk said:

Since my company won't spring for Visual Studio I'm developing all my work using Notepad (not literaly) and SDK tools. It's actually quite nice, since you get to automate most of the stuff you would just click through in VS. And since VS is getting more and more girlie I think I'll stick with using the free SDKs :) Unfortunatelly I don't have much feedback, even after years of working with both Platform SDKs and .Net SDKs I don't really recall any problems with them, I only have problems during installation.
July 22, 2004 6:03 PM
 

Jason said:

Jerry,

Please send me an email. jbower@microsoft.com. I'm trying to gather a list of SDK customers that really know and use our product to bounce ideas off of and gather some customer satisfaction data.
July 22, 2004 6:12 PM
 

Juan Cristóbal Olivares said:

ILDasm is fine, but this is better!

Reflector.NET:

http://www.aisto.com/roeder/dotnet/
July 22, 2004 6:32 PM
 

Nicholas Allen said:

I use ildasm all the time but I get fustrated that it defaults to the gui mode with no way to configure that. Generally I'm using it from the command line to check out how the compiler decided to treat a small snippet of my code. I sometimes forget to use /text and have the gui pop up on me since most of the other tools I'm using are command line default or command line only. If you're in a full screen command prompt it can be disruptive.

I think it's a good sign that that's the biggest complaint I have :)
July 23, 2004 12:22 AM
 

sebmol said:

I just downloaded the framework SDK beta 1 and noticed that the "tool developers guide" documents hadn't been updated for the changes you guys made to the IL. Is there any information on what you changed/added? I'm particularly interested how generics are implement on an IL level.
July 23, 2004 5:04 AM
 

Nicholas Allen said:

If you look at some generic code using IL, it's actually pretty small in terms of changes.

A class declaration for Foo<T> look like

'Foo`1'<([mscorlib]System.Object) T> extends [mscorlib]System.Object

The number tells you how many generic parameters are needed. Then the type bounds are given as a list.

When you go to use the class it looks like

newobj instance void class 'Foo`1'<string>::.ctor()

The same style syntax with the types filled in.

You can run ildasm on a generic program to check things out. If you can read basic IL, generic IL should mostly make sense.
July 23, 2004 2:39 PM
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker