tags:

views:

570

answers:

11

As a consultant I get to toy around with many different products and APIs as the customer demands we use X and Y. I think it is great fun and I learn a lot from it.

What will make a great developer over time is, in my opinion, the will to understand and learn new things. Therefore, I will always try to understand what happens "behind the scenes" when I am using 3rd party products.

I spend around 10-15% of my time in Reflector to learn what the heck I'm really doing when I call method X.

How much time do you spend on average? This may also apply to reading (open) source code, documentation etc.

A: 

Since I develop for both .net and compact .net framework, I sometimes decompile the full .net assemblies to "copy" existing functionality to the compact framework.

Other than that I don't spend that much time decompiling libs. Mostly only when something doesn't works and the problem clearly points to an assebmly and I don't want to bug someone else before I'm really shure.

If you want me to stick an number to it, I would say 5% of my time.

Stormenet
I do some mobile dev as well, and if you haven't already, check out the OpenNETCF libraries http://www.opennetcf.com/FreeSoftware/SDF14/tabid/91/Default.aspx. You won't have to recreate everything from the full framework!
Anthony Mastrean
A: 

I'd say less than 1% of my time is spent in Reflector. I can see why it might be a good learning tool but I don't often need to know what goes on under the covers, as long as it works as I'd expect then I'm happy. It's an interesting idea though.

tjrobinson
A: 

I used reflektor for fun a bit, but right now I'm not using it at all.

Since we got all source for our c# programs there is no real need to decompile anything.

Sam
A: 

I think I may have spent 5%-10% of my time in Reflector at some point -- when I was first leaning .Net. These days is probably less than 1/2 hour a month. But then I don't use many 3rd party libraries.

Source code / documentation, it's harder to say. (yeah, like open source code HAS documentation....) One would have to attribute some portion of my general blog reading to that, but what percentage is very hard to say.

James Curran
A: 

maybe 2-3 %? Mostly using this DSM plugin: http://tcdev.free.fr/

AlexCuse
A: 

P/Invoking becomes so much easier when you use Reflector on WindowsBase.dll. Check out the MS.Internal.Interop namespace for COM interop, and MS.Win32.NativeMethods and MS.Win32.UnsafeNativeMethods for Win32 interop.

Steve Dinn
A: 

Waaay too much!

leppie
+1  A: 

For me it depends. When I'm learning a new technology stack or API I'll typically break out Reflector, and my usage of it goes up.

For instance I recently started working with the Commerce Server 2007 API. I found much of the documentation around the Profile System incomplete or lacking in sufficient detail for my curiousity. So I broke out reflector, and used it to inspect the Commerce Membership Provider implementation (not to mention the implementation of the native asp.net sql membership provider).

Inspecting the code helped me much better understand how and why the membership providers work the way they do, versus just relying on what the documentation said.

I was then able to go on and implement a custom membership provider for commerce server that I believe made up for some of the limitations of the stock commerce server membership provider. Granted my implementation was not looking to be as generic and feature rich, as my goal was to establish "standard" setup and configuration of the commerce user profile for my company.

So when I was initially working with commerce server, I spent probably 20% of my time in reflector. Now that I have better understanding I rarely use it to inspect commerce server at least.

Secondly, when i first started working with asp.net ajax and the ajax web control toolkit. The toolkit is open source. I spend a fair amount of time in the control toolkit code initially, the documentation was ok, but the samples were very weak. Dividing into the source code helped me better understand use its various web controls to their full capacity. It also helped me better and more deeply learn how to work with the asp.net ajax javascript libraries. Initially I spent about probably 10% of my time in the source code of the toolkit.

Day to day how much time do I spend using reflector? Not that much, depends on the project and if the technology involved is familiar or new.

Jon
A: 

If I'm writing against libraries I have the source to I rarely if ever use it because I have the source.

If I'm writing against .Net libraries I probably spend 5% of the time, only when using something I'm unfamiliar with and Google/MSDN/StackOverflow lets me down.

When working with 3rd party libraries I probably spend 20% of the time using Reflector because is usually far better than the anemic documentation provided. One one project I spent probably 50% of my time using Reflector because the documentation/forums/knowledge bad for this particular product was missing what I needed or was completely wrong.

I find that I'm happy when I don't need to use Reflector -- its a great tool, but using usually means I have a gnarly problem that isn't fun.

ARKBAN
A: 

I probably spend about 1% of my time in Reflector. It's a really nifty tool, but because we write so much of our code in house it hasn't been a great need to decompile any dlls.

ddc0660
A: 

I use it all the time. Why look at potentially flawed documentation when you can see the actual source?

Quibblesome