Slashdot Mirror


Practical Mono

hisham writes "At first glance, you would think that Practical Mono is yet another introductory book about C# and Mono, but all of that drastically changes the moment you look at the book's table of contents and see the variety of topics it covers and the lengths to which the author goes to describe the more important details." Read the rest of Hisham's review. Practical Mono author Mark Mamone pages 402 publisher APRESS rating Excellent reviewer Hisham Mardam Bey ISBN 1-59059-548-3 summary Takes the readers from an introduction to .NET, Mono, and C# to their most advanced features using a real world approach.

The book gently eases the into what .NET and Mono are giving a historical background for each. What I found very interesting is the fact the author takes time to explain about .NET in the real world, and ties this to Mono to give the reader a clear idea of how any why Mono was started and what the reader can do to participate in this effort.

Since a lot of people using Mono might be coming from a traditional .NET environment, the author expects those people to be used to certain development tools. To that effect, the second chapter in the book is dedicated to introducing the reader to development tools that can be used with Mono, especially Mono Develop. This gives the reader some heads up about what can be used instead of their conventional development tools and makes sure you start off on solid grounds.

Having gotten the user all set up and ready for action, the book then moves on to introduce the author to C#. This is a subtle introduction that eases the user into what C# is and how the language works. Chapter 3 comes in very handy when you want to brush up on your C# skills or are new to C#. the author continues to give the reader more information about C# in a more detailed fashion in Chapter 4, "Learning C#: Beyond the Basics". This chapter goes into some nitty-gritty detail about C# classes, exceptions, and all round more advanced C# topics.

Chapter 5 moves into the more exotic areas of .NET that deal with the CLR, IL, assemblies, and the general assembly cache (GAC). This chapter is very helpful if the reader wishes to acquire in depth info of how the .NET environment works. Other discussed topics here are garbage collection, application domains, and the class library. This is one of those chapters that make this book an excellent recommendation for both novice and advanced users of C# and .NET.

The first 5 chapters have made sure the user is very knowledgeable about what Mono is, what .NET is, what C# is, and how all of them relate to each other. They have also explained C# and introduced the reader to its syntax and advanced features. Starting with Chapter 6, the "Practical" bit from the books title starts to kick in quite strongly. If its a book with both theoretical and real world information that you want, then the coming chapters are really going to quench your thirst.

Chapter 6 goes right into the heart of on of .NET's most desired features, Windows Forms. The author explains what Windows Forms is, what GDI+ is, how to implement a good user interface, and gives real world examples of how to do all of that introducing the reader to Windows Forms' various controls. A nice section that is mentioned in several chapters is the "Whats New in Version 2.0?" section that informs the reader about what to expect in the new version of .NET in regard to that particular topic.

Because the author knows that not all people will be using Windows Forms to design their graphical interfaces, he goes into GTK+ and Glade and takes up a complete chapter explaining what they are and how they can be used instead of Windows Forms. Chapter 7 serves as a gentle introduction to the GTK+ and Glade world, and makes sure the uses knows how to pick between Windows Forms and the GTK+ / Glade combination.

