Now what else could I have been? I have been doing this damn job for at least 6 years, depending on what you call programming and what not, and even in the worst moments of depression and disappointment I still can't imagine myself doing anything else.

The point is that I have taken the 70-518 exam: Designing and Developing Windows Applications Using Microsoft .NET Framework 4 with 950 points of 1000. The same old story: pointless questions with some ridiculous answers and focus on technologies that nobody has really heard about like Microsoft Sync Framework or using DTOs or planning testing strategies (you only have to know how they are named, though).

Even worse, after getting almost all the questions and answers from the web in the form of a helpful .vce file, I started researching them on MSDN. I really wanted to know exactly what each question meant and why were those the correct answers. I really expected to find tons of documentation from Microsoft about all of this, but no! Not only did I not find what I was looking for most of the time, but when I did it was either obsolete information, meaning there were from 2007 or having specific message on the pages that the information is no longer valid, or formatted in a weird and unfriendly way that was not conducive to any type of training or learning.

Go ahead, try finding documentation on Microsoft Sync Framework, a Hands on Lab or anything that can be read from top to bottom and give you the ability to use that technology. Nada! There is no book for the MCPD exam, not even one that is going to be published in the future. Sure, I can download anything, install it, try it out, google for error messages and fix things up when they don't work, but I would have done that anyway!

I leave this whole experience behind with a vague sense of disappointment. I've learned a lot about WCF and I am going to read Julie Lerman's Entity Framework book now, but none of these four exams did really push me to learn anything new or (something that I feel I deserved from Microsoft) to find the best ways of doing things. It is all a jumbled, bureaucratic mess.

and has 0 comments
Somehow I have managed to read the tenth and final book in Steven Erikson's Malazan Book of the Fallen series: The Crippled God. Almost a year ago I was saying "I doubt the tenth book will be able to satisfyingly end the story." and I have to agree with myself :)

The book continues where Dust of Dreams ended, but introduces even more characters, all amassing towards a grand finale. But is it grand? And is it, or should it be, a finale? I dare say no, but first a little bit about the content of the book.

The adjunct Tavore does for the entire book things that not even the characters understand. More than that, they follow her, all the time acknowledging that they don't know why. While this may work for short periods of time, it gets annoying and breaks one of the tenets of book writing: allow the reader to sympathize with the characters. How can you, if you don't understand what they are doing? Combine that with Erikson's style of beginning chapters without disclosing who the characters are and having to wait for a few paragraphs before using any names, and you get a book that is hard to enjoy without giving it all your attention. And when you do, people start sobbing and having "raw feelings" and understanding a world of pain from a single word and what not.

To summarize, I believe Erikson finally succumbed to the writer curse of trying to force the reader to think like him. In the end, the pleasure of understanding the situation explain by the author and filling in the blanks with your own imagination is replaced with a vast blank instead.

Then there are the tactical situations. After a rather interesting campaign in Letheras in Dust of Dreams we get a long pointless march that makes no sense whatsoever, problems created for no reason and bad solutions for them. The enemy, the Forkrul Assail, are nothing more than glorified Nazis, running around and spreading their own brand of justice, but having small and clichéd thoughts and not much in the way of actual power. They draw extra power from the heart of the Crippled God in order to boost their grand Akhrast Korvalain magic, but when it is time to unleash it, it pretty much duds, making the reader wonder what the hell happened. Also the military strategy makes no sense whatsoever, down to the individual battles. That could have slipped if Erikson wouldn't have slipped of how Tavore is the greatest strategist of all time. I won't bore you with the details, let's just say that there is much more sobbing than thinking in this book.

And now to return to the grand finale. Not only did I not understand much of it (maybe I am too dumb, who knows?) but it fizzled in comparison to most of the previous books. The battle was not that grandiose, the scheming something only a god would understand, the characters rather bland, the sobbing (did I mention it?), even the Malazan marine was boring in this book. I did enjoy it, but it all felt rushed and soulless. A lot less than I have imagined the ending of this great series to be.

The last qualm I have is with another writer trap: the desire to finish up in a clean way. It has to end with Apsalar in her village and the two meddling Shadow gods like the first book began. It had to end a lot of the pieces of stories sprinkled throughout the books. It had to save people that suffered and have couples reunited. This could have worked for a romantic comedy with werewolves, for example, but not for a series of books that never wasted time on finding boring beginnings and useless endings for its many threads.

