I’m continuing onwards with my review of .
So far my biggest grip is that IMHO this is not an “Enterprise” book I would suggest Microsoft SQL Azure: Introduction to Application Development” – with that name, I would give the book good ratings as such (80%ile – better than 4 out of 5 similar books). With the existing time, it disappoints against what I expected.
Chapter 6: SSIS and SSRS Applications Using SQL Azure
The author tried to kludge a solution to a problem in this chapter without doing analysis or coming up with a good solution. A sharded solution for security is clumsy at best, there are better solutions for column level security. The issues of update and remedying inconsistencies arising from sharding are neither raised nor addressed. A simpler solution given that the end deliverable was a Microsoft Access database would be to just do pass through tables to the two SQL data bases and do an appropriate join in Microsoft Access.
The second part of this chapter deals with PHP and MySQL – I would have excluded both from the book and write a second book focused on PHP, MySQL and Azure. C#, VBNET tend to be part of one camp and PHP tend to be a different camp – trying to include everyone in the book scope is one way to make no one happy. Having said that, I ended up by the end of the chapter that we are just hashing and rehashing how to make connections. For a newbie, that may be useful. For someone that has been using ODBC for almost 20 years, it redundant and not informative.
Chapter 7: Working with Windows Azure Hosting
This is another one of these really does not belong in this book chapter on first look – if you open a SQL Server 2008 book do you find chapters on writing Silverlight applications using SQL Server? No you don’t (or at least not unless Silverlight in mentioned in the title). The use of Asp.Net instead of MVC was a bit of a disappointment especially since REST is often mentioned in earlier chapters. I actually was expecting to see a GRID implementation with code for the basic CRUD activities shown – what I got was just connecting up the classic AspNet control for user registrations. A better solution would be to illustrate the use of OpenId or Microsoft Live logins which are becoming the norm – standalone registrations are becoming very old-school.
Bottom line: what is covered is done well – but the decision of what to cover was poor.
Chapter 8: Database Applications on Windows Azure Platform Accessing SQL Server Databases
Starting this chapter I hit a bit of the directionless discussion that I see more and more, and growing to hate,
“Both data and applications can stay either on the cloud or in-house. Businesses may want to store only data or part of their data on the cloud and keep their business applications in-house. On the other hand, they may want to keep both applications and data on the cloud. “[P.285]
A bunch of options are stated but no explanation of the factors that should be considered in making the decision. Making the right decision is critical for enterprise applications; enumerating choices often results in random decisions. When the book is written for newbies, it’s even more essential to mentor them into the best paths.
The chapter continues to give sufficient examples of how to connect using a multitude of approaches but without any comparison of the benefits and disadvantageous between methods – for example the pro and cons of using Stored Procedures with LinqToSQL. I wonder if it no longer politically correct to express opinions…
On the plus side, the extensive examples does make it a nice quick reference book to get up to speed using whatever method you are most biased to.
Chapter 9: Synchronizing SQL Azure
The use of sync is interesting in that publication and subscriptions are not dealt with or mentioned. The author cites (with insufficient emphasis) the issue of having to order the tables so that foreign keys and referential integrity is not violated. What is missing is a TSQL code snippet to list out the tables in the right sequence. Another issue is that of cyclical foreign keys (which happens in serious enterprise databases) which is neither mentioned nor is advise given.
The treatment of synchronization is good on the basics. There were topics of interest that were not discussed that I would be interested in such as:
- Impact, behavior and risk of doing a sync over a 50 kbps connection with a 10GB database while the SQL Azure database is under load.
- Syncing a single SQL Server 2008 R2 database with a collection of SQL Azure 10GB databases that has the data partitioned
- Any issues that could arise if 100 SQL Compact databases are being concurrently sync
The above are issues that will arise with the serious enterprise use of SQL Azure.
Chapter 10: Recent Developments
This touches on a ton of changes since the book first draft was completed and allow a quick effective getting up to speed…
- SQL Azure updates
- SQL Azure security
- Using SQL Azure Firewall API
- SQL Azure with MS Access 2010 and MS Excel
- OpenOffice Access to SQL Azure
- Accessing SQL Azure with non-.NET Framework Languages
- OData Service for SQL Azure
- Consuming SQL Azure data with PowerPivot
- SQL Azure with WebMatrix
- More third-party tools to SQL Azure
- Managing SQL Azure databases with the Houston Project (CTP1)
- Data Application Component and SQL Azure
The unfortunate thing is that this information will likely be stale in 8 months.
That’s it for the chapters – I off to sleep on it and then I’ll write up a bottom line summary on the book tomorrow.