After finishing Chapter 7, the user has a very good idea about how to design a complete graphical user interface using freely available tools (Windows Forms in Mono, and GTK+ / Glade using GTK# in Mono). The author now moves on to describe ADO.NET, a heavily used feature of .NET which is also available through Mono. This chapters enlightens the reader and explains all aspects of using ADO.NET in applications to connect and utilize databases. The particular example is geared towards installing MySQL. Explanation is given both for Linux and Windows, which also shows that Mono can be used as a .NET alternative on Windows.

Since XML is constantly referred to as a "hot topic", the author does not let us down and dedicates a complete chapter to discussing XML and Mono. If the reader is new to XML, then he / she will be pleased to find out that an explanation to what XML is and its history is given at the beginning of Chapter 9: Using XML. The chapter deals with looking at XML documents and traversing them. The author shows us a real world example by applying this knowledge to create an RSS feed class library.

Chapter 10 is for those of us with enthusiasm for networking and remoting. This chapter, "Introducing Networking and Remoting", starts by explaining what networks are and their general concepts, then dives into how we can do networking related programming in .NET. We apply this knowledge later on and create an RSS feed handler.

Another heavily used feature in .NET is ASP.NET. Chapter 11: Using ASP.NET, explains what ASP.NET is, how it works internally, and how to use it. This chapter shows the reader how to set up a web server for ASP.NET (both the XSP web server and an external web server) and moves on to show the user how a web service can be written. A lot of readers will find this chapter very useful as web services seem to be an increasing and expanding field right now.

Finally in Chapter 12: Using Advanced Mono Techniques, the author dives into such topics like performance tuning, reflection, and using threads. Advanced readers will particularly like this chapter as it handles some of the "harder" more demanding features of .NET.

This book not only serves as a great learning experience that shows you how things are done in the real world, it also as a general good reference for C#, .NET, and Mono and several of their features. Definitely one you should have in your bookshelf right by your work desk.

I enjoyed reading Mark's book, and I would recommend it to people that are either getting into .NET / Mono or have some experience but would like to further it."

You can purchase Practical Mono from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

2 of 110 comments (clear)

  1. Retribution by Anonymous Coward · · Score: -1, Troll

    Queers-fucking queers. I hate them. One of them ruined my life. I was married-had a good job, and a son-a son that I loved. I lost it all-all because of a queer.

    He was a guy that I knew at work. I didn't know that he was queer; I just thought he was a nice guy; I thought that he was my friend. One night, after work-we'd been working late-we stopped at a bar for a drink. One drink became several; both of us became drunk. I don't remember much of what happened after that, but I do remember that he kept touching me-kept putting his arm around my shoulder-kept touching my leg. I remember having a hard-on, but it must have been the alcohol that was causing it.

    Somehow we ended up in a hotel room-in the same bed. I remember that he was lying on top of me-kissing me. I was too drunk not to return his kisses. Then, we were naked. He had my legs spread apart. I remember that he spit on his hand-then rubbed it on my asshole, moistening it, lubricating it for what he did next-I was too drunk to resist-he raped me; he stuck his cock into my ass.

    While he fucked me-my cock became really hard; it began throbbing; I had to do something about it; it wasn't because I liked getting fucked; it wasn't because I was queer-I'm not; but, I had to beat off. As he was fucking me, I was pumping my cock. I think we both came at the same time. It was the most intense orgasm that I've ever had-but I guess that was because of the pressure his cock was exerting on my prostate; it certainly wasn't because I was enjoying it. We might have done more. I might have even fucked him-but, at some time, I passed out-and everything that happened after my first orgasm is a blur.

    I woke up the next morning-in bed-next to him; he still slept. Cum had dried-was matted, in the hair of my stomach. I was hung over. Watching him there, softly snoring, lying in the wreck we'd made of the bed, among wrinkled, semen stained, sheets, I remembered what he'd done-remembered that he'd raped me. I was furious; the God damned queer had fucked me-had actually fucked me in the ass. I remember thinking, "I'll fix him. He'll never rape anyone else."

    I had to look around for my pants-finding them, crumpled on the floor, next to the bed. I always carried a pocket knife-a Swiss army knife. Opening it, I walked around to his side of the bed, leaned over-grabbed his cock.

    He moaned slightly-but didn't awake-until-I sliced off his cock. Then, with a scream, he sat up on the bed, both hands searching his crotch-shock evident in his face-shock from the wound, from which blood was gushing-shock that his hands couldn't find his cock-the cock I held in my hand.

    He was a pitiful sight-a bloody gash where his cock used to be. When I'd sliced off his cock, I'd also opened up the front of his scrotum. His balls, blood stained, slipped out of their sack when he stood up from the bed, trying to grab his cock out of my hand. Pushing him back down on the bed, and saying, "You won't need those any longer." I grabbed his nuts-sliced them off as well. His scream-I'll never forget that scream-was piercing. I hit him to shut him up-over and over I hit him.

    Grabbing my clothes, I quickly dressed, but, by then, someone was already pounding on the door. Hearing a key in the lock, I quickly pulled open the door, jerking the hotel maid off balance-then, brushing by her, quickly ran down the hall, down the stairs, and out into the street. By the time I got home, the cops were already there. It seems that I'd used my credit card to pay for the room.

    It was a messy trial. The papers were full of it, with headlines such as, "Man Castrates Gay Lover." From the way they told it, I was also gay.

    Fifteen years-fifteen-fucking years-I got-sentenced to prison for fifteen-fucking years. He didn't even die. Fifteen-fucking years for cutting off a queer's cock and balls. Hell, I should have gotten a reward. There should be a bounty on queer's balls.

    My wife divorced me. Hell, she didn't even come to my trial-never came to visit me in jail. After

  2. The book sux as its reviewer by Anonymous Coward · · Score: -1, Troll

    The book sux as its reviewer