Jerry Nixon @Work: Metro

Jerry Nixon on Windows

Showing posts with label Metro. Show all posts
Showing posts with label Metro. Show all posts

Tuesday, September 10, 2013

How Apple’s new IPhone 5S bald-faced copied Microsoft Windows Phone

imageThere is no shame in copying excellence. In fact, I would say that a core tenet of excellence is its ability to inspire excellence in others. Microsoft had the first smartphone, that doesn’t diminish Apple. Microsoft had the first smart watch, that doesn’t diminish Google. Microsoft had the first DVR, that doesn’t diminish Tivo. You see, standing on other’s shoulders (not their necks) is a harmonious succession of advancements and innovations in the marketplace. Long live compound innovations.

Am I the only one thinking it? If Microsoft was the first, why does everyone else get credit? The reason is clear and irrefutable. History rewards the successful. Creators may innovate an idea (say, a GUI and a mouse) but whoever brings it to market successfully receives that historical reward. Of course, nobody would believe Microsoft invented the smartphone; like, nobody would believe Microsoft didn’t invent Windows – clear and irrefutable. Sort of.

imageLet’s start this out on the right foot. Is “bald-faced” a loaded word? I think what I meant was “seemingly”. :)

There is an abundance of excellence in the Apple, Android, and Windows Phone products. Excellence in engineering comes from people, and each of them employs people. Excellence in design comes from people, and each of them employs people. No single person “owns” innovation. Concurrently, no single company does either.

I believe when companies fight to be the most innovative, consumers win.  

Having said that, today was the reveal of Apple’s IPhone 5S. A truly beautiful offering. Not one that I plan to invest in, but one I can appreciate. As I admired it, I suddenly realized why I liked it. Imitation is the best form of flattery. And, the new IPhone 5S (and IOS7) has some particularly flattering features – especially when you consider them next to a Microsoft Windows Phone.

Thursday, August 23, 2012

Windows 8 Beauty Tip: Using a VariableSizedWrapGrid in a GridView makes Grids Prettier

imageUsing a GridView in XAML is the primary way to show lists of data. The GridView inherits ItemsControl and behaves like the ListView which behaves like a classic ListBox. The GridView scrolls horizontally, handles selection, rearrangement, and (as we see in this article) also allows for variable sited items.

The GridView’s ItemsPanel is a WrapGrid by default. Unlike a VariableSizedWrapGrid, the WrapGrid creates a strictly uniform grid of items. It’s beautiful, actually. The VariableSizedWrapGrid, on the other hand, lets developers create custom and create UI.

Wednesday, August 22, 2012

Hooray! Here’s all 316 pages of the Windows 8 UX Guidelines in one cool PDF

imageFortunately, we are providing UX guidelines to developers. Unfortunately, those guidelines are seriously comprehensive (aka long). As a result, and to all our benefit, the UX guidelines have been consolidated into a single PDF document.

Get the full PDF here.

Tuesday, August 21, 2012

Develop Windows 8 Apps without Windows 8? Yes, you can!

imageWindows is the premiere development platform in the world. With Windows 8, developers can leverage their existing skills and code assets to create applications. Step into these virtual labs and learn how to build, share and sell interesting and easy-to-use applications that will make your customers happy. Virtual labs are simple – no complex setup or installation required.

What is a HOLO event? It’s an online event where you listen to a live presentation and work on lab exercises. As you work on your labs, Microsoft experts can assist and provide guidance by chatting with you one-on-one or by virtually taking control of your lab.

Monday, August 13, 2012

Windows 8 apps, what’s an Enterprise to do?

imageFor decades, thousands of enterprises have run their business on custom, line-of-business systems. These can be Windows Forms, WPF, Silverlight, and even web-based Windows apps. These often include a desktop tier, some service tier, and a backend database. Millions, literally millions, of dollars have been invested into the creation and maintenance of these systems.

Should they all be rewritten?

Your first answer should be no, but that may not be your final answer. This is because no application should be rewritten without a compelling reason. Consider the development investment already made. Consider the user training investment already made. And, consider the deployment investment already made. None of that should be brushed away just because there’s a new, shiny toy. But there is more to consider than a simple version rev here. Windows 8 introduces new capabilities, new opportunities, and new scenarios that might turn your first answer on its head.

