Archive for the “Book Reviews” Category

Programming Atlas, by Christopher Wentz, has not yet officially been released but I’ve had the chance to read it and keep up with progress through the O’Reilly Rough Cuts program. With its last update happening over a month ago, I anticipate that its now press ready and that a review of the book would be appropriate at this time.

Programming Atlas

Even though Atlas has not yet been officially released, this book is already a late comer to the market. It’s been beaten to market by a variety of AJAX texts that included some coverage of Atlas and at least one dedicated Atlas book from Apress. With all the press around Ajax and the huge Microsoft ASP.NET programmers market, putting out a book in the Atlas category is an opportunity that won’t be ignored by the major publishing houses. After trying out Atlas for a while during its Community Technology Preview (CTP) release and seeing the fairly extensive documentation and examples released by both Microsoft and the community, I tend to think that it’s an opportunity that they might best have chosen to ignore just the same.

Working through Christopher’s book, things appeared to be clustered into several sections. Although this is not officially the way the book is broken down, it makes the most sense from a reviewing standpoint:

  • Introductory Chapters – Introduction to Atlas, AJAX, JavaScript, and client-side controls. This material takes up the first eight chapters (i.e. half) of the book and the information contained within can largely be garnered elsewhere including articles, books, and the Atlas documentation. If you’re not entirely new to AJAX, this section of materials is skimmable or skippable entirely.
  • Server-Side Chapters – These chapters cover using server data, custom data sources, Web services, and cross-domain calls using a server proxy. This is by far the best original material in the book and is well worth a read.
  • Atlas Implementation Chapters – This section covers the broadest array of topics. Some of it, such as extending controls and using Atlas with Web parts, is very interesting material. Other sections, such as Map mashups (using MapPoint, blah!), and the Atlas control toolkit (great tools, no value added above and beyond MS materials).
  • “Other” Chapters – Certainly not what I bought the book for. Using Atlas with PHP, other AJAX tool coverage, although interesting, was put at the tail end of the book for a reason. This material could just have well been made into appendixes or omitted entirely.

All in all, Christopher’s writing style is good and he gives adequate coverage to the breadth of Atlas topics. This book might make for a good desk reference but is a tedious end-to-end read. Stick to the documentation or go for more pragmatic materials such as O’Reilly’s other offering in this area, Getting Started with Atlas, from their shortcuts series.

Comments No Comments »

When I purchased this book almost 3 weeks ago, I was surprised to find that it had been on the shelves for 3 months already. Books that unify advanced architectural concepts such as Domain-Driven Design and design patterns are few and far between. This is especially true in the .NET world since many of the source materials originated in the Java realm.

Applying Domain Driven Design and Patterns

Nilsson does a rather unique job of puling together some of the best domain-driven, object-oriented patterns and approaches and explain them using .NET-specific examples. The pros and cons, as I see them, are taken from my Amazon.com review and reprinted below:

Pros

  • Combines the ideas of Domain Driven Design (Evans) with Patterns of Enterprise Application Architecture (Fowler). These books are pretty much mandatory reading prior to diving into this book.
  • Draws upon a myriad of other well-known sources, including materials from Refactoring to Patterns and the GoF, work from Johnson and Lowy, as well as a rare reference to Naked Objects. The more experienced and better read you are, the more this stuff will make sense.
  • Rare .NET coverage of advanced concepts like Plain Old CLR Objects (POCOs), persistence ignorant (PI) objects, O/R mapping with NHibernate, Dependency Injection, Inversion of Control, and Aspect-Oriented Programming.

Cons

  • While some sections are really insightful and could contain more interesting materials, other sections seem to drone on too long. The work on defining the NUnit tests, in particular, flows like a stream of consciousness and doesn’t really add a lot of structured value to understanding DDD, patters, or TDD for that matter.
  • Embedded comments in the text adopt from the style used in Framework Design Guidelines. It worked very well for Cwalina / Abrams in their book because it seemed planned in from the outset. Comments like “one reviewer commented on the code with the following, more succinct version” seem like editorial comments left in and not collaborative authoring by design.

Comments No Comments »

I stumbled onto the book Getting Real: The smarter, faster, easier way to build a successful web application while canceling my Backpack service with 37signals. True to the advice they give in the book, 37signals made canceling their service very easy – one of many valuable nuggets of advice offered in the book.

Getting Real describes the practices, both software development and beyond, used by 37signals, a small company that despite their excellent, easy-to-use applications is perhaps still best known as the innovators and driving force behind the Rails framework. Given the tie to the Rails creators, it is not surprising to learn that this book espouses an Agile approach to software development. What differentiates this book from other Agile texts is that it blends both Agile software development practices with, dare I say it, pragmatic guidance from 37signals and other industry notables on the business of creating, releasing and managing Web applications in the Web 2.0 world. This includes advice on staffing and the organization (borrowing from Peopleware), application design (using a user story / UI approach as opposed to a user story / domain object approach), pricing and signup, promotion strategy, support and post-implementation activities.

Getting Real - The Book

The book could not have been released at a better time. It will function very well as a handbook for operations at GeoGlue as the team expands. To that extent, I believe you can even purchase an organizational license to the book for about $50. There are a couple of real gems in here (for the Ruby crowd, no pun intended) – one of my favorites is the obligatory sections beating up on functional specifications.

“A bunch of people agreeing on paragraphs of text isn’t true agreement. Everyone may be reading the same thing but they’re thinking something different. This inevitably comes out later on: ‘Wait, that’s not what I had in mind.’ ‘Huh? That’s not how we described it.’ ‘Yes it was and we all agreed upon it – you even signed off on it.’ You know the drill.

Further, I appreciated the analogy between agile approaches and parallel efforts outside of software engineering such as military special operation forces and hurry-up offenses in American football. In this respect, I’m sure functional specifications will continue to have their place, as do conventional forces that constitute the majority of our military and the huddle-based offense run during 95% of your average football game. Getting real is a great approach – but it’s not the only approach.

In the end, I measure a book by how timeless it is and how often I refer to it after my initial reading or perusal. I believe that, in this sense, Getting Real will take a coveted position next to classics by Fowler, the GoF, Stephens, Wall, and others.

Comments 1 Comment »

I got through the entire book Pragmatic Version Control Using Subversion over the weekend. You can read my Amazon.com review on the book’s page. Overall, the book follows in the footsteps of the other guides in the Pragmatic Programmers series in that it is written to be easily understandable and provides to be a relatively light read

Pragmatic Version Control Using Subversion

Although the first several chapters are relatively elementary, the material gets a bit better as the book progresses. Towards the back of the book, there is coverage on organizing Subversion projects and directory structures, handling common libraries, and dealing with vendor libraries and source code. To me, it was this material that justified the cost of the book. If you’re interested, I’d personally recommend getting the book directly from the Pragmatic Programmers website (no offence, Amazon). These guys are very good about providing updated versions of their books as they become available. They are usually free of charge or at reduced rates. A great bargain as long as you don’t mind reading PDFs.

Comments No Comments »