The ending of the book betrayed the eight preceding books and some of Ian Cameron's. Perhaps the many voices of the characters always whispering in Steven Erikson's ears for twenty years have finally driven him mad. Or maybe he just got bored.

and has 2 comments
Ok, time for a summary of TV shows I have wasted my time with since I've written the last post. As usual, my opinion is king and everybody else's sucks... or so I think the usual disclaimer should have sounded. So, here it the dough:
  • Doctor Who, Torchwood and even The Sarah Jane Adventures - these British shows are a bit ridiculous, but they are meant to be. I continue to watch them. Torchwood is the only one that goes towards the classic team of professionals battling the forces of evil or whatever, so it was bought by the American Starz channel. The other two are goofy and non violent, which is what I actually like about the Who concept.
  • Eureka - nothing has changed, really. There were some stirrings in the storyline, where time travel has changed the future and only some of the people involved are aware of it. I think it's a courageous thing to do in a story, but also a pretty lame cop-out for previous script errors. It's all in the motivation, really.
  • House MD - wife watches it, I mainly just fall asleep at it. It has become almost completely non medical and totally confusing. Did you catch the one minute romantic relationship between Cuddy and House? OMFG, OMFG!.. not
  • Criminal Minds and Criminal Minds - Suspect Behavior - I like Thomas Gibson and I have always felt like he was the one "making" the Criminal Minds show. What better way to test that theory than make a Criminal Minds spin-off, while taking him almost off the original series episodes? The result is a slightly more boring Criminal Minds and a horrible, horrible Suspect Behavior. And the thing is, I like Forest Whitaker and Janeane Garofalo, so I can't for the life of me understand how a spin-off of a show I like starring these two can fail so miserably!
  • Dexter - the show went in a rather boring direction for a while. I mean, you start with a serial killer and you make him a father of three that has a family, all the while trying to make it exciting. Yes, he was almost caught a thousand times and each time the solution was more and more outrageous. Towards the end of season 5 it seemed as Dexter was back on track killing people, but who knows that they will do to him in the sixth season? The latest Dexter book is about cannibals. Yumm!
  • Big Love - this show started as interesting, mostly because it was about a culture I know nothing about: polygamist Mormons, and because it starred Bill Paxton. Towards the end, though, it became so repetitive, with all kinds of moronic twists to keep the viewer interested, that I never got the will to watch it end. The episodes of season 5, last of the series, are waiting for me to watch them.
  • Fringe - Peter and Fauxlivia are having a baby! Yay! Once I stopped bitching about how lame the show is, how ridiculous the science and how bad the scripts are, I actually enjoyed it. The best show to end a hard day or to start a morning when nothing seems to work. It requires no brain power to watch. Actually, having brain power available makes it unwatchable.
  • True Blood - I still enjoy the series, mostly because people are making an effort to act well and keep the script interesting. Also because I started liking it for the vampire/werewolf Louisiana atmosphere mixing the supernatural with the superstupid and the superredneckness and they are still going strong. (yeah, I make up words as I go along)
  • Californication - the original smartness of the character spiced with a little sex turned into a lot of gratuitous sex and not too much smartness, but then it turned both sex and smartness up. (What a turn on!) I can't say if that is good or bad, but I've watched season 5 and I am looking forward to the sixth
  • Secret Diary of a Call Girl - the show ended, but left avenues open for a continuation. Billie Piper playing a prostitute was a guilty pleasure in itself, but the show was actually very enjoyable. The last season was not nearly as good as the ones preceding so I guess it is a good thing the series ended when they did.
  • Entourage - can one keep a show consistent for eight seasons? A lot of people have tried, not many actually succeeded. I enjoy Entourage still, but I feel that the original spunk and friendly youthful energy of the show has dwindled to nothing. Let's see what happens in the eighth and last season.
  • Stargate Universe - used to the other two Stargate shows, I was expecting that the last episodes of Universe be ridiculous, self referential, "screw you, we are done" style, below average quality episodes. But no! They are actually going strong and some of the mid season script and acting is making me angry for the show's cancellation. Whoever heard of great episodes in mid season AND when the show is cancelled? Blasphemy!
  • V - the second season (and probably last) ended up in a Mortal Kombat way: Shao Khan wins, muhahahahaha! It was a no brainer, really, and I won't feel bad whether it continues or not. The things that I found funny was to use some of the actors in the original series. (yes, indeed, there was another V series in 1983. And yes, I was old enough to watch it then and I did watch it and I don't really care if you don't watch anything created before 1990 :-P )
  • Men Of A Certain Age - the show is still smart, funny and tasteful. I keep wondering why is it still on. I can't wait for the second half of the second season
  • Weeds - I have to agree with the wife here: enough is enough. The show isn't even about marijuana anymore! And it gets more and more ridiculous by the episode.
  • The Good Wife - another great Tony and Ridley Scott work, pun not really intended. Characters are consistent, complex, while the story keeps me interested. Just enough human relationships to make it real, but not too much to make it soapy.
  • The Walking Dead - I was expecting a bit more from a zombie series. Apparently it is based on a comic book strip and someone told me it pretty much follows the story there. Well, it doesn't have to! [hint! hint!]
  • Haven - the first season of this supernatural "loosely" based on a Stephen King short story ended in an unexpected twist (which was to be expected). Am I waiting impatiently for the second season? Not really.
  • Rubicon - show was cancelled. I can't remember anything remotely interesting about it.
  • Royal Pains - doctors. That about says it all. This particular brand still has three unwatched episodes waiting for when both me and the wife want to watch it. It doesn't seem likely to happen soon.
  • Lost Girl - waiting for the second season. Does not require brain. Still sexy. Canadian.
  • Nikita - inertia. That's the only reason I keep watching. I have big mass, you see.
  • A Game of Thrones - oh yes! Finally something I want to talk about. Hasn't started yet, but I've read the books and they are great. A feudal fantasy world that is focused on the political machinations in the Seven Kingdoms, with a little magic thrown in to spice things up, but kept nicely in the background. I can hardly wait! It is set to start on the 17th of April
  • No Ordinary Family - about a superhero family, I have not really followed the show and meanwhile it was cancelled. bye bye!
  • Better with You - it started as a funny show to watch with the girls. It seemed as a humorous comparison of the different stages of marriage. But it became the usual background laughter at people's blatant stupidity thing and I am not enjoying it anymore.
  • Shattered - interesting concept, bad execution. Cancelled.
  • Falling Skies - a replacement for V? Aliens attack again and a resistance is formed. Set to start in June.
  • The Cape - Batman's poor little brother is trying his luck in a city that looks more like Robocop's Detroit than Gotham. Show was lame and has been cancelled, too.
  • Outcasts - oh, the humanity! A show with so much promise and so little in the way of proper execution. The premise is that humans fucked up the Earth and in a last ditch effort sent a few colony ships towards a distant planet they named Carpathia. I expected something akin to Sid Meyer's Alpha Centauri (yes, old enough to have played that, too!), but in the end it became the quasi mystical "planetary alien entity" thing, mixed with really bad acting and inconsistent scripting. So it got cancelled. It was British, it was cheap, it has potential. They still screwed it up.
  • Endgame - I am yet to find the time to watch the pilot of this show. Apparently, it is a Canadian show about a chess player that uses his skills to... you guessed it, solve crimes! If it is anything like Numb3rs, I'll watch the hell out of it. Something tells me it won't be quite like that, though.
  • Southpark - still funny as hell and I continue watching it


