I was recently asked by Packt Publishing to review another of their books. This time it was Blend for Visual Studio 2012 by Example, a book by Abhishek Shukla (@abbeyshukla), apparently, the first book on Blend for Visual Studio, even if it still covers Visual Studio 2012, most of it will apply to 2013 as well. My interest in Blend came from the fact that I recently had to work with Silverlight, and Blend is, of course, one of the must-have tools.
This book is for beginners on Blend, and it covers a number of technologies around XAML:
Each chapter starts by explaining some concept and then goes on to a sample application that demonstrates it.
So, the first chapter is just an introduction on what Blend is used for, how to get it and install it, the Blend IDE, etc. We are guided through a sample (and simple) application built in Silverlight. I'd say it's a decent start.
The second chapter talks about one of the fundamental building blocks in any graphical application: the layout components. We are presented the five basic layout panels existing in WPF (Grid, Canvas, Stack Panel, Wrap Panel and Dock Panel) and given one example of its usage (except Wrap Panel and Dock Panel). Others, like Border, Popup, Scroll Viewer, Uniform Grid and View Box are also just succinctly described.
This one is about the Extensible Markup Language (XAML), the glue that brings together WPF, Silverlight, Windows Phone and Windows Store apps. We are taught about namespaces and custom registrations, the XAML syntax, and how XAML relates to C#. We also learn about styles, a very important concept.
In this chapter, we have more styles and also templates and resources, three concepts closely intermingled. We learn about the several levels on which resources can be declared and the difference between static and dynamic resource references. Then, style definitions, targeting and inheritance and how to use resource dictionaries to skin our applications. Templates come next, in its two major flavors (control and data). We see how we can edit the templates of existing controls
This time its all about adding interactivity to applications, through behaviors and visual states. We learn about Blend's own behavior library, that can be used for both WPF and Silverlight, and get to create a sample animation. Next come visual states, the default XAML mechanism that is supported natively by both Silverlight and XAML, and we also learn how to do a similar animation effect.
In chapter 6 we go more deeply into animations using the IDE's powerful storyboard tools. We learn how to record, edit and play an animation built exclusively using these tools and how it gets translated to XAML.
Another of the major concepts in XAML is databinding, the subject for this next chapter. We are taught about dependency and attached properties, databinding modes and directions, how to load data from either XML files or our own classes and to bind it to controls. One thing that I think should be here is value converters.
This chapter talks about the graphic shapes of XAML. We learn how to import existing vector files into XAML and how to create custom shapes.
Another hot topic is reusable controls, of the two basic types: user controls and custom controls. We learn about the difference between the two, what they are used for, and create one sample of each.
This chapter is totally dedicated to building Windows Phone 8 apps. It explains the different types of projects, device sizes and resolutions and introduces the Windows Phone Emulator. Then it talks about the requirements that need to be met in order to submit an app to the Windows Store, and how can we test its compliance. Note that only the user interface is covered, not more advanced features of Windows Phone, like sensors, etc.
The final chapter is about building Windows Store Apps. We learn about the different kinds of apps available, how to certify and submit our app to the store.
Like I said, it is a book for beginners, without any knowledge of XAML, and from this perspective, I think it does a decent job. It wouldn't be possible to cover everything , but some important topics received a fair treatment.