Java Beans is the most important new development in Java this year. Beans is the next generation of Java technology that not only adds features the language lacked, but also lets Java programs interoperate with a number of development environments. The initial release includes a bridge for Microsoft's ActiveX/COM; future releases will include bridges for Netscape's LiveConnect and IBM's OpenDoc.Since it's a "component architecture" for Java, Beans can be used in graphical programming environments, like Borland's JBuilder, or IBM's VisualAge for Java. This means that someone can use a graphical tool to connect a lot of Beans together and make an application, without actually writing any Java code -- in fact, without doing any programming at all. Graphical development environments let you configure components by specifying aspects of their visual appearance (like the color or label of a button) in addition to the interactions between components (what happens when you click on a button or select a menu item).One important aspect of Java Beans is that components don't have to be visible. This sounds like a minor distinction, but it's very important: the invisible parts of an application are the parts that do the work. So, for example, in addition to manipulating graphical widgets, like checkboxes and menus, Beans allows you to develop and manipulate components that do database access, perform computations, and so on. You can build entire applications by connecting pre-built components, without writing any code.Developing Java Beans is for people who need to stay up-to-date with the latest developments in programming technology. Minimally, developing Beans means adopting several simple design patterns in your code. However, that's only the beginning. To take full advantage of the Java Beans architecture, you should understand how to write classes that are serializable, use events for communication between classes, know when and how to provide BeanInfo classes that give graphical environments more information about your components, and provide property editors and customizers that let graphical tools work with more complex Beans.The book covers:
Robert Englander is Principal Engineer and President of MindStream Software, Inc. (www.mindstrm.com). He provides consulting services in software architecture, design, and development, as well as developing frameworks for use on client projects. His focus is in the areas of component architectures and distributed systems. Rob has built software in Java and C++ for clients ranging from small shops to large organizations. He has spoken at industry conferences, written articles for magazines and journals, and is the author of the OReilly book Developing Java Beans.
Edie Freedman designed the cover of this book, using an image she created and shot, then manipulated in Adobe Photoshop. The cover layout was produced with Quark XPress 3.3 using the Bodoni Black font from URW Software and BT Bodoni Bold Italic from Bitstream. The inside layout was designed by Nancy Priest and implemented by Mike Sierra in FrameMaker 5.0. The heading font is Bodoni BT; the text font is New Baskerville. The illustrations that appear in the book were created in Macromedia Freehand 5.0 by Chris Reilley and Robert Romano. Whenever possible, our books use RepKover, a durable and flexible lay-flat binding. If the page count exceeds RepKover's limit, perfect binding is used.
The book is filled with factual errors and technical inaccuracies.
I was most interested in the chapter on properties and firing events
when properties change. However, one of the code samples on page
71 includes an error that is not even addressed in the errata.
You cannot reference a 'this' object until the super object has been
created -- thus sayeth both Java 1.4.0 and Java 1.1. Furthermore, PropertyChangeSupport doesn't have a constructor signature that takes no
arguments. The point is that the code is structurally flawed and won't compile.
The size of the book has been bulked up with too much code. Rather than addressing the fundamentals, numerous incomplete and confusing snippets are thrown at the reader. Rather than have the example code broken out by .1 and .2, I'd rather see subdirectories that identify what the code is trying to exemplify along with a README somewhere in the zip file that says what each project is doing. It's bad enough that the code in the book won't compile -- don't make me permute source code to figure out what's going on.
Bottom line -- find another book. This one will just frustrate you.
Wow! A fantastic book! This was the book that made me start buying O'Reilly books. The author does a fantastic job of organizing the book and teaching each aspect of JavaBeans development. As well, the examples are fantastic. There were a few mistakes in the book, but I was able to figure them out fairly easily and they did not detract much from the overall quality.
I think JavaBeans are an amazing technology, but too few people know how to use them/develop them. If everyone just read this book, it'd be as big as ActiveX.