Showing posts with label BUILD. Show all posts
Showing posts with label BUILD. Show all posts

Wednesday, September 21, 2011

When Should You Use Metro, Version 2

picking-win-platform-v2

During my busy week at the Microsoft BUILD conference, I cranked-out a quick and rough decision tree designed to help you decide which Microsoft platform you should use for app development: Silverlight/WPF, HTML5, or the new Metro/WinRT. The chart proved to be very popular, so I thought I'd revisit the decision tree and with the benefit of more time to reflect, produce a new, more complete version.

Thus, I present version 2 of the "How to Pick Your Platform" chart.

What's Different?

In the original chart, the first question I made you answer was, "Do you need to support Windows 7?" It's a fair place to start given that everything new introduced at BUILD is Windows 8 only. There is no path for Metro back to Windows 7 (or Vista and XP, for that matter).

But in today's world, Windows is not the only relevant OS in town. We've been trained through years of Windows dominance to think building for Windows is building for the biggest audience, but we need to update our thinking.

Yes, Windows remains the dominant desktop OS. The problem is that many people are now doing more "computing" on non-desktop devices, like iPhones, iPads, Android devices, and (for now) Blackberry. In this realm, Microsoft (and Windows) is just one OS choice among the pack.

So the first question shouldn't be about which version of Windows you want to support, it should be about your desire to build software that targets the broad marketplace of devices and operating systems.

With that change, if you answer out-of-the-gate that you want to build an app that can reach iOS, Android, and Windows, the decision is easy. Use HTML5 and JavaScript for your frontend (perhaps using PhoneGap to leverage more native device features), and any server technology you prefer for your backend (including ASP.NET). (This is the type of app scenario perfectly served by the JavaScript/HTML5 Kendo UI framework.)

Silverlight, WPF, and WinForms

In the first version of the chart, I oversimplified the choice of Silverlight/WPF if you decided to build Windows apps that support all versions of Windows. I've expanded that decision tree in version 2.

As part of that expansion, I also reintroduced WinForms as valid platform choice (because it is).

I was reminded during the BUILD week after visiting with a customer that WinForms is still hugely active as a Windows development platform. Of course, I knew that from Telerik's own experience with growing WinForms popularity, but it doesn't get talked about often enough. We've all be talking XAML for the last 3 or 4 years, but WinForms has continued to get work done. It was good enough to solve business problems in 2001. It still remains good enough to solve many business problems in 2011.

So while Microsoft is spending time with Windows 8 trying to win the minds of consumers, the business app story marches on with Silverlight, WPF, and WinForms. Pick between these platforms the way you always have and the apps will work Windows 8 through Windows XP.

The only new "edge" for Silverlight is that your skills building those apps will more quickly translate to Metro if you decide to build Metro apps in the future.

Metro App Types

