Full description not available
P**Y
Superb
A superb tutorial on hand-coding MSIL which I failed to discover anywhere else! The chapter on dynamic proxies in particular solved a problem I was having, so massive credit to the author for producing material that could otherwise have made a difficult topic to grasp even worse!
P**S
Interested but disappointed
When I received this book, I have to admit I was quite excited - whilst programming is only a hobby, I have got quite into using Microsoft's new .Net languages (particularly VB.Net, but a dabble at C#) and was interested to discover more about how they all compile down into a common Intermediate Language (often called MSIL, but called CIL in this book). I would assume that many other people would have the same motivation, since I struggle to see why else anyone would want to understand CIL, apart from a desire to understand the high level languages better - the impetus to write assembly language just doesn't seem to be there these days!In practice, I found this book disappointing from that perspective. To me it seemed to dive into irrelevant detail at the start, which made me lose some of my motivation. It ended with what was, to me, a highly arcane set of examples of using CIL to create code on-the-fly and therefore instantiate dynamic proxies. (I have to admit to never having felt a need to write one of those...).In between the start and the end was some treatment of assembler directives, assembler opcodes and how to debug the assembly language. I guess it's possible I may return to those out of interest at some time in the future, but the lack of relevance to what I was really interested in limits my enthusiasm.I have to say that I seem to be unique in the internet community in that I didn't really enjoy this book. Other reviews I've read have raved about it, so I guess how much you value it depends on your motivation for reading it - and it seems my motivation was the wrong one for this particular book.
L**I
CIL - Microsoft's Assembly for .NET
Has this ever happened to you... There's this new technology or programming language that you're dying to learn, but there are no books. Finally, someone writes a book, you get the book from the bookseller (Amazon), you open the book, and you thumb through the pages. Well, that's the way I felt about learning Microsoft IL for .NET. I really was keen about learning .NET's "assembly language" because throughout my career I found that having low level knowledge about how a system is put together is very, very useful. Now, I'm not suggesting that you stop everything you're doing and run out to learn CIL programming. However, I believe that if you want to be a serious .NET professional, learning CIL should definitely be on your To-Do list.So what about Bock's Book: "CIL Programming: Under the Hood of .NET"? In a word - disappointing. Bock spends most of the book's first chapter entitled "Language Interoperability" on detailed discussion of programs written in a variety of languages. He's trying to make the point that the CLR allows programs written in different languages to freely interoperate. Duh? Why spend the better part of the book's opening talking about everything but CIL. There's even an Oberon (?) programming sample here.The second and third chapters on ILASM Directives, and, CIL Opcodes, respectively, read like my weekend shopping lists. While it is true that programming books have to regurgitate all the nasty details of the programming language, the good books tell its readers how to internalize the information and describe useful ways of summarizing the information in one's mind. That is, the authors of the better books have figured out some rhyme and reason to the language and they share these insights with their readers. On the other hand, this is what I found in these two most important chapters of Bock's book: the more I read, the more questions I had. I wound up spending significant time on the NET trying to resolve questions that were raised in the material in these two chapters. Clearly, the author did not anticipate these questions.The fourth chapter, "ILASM and CIL in Practice" is a decent discussion of a typical sample program in IL. It demonstrates some of the IL constructs and programming concerns discussed in the previous chapters.Chapter 6 is interesting. Here the author talks about and contrasts the IL generated by various programming languages. Some of the VB.NET and C# exposés were eye-opening, but then Bock goes back to Oberon again.The author ends off the book in chapters 7 and 8 with some very long and tedious samples. I got nothing from this. Chapter 9, the last in the book, is a two-pager on "CIL Tips".So why do I give this book 3 stars?1) The book includes Chapter 5, a well-written and interesting discussion about CIL Debugging.2) Right now, Bock's book is one of three books that talk about CIL. It is the only book that is targeted directly at programming. Although John Gough's "Compiling for the .NET Common Language Runtime" is an excellent book, it is very specialized and targets would-be compiler authors. I didn't read the third book in the IL arena, Serge Lidin's "Inside Microsoft .NET IL Assembler", but I did thumb through it several times (you know what little that is worth): this book strikes me as being very difficult.RECOMMENDATIONS:If you need to learn IL Programming right now, buy Bock's book - read the second half of chapter 1, and read Chapters 2-5, maybe Chapter 6. If you have the time, money, and inclination, then buy and read Gough's book. You'll need a lot of time for Gough, but you will definitely learn.If learning IL is not that pressing right now, I would wait to see if someone else releases a better book.
Trustpilot
3 weeks ago
2 weeks ago