Jerry Nixon on Windows

Friday, July 11, 2014

Designing Universal Experiences

With the release of Windows 8.1 Update 1, Windows Phone 8.1, and Visual Studio 2013 Update 2, developers can now choose a different modern project type, the Windows Universal App. But with the Universal App comes three orientations, two platforms, and several new design considerations.

image

Monday, July 7, 2014

Merriam-Webster finally gives me what I have been asking for!

Listen, I love the English language as much as the next red-blooded American. A waiter’s improper conjugation and tense use can ruin a mean for me, just like it can you. But if there’s any grammatical rule that has forced me to rethink my religious insistence on word choice, it’s this one:

Thursday, July 3, 2014

Let’s Code! Handling validation in your Windows Store app (WinRT-XAML).

Many Windows Store apps are content presenters; they require very little data entry and, consequently, very little data validation. But data validation is a core component to a business apps. Is there validation built into the platform? No.

In several XAML frameworks data validation was baked-in. DataAnnotation and ExceptionValidationRule for bindings in WPF. IDataErrorInfo, INotifyDataErrorInfo, and BindingValidationError for setter exceptions in Windows Phone, Silverlight, et al. But these are not an option for a Windows Runtime developer, especially the Universal App developer. And, as we will see in this article, they were never really enough anyway. But, we have options.

Wednesday, July 2, 2014

Let’s code! In WinRT-XAML you cannot bind to a nullable type. Or can you?

imageIn WinRT, you cannot bind to a nullable type. It’s just the way it is. This is strange when you consider the ComboBox and ToggleButton; they both have an IsChecked property of type bool?. Binding to them with a simple true or false works great. Attempting to bind the third state (null) doesn’t work – it is ignored by the control altogether. You can’t work around it with a converter. And, should you peek at your Output window, you will see a silent error that reads:

Error: Converter failed to convert value of type 'Boolean' to type 'IReference1<Boolean>'; BindingExpression: Path='State' DataItem='App4.MainPage'; target element is 'Windows.UI.Xaml.Controls.CheckBox' (Name='checkBox'); target property is 'IsChecked' (type 'IReference1').

Wednesday, June 4, 2014

A closer look at the BirdBox app

imageWhen you take photos with your phone or home camera, how are they organized? How are they shared? What if there were a service out there that let you organize your photos, share your photos, and do it all for free. Welcome Birdbox. A simple Windows 8 app that lets you create nests of photos to share with groups of friends.

From holidays and parties to vacations and topics of interest, Birdbox is the easiest way to share and collect photos with groups of people. Choose which photos to share and invite friends to contribute theirs, all in one place.

Wednesday, April 30, 2014

Announcing: Developer’s Guide to Microsoft Prism 5.0 for WPF

imagePrism provides guidance in the form of samples and documentation that help you easily design and build rich, flexible, and easily maintained Windows Presentation Foundation (WPF) desktop applications. Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but that can be easily and seamlessly integrated into the overall application. In short, these applications are "built to last" and "built for change." These types of applications are known as composite applications.

Common Copyright Mistakes

Copyright is a form of protection grounded in the US Constitution and granted by law for original works of authorship fixed in a tangible medium of expression.image

  • WRONG:
    If an image is on the Internet/Bing it is in the public domain
  • WRONG:
    If there is no copyright notice, I don’t need permission
  • WRONG:
    If I don’t profit from the use, I don’t need permission
  • WRONG:
    If I remove the image after notice, I don’t owe any money
  • WRONG:
    If I alter the image X% I don’t need permission
  • WRONG:
    If I only use a part of the image I don’t need permission
  • WRONG:
    If I only include a hyperlink and click it to show the image I don’t need permission

Friday, April 25, 2014

Let’s Code: Build your own FlipView Page Indicator

imageXAML data binding is pretty powerful. One of the benefits of XAML data binding is that it lets different elements on one UI use the same data. The WinRT-XAML FlipView inherits from ItemsControl, the base class for all XAML repeaters. It shows a single record at a time.

But how many records are before the current record? How many records are after it? Without some type of page or context indicator, the FlipView is a mystery to the user. And, that’s what we’re after today – building our own page indicator for the FlipView control.

Friday, March 7, 2014

Testing your Phone app on every Nokia device just got easier.

imageWhen it comes to application testing, running your apps on phones is invaluable. To see the features you observed working in the emulator behaving as you expect on a phone is both rewarding and satisfying, not to mention the reassurance it provides that your app is ready to be unleashed on consumers worldwide. However, maintaining a wide portfolio of current phones may be impractical. Aside from the cost, Nokia phones come in a wide variety of regional and operator variants that simply may not be available in your locality. In addition, as new models are release they may not be available in your area immediately.

Wednesday, February 26, 2014

At last, C# is getting “?.”, sometimes called the Safe Navigation Operator

Visual Studio (and many other Microsoft Products) uses http://UserVoice.com as a feedback mechanism for users to suggest and vote on product features. One of the most popular features, with 3,752 votes, a new “?.” operator for the C# language, sometimes called the Safe Navigation Operator.