Graeme Williams writes "Beginning SQL Server 2005 Express Database Applications with Visual Basic Express and Visual Web Developer Express from Novice to Professional is in two parts, "Working with SQL Server Express" and "Working with Visual Basic Express and Visual Web Developer Express". The first part of the book is quite a bit larger (368pp vs. 204pp), so the title, as long as it is, isn't all that accurate. How about, "An introduction to SQL Server 2005 Express, including desktop and web applications in Visual Basic"? The book asks to be judged against a high standard: Can it turn a SQL and Visual Basic novice into a professional? The first part of the book is an excellent introduction to SQL Server in its several manifestations, and essential for anyone who is new to SQL Server 2005 Express. The second part doesn't provide as much help for the complete beginner, but still provides a good introduction to developing database applications." Read the rest of Graeme's review.
|Beginning SQL Server 2005 Express Database Applications|
|pages||xxi + 596|
|summary||An excellent introduction to SQL Server 2005 Express and a|
The first part of Beginning SQL Server 2005 Express, on SQL Server Express, covers a large amount of material. Starting with a basic introduction to SQL, the book builds in two directions, covering more complicated SQL as well as SQL Server Express administration. In 368 pages, you'd naturally expect a fair amount of information, but it's also thorough and well-organized. One test of how well an introductory book is organized is whether you can usefully keep it on your shelf to refer to later, and I think Beginning SQL Server 2005 Express passes that test very well. You can verify the breadth of topics covered by looking at the online table of contents and the author's web site for the book, which is detailed enough to be a very clear summary of what the book covers.
The generous amount of material downloadable from the web site includes all the SQL scripts from part one – these samples alone represent an excellent introduction to SQL (or T-SQL, as Microsoft insists on calling it). There's also a 60-page bonus chapter, not included in the book, on ASP .NET.
The explanation of SQL Server administration is a big bonus for the book, and it clearly lays out the difference between SQL Server 2005 and its smaller brother, the Express Edition, as well as the changes from SQL 2000. While I was reading this book, I had to do some simple database administration on a couple of SQL 2000 databases, one a production server, and the book gave me a very useful head start. If you found yourself upgrading from SQL Server Express to a larger and more complicated SQL Server configuration, Beginning SQL Server 2005 Express wouldn't give you everything you needed to know, but it would provide a good introduction.
Beginning SQL Server 2005 Express was published in December 2005, after the release of Microsoft's SQL Server 2005 Express but while SQL Server Management Studio Express was (and still is) only available as a "Community Technology Preview". I took the risk and installed it, and it seems fine, connecting both to a local instance of SQL Server 2005 Express and a remote SQL Server 2000.
It's inevitable in an introduction that some material be covered too hastily. For example, Dobson suggests that a database constraint could be used to ensure that a purchase amount is less than a particular dollar limit unless an approver name is also present in the database record. But that's a business rule that shouldn't be included in the database schema. At a minimum, the book might have mentioned the distinction. There's a good discussion of data types, which is somewhat weakened by not being prescriptive enough. Should I use the bit data type because they're small and will squeeze into tight spaces, or avoid them because of the unpacking overhead, if any? The book doesn't say.
There's one omission from the book that may trip you up when you try to run some of the Visual Basic examples, specifically code that attempts to attach a database file to the Server. The access privileges for the database server naturally depend on the user id it's running under, and the default installation uses a special Windows account which doesn't have access to your whole system. For running the examples, the simplest (and least secure) solution is to change the user id to your own account, which you can do using the SQL Server Configuration Manager, shown in Figure 1-4 on page 18. I guess the most secure solution is to create a new account whose privileges are limited to a specific directory, but I'm certainly not an expert in this area. Beginning SQL Server 2005 Express doesn't discuss it at all.
The second part of Beginning SQL Server 2005 Express, "Working with Visual Basic Express and Visual Web Developer Express", begins with a superficial introduction to Visual Basic. The problem is that it won't be enough for people who are new to Visual Basic, and it's not necessary for people who are familiar with it. The examples are solid but not outstanding.
Example 5 in Chapter 9, "Introduction to Visual Basic Express and Windows Forms", provides a nice example of a landmine Microsoft has laid in our path: In a Windows application, Console.WriteLine() writes to the Output->Debug window, but Debug.WriteLine() writes to the Immediate window. The example would have been easier to follow if that gem had been explained. But like the rest of the book, there's a lot of useful information in the chapter. I guess my only quibble is that in using "Novice" in the title, the book promises more than it delivers, at least in this area. This isn't suitable for a beginner to Visual Basic.
Like many other books about Visual Basic Express, Beginning SQL Server 2005 Express has a couple of chapters about building web sites using ASP .NET. It seems to me that Microsoft wants Visual Basic Express and SQL Server Express (both of which are free) to be gateway drugs to ASP .NET and IIS. The book repeats the canard that IIS is a free web server for Windows 2000, Windows XP and Windows 2003, but that's not true. IIS is included in Windows XP Professional but not Windows XP Home. In any case, Microsoft would love to get you hooked on IIS.
The other problem with ASP .NET is that so much of the action is behind the curtain. So, any example is going to have a sequence of steps in the web page designer, and perhaps a small amount of code or HTML, followed by magic, followed a web page being generated. I have nothing against magic, but it means that any narrative or explanation of examples is going to jump from "what you do at design time" to "what happens at run time" with a greater or lesser gap in the middle. Here's an example (page 565):
Dobson actually does a great job of navigating this particular example, in the sense that he makes it clear what incantations will produce the desired effect – submitting a single value to the server for use in a database query(!).Normally, a False setting for the AutoPostBack property of a server-based control, such as TextBox1, does not let the control operate automatically after you commit a value to it. However, a special setting on a Define Parameters wizard screen causes TextBox1 to return its value to the server immediately after a user presses the Enter key on the keyboard. The Define Parameters wizard screen is one of series that you can pass through when you reconfigure a data source with a wizard.
The rest of part two deals with Visual Basic and ADO .NET, starting with a good introduction to the ADO .NET architecture As in the first part of the book, Dobson does a very good job of presenting a great deal of very useful information. ADO .NET includes two different APIs, an untyped API where column names and types can be determined at runtime by querying the database, and a strongly typed API constructed by the Visual Studio IDE at design time. The IDE reads column names and types from the database and builds an XML description it uses to build and type an API specific to each table. Dobson presents the more complicated untyped API first, which I think is the right approach, since it then makes clear what the IDE and runtime libraries are doing under the covers to manage the typed API.
The Visual Basic examples include connecting to both SQL Server and Access, parsing data out of a text file or Excel, handling concurrency errors, and a very thorough walk-through of the usual suspects: creating and deleting tables and inserting, updating and deleting rows, from a single table or multiple tables. The examples are great at making clear how ADO and related parts of .NET work, but they didn't strike me as brilliant code – not necessarily the sort of thing you want to keep to cut and paste into your next project.
In my opinion, Beginning SQL Server 2005 Express is stronger in the area of SQL Server than it is for application development. If, like me, you're comfortable with Visual Basic but new to SQL Server, run to the bookstore – for you, this book is a 9. If you're familiar with SQL Server 2000 administration but looking to start implementing applications in the latest version of Visual Basic, check out the table of contents online. You'll find a lot to like, even if the book doesn't match your needs perfectly."
You can purchase Beginning SQL Server 2005 Express Database Applications from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.