Q:

Does making source code available affect your ability to generate revenue?

We’re working on a .Net framework which ultimately amounts to a single DLL.  We intend to charge for commercial use of the framework, but make it free for open source/non-commercial use.  The rough plan at the moment is to administer this through some form of fairly simple licence which will be issued whether you’re using it for free or paying.
We’re debating whether to make the source code available.  It’s our perception (and our own preference) that it’s far more appealing to use something where you have access to the source code.
I’m interested in whether people think making the source code available will damage our ability to make money from the framework, or whether it will encourage more usage and enough “good” people will arrange to pay for the correct licence if using it commercially.
My feeling is that, generally, commercial operations don’t mess about on the licencing front and so making the source code available will only encourage usage and therefore ultimately generate more revenue, but I’d be interested in others views/experience.

A:

You should definitely make the source available.  Whether it's freely available or only available to those who buy a license is up to you, but I would never use a third-party library with no source.  Unlike Robert Harvey, I emphatically do not "know that I will probably never need it."  Any library of non-trivial complexity is almost certain to have bugs in there somewhere, have missing or poorly-implemented features that could benefit from customization/extension, or most likely both.  (Yes, even yours.)  I've used a lot of different libraries, from different people and written in different languages, and I can't think of any that I've never needed the source from at one point or another.
If you want to do it right, add a provision in the license like what the GPL and MPL have, that if they make changes to the code and end up publishing a product using it, they have to publish the changes they made. That way you get free bugfixes and (potential) features just by letting other people use your code.

A:

If it is a managed .NET framework, people can use Reflector to look at the source code anyway.
I've seen a number of companies that appear to work this dual-licensing model successfully.  Having access to the source code doesn't necessarily mean that people will steal the code. Personally, I would rather be properly licensed, as has any company I have ever worked for.  But having access to the source code can encourage people to try your product out.  
There's something about having access to the source that feels like a security blanket; you know that you will probably never need it, but if you spend many man-hours worth of effort committing to a third-party library, it's good to know you can dig into the code and fix something if you ever get into a bind, or the original author of the code gets thrown under a bus.

A:

Personally I think that the best example of this is the way that companies such as Telerik and others do their licensing.
You pay for the license, you get the source code, and it is for your use.
If you make it under a method where it can be available for opensource/non-commercial use free, with source, I think it will be hard for you to get people to come forward and pay for it.

