1. I am writing an app in C#. Should I use the Turboactivate dll or the exe ? the exe is much much easier to use butI am wondering is there is a drawback
Well, you'll be using TurboActivate.dll in your app no matter what (at the very least to check if the user is activated, is genuine). You can use the TurboActivate wizard (the exe file) if you want. It certainly simplifies things. And you don't have to recreate the wheel.
2. Why should I call the IsGenuine function anyway? Since the product is activated why do I have to hassle the user? or is that in case that the user somehow bypassed activation and I can get him by calling this function ?
If you want to use the ability to remotely deactivate users and revoke product keys (from within your LimeLM account) then yes you need to call IsGenuine(). We recommend calling it every 90 days. We're making this easier in TurboActivate 3.3.
3. Should I in my app's EULA include a clause related to Turboactivate?
Well, you don't have to. And if you do it doesn't have to be specific to TurboActivate, just how you're licensing your app. Consult your lawyer.
4.Should I also obfuscate my app for extra protection?
No. Obfuscation is a waste of time and money. All obfuscation can be undone by a single click by any one of dozens of tools.
I am afraid that if I don't then it would be trivial to find where the protection is, hence patch my app and bypass any protection!
All apps can be cracked. There's nothing you can do about that. It's just the nature of computers. But stopping cracking isn't the point of licensing. The main point of licensing is to prevent "casual piracy" -- that is, key sharing. We go into this in-depth here: What is hardware-locked licensing and why choose LimeLM?