Here’s the only recent and still valid book for Mono: “Mono: A Developer’s Notebook” by Edd Dumbill and Niel M. Bornstein. The book is under O’Reilly’s “notebook” series, which are meant to be books mainly consisted by notes. Here’s our quick review.The foreword of the book belongs to Miguel de Icaza, founder of the Mono project. Then, the book quickly presents Mono and MonoDevelop and how to install them on the various supported platforms.
Then, you get into the meat of the book, introduction to C# itself and .NET/Mono. GTK# is next, where you learn how to create windows, menus, graphics and add widgets with or without Glade. In the advanced GTK# chapter you will learn about GConf, how to render HTML, interact with the Gnome subsystem, create installation wizards etc. XML is following along with a quick chapter about ASP.NET and web applications. At the last chapter, you will learn to use the GNU autotools, how to run Java with Mono, how to use generics, how to use Basic instead of C# and more.
The book’s style is divided into the actual topic at hand, the “how it works” explanation, “where to learn more” section, “what about…” which explains common pitfalls, and the little notes left and right of the main text, in italics, giving that impression of a “note”. As of the writing style, it is clear and to the point, easy to understand and to follow. However, to fully follow the book, you will need not only MonoDoc (the mono API reference) but also a .NET reference guide, as MonoDoc is pretty incomplete.
This brings us to the main problem of the whole Mono experience in conjunction to this book. While Mono 1.0.2 and its C# implementation is optimal, Mono’s surrounded dev tools are incomplete (debugger, beta IDE and less than satisfactory Glade/integration) and what’s more, documentation/tutorials are even more incomplete. This situation would make this book the ultimate book for Mono, but the fact that it was not written with this in mind, removes some points of its overall usefulness. I would much have prefer to see a 1000+ page “Mono Bible” book that takes both the new and experienced developer by the hand and guides him/her through Mono and GTK/# from Alpha to Omega. This is a step much needed to assure more new developers join Mono.
Mind you though, even at the current state, the book is extremely valuable for experienced Java or C++ developers who want to jump into GTK# and Mono. If you already have OOP experience with the above said languages, then this book is a must-have. But if you are a complete newbie, you will definitely need an additional book to read first, a book that would guide you through C#, and after that, you will need to study some existing GTK# open source code out there to learn more. But no matter in which experience point you belong, at some point in your Mono adventure you will need to purchase this beautiful book anyway.
Buy “Mono: A Developer’s Notebook“
Special thanks to co-author Edd Dumbill for signing my book copy!