Another "enhanced" decision point in the chart is around deciding if your app belongs in Metro or in the "standard" Windows desktop mode (assuming you're already targeting Win8). With the support of a great new blog post from Telerik EVP Doug Seven, you can now decide if your app fits one of the five Metro app scenarios:

  • Data Snacks
  • Social Networks/Mash-ups
  • Content/Media Apps
  • Casual Games
  • Graphical Games

Metro in Windows 8 is not appropriate for every app.

Clearly, missing from Doug's classification are any business app scenarios. This is intentional. Business apps still belong in desktop Windows, even with Windows 8. And if you start building for the desktop, the platform decision is back to Silverlight, WPF, and WinForms.

Three Flavors of Metro

Finally, assuming you answer all of the questions correctly to lead you towards building Windows 8 Metro experiences, I expanded on the process of selecting the proper "flavor" of Metro. Generally speaking, there are three flavors of Metro, all underpinned by Windows Runtime (WinRT):

  1. XAML + C#/VB WinRT
  2. HTML + JavaScript WinRT
  3. DirectX + Native Code WinRT

You can theoretically use any of these options for building any Metro app, but realistically, some are better suited for certain tasks than others.

Most obvious, native code and DirectX. I guess you could build a Twitter app with Native Code, but why would you? You'll waste way more time coding than you'll gain in performance, so probably not the best choice. Instead, this raw, on the metal option is generally best reserved for rich, immersive games.

After that, it becomes more a matter of choice.

Blend 5 and Visual Studio vNext provide similar design and debugging experiences for .NET and JavaScript, so at some level it comes down to your preferred language and team skills. Microsoft is writing many of the built-in Metro apps with HTML/JS (like the Windows Store and Metro Mail), but my guess is that the community at-large will do lots of Metro development with XAML.

Don't Get Overwhelmed

Choice is good to a point. Too much choice is paralyzing.

With the introduction of three new ways to build apps for Windows, you may feel like you're trying to pick between a billion new and "old" ways to build for Windows. Don't panic. Just use my simple chart, and your decision is easy. And no matter which decision you make, Telerik will continue to make you a .NET Ninja Rockstar with industry leading tools and support.

Thursday, September 15, 2011

How to Pick Your Platform: Silverlight, Metro, or HTML5


While Windows 8 is ushering in an exciting new model for Windows development called "Metro style apps" that run a new "unified" Windows Runtime (WinRT), it's not necessarily the right choice for all new Windows software development. In fact, there are a lot scenarios where it's not a good choice.

In this over-simplified decision tree, I try to provide some crude logic for how to pick between your platform options. Clearly, there are many nuances not covered in this tree, but I'll work on expanding the "logic" to make it more bullet proof in the coming weeks.

The first decision is the most important, though: Do you need to continue building apps that work in Windows 7?

If your answer to this question is "Yes," Metro style apps and WinRT should not be on your radar. These are Windows 8 only technologies, and there will be no backport layer that will let you run Metro apps on Windows 7.

That means any project that has as a requirement "Support Windows 7 clients," should only be considering WPF, Silverlight, WinForms, and "web" technologies (HTML/JavaScript + their server-side counterparts, like ASP.NET). It's that simple.

IF, however, you want to put apps on the Windows Tablets that will start shipping late next year, and IF you accept that these apps will only run in that Windows 8 Metro environment, then you should start digging-in to and learning WinRT.

For everyone else, don't lose sight of reality. And reality in a Windows 7 world (that will still work in a Windows 8 world) means Silverlight, WPF, and HTML5. (And, of course, Telerik is already armed with all of the tools you need for today's reality, and we're preparing tools for tomorrow's Metro option.)

Wednesday, September 14, 2011

BUILD Day 2 Keynote: What You Need to Know

With the California sun now rising in the sky, it's time for another fresh day of BUILD and the all important Day 2 keynote. Like yesterday, rather than compete with the live video stream, I've real-time condensed today's keynote in to the key moments you need to get the overall jist of what Microsoft shared. This isn't a blow-by-blow blog of the keynote, but if you spend 5 minutes reviewing this post, you'll know what you need to know from the second BUILD keynote.

