Contents tagged with Books
It’s official: now I’m a writer!
The first and second chapters are only about HTML5 and CSS3 and how they are rendered and supported in Windows 8 and Internet Explorer 10. Some functionality makes use of Microsoft extensions to CSS, namely, the part about the layouts, and it doesn’t make any effort to make it cross-browser.
Next, on the fourth chapter, we start learning about building full apps, and for all the other aspects related with it, such as tools and licenses. We go from scratch into a full-fledged application.
Fifth chapter shows us how to display data visually by binding it to the ListView control. Sorting and filtering is also demonstrated.
Chapter six explains how to make the application more responsive, by leveraging multiple views, reacting to the actual screen size and orientation and applying “semantic zoom”.
On the seventh chapter we learn about how to display notifications on the Start screen. Tiles, badges and notifications are all presented and explained.
On chapter eight we learn about the registration process for submitting a new app to the store and how to obtain information about the current user.
Chapter nine is again about the user interface, this time, menus and commands.
Next chapter, ten, is all about packaging and deploying our app to the store. We are offered a tour of the process, which is a complex one, and requires third-party interaction, namely, the certification phase from Microsoft.
Finally, chapter eleven explains how to implement the user interface in XAML, which is an alternative method to using HTML. The two techniques, however, can coexist in the same application, by using different pages.
This being said, it was an interesting read, a nice book for getting into this new thing, although I guess more experienced users will find it limiting. Good for starters, definitely.
All included examples can be implemented with either a free version of Visual Studio - Visual Studio Express 2012 - or a commercial one. Of course, you will also need Windows 8 for the APIs to work, which should be no surprise.
In the past days I’ve been reading Instant StyleCop Code Analysis How-to. Having interest in static code analysis, I have always been interested in StyleCop and FxCop, Microsoft’s static analysis tools, so this came with great interest.
The first chapter shows how to install StyleCop and how to integrate it with the various Visual Studio editions still around, from 2008 to 2012 (still not 2013, of course).
Next, it goes on to talk about integrating with Resharper, the productivity tool we all love, so that it uses StyleCop’s rules besides its own. You must be aware that specific Resharper versions only work with appropriate StyleCop ones; you will find a compatibility matrix at StyleCop’s web site.
Then it moves on to explain how to integrate with MSBuild, the build engine used by Visual Studio. This will allow us to have compile time checks, which is definitely a good thing.
The next chapter talks about running StyleCop from the command line, which is also useful for automation/continuous integration scenarios.
NAnt is next, then Hudson and Jenkins (successor/fork of Hudson), which I honestly haven’t read because I don’t use them. I would sure welcome a chapter on Team City and Team Foundation Server, or even Team Foundation Service instead, but…
The book goes on to talk about how to customize document headers (comments), so as to prevent violations.
Following that, my favorite chapter, on creating custom rules. Granted, this chapter is identified as simple, but I would sure appreciate if it had gone a bit further.
The final chapter explains how we can integrate StyleCop with our own tools, by providing a working example of a real-time analysis tool for MonoDevelop. I’m not a MonoDevelop user myself, but the concepts are interesting.
All in one, it is an interesting and easy to read book, but don’t expect advanced contents!
Visual Studio 2012 and .NET 4.5 Expert Development Cookbook
I recently started reading Packt Publishing’s Visual Studio 2012 and .NET 4.5 Expert Development Cookbook. It is a book focused primarily on the new features of .NET 4.5 and Visual Studio 2012. Although some concepts already existed in previous versions (some Visual Studio IDE elements, for example), others are quit new (take Windows 8 programming APIs and the new asynchronous syntax). It follows the now classic recipes or cookbook approach, where for each category, a number of recipes are presented with a brief description of their purpose and some code to illustrate the solution. It is a very focused book, it doesn’t cover anything that shouldn’t be there.
The first chapter is about the IDE, how to use it effectively and how to extend it without using code. It walks us through creating templates and code snippets and in the process we get to know smart tags, refactoring options, UML diagrams and other nice functionality.
On second chapter, the focus is .NET application and memory management. We learn about the internal structure of a .NET assembly (actually, its various types), garbage collection and memory management and even how to disassemble it with ILMerge or Reflector. Talking about disassembling, some tips for protecting an assembly against it are also presented by means of Dotfuscator. Also includes an interesting tip on detecting memory leaks. This is the one chapter that mostly deals with pre-.NET 4.5 concepts.
Next comes asynchronous programming, something that most people (including myself) are looking with increased interest since the arrival of .NET 4.5. The chapter presents all programming models currently available for .NET developers and talks about some not well known thread synchronization objects and techniques of the .NET world, including guidelines on choosing the appropriate mechanisms. Finally it covers the new async and await pattern.
Following is a chapter on the new enhancements to ASP.NET, which go from HTML5 editor and syntax support to working with strongly-typed models in data-bound controls. In the middle, it also covers using asynchronous programming techniques in pages, modules and handlers and effectively using jQuery. There’s also a recipe on actually using some of HTML5’s new features, which is not strictly on ASP.NET, but is useful nevertheless.
WPF is next. The very popular MVVM patter is presented together with the new improvements like Ribbon support, a feature which seems to be becoming ubiquitous in Microsoft products.
The last chapter talks about the various options for communicating and sharing contained within Windows 8. Also a very interesting one, of which I knew nothing about. It covers the ways by which we can share data between Windows 8 applications, writing notification services in WCF and displaying notifications in tiles or toasts.
It was a very pleasant read, I am sure to return to it very often, for some of the topics are very wide.
It is an introductory book, targeted at WPF newcomers or users with few experience, following the typical recipes or cookbook style. Like all Packt Publishing books on development, each recipe comes with sample code that is self-sufficient for understanding the concepts it tries to illustrate.
It starts on chapter 1 by introducing the most important concepts, the XAML language itself, what can be declared in XAML and how to do it, what are dependency and attached properties as well as markup extensions and events, which should give readers a most required introduction to how WPF works and how to do basic stuff.
It moves on to resources on chapter 2, which also makes since, since it’s such an important concept in WPF.
Next, chapter 3, come the panels used for laying controls on the screen, all of the out of the box panels are described with typical use cases.
Controls come next in chapter 4; the difference between elements and controls is introduced, as well as content controls, headered controls and items controls, and all standard controls are introduced. The book shows how to change the way they look by using templates.
The next chapter, 5, talks about top level windows and the WPF application object: how to access startup arguments, how to set the main window, using standard dialogs and there’s even a sample on how to have a irregularly-shaped window.
This is one of the most important concepts in WPF: data binding, which is the theme for the following chapter, 6. All common scenarios are introduced, the binding modes, directions, triggers, etc. It talks about the INotifyPropertyChanged interface and how to use it for notifying data binding subscribers of changes in data sources. Data templates and selectors are also covered, as are value converters and data triggers. Examples include master-detail and sorting, grouping and filtering collections and binding trees and grids. Last it covers validation rules and error templates.
Chapter 7 talks about the current trend in WPF development, the Model View View-Model (MVVM) framework. This is a well known pattern for connecting things interface to actions, and it is explained competently. A typical implementation is presented which also presents the command pattern used throughout WPF. A complete application using MVVM is presented from start to finish, including typical features such as undo.
Style and layout is covered on chapter 8. Why/how to use styles, applying them automatically, using the many types of triggers to change styles automatically, using Expression Blend behaviors and templates are all covered.
Next chapter, 9, is about graphics and animations programming. It explains how to create shapes, transform common UI elements, apply special effects and perform simple animations.
The following chapter, 10, is about creating custom controls, either by deriving from UserControl or from an existing control or framework element class, applying custom templates for changing the way the control looks. One useful example is a custom layout panel that arranges its children along a circumference.
The final chapter, 11, is about multi-threading programming and how one can integrate it with WPF. Includes how to invoke methods and properties on WPF classes from threads other than the main UI, using background tasks and timers and even using the new C# 5.0 asynchronous operations.
It’s an interesting book, like I said, mostly for newcomers. It provides a competent introduction to WPF, with examples that cover the most common scenarios and also give directions to more complex ones. I recommend it to everyone wishing to learn WPF.
Win A free copy of the 'Windows Presentation Foundation 4.5 Cookbook', just by commenting!
How you can win:
To win your copy of this book, all you need to do is come up with a comment below highlighting the reason "why you would like to win this book”.
Duration of the contest & selection of winners:
The contest is valid for 14 days (until December 3), and is open to everyone. Winners will be selected on the basis of their comment posted.
This book is written in an easy-to-read style, with a strong emphasis on real-world, practical examples. Step-by-step explanations are provided for performing important tasks. This book is the best guide for C# developer who is looking forward to increase understanding and knowledge of WPF.
Using this book, readers will learn to build complex and flexible user interfaces using XAML, perform lengthy operations asynchronously while keeping the UI responsive, get well-versed with WPF features such as data binding, layout, resources, templates, and styles and also customize a control’s template to alter appearance but preserve behavior.
In the next days I will post my review on this book. In the meantime, here’s the table of contents:
Chapter 1: Foundations
Chapter 2: Resources
Chapter 3: Layout and Panels
Chapter 4: Using Standard Controls
Chapter 5: Application and Windows
Chapter 6: Data Binding
Chapter 7: Commands and MVVM
Chapter 8: Styles, Triggers, and Control Templates
Chapter 9: Graphics and Animation
Chapter 10: Custom Elements
Chapter 11: Threading
I’m waiting for your comments!
OK, here's the review I promised a while ago.
Packt Publishing has recently released a new book on NHibernate: NHibernate 2 Beginner's Guide, by Aaron Cure. I am now reading the final version, which Packt Publishing was kind enough to provide me, and I will soon write about it. I can tell you for now that Fabio Maulo was one of the reviewers, which certainly raises the expectations. In the meanwhile, there's a free chapter you can download, which hopefully will get you interested in it; you can get it from here.
I finally had the chance to read the long-waited NHibernate in Action, and I must say I am not very excited about it.
Covering just NHibernate 1.2, the book is, of course, extremely outdated. It does not cover any of the new features, and, what's worse, it does not cover well some of the old features, for example, there is no HQL reference, which I think it's a shame, although it is somewhat referred in chapter 7, nor there is a reference to some other projects, such as NHibernate Validator.
What matters is that if a developer wants to use NHibernate 2.x in a new project, he/she will find the information in this book inaccurate and misleading - NHibernate now supports SQL Server's TIMESTAMP data type for optimistic concurrency, for example, there is the NHibernate Burrow project to support long conversations, NHibernate Validator for validations, there is support for TransactionScope, <many-to-any> mappings, query-only properties, multi-queries, to name just a few.
The book does a fair job in introducing NHibernate, but I sincerely don't like the organization of it.