Apress’ open source series of books recently unveiled Mark Mamone’s “Practical Mono“, a book targetting new .NET developers. We take a quick look at the book below.The book is written for readers who have no previous experience with .NET, and in some cases, it will even be suitable for readers with not extensive programming knowledge. It starts off explaining what .NET is, the history of Mono and how it fits in all this. It also explains how to install Mono from scratch, but this guide is limited only to RPM-based distros and Windows.
The book goes on to introduce the reader to Monodevelop, although this guide is already a bit old now as the application has changed significantly since that book was written (in the Mono 1.1.4 days). The chapter will also explain how to use the C# compiler, although almost has zero depth regarding debugging (half a page about it).
The book continues with the introduction to C# language starting from the most basic information (e.g. variables) continuing all the way to events, delegates and namespaces. Throughout this part of the book there is quite some source code listed along with some adequate explanation next to it.
On chapter 5 things get really serious with the introduction to JIT, GAC, assemblies and modules. Introduction to Windows.Forms, GTK# and Glade follows. An RSS application is used as the practical example on how to create a graphical C# application using both toolkits. Unfortunately, these two huge subjects are not discussed in enough depth. After reading the book the reader won’t be able to create real-world graphical applications without reading additional books or MonoDoc, or delving directly into other people’s source code for ideas and information. The graphical application creation topic should have seen more love by the author.
The author quickly moves to other territories like ADO.NET and MySQL, XML and ASP.NET, which I personally don’t have enough interest for, but these chapters were well-documented and presented. Back to the real deal, the author continues his journey into more advanced topics such as Remoting, the Mono Profiler, performance tips, networking, Reflection, multi-threading programming, and a quick look up on .NET 2.0.
Regarding the book’s writing is easy to follow, although a bit too monotonic at times. Reads more than a school book rather than a book that you will also have some fun with while learning. Overall, this is a good book for first-timers on .NET, but probably not as good on brand new programmers who would find themselves a bit lost after trying to program a real world application on their own. Most of the information mentioned on the book can be easily found on MonoDoc or elsewhere, but it’s nice to have a hard cover book with all the knowledge put together in perfect order.