Ask this first

How to Create a Windows 8 Settings Pane in XAML

imageThere are five charms in Windows 8: search, share, start, devices, and settings. The reason for the charms is to create a single point of invocation for common tasks. What could be more common and more ubiquitous than settings or options or personalization or preferences? But how do we leverage the setting charm in our Windows 8 apps?

Note: The settings charm is not for desktop apps.

UPDATE 2/21/14

It appears that with Windows 8.1, developers will get a conversion exception in its CommandsRequested handler when the SettingsPane initialized the control. The workaround is to supply a GUID string as the item key.

// Identify control for StartPage settings
new SettingsHelper()
   
.AddCommand<StartPageSettingsDisplay>
    ("Settings",
     "{E285A7C7-9101-4E4E-8826-38E0CC7EE1CE}");

When the user invokes the settings charm by tapping it, the operating system raises an event in your app. Your event handler updates the event arguments with the different setting command links you want to display in the native settings dialog. When the user taps one of those commands, you can handle the event and reveal a flyout.

In XAML, the flyout is actually accomplished with the popup control. Unlike the flyout in JavaScript, however, the XAML popup must be manually implemented for placement, dismissal, animations, et al. As a result, I wrote the SettingsHelper which I demonstrate in the following video. This self-contained class handles all that and makes settings a matter of one or two lines.

Here we go!

In the video above, I implement my SettingsHelper to show settings in a Windows app. Take my code, learn from it, steal from it, use it, whatever helps most! If you use it, send me a note and let me know!

One more thing

I would be remiss not to mention Callisto on GitHub and available through NuGet in Visual Studio. This is a set of controls (including Flyout) that do a lot of what my helper does. It provides other controls (like DateControl) and is a fine contribution from Tim Heuer here at Microsoft.

Best of luck!

Wednesday, August 1, 2012

(new episode) Microsoft DevRadio: Why Wait? Develop for Windows 8 Now!

[image%255B6%255D.png]Dev Radio is back! Today’s show is a fun interview with Jake and Sam from Random Salad. The topic? That burning Windows 8 question: “Why wait to build your app?”

Developers have a lot of choices to make. Random Salad has their apps in the store now. Why did they decide to move forward? Let’s talk it over with some fun developers.

 

Next Steps:
Step #1 – Download Windows 8 Release Preview and Windows 8 SDK
Step #2 – Download Visual Studio Express for Windows 8
Step #3 – Start building your own Metro Style Apps for Windows 8

Subscribe to our podcast via iTunes, Zune, or RSS

If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:

Websites:

Blogs & Articles:

Videos:

Virtual Labs:

Download

Wednesday, July 25, 2012

Windows 8: Making the case for Expression Blend

imageOne of the coolest parts of the XAML designer in Visual Studio 2012 is that it is the same code base as the designer in Expression Blend for XAML. That’s right. Blend’s designer used to be better, but now Visual Studio developers are first class, too.

Thursday, July 19, 2012

8 quirks Windows 8 XAML developers should understand before starting their Metro app

imageIt’s no secret, I love XAML. I write XAML, I talk about XAML, I dream in XAML. Sometimes that’s true – especially in the middle of a project. Sometimes people misconstrue that I don’t like HTML as a result, but as a father of three daughters, I can assure you picking favorites isn’t a requirement – even if I have a favorite. ;) But as a Metro developer, there are some things XAML developers should know that will save them serious time. I wish I had this list to start!

Look, this blog is not about complaining. There is no time for that. We need to get building. This is about saving XAML developers time by letting them know the deltas between their previous XAML development experience and what to expect in Metro. Metro XAML is new, right? Yeah - it’s still in beta as I write this. WPF is a decade old and SL is half that. They have a head start and Metro XAML is winding up. In the meantime, I let’s help each other save time. 

Monday, July 2, 2012

New: V3.0 Windows 8 Certification requirements (preview)