There are the usual anime shows, too, but I won't list them. The blog entry has gotten long enough.

and has 0 comments
A while ago I was reporting the release of theStart's latest album, Ciao Baby, and the disappointing direction of their singing. I've revisited them and noticed that Aimee Echo, Jamie Miller and Chelsea Davis started a new band called Normandie which sounds very much like the old theStart, at least from the songs they've published on their MySpace site. Here is a clip from YouTube as well:

and has 0 comments
I said to myself "I'll just read a few passages of the book, just to relax a little, as I have a lot to do". Yeah right! I've started reading and I didn't stop until it was done. Stonewielder is a classic Malazan Empire book, but also bearing Esslemont's personal touch. There is the catastrophic magic battling immense godly power, while the ordinary soldier (the book focuses on heavies) carries on lead by the tragic commander, there are the weird twists from a perspective to another, the switches from a storyline to another, typical of a Malazan book, but also a bit less epicness and a lot more human failing, more characteristic to Esslemont than to Steven Erikson.

I have to say that I find the title to be a little off. The part of Greymane is quite insignificant until close to the end. A great book, nevertheless, and a nice prelude to The Crippled God, the tenth book (and laaast! :( ) in Steven Erikson's Malazan Book of the Fallen series, that I intend to read as soon as possible.

A shameful affair, this. I barely got 820 of 1000 for the Microsoft TS exam 70-516: Accessing Data with Microsoft .NET Framework 4. I could invoke my birthday and some other circumstances to motivate my low result, but let's face it: I could have done a lot better.

What I can tell you about the exam is that most of the questions regard Entity Framework, but also Linq to SQL, classic ADO.Net, WCF Data Services. There are a few questions regarding security and the Microsoft Sync Framework thrown for good measure, as well. Also, there is a .vce file on the net from 2010-07-29, by Carina, and, even if there is some overlap, those are mostly NOT the questions in the exam, while the .vce from 2011-12-09 by acarum is a fake.

As preparation materials I've used Julie Lerman's excellent book Programming Entity Framework Second Edition, which is a thorough and well written book, but kind of huge! Try to allocate at least a month to read through it. I'd really intended to make a post with MSDN resources for the exam, but I didn't have the time.

Onwards, comrades! The MCPD 70-518 exam awaits!

and has 0 comments
Don't you hate haters? Never mind that. This kind of question is similar in logic to the CrashIE site that I've just visited (and of the malignant piece of code there - do not open the site with Internet Explorer). Basically, CrashIE is a hater site for Internet Explorer that crashes said browser or at least makes it enter a heavy CPU load cycle. The "solution", they say, is to use better browsers, and you get a nice selection of Opera and Safari and, just to be politically correct, a FireFox icon at the bottom of the page, in between the two other sites that the guy did.

Haters always lose in the end, and this Stanley Shilov will be no exception. No wonder that on his blog he is discussing using Java and Firefox on Ubuntu systems. His extensive experience with Internet Explorer is the thing that probably made him find the hidden bug that a browser will crash if you put it in an infinite loop.

How much of an asshole can you be in order to make a site that will crash some random's guy browser in order to advertise your stupid spellchecker site? BTW, I am writing this in Google Chrome, making said site useless, since it spell checks automatically in any textarea element. Is that the reason what there is no Google Chrome icon on CrashIE?

Bottom line is that you suck ass, Stanley! When I was happy using IE3.0 you weren't even born. I hate you! ;) And, BTW, this is NOT the kind of site that the CodeProject newsletter should have linked to. I am very disappointed in you, guys!

and has 0 comments
You have to excuse me, I've found this blog that I like, Ars Technica, and I can't seem to stop linking to stories there. This one is just funny: UbiSoft released their newest Assassin Creed game and, in a deluxe version, they included a bunch of extras, including the complete soundtrack for the game. However, when looking closer to the ID3 tags for the songs, it was discovered they were pirated versions, distributed on torrents after being taken from the collector's edition of the game.


There is a "theory" that piracy is enhanced by the fact that it is so easy to use pirated content and so damn annoying using the official, paid, version. So easy, it appears, that UbiSoft people found it more efficient to download the pirated version than to go through inner channels to get the songs. They essentially pirated themselves! If that doesn't make you smile a little, you must not be a geek :)

As a small joke I've added a new feature to the blog. If you don't see it, it will see you, hee hee! Warning: the eyes are not visible when the pages first load, only if you spend some time reading.

I was doing some tests with localization in a WPF application and I've found that the way to change dynamically the language for a control (and all of its descendants) is to set the Language property. In my application at least, the propagation of change in the entire subtree took a few seconds. As I found out, the way to refresh the language is to actually remove and readd children to control trees. This is probably why simply changing the Thread culture does not work, what the Language property is for and explains why the error was thrown.

During the Language change on the Window object a validation from one of the custom controls there threw a weird Exception: Cannot modify the logical children for this node at this time because a tree walk is in progress.. What could it mean?

This link on StackOverflow says something vague about a bug in the Silverlight charting toolkit, but I think that is wrong, or at least not the root of the problem. I looked through the Reflectored .Net sources and found that this exception is thrown in AddLogicalChild and RemoveLogicalChild methods in FrameworkElement and FrameworkContentElement when the internal property IsLogicalChildrenIterationInProgress is true. Apparently, this property is set to true whenever am internal class DescendentsWalker<T> is "walking" the visual and/or the logical trees. What is this class?

DescendentsWalker<T> seems to be a class used by the WPF framework to find resources, resolve property values, find ancestors/descendants in the control trees, propagate events, etc, so it is a very important low level class. Either because of a bug or exactly in order to prevent one, an error is thrown if someone is trying to change the structure of the tree while something is walking the tree. That is what the error represents.

Now, the only question is how to solve it. The validation code was trying to change the content property of a control, thus modifying the control tree. As such, I do believe this is a slight bug in the framework, as changing the tree could just wait until the tree walk is over, but still. A simple try/catch solve it locally, but what should I do to prevent such errors in the future for all of my code? I can't pad my code with try/catch blocks.

I've tried using Dispatcher.Invoke for the change, it didn't work. The IsLogicalChildrenIterationInProgress property itself does a this.ReadInternalFlag(System.Windows.InternalFlags.IsLogicalChildrenIterationInProgress); and _flags is obviously a private field of the FrameworkElement or FrameworkContentElement class that is never encapsulated into a public property. So I can't check for it in a simple way. Of course, one can always catch Dispatcher.UnhandledException and just set e.Handled to true if this error occurs (Oops, a minor worldwide tremor caused by developer shudder!), but I don't see another global solution.

Well, at least I've thoroughly examined the problem and its causes and possible solutions, however bad or annoying they may be. If you know of a more elegant solution for it, please share it. As this is the only time I ever got this error, I believe it is something that can be handled locally, but only if one knows how to test for it. So, change the Language of your windows or do other lengthy tree walks in order to protect your application from this bug.

Well, I wanted to convey something like the scene where Mr. Fancy Pants gets the icecream, but still, I passed the MCTS 70-511 exam: Windows Application Development. The grade is a shameful 982, because of a question regarding a DataGridView and a DataSet with related tables (as well as a microwave oven and non-dairy creamer), but it is still a decent pass.

Even if I knew most of the stuff already, some materials for study were: the awful MCTS Self-Paced Training Kit for 70-511 and a post from James J. Foster's blog.

MCTS Self-Paced Training Kit (Exam 70-511): Windows Application Development with Microsoft .NET Framework 4 is a terrible book. It tries to cover the entire subject of Windows application development, so that means it must explain both Windows Forms and Windows Presentation Foundation concepts. Not only that, but it must do it in a consistent, comprehensible way, avoiding confusion between similar ideas that often overlap. It fails miserably on all counts, probably because it can't be done in a single book, but also because it is a jumbled mess that no one that is unfamiliar with the concepts there can actually learn from. I wonder, was poor Matthew Stoecker presented with the questions in the exam and asked to write a book to cover them? Because that would explain a lot. The 70-511 test itself it not much smarter.

The book starts with Chapter 1: Building a User Interface, in which it presents some basic WPF concepts like controls, resources, styles and triggers. If well written, this could have been a good start. It then continues with Chapter 2: Working with Events and Commands, containing stuff about events and commands, obviously, but then animations! So a novice at desktop applications now has to suddenly contend with animation. Maybe it was a slip up, so let's try Chapter 3: Adding and Managing Content, talking about brushes and the visual tree, even transformations, but then it goes into using MediaElement and MediaPlayer to play sounds and video.

Chapter 4: Windows Forms and Windows Forms Controls starts talking about Windows Forms, but in a completely new way and structure than the WPF part. It talks about modifying properties in Visual Studio, it describes the controls, one by one, with properties and all. It's like a completely new book. Chapter 5: Working with User-Defined Controls starts with Windows Forms, then it tries to explain Control Templates in WPF, then jumps back to user controls, this time in WPF.

The book switches to data in Chapter 6: Working with Data Binding, explaining the WPF Binding mechanisms including validation, and in Chapter 7: Configuring Data Binding it talks about various data sources and DataTemplates, also for WPF. Then it moves back to Windows Forms, Chapter 8: Working with Data Grids and Validating User Input, which starts talking about data bound controls in Windows Forms, but then it goes on and on about the DataGridView. It goes on by combining in a single subchapter Windows Forms validation and IDataErrorInfo in WPF.

Before you know it, in this whole confusing bunch of thrown facts, with no structure or plan, you go through Asynchronous Processing (using BackgroundWorker and delegates, but not Tasks!), Globalization and Localization (yeah, that is the important part) and integrating Windows Forms and WPF together, all in Chapter 9: Enhancing Usability. Chapter 10: Advanced Topics manages to mix together security, application settings and Drag and Drop. Chapter 11: Testing and Debugging WPF Applications was, I think, the most decent chapter, but still kind of frankesteined together from different sources, while Chapter 12: Deployment, talked a bit about Windows Installer and ClickOnce.

Conclusion: messed up as a whole, messed up in each small part, it's a fractally messed up book! You even get "chapter summary" points that were not covered in the actual chapter. I couldn't wait for the book to end, but I've managed to read it all. On Monday I am taking a test on this, for the 70-511 exam and I am really not sure how it's going to work out. Luckily for me I knew most of the concepts covered in the book from personal experience so we'll see how it goes.

and has 1 comment
I started writing a long argumentative post about design patterns. But what is the use? They are abstract concepts that get cemented in the development industry by some influential people or some widespread adoption. Then you get to learn them in order to answer stupid job interview questions. In real life you either don't use them or they are abstracted in the programming language or framework you are using.

You dream of getting to work on your own framework so that the entire company would see how awesome you are, but you will only get to write stupid code for web shops and CRMs. And your life gets to its apogee when the architect who does the company framework or some company middle manager/owner tells you how important they are to know for your work. And you blame yourself for being so stupid and vow to spend your entire free time learning, and you read and you go to the water cooler and say "Hey, Bob, did you know the Adapter pattern is so cool?" and Bob looks at you like you are from another planet and goes to fix the latest "Font is too large in the toolbar menu" bug.

Bottom line: it's a chicken and egg thing. They need you to know as much formal programming stuff as possible so you can improve their crappy work and learning environment, while you need to work in a good work and learning environment so you can get better. The result is always an average soup of meh!

Just a month ago, overwhelmed by a number unbelievable claims from companies and lawyers at that time, I wrote the blog entry titled Ridiculous self importance, relaying what I thought of those claims. And yet now I am forced to write another one. See what happens when people don't read my blog? :)

Let's start with the already blogged move by Red-Gate to unilaterally rescind a promise they took to keep Reflector free. Just follow the link to the story for details, but keep in mind the general idea: a software company makes a promise that is completely ignored later on.

Moving on to EA Games. Like any commercial company that reaches a certain critical size, they become assholes. I am talking about the game Dragon Age II, a game that EA Games promised in the forums it would not feature SecuROM, but it does (read article here)! The company also completely fails to notify the game buyers that the feature is there. Another article then tells us the story of a player that bad mouthed the company and got banned from the company forums for 72 hours. But during that time, the Dragon Age II game he bought could not be played, either. That really sounds a bit 1984, doesn't it? The screen device watches what you say and then punishes you. Welcome to the future!

The last article (one can only hope) in the asshole saga is about Twitter. This service that I could never find a use for has grown exponentially because of two factors: the social paradigm and the API that allowed people to make their own software on top of Twitter. Having reached the critical size, Twitter now publicly announced that it doesn't need third party applications anymore. "Thank you, guys, but we will be making the money from now on. Thanks again!". This is one of the reasons why I distrust the cloud idea. I give enough control to Google deciding what is relevant for my queries (and hosting this blog :) ) to give it or other cloud providers the physical ownership of my business.

I believe these stories are related to the recent efforts to regulate the Internet and not only that, but also how you will be permitted to use your own computer or mobile device. Just like weird events before World Wars, they are only the predictors of an era in which the web will be increasingly controlled and will become just another commercial platform for companies. These events that look morally and logically absurd are attempts to shift the regulatory framework in a direction or the other, while we remain blissfully ignorant of the battle over our heads.

Hmm, mentioning 1984 and predicting World Wars... am I becoming paranoid? Well, I hope so, because the alternative is that I am right.


The book (MCTS Self-Paced Training Kit (Exam 70-503): Microsoft® .NET Framework 3.0—Windows Communication Foundation) covers just about everything there was in the .Net 3.0 version of WCF. As I was saying in a previous post, in order to "upgrade" to a 4.0 version you need to read about the router services, service discovery and simplified configuration.

What I liked about the book is that it is a no bullshit, yet comprehensive reference to the tasks for which one would use Windows Communication Foundation. I found it easy to read and comprehend and, most of all, easy to remember.