Novell is now a part of Micro Focus

Developer's Toolbox: Mono: A Developer's Notebook Book review

Novell Cool Solutions: Feature
By Richard Smith

Digg This - Slashdot This

Posted: 11 Oct 2004

Mono: A Developer's Notebook by Edd Dumbill and Niel M. Bornstein

Published by O'Reilly Media Inc.

At first glance one might overlook Mono: A Developer's Notebook if you spied it among the rows and rows of programming books at your local book store. It's not very big, less than 300 pages, and doesn't really go in for the flash factor that many technical publications seem to be based on these days. The spine is a simple black color with white lettering, there are no graphics or pictures of the authors, and the front and back covers are simply done, with enough information to convey the contents.

When you open the book, you find more of this simplicity. Only eight chapters and the table of contents is just barely two pages long. But the table of contents does a good job providing the reader with enough detail to help understand what a given chapter will cover. Following a two page foreword by Miguel de Icaza, one of the driving forces behind Mono, and an explanation of this new Developer's Notebook Series by Brett McLaughlin of O'Reilly, the Preface does an excellent job of defining what to expect from the book and how it goes about presenting the content.

Finally we get to some content!!

I'm exaggerating a bit since it's only been fourteen pages since the table of contents, not very many by the standards of today's programming texts.

Chapter One takes you through getting Mono up and running and then covers taking advantage of the growing Mono community to keep up-to-date on advances in Mono and .NET.

Before going further I'd like to tell you a bit about how Mono: A Developer's Notebook goes about delivering information. In his introduction to the Developer Notebook series, Brett McLaughlin covers what the books in the series will be and what they won't be. For those of us who have bought and "read" many programming books, the design of this series will be a welcome innovation. The series is focused on examples as the way of delivering content. The examples are delivered as specific task labs and each of these labs may contain information presented as "How do I do that?", "How it works", "What about?" and "Where to learn more" topics for each task. This is an excellent way to present the content to the reader. You understand immediately the task you are about to tackle and "How do I do that?" takes you right into the sample code.

Then "How it works" details exactly what each part of the example code did and how it fits into the example as a whole. The "How it works" sections also have another aspect of the book that I found very useful and familiar. You'll find many scribbled notes in the margins of the pages of Mono: A Developer's Notebook, something that I'm sure all of us have done with book we have read. These notes contain more detail, further explanation, or even perhaps a funny anecdote regarding the section in question.

"What about?" then may pose a question about what you might want to do to further extend the current concept or apply it to a specific situation. This section then provides some additional examples that illustrate this extension. And finally "Where to learn more" provides the reader with references that pertain to the current topic. Be they specifications, web sites or other publications, these resources help the reader get a more in-depth understanding of the material.

After Chapter One gets you up and running with Mono, the next two chapters focus on the C# language and the basics of understanding .NET. These chapters provide enough understanding of C# and the .NET technologies and structure for the reader to be able to go through the remainder of the book without much difficulty.

Chapters Four and Five deal with GTK# (both basic and advanced), and this is when the examples in the book get really interesting. GTK# is a wrapper around GTK+, the interface toolkit for GNOME, that enables developers to build GUI interfaces for desktop applications. These chapters lead the developer through building basic GTK+ applications including windows, how to use the GTK widgets and how to make widgets interact to create more complex applications.

Advance GTK# is covered in Chapter Five, including using the Glade interface design tool to create the definition of your interface and to deploy that interface. Along with the interface examples in Chapter Five, the book also presents tasks on working with HTML and creating help files for your applications.

Since XML is one of the core building blocks of the Mono framework, no book on Mono would be complete without the discussion of XML. In Chapter Six the authors deal with XML from reading and writing to transforming and even serializing. This chapter contains a large number of coding examples that really explain how to effectively use XML within your application.

With Chapter Seven the book touches on topics that relate to networking, web services, databases and security. These areas will be important for any developer who is developing server side services or who needs to access remote objects or services.

The book closes out with a chapter on Cutting Edge Mono, where using Autotools, cross-platform compatibility, running Java in Mono and Writing Mono programs in Basic are some of the more advanced topics covered. I found myself feeling much as I do when I finish a novel, wishing it weren't over when I finished this final chapter. I did go back and follow-up on many of the "Where to learn more" sections which proved to be very useful as additional resources for working with Mono.

But still I find myself hoping for a sequel?


Don't let the seemingly small size and low-key appearance of this book turn you off. If you are considering Mono as a development tool, this book should prove valuable in your learning process and as a good reference for well written code examples in the future.

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions.

© Copyright Micro Focus or one of its affiliates