Key Keynote Moments

  1. Windows 8 Tablet Distraction
    Not explicitly said or part of the keynote, it's worth noting that much of the audience seems to be distracted by their shiny new Win8 tablets this morning.
  2. Devices + Cloud
    Here is one of the "missing" elements from Day 1: extended talk about the cloud. In the opening of Day 2, Microsoft spent some time talking about building apps for Windows devices (Phone, Tablet) that are deeply connected to the cloud (Azure services). But not much Azure really demoed until much later in the keynote.
  3. Visual Studio 11 Features
    As part of Jason Zander's demo of building apps with the cloud, a handful of VS2011 features were introduced, like a new and improved image editor, new baked-in power tools, and improved debugging tools for working with DirectX. (He'll cover way more of VS2011 in his sessions today- find the session recordings.) VS2011 Developer Preview will be available today, along with Windows Azure SDK Toolkit.
  4. Scott Guthrie returns to the stage in trademark red polo
    Scott may now be CVP for Server & Tools, but he's still rocking the ASP.NET demos people have made him popular. Scott showed-off some cool new tooling for ASP.NET MVC 4, such as a "design view" for ASP.NET MVC, auto-minification of CSS and JS, and async features from .NET 4.5. If you missed ASP.NET or .NET 4.5 talk on Day 1, this covers it.
  5. OSX and iPhone emulator take the stage
    Small moment, but it stands out. As part of demonstrating some of the new things in ASP.NET 4.5, like jQuery Mobile, ScottGu did the unthinkable and showed the iPhone emulator running on a Mac. Good to see Microsoft acknowledging the world around them today.
  6. TFS running on Azure as a service
    Like TFS? Good for you. Microsoft showed more today of TFS running in the cloud on Azure. Formally called, Team Foundation Service running on Azure.
  7. Something for Windows IT Pros
    It's easy to forget as a developer that there are non-developers at BUILD. Microsoft addressed this crowd today with demos of new Virtual Machine Management tools and other Win8 server features. But I doubt you're an IT Pro if you're reading this blog...
  8. Windows Azure Credential Service
    Nice easy way to log-in using popular identity providers (Facebook, Google, Live, etc.) with just a few lines of code (seems to require WinRT). Makes single-sign-on across Windows 8 devices "fluid" process.
  9. Viper car security device connected to the cloud
    What makes this demo interesting is that it's the FIRST in two-days that involves an external Microsoft product. No partner on stage, but an external company nonetheless. Demo showed how the car device can send data to the Azure cloud and then visualize on the web and Phone.
  10. West Coast Customs CEO takes the stage
    Microsoft is going to (read: not done yet) build a car with West Coast Customs. It will be part of the TV show, so watch for it in the future.
  11. [THE SURPRISE] Steve Ballmer takes the stage!
    Just when everyone thought the Day 2 keynote was over, Steve Ballmer shows-up and takes the stage. Probably the biggest surprise so far of BUILD! Steve spent about 20 minutes reinforcing the Microsoft big picture for Windows 8, Azure (cloud), and Phone. Steve brought a much needed sense of "reality" to everything being talked about at BUILD, acknowledging that MSFT has a lot of work ahead of it to make Phone and Win8 successful. Good way to end the keynotes.
Who Was On Stage?
Unlike Day 1, where Sinofsky more-or-less ran the entire keynote, today was a revolving door of presenters. For your easy reference, here's who we saw:
Final Thoughts & Reactions
If all of the talk about a new "bold" version of Windows was making your head spin, today's keynote was like Advil, reminding developers that all of the things they've loved about the evolution of Microsoft's server technology and tooling (.NET, Visual Studio, Azure, Win Server) are still happening. While Windows 8 is cool and introduces some interesting new concepts, if you're in an environment locked-in to Win7 (or older), you may have felt a bit left-out on Tuesday. After today's keynote, you should feel better, with familiar faces like ASP.NET, jQuery, and even Windows 7 taking the stage.

Now, off to the overloaded schedule of individual sessions to learn more, get more reactions, and ask important questions.

Tuesday, September 13, 2011

BUILD Day 1: What wasn't said?

Silence speaks volumes. While there is coverage ad nauseum about what Microsoft did say at today's opening keynote and following sessions, there is much less attention on what's not being said. True, there is another keynote scheduled for tomorrow, and presumably many additional topics will be covered (like tooling and ALM), but certain important topics are conspicuously absent from the Day 1 conversations.

The Missing Topics

  1. Silverlight and WPF?
    It's clear after today that Metro style XAML apps are Microsoft's vision of the future, but what does that mean for the future of Silverlight and WPF? Of course, SL and WPF as we know them now will continue to run in Windows 8, but will they continue to evolve? Microsoft is risking another WinForms-like messaging challenge by choosing to mostly ignore Silverlight/WPF rather than address them head-on.
  2. Xbox & Phone
    One of the more extreme things rumored to make an appearance at BUILD was Xbox integration with with the new Windows Runtime. Or more broadly, a story that tied Windows desktop, tablet, phone, and Xbox together with one model. Unfortunately, both Phone and Xbox are no-shows so far, so it's all PC and tablets with Win8 right now.
  3. Shipping Timeline
    While not entirely unaddressed, the "there is no target date" for shipping Windows 8 message is a bit unsettling, too. Heading-in to BUILD, there was a lingering rumor that Windows 8 would be near or at beta now, with a possible goal of shipping Windows 8 tablets for this holiday season (or very shortly there after). Instead, with a pre-beta Developer Preview delivered, we're left to assume Windows 8 many not be fully ready for RTM until mid- to late-2012. So while everything being talked about this week is cool, it's almost a year away from GA. Which is a bummer, especially as other tablets march on.
  4. Expression Web
    One of the more interesting tooling demos in the keynote was a new version of Expression Blend that targets HTML and CSS design. What wasn't mentioned is how this expanded Blend focus impacts the existing "web product" in the Expression suite (Expression Web). Is Expression Web replaced by the new Blend? Pushed in to a smaller corner for the remaining Front Page-like dev fans? Mums the word for now.
  5. Office Apps for WinRT
    Given how important Office is to Windows (it's the 2nd major financial pillar at Microsoft), its absence, even as a simple preview, is also noticeably missing at BUILD. I guess the Win8 "cone of silence" extended fully to the Office team and they haven't had a chance to build Office versions for Win8 yet. Office will most definitely find its way to WinRT (Sinofsky is an Office alum, after tall), but its absence this week only signals a longer road to RTM ahead. Can you really ship Win8 without Metro Office apps?
  6. Plug-ins in Immersive IE
    We know HTML5 is a first class citizen in Win8, but how does Silverlight carryover to the new Metro version of Internet Explorer? Early demos of immersive suggests it doesn't. In fact, no plug-ins work in the immersive IE. Plug-ins do work in the "classic" view IE9/10, but if you thought you could run a Silverlight app in Metro-mode via the browser, think again. No Flash. No Silverlight.
  7. Older Versions of Windows
    What older versions of Windows? If you are at BUILD, apparently there are no older versions of Windows. Everything related to WinRT and Metro are Windows 8 only. There will be no backport of the new runtime for Windows 7. It makes sense, but does that signal a future of multiple app implementations if you want to support Windows 8 + Windows 7 (and older) + other platforms?
  8. Steve Ballmer
    Quick: Your company is about to introduce a "bold" new "reimagination" of the your flagship product. Who do you send to introduce this product to the world? Of course you send the directly responsible VP, but don't you also send your CEO to make an appearance? Under any other circumstance perhaps Balmer's absence at BUILD is a non-issue. But given the long running rumor of Sinofsky as CEO-in-waiting, no Balmer makes this feel even more like the Sinofsky Show.
Don't get me wrong. There were some great and exciting announcements today. I covered some in my original keynote blog post, and the press and thoroughly covered the rest. It's easy to look at what was said and report it.

But it's just as important to step back and reflect on what we were not "supposed" to think about in the face of the flashy demos and free tablets. What do you think? Are all of these non issues? Are there other important topics missing in the BUILD conversation so far?

Friday, September 09, 2011

Windows 8 Isn't for Desktops

Windows 8 Tablet Concept/Mock-upWith BUILD just around the corner, opinions are running high about what next week's Windows 8 unveil will bring. But here's a thought:

Even if Windows 8 is the most awesomest OS you've ever seen, who's going to buy it?

Of course, you, dear geek reader, don't count. You, like me, like to live at the cutting (sometimes bleeding) edge of everything. So outside of developers and geeks, who is the customer for Windows 8?

It Isn't Business

We can safely assume Microsoft's bread-and-butter business customer is not going drive record sales of Windows 8. For starters, much of what's new in Windows 8 is focusing on consumer value and experiences. The new immersive tile UI is cool, but it's probably not what a business wants to put in-front of its call-center/task-driven/Office-addicted employees. In fact, many businesses still would be content with Windows XP if it wasn't now (or almost now) unsupported and unavailable on new PCs, so even the modestly improved "Classic Shell" in Win8 (i.e. Win7-like explorer) offers little incentive to upgrade.

In fact, Windows XP plays a big role in the problem facing Windows 8.

As reported today by Gartner, businesses are suffering "upgrade fatigue" having just finished major upgrades to Windows 7. Due to the utter disaster that was Windows Vista, most businesses skipped that version and upgraded directly from Windows XP to Windows 7. In fact, by Gartner's reporting, 80 percent of companies upgraded from XP to Windows 7. That's an amazing accomplishment for Win7, but a big problem for Win8.

What has Microsoft inadvertently taught companies? You can upgrade your OS every 10 years. No need to incur the pain and costs of upgrading every 2 to 3 years as business used to do in the 90s.

Add to that the slowing hardware cycles in business (which often help usher-in new OSs) and increased push to virtualize the desktop, and it's clear business is not likely to help Windows 8.

It's Isn't Consumers

So if business isn't the customer, it must be consumers, right? Microsoft certainly seems to hope so with a big emphasis on consumer features in Windows 8. But do consumers (non-geek) really buy Windows anymore? Do they buy any operating system, for that matter?

Unlike 1995, when people stood in line to buy copies of Windows 95, the OS in 2011 is a commodity. It's an invisible layer that just comes with a PC, phone, or tablet. With constant crashing and BSODs a thing of the relative past, people have forgotten about the plumbing layer that makes their PC tick.

No, consumers don't buy Windows. They buy new computers, and an OS comes with the computer. But unfortunately for Microsoft, the sales of new computers are starting to fall-off, too. So the primary well through which new versions of Windows are pushed to consumers is starting to dry-up, with the consumer flocking to "cool" Apple hardware and tablets.

And like business, the family PC is lasting longer than it used to these days. Gaming has largely moved to the console (for which Microsoft is getting its share via the Xbox), and browsing the web, checking email, or creating a Office doc just doesn't need more megahertz.

Tablets or Bust

If the neither business or consumer customers are interested in buying an OS, then it's fair to conclude that Windows 8 is not for desktops. Sure, it will trickle-out to desktops via new computer purchases and the lagging corporate giant finally upgrading from XP, but the success of Windows 8 will not come from its traditional home on PCs and laptops.

For Microsoft and Windows 8, it's tablets or bust.

Think the new Metro Tile UI looks a little crazy on a desktop? Fine. Microsoft doesn't care, because it has clearly been designed to make the Windows tablet experience more exciting. You already know what you're going to get (and likely what you want) on a desktop with Windows 8: a lightly improved version of Windows 7. But on a tablet, everyone is ready to be wowed with something radical (and not in the deflating "WOW Starts Now" Vista sense).

That said, consumers still don't buy operating systems.

In this era of tablets, shoppers do not go in search of an "iOS tablet" or an "Android tablet" (see: Google Buys Motorola). Instead they buy the iPad, the Motorola Zoom, or the Samsung Galaxy. They buy the experience, software + hardware.

Who Will Control Microsoft's Fate?

Based on this complete analysis, the success of Windows 8 is going to come down to the hardware Microsoft can bring to market for Windows-powered tablets.

Traditionally, with the exception of Xbox, Microsoft leaves hardware manufacturing to partners. And so far, there's no reason to think Microsoft won't continue to rely on this model with Windows 8 and tablets. But given the unbelievable importance to Microsoft of a successful Windows 8 tablet, which will depend in large part on hardware, is Microsoft ready to leave its fate in someone else's hands?

Look left or look right and Microsoft's peer competitors are all controlling software and hardware:

  • Apple with iOS and the iPad
  • Google with Android and (acquired) Motorola hardware
  • Amazon with custom Kindle Android and assumed tablet hardware

Is it time for Microsoft to pivot and take control of the entire experience? Will Microsoft follow the Google model and acquire a major hardware partner (I wonder who that would be…) while still licensing the OS to the remaining partners?

If there's one announcement not widely rumored for BUILD, I would predict it will revolve around this very issue. And since Microsoft isn't likely to depend on the same partners that have failed to help Windows Phone, maybe BUILD will bring the introduction of the Windows Tablet (Designed by Microsoft in Washington. Assembled in China.).

We'll find out in a few days. Either way, Windows 8 isn't for desktops, it's for tablets.