Disassemblers and decompilers are sometimes essential tools in a developer's toolbox but it is true that they also expose code to be easily reversed and even patched. A few days ago Microsoft has released version 2.0 of the Software Licensing and Protection Services SDK that can be a great platform on which to develop your licensing system and a means to protect your core .NET assemblies. Download it here. A tutorial and a demostration application can also be downloaded here. The Microsoft Software Licensing and Protection Services (SLP Services) site can be reached here.