Friday, April 29, 2005

Review - Murach's C#

Murach C#Murach's C#
by Joel Murach, Doug Lowe

5 out of 5 stars

This is an excellent book for the beginning C# programmer. The book uses a "paired-page" format where the page on the left gives descriptions of a concept and the page on the right provides examples, syntax, and additional information. Although this does lead to some repetition, overall it provides clearer explanations of concepts that are laid out in front of you all at once. It also makes it easier to go back, find, and review information read previously.

The book starts with a tour of C# which leans heavily on Visual Studio. The first three chapters cover using VS.NET and very little C# code is presented. In fact, explanations of how to work in Visual Studio are provided throughout the book. The next two sections, covering 12 chapters, cover the details of programming in C# and writing object oriented code. The coverage of OO is excellent and it will remove much of the mystery associated with OO programming. Database programming using ADO.NET is covered at a good level of detail in five chapters. The final section covers reading and writing files including using the .NET classes to read and write XML files.

In many ways this book provides a level of detail not found in other books with plenty of code samples to help clarify the material. The only thing not covered is ASP and web forms. I can highly recommend this book to anyone interested in learning C# or to anyone planning to teach a C# programming course. The book is well designed as a textbook for a programming class. It includes objectives, a summary, a list of important terms, and programming exercises at the end of each chapter. A student workbook and an instructor CD are available.

This earned 5 stars on Amazon. The book is published by Mike Murach & Associates.

The review can be seen on Amazon on My Amazon Reviews page.

Wednesday, January 19, 2005

Review - Java Developer's Guide to Eclipse, 2nd Edition

HibernateJava Developer's Guide to Eclipse, 2nd Edition
by Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy

5 out of 5 stars

The first edition of this book was excellent for plug-in developers and helpful, although not vital, to all others. Two things make this new edition even better than the first edition. First, plug-in development in Eclipse is now so easy and so well explained in this book that there is no reason why anyone shouldn't be doing it. Have you ever worked with an IDE and thought, "why isn't this function available in the pop-up menu" or "why doesn't it have this feature"? Developing a plug-in will allow you to customize the functionality of Eclipse to provide the missing feature and this book will clearly explain exactly how to do that. Second, the section of the book that deals with developing with Eclipse has been improved with detailed chapters on team development including using CVS as well as an excellent example of integrating with Tomcat to develop an E-Commerce application.

The book is divided into two sections. The first 200 pages deal with using Eclipse and cover everything from the basics to complex team development issues. The next 600 pages cover everything you need to know about extending the functionality of Eclipse. The book ends with 200 pages of exercises that give detailed, step-by-step examples of using Eclipse. Five exercises deal with using Eclipse while the rest show examples of extending Eclipse. It is a big book that covers a lot of material but it covers it clearly and with plenty of examples. If you buy one Eclipse book, this should be it.

This earned 5 stars on Amazon. The book is published by Addison-Wesley.

The review can be seen on Amazon on My Amazon Reviews page.

Tuesday, January 18, 2005

Review - Hibernate

HibernateHibernate: A J2EE Developer's Guide
by Will Iverson

4 out of 5 stars

Hibernate is a popular object-relational mapping (ORM) system for Java programmers. As any Java programmer who has worked with a SQL database knows, trying to link Java objects to a relational database is not a trivial exercise. Hibernate simplifies the task by providing an API and a set of tools that can generate Java classes and link seamlessly to a database.

The book starts with an introduction to Hibernate including some details on installation. The author looks at how Hibernate can generate a database schema or it can generate Java classes depending on where you are starting to build your application. XDoclet is discussed with the author pointing out some of the issues with using class annotation. After the introductory chapters, the author gives a good explanation of the details of Hibernate in the middle chapters. The last few chapters look at performance, caching, design issues and other advanced topics. Throughout the book there are many code samples that help to further explain the use of Hibernate.

I do have a few complaints about the book. Although performance is discussed, the cost of using Hibernate on performance is not. I would have liked to see some comparisons of Hibernate versus stored procedures, for example. Also, the weaknesses of an ORM are not discussed. Anyone who has worked with an ORM knows that at a certain level of complexity they start to fall apart and make an application overly complicated. It would have been nice for the author to discuss these issues and at least point towards solutions. Overall, the book serves as a well-written and clearly explained basic introduction to Hibernate.

This earned 4 stars on Amazon. The book is published by Addison-Wesley.

The review can be seen on Amazon on My Amazon Reviews page.

Wednesday, December 22, 2004

Review - SWT/JFace in Action

SWT/JFace in ActionSWT/JFace in Action
by Matthew Scarpino, Stephen Holder, Stanford Ng, Laurent Mihalkovic

4 out of 5 stars

SWT and JFace are the graphical libraries developed by IBM as an alternative to Swing to improve performance of GUI applications (specifically Eclipse) written in Java. This book offers a thorough introduction to SWT/JFace. The authors avoid getting into a Swing vs. SWT/JFace debate although they do provide a comparison of the two libraries.

The book starts with a look at writing a program in SWT and then rewriting it using JFace. The authors compare the two approaches and give a good description of why you would want to use one over the other. The next few chapters look at the basic widgets, layout managers, event handling, and graphics contexts. Later chapters cover more advanced widgets such as trees, viewers, tables, menus, dialogs, and wizards. The last chapter looks at GUI development using Eclipse's Rich Client Platform. The appendices cover development within Eclipse and integrating SWT/JFace applications with OLE and ActiveX.

