The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

phenryll (12) [Avatar] Offline
- The walkthrough (p. 73 onward): I find confusing the naming convention you have applied : "Web with no suffix" etc. Cannot we used "Shared" instead? Or "Client" etc? It would be more meaningful.
- provide a screenshot of the final solution with projects expanded and comments to what are crucial to get: shared projects, shortcut symbol, client, etc. + comments (such as those for listing code). That's highly valuable
- many occurences of ViewModel are written "viewmodel". Use Camel Case instead.

p. 65 3rd $ "Once we clean up with SOAP, We'll move...": fix typo

p. 67 14.1.1 sidebar "Use exiting VS 2010 installations:": fix typo "exiting"

p. 67 14.1.1 sidebar "Use exiting VS 2010 installations:": which version of VS are you mentionning? Express or above?

p. 71 bullet list: sort the items by their importance. Starting with conditional compilation sounds odds.

p. 71 14.2.1 change the title "Create the source class library" is geek-centric; why not "Creating the model"? Besides Change "Create" to "Creating" and 14.2.1. focuses on creating 2 projects

p. 74 14.2.2 Update the title "Create" to "Creating". Besides I don't like the terminology "class library". Instead use Client. Whatever the name, keep the terminology as meaningful as possible. Avoid kind of "hack" (if possible) such as removing the Web suffix for the shared project. I woudl be curious to confront my understanding of the walkthrough with the complete source code itself.
You should definitely provide a screenshot + comments (like listing).

p. 75 latest §: provide a small screenshot of the shortcut symbol, no more than 50*50; visual stuff helps a lot to follow along.

p. 76 first 2 lines: definitely provide the name of the project along "Metro style client app" and "Metro class library" for the sake of readability

p. 76 14.3.1 You assume lots of stuff have been done by the user, which is unfair. You provide screenshots for stuff (class library) that all developers have done thousands of times while you skip over stuff more specific such as WCF services? It is a matter of a couple of screenshots.

p. 78 figure 14.8 picture is just too big. You skip over screenshot for WCF services but provide a huge screenshot for "Add service reference". I don't udnerstand the logic. Adapt.

p. 80 listing 14.6. MainViewModel class should be public.

p. 81 comment #A: the comment is pointless. Insist on INotifyPropertyChanged as it is a key point

p. 83 listing 14.7 comment #B : it is page title

p. 85 14.5: Restful is all about accessing resources. Resource is the missing word. Mention it

p. 85 end of 14.5 ".ENT": fix typo

p. 87 comment #A: pointless comment. Instead insist on APIControler as the base class the message controller derives from

p. 87 before latest §: One crucial aspect of MVC is "Convention over configuration". the missing word is "convention". Touch it on.

p. 87 latest §: why /api/messages instead of /messages? Is /api/ always required by convention? Explain why in this case get is automatically called (it is a concrete example of what you explained)

p. 88 latest § : "crack open" is vague for non English-speaking users. Rephrase to something more traditional

p. 89 listing 14.11 close the connection. Stream implements IDisposable, then refactor to "using". Provide the contentType for the HttpWebRequest object (you did it p. 97 for JSON. Do not let default behavior to avoid side-effects)

p. 90 comment #A: rephrase to "initiate", which is more accurate

p. 90 § before the latest one: providing the contenType may be required?

p. 90 14.6 Use JSON.Net instead as Json.NET will be included as the default JSON serializer in Web API by the time it’s released. see

p. 91 listing 14.12: provide the content-type. I don't understand: _messages.Clear(); provide a comment
Add a comment to the namespace (because you touch on after)

p. 92 14.6.2 2nd sentence: "In general, JSON is lighter-weight format" compared to Xml. To me it is always, I cannot figure out any case where Xml is lighter than JSON.

p. 92 listing 14.13 I don't understand: _messages.Clear(); provide a comment

p. 94: latest §: about configuring the full version of IIS: you don't need to use the GUI. Even if you use the full IIS, the code you provided for web.config should work as well for IIS full (ASP.NET is a first-class citizen in IIS)

p. 98 listing 14.18 "(int)DateTime.Now.Ticks & 0xFFFF": what does the result look like?

p. 100 side-bar - latest § : provide it as illustration in the companion source code?

p. 101 instead of dataContractJsonSerializer. "Cross-compiling": first occurence. You should mention it while explaining code sharing at the beginning of the walk-through.