I definitely recommend you go with WCF + SQL Azure
One of the main ideas of SOA is to create short, not chat interfaces. This is especially true when placed in the cloud, because your client is not close to the data.
If you have complex business objects to populate, you may need to complete several queries. Using WCF services to communicate with SQL Azure, you can run all these queries in the Azure environment and minimize the number of trips on the Internet.
Of course, it costs more to do it this way, but it scales better because the level of service can be scaled.
There are a number of great advantages to this.
- Separation between the client and the database (the data structure can be updated without changing the client).
- As a corollary 1, if you need to outline the database, you can.
- If you need to upgrade later to SQL Azure Federations (When this happens), you can.
- You have an easy hook if you want to use Azure Caching.
- Security (1) Your database remains behind the firewall.
- Security (2) You can authenticate every request, not just a connection.
- Security (3) If you are dealing with a document repository / blob, you do not need to make the keys of the repository account available to the client.
I manage many large enough tiered systems with your back-end WCF + SQL Azure architecture, and it works fantastically well.
SQL Azure itself works well over the network to the point that I'm even happy to run Dev databases in azure mode, but I don't think it's a good choice for a production application.
Hope this helps.
source share