I was surprised to find out that .NET has a built-in licensing model. That means the .NET framework can be used to check if users are using a valid, non-pirated version of your application or control. For the purposes of this post I'll only talk about Control licensing, not application licensing.
You apply licensing to a control by adding the LicenceProvider attribute to your class. This tells the .NET framework which license provider to use to manage your licensing. For example...
[LicenceProvider(typeof(LicFileLicenseProvider))]
public class MyFancyControl { …
The .NET framework comes with one license provider - LicFileLicenseProvider.
I still can't figure out if this provider is really worth anything. It checks that you have a .lic file with(or within) your assembly. If anybody copies your assembly and your license file, the control will work. Not much piracy protection there.
But… you can write your own license provider. And it isn't too complicated either. Check out this article on developer.com to see how to write your own provider. The author, Kenn Scribner, explains how to write a license provider that checks your registry for a specific key and value. So a simple copy of your assembly won't work anymore.
So what's happening with GMail? I've been using it for months now. It looks great and works perfectly. Why is it still in Beta?
Just a thought.