I was about to have an application coded in .NET, but on looking into security and licensing, I find that while licensing isn't a problem, the apps that have anti-cracking features, such as Armadillo, PC Guard, and SDProtector, don't work with .NET. So my questions are:

- Is it possible to achieve anti-cracking security with .NET apps as strong as with other languages, and is there a not-too-expensive package that can do this?

- I've been told that locking an application to a particular machine makes it easier to crack. Is this true? I know there's disagreement about the effectiveness of it from the point of view of customer annoyance, but my question is just about security.

- I've seen a reference to the Microsoft Developer Security Toolkit, a free DVD for developers that shows best practices, sample code, etc. Has anyone used this, and will following its recommendations provide high-level security, or is it basically common info that most developers already know?

Thanks.