Overall this book does a great job of explaining SWT/JFace at a good level of detail. The book includes a reasonable amount of code samples as well as UML diagrams that help explain how these libraries work. The authors should have chosen a better sample application to demonstrate use of the libraries and there aren't enough screen shots included which may leave you wondering what some of the widgets look like. Other than these two minor complaints, this is an excellent book to learn how to use SWT/JFace and I can strongly recommend it.

This earned 4 stars on Amazon. The book is published by Manning.

The review can be seen on Amazon on My Amazon Reviews page.

Thursday, December 16, 2004

Review - Core Java 2, Fundamentals

Core Java 2, FundamentalsCore Java 2, Fundamentals
by Cay Horstmann, Gary Cornell

4 out of 5 stars

This is the seventh edition of this book and in some ways it hasn't changed much since the first edition. The first edition was aimed at C++ programmers who were looking to transition to the new language. The seventh edition is still fast-paced and detailed and aimed for the experienced programmer. This is not an easy-to-follow tutorial for the beginner programmer. The authors assume that you already know the basics of programming even if it isn't with an object oriented language. The book might make a fairly good college textbook but not as a first language.

The book covers the main areas that you would expect in an introductory Java book with a few surprises. The book gives a little bit of the history of Java and shows how to install and run Java from the console and Eclipse (but not NetBeans). There is an early introduction to reflection but exception handling isn't covered until well into the book. Swing is covered in a fair level of depth. J2SE 5.0 changes are covered throughout the book with the many examples written to show off the new additions to the language. Threading and Collections are not covered but rather are saved for volume two.

Overall this is a well written book but the target audience is getting small. How many C++ programmers can be left that don't already know Java? If you are looking for an introductory tutorial then this book may be a bit too advanced. Through seven editions, Core Java has changed little other than to reflect language changes. Perhaps it's time to rethink the franchise.

This earned 4 stars on Amazon. The book is published by Prentice Hall.

The review can be seen on Amazon on My Amazon Reviews page.

Review - Explorer's Guide to the Semantic Web

Explorer's Guide to the Semantic WebExplorer's Guide to the Semantic Web
by Thomas B. Passin

4 out of 5 stars

The semantic web is an intelligent web, that is, a web that can be intelligently used by computers. There are two things you need to know about the semantic web. First, it doesn't exist. Second, it may never exist. If this isn't enough information for you, and you want to look at what the future may hold in the area of an intelligent web, then I can't think of a better way to get an introduction to the technologies and ideas that may be part of the semantic web than by reading this book.

The author of the book takes the layers of the semantic web as proposed by the W3C and looks at each one in turn, skipping over the familiar XML and XML schema layers. The author starts with the RDF layer and gives one of the best explanations of RDF and RDF schema that you will find. RDF is the potential meta-data language of the semantic web and the author makes it clear and understandable. Other than XML, RDF is the most real layer of the W3C layer cake so this section is also the most accessible. The next chapter delves into ontology which is vaguer and less clearly defined. The chapter on web services seems a bit unnecessary except as how they fit into the semantic web. A chapter on how intelligent agents may work is included. The last section deals with how information may be verified for truthfulness and authenticity.

If you are interested in RDF then you may want this book just for that section. If you are interested in what the semantic web might look like then this book may be of interest. If you are looking for practical programming samples or ways to build intelligent agents then this isn't the book for you. This is an explorer's guide for those having no fear to tread into unknown waters. This part of the web is still uncharted but this book will help you learn what technologies may be used to fill in the missing pieces of the map.

This earned 4 stars on Amazon. The book is published by Manning.

The review can be seen on Amazon on My Amazon Reviews page.

Monday, December 13, 2004

Review - Building Portals with the Java Portlet API

Java Reflection in ActionBuilding Portals with the Java Portlet API
by Jeff Linwood, David Minter

4 out of 5 stars

Portals are becoming more popular as companies are looking for a single web-based entry point into their various applications. Java provides a standard portal model with JSR 168. This book is a thorough introduction into JSR 168 that will help get portal developers up to speed into this relatively new specification.

The book starts with an excellent introduction into developing portlets. The first seven chapters cover all the details of developing portlets. Response and request objects are covered in detail. The portlet life cycle is clearly explained. Deployment descriptors are discussed. Integrating with Servlets and JSPs is described. The remainder of the book covers more advanced topics. Anyone working with a portal knows the problems with providing single sign-on to multiple applications. The authors discuss this issue giving several examples. The authors cover syndication, searching, personalization, web services, content management, and more.

My only complaint with the book is that it uses the Apache Pluto portal, which is not in final release yet. Pluto is an open source portal but it is complicated to distribute content to it (you are forced to use Maven). When the book explains how to distribute portlets to Pluto it gets a little confusing because the authors need to explain multiple configuration files, some of which are exclusive to Pluto. Other than this one problem, the book gives a solid introduction to developing a portal providing detailed information of both the basics and many advanced concepts. Clearly the authors understand portal development and know how to pass that information on to their readers.

This earned 4 stars on Amazon. The book is published by Apress.

The review can be seen on Amazon on My Amazon Reviews page.