imageWant to get an application into the Windows 8 Store? First, that app will need to pass the certification requirements established by the store. (note: every single app must meet these requirements).

Thank you for your interest in developing apps for Windows. We’re committed to a relationship with you that supports your ambitions and encourages a diverse catalog of high-quality, engaging apps for Windows customers worldwide. We crafted these certification requirements with those goals in mind and they should help you make choices that enhance your app’s appeal and help speed its listing in the Windows Store.

We review every app before we list it in the Store. If our certification requirements change, we’ll identify the updates to ease your consideration. If you have feedback on the policies, please let us know by commenting in our forum. We will consider every comment.

Your apps are crucial to the experience of hundreds of millions of customers. We can’t wait to see what you create and are thrilled to help deliver your apps to the world.

Read it here.

Friday, June 29, 2012

Windows 8: The right way to Read & Write Files in WinRT

imageWindows 8 Store Apps leverage WinRT; and, in WinRT, there are new namespaces – and namespace constriction in the .Net Framework. What you think you know, you may not.

MSDN: In some cases, a type that you used in a .NET Framework desktop app doesn't exist within the .NET APIs for Windows Store Apps. Instead, you can use a type from the Windows Runtime. For example, the System. IO. IsolatedStorage. IsolatedStorageSettings class isn't included in the .NET APIs for Windows Store Apps, but the Windows.Storage.ApplicationDataContainer class provides similar behavior for storing app settings. Examples of common changes you might have to make are included in the section Converting your existing .NET Framework code.

Read Isolated Storage

Every Windows Store App has three folders. A Local folder, a Roaming folder and a Temp folder. Each is accessed the same way. Local is meant to store assets in a local, application-specific folder.

Wednesday, June 20, 2012

Windows 8: 15 More Reasons why I choose XAML over HTML5

imageMetro developers building applications for Windows 8 have choices to make. A few weeks ago, I put together my top ten reasons I choose XAML. That really got me thinking. There are so many more than 10 good reasons why I prefer XAML. I thought I would continue the list.

First, let’s reflect on the first list:

  1. It’s a nail – I am a hammer
  2. Bind to anything
  3. Resolution independency
  4. Dependency properties
  5. Platform adoption
  1. OOP
  2. State
  3. Expression blend
  4. Debugging
  5. Vectors, vectors, vectors

I could have stopped there. Seriously, those 10 are enough. They are all really good reasons. Lots of developers commented on that blog to tell me that they could do some of those in JavaScript, too. My intention was not to prove that JavaScript was bad, my intention was to demonstrate why XAML is my choice technology. But, then again, most of those JavaScript comments were wrong (or stretching it).

Let’s not forget, XAML is one of 3 choices for Windows 8 Metro UI. You can leverage Direct3D for high-end games. Web-based games can leverage their investments with Metro’s native HTML support. And, then, there’s XAML.

And here we go…

Monday, June 18, 2012

Easily include Bing Map data in your Windows 8 Metro App

imageThere’s no question how awesome Bing Maps is. It is loaded with innovation and tons of awesome data that now you can include in your application by using their REST based services. The services provide a lot of value to developers and their apps including data source management:

New: Bing Maps Account Center now provides the ability to manage data sources created by Data Source Management API (Bing Spatial Data Services). You can now use the Manage my data sources page to view and edit all the data sources associated with your account in one place.

But the core of the Bing Maps service is the API.

There are four API services:

  1. Locations API - Use the Locations API to geocode and reverse-geocode location data.
  2. Imagery API - Use the Imagery API to get a static map and imagery data information such as map tiles and providers.
  3. Routes API - Use the Routes API to get directions and route information for driving, walking or using transit.
  4. Traffic API - Use the Traffic API to get information about traffic incidents and issues in a specified area.

This article will be using the Locations API specifically. Using this we can leverage data from other services like Bing’s Search and plot them on a map control.

Easily upgrade from Bing’s V2 API to Bing’s Data Marketplace API

imageIt wasn’t that long ago when Bing released their REST API (http://api.bing.net) to fetch search information. It was simple and powerful, and I discussed it here. But not too long ago, Bing announced that the API will be migrating to the Azure Data Marketplace. As of August 1, 2012, the Marketplace version will be the ONLY option (it’s official).

The Bing Search API enables developers to embed and customize search results in applications or websites using XML or JSON. Add search functionality to a website, create unique consumer or enterprise apps, or develop new mash-ups.

Thursday, June 14, 2012

Easily use Yahoo!’s Local Search REST API in your Metro App

imageBing, Google, Yahoo. They all have a series of APIs you can call to use their services in your Metro application. one of the more compelling services is Yahoo!’s Local Search API which allows you to find local businesses based on latitude and longitude.

Local Search

The latest version of the Local Search Web Service allows you to search the Internet for businesses near a specified location, and now returns both the latitude and longitude and Yahoo! user ratings of the establishment, as well as search by business categories.

Wednesday, June 13, 2012

Easily use Bing’s REST API v2 to get Search Data in your Metro App

imageMicrosoft Bing Search has a set of free, exposed REST APIs that has been very popular. It allows you to do a series of queries. But let me let the documentation do the talking:

Bing API Version 2.0 enables you to embed a flexible and powerful search engine as a custom search component in your sites and applications. The new version includes:

  • HTTP endpoints with results in XML or JSON
  • Enhanced support for SOAP
  • A fully OpenSearch compliant RSS interface

Something you should know

If you are anxious to port your Windows Phone application using the Bing API, you should know that they will be discontinued on August 1, 2012. At that time, they will be ported from Bing to the Azure Data Marketplace. We’ll talk about that in a later article.

Easily use Yelp’s REST API v1 to get Restaurant Data in Metro App

imageSo many of the cooler services out there have have free APIs. The data from those APIs can add considerable value to your application. Using these APIs can vary in complexity quite a bit. I have implemented a lot of these recently, and thought I would share the Yelp REST API version 1.

First: get a developer key

Yelp gives out developer keys for free. All you have to do is navigate to here and create an account, verify your email, and request an API key. When you do, you’re going to want your APP v1.0 key. A key looks like this: grwU5qatvNzGcbCR8ODWfg – but you will need your own to use the API in your application.

Monday, June 4, 2012

Windows 8: The Animated Pie Slice

imageI am currently creating a sample application that requires an animated pie slice for its user interface. So, I set out to build an animated pie slice. It turns out this is difficult, then suddenly easy.

Come learn what I learned…

The pie slice

If you were a math major then generating the pie slice is going to be straight forward, but if you were not, then you need some help building the right angles and arcs. Lucky for you there are plenty of resources out there (including this one) to get you going.

Tuesday, May 22, 2012

Windows 8: Top 10 Reasons why I choose XAML over HTML5

imageWindows 8 introduces Metro as a new a development paradigm on the Microsoft platform. I get asked which people should choose all the time. For me, I chose C#/XAML. Here I wanted to walk through some of the key reasons I did just that:

1. It’s a Nail

It turns out I am a hammer. After spending a career mastering XAML, I tend to see a XAML solution in everything. But good for me, Windows 8 provides no-compromise options to developers to choose JavaScript/HTML5, C#/XAML, and C++/XAML without giving up on features and support.

Monday, May 21, 2012

Windows 8: Top 10 Reasons why Metro development smokes Windows Desktop development

imageWindows 7 had one application scenario – desktop apps. Windows 8 has two application scenarios – desktop and Metro. Metro is the start menu, but also a shell in which app containers execute.

Note: Metro developers can build native apps in JavaScript, C#, VB, and C++. They can leverage HTML, XAML, and Direct3D, respectively. They uniformly access system devices and services through the Windows Runtime (WinRT).

So, here we go:

Metro applications are different. Metro development is different. Desktop development is still present, of course. Desktop development is still powerful, of course. However, here are my (personal) top 10 reasons why Windows Metro development smokes Windows Desktop development:

Reason 1 – Hardware Acceleration

Metro applications benefit from hardware acceleration out-of-the-box. Build your application and you get the GPU, free of charge. Moreover, metro developers get a library of animations that are not only tuned and accelerated, but also provide consistent effects across the platform.