.NET Musings

Wandering thoughts of a developer, architect, speaker, and trainer


A Review: Metro Revealed: Building Windows 8 apps with HTML5 and JavaScript

I recently had the opportunity to review Adam Freeman’s book on Windows 8 development “Metro Revealed: Building Windows 8 apps with HTML5 and JavaScript”.  Bottom line, a great first read for developers wanting to get into WinJS development.  Following is my full review.

Any time a new development paradigm comes along, whether it was the advent of .NET, ASP.NET MVC, or Windows 8 Store Applications, developers are faced with the same question.  After File -> New  Application, what the heck do I do now?  This is especially difficult on the bleeding edge of a new technology paradigm.  Windows 8 development in HTML and JavaScript presents a drastic change for most Microsoft .NET developers. Adam Freeman's book came out even before the full release of the Windows 8 operating system (more on this later), and provide valuable guidance on "what now".  I am a fan of continuity - and this book does a great job of keeping the reader enticed from chapter to chapter by building an application from start to finish.  Not just random concepts thrown at you, but a useful application (a shopping list application) that demonstrates the principles without weighing the reader down with intense domain specific knowledge.

Chapter 1 takes us through the basics - the WinJS equivalent of "Hello World", the core features of the standard "Blank Application" template provided by Visual Studio, and editing and debugging.  It also sets the stage for the rest of the chapters by outlining the application that will be developed throughout the rest of the book.

Chapter 2 introduces the first meat - data and binding.  These concepts are a required foundation for building applications. After all, can you think of an application that doesn't use data? I also like the introduction of the View Model concept and observable data - I have done a lot with the MVVM pattern in WPF and SL, and appreciate the introduction of the pattern in this book.

Chapter 3 introduces us to some of the Windows 8 controls such as the AppBar, Flyouts, and pages. It also demonstrates how external content can be brought into you application. 

Chapter 4 brings us up to speed on layouts as well as construction of application specific tiles.  A big part of the Windows 8 user interface is being able to react to not only changes in orientation, but support of snapping an application into the side of the screen.  In fact, it's a requirement for the Windows Store application process to respond appropriately to orientation changes as well as snap/fill formats.

A big part of the Windows 8 user interface (introduced in Windows Phone 7, and previously referred to as "Metro") is the tile system.  Tiles that are "live" are more compelling to users, and Mr. Freeman does a great job of demonstrating the making tiles come to life as well as adding badges to the tiles.

Chapter 5, the concluding chapter, teaches us simple methods to deal with application suspension, termination, and activation as well as incorporating the Windows 8 Search Contract into your application. 

All in all, it's a great first book for developers learning WinJS and Windows 8 Store Application development in JavaScript and HTML.  Short enough to not scare people away, and deep enough to get started writing WinJS applications. Although not one for experienced WinJS developers, I picked up some tips and tricks, and (as I mentioned above) appreciated the cohesiveness of the book and the writing style. 

I only have two negatives - and they are small.  1) This book was built using the Consumer Preview edition of Windows 8. The author does a great job pointing out where there are issues in the consumer preview and provides workarounds for those issues, but now that Windows 8 is GA, those issues and workarounds create some noise that I'm sure will be cleaned up in the next edition.  I understand and relate to the difficulty of writing about brand new technology, and like I said, it's a minor complaint.  2) Due in large part to trying to keep the book compact and concise, sometimes the code listings show code that hasn't been talked about yet.  Again, a minor issue, but as someone who follows along by typing in all of the examples (I find that a great way to retain the code concepts), it was sometimes frustrating to have some of the code talked about before the listing and some of it after the listing.

About the author

Philip Japikse

2012STLDODN.93x112 Philip Japikse an international speaker, a Microsoft MVP, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community, Phil Japikse has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil works as a Developer Evangelist for Telerik's RadControls for Windows 8 as well as the Just family of products (JustCode, JustMock, JustTrace, and JustDecompile) and hosts the Zero To Agile podcast (www.telerik.com/zerotoagile). Phil is also the Lead Director for the Cincinnati .Net User’s Group (http://www.cinnug.org). You can follow Phil on twitter via www.twitter.com/skimedic and read his personal blog at www.skimedic.com/blog.

Managed Windows Shared Hosting by OrcsWeb