Question: I would like our Windows Forms application to register the customer's details in a Azure database (after they have purchased the application). I can create a table on Azure but how should I get the data into the table? I don't think talking directly to the database is the correct way to do this. Also I need to make sure only our application has access to the database and the information is encrypted from the application to the database. Any help would be most welcome on the correct way to do this. I'm using .NET 4.0 and Visual Studios 2013.

Do I need something running on the server which can be called by our application which then adds / edits the database? What's the best solution?

Answer: 
The problem with speaking directly to the database is that you'll end up distributing the connection string to the database with your application. Sure, it can be encrypted, but somewhere in the code, you'll have to decrypt it prior to connecting to the database. At best, this is a hassle (when changing databases from DEV to PROD, for example). At worst, it increases the surface area for attack.

Here's a standard-ish solution that hits most of your requirements:

* Set up the windows Azure database with the tables and columns you need.
* Set up a web service (azure-hosted or somewhere else) with the appropriate security (either SSL, or some form of message encryption with WCF).
* Have the client application call the web-service with the registration information.

In this case, you're still opening up a non-authenticated web request to be able to perform writes into your database, but you are limiting the channel with which they can perform those actions. You could harden the implementation by adding a clever agent string to your request or by adding some form of clever secret / encryption / checksum to the message. Additionally, depending on how you do registration and activation, the webservice could validate the incoming information against previously registered evaluation downloads.

Hope this helps a little.
Even for Azure database you will have connection string. So, there is no problem to connect and read/udpate data. And of course you can manage database object via SQL server management studio.
Regarding talking directly or not it depends on your goal/application architecture.
What's the purpose of having Azure database?