Jerry Nixon on Windows

Monday, August 13, 2012

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

For 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

“Are we even going to upgrade to Windows 8?” This is a real question. Windows 7 has been installed across enterprises at a nearly immeasurable rate. Yours may be one of them. But, how agile is your company? Will it be able to maneuver through another upgrade cycle in a timeframe aligning with your application’s release schedule? Don’t write for Windows 8 if nobody will have it on their desktops.

Ask this second

“Could this plug our IPad leak”? What’s the leak? The leak is the introduction of insecure, barely manageable devices into your network – usually from the executive level. With the slam-dunk tablet form factor of Windows 8, your IT department now has real alternatives to plug this leak. It might mean some applications will need to be ported or at least extended to those devices, making them valuable to your management. That’s just real life.

Keep this in mind

Writing a WinRT-based application for Windows 8 does not mean your desktop application needs to be retired. Line of business applications have plenty of life on Windows because the desktop is a consistent, durable environment for enterprises to leverage. However, “companion” applications just make sense.

What’s a companion app?

The new start screen is a persons’ unique dashboard. Live tiles, integrated search, app sharing, and push notifications drive value to the user. Desktop apps can’t leverage live tiles, integrated search, app sharing, or push notifications. Companion apps can. They extend the desktop experience into the start menu while leaving the desktop as the primary experience for the information worker.

A companion app is a WinRT app that leverages the same backend services as the desktop application but creates a rich Windows 8 experience for the user. It is not a replacement for the desktop application, but a small companion to the desktop that shows BI information, important alerts, workflow status, certain screens, or whatever makes sense in one or more live tiles. Then, it drives users to the desktop application for the full, rich experience.

Don’t forget BI: Business Intelligence delivers incredible value to information workers and management. Nothing fits better or more rightly into a dashboard than BI data. What will your companion app do? I don’t know. But your first thought should be on BI – that’s real value. Then, think search & notifications.

What about a new project?

Good point. What if you are just getting started? If Windows 8 is an option for you, you need to have a pretty good reason to choose desktop. You heard me. Maybe you need an always-running application; that’s a desktop application. Maybe you need Windows 8 *and* Windows 7 application; that’s a desktop application. Maybe you need to use some custom controls; that’s (possibly) a desktop application. And, that’s about it.

A WinRT application on Windows 8 lights up bright! It’s a no-compromise option giving you a bunch of benefits. It should be your default choice, then disqualifying it only as you must. Otherwise, plan for your companion app up front. Let your services provide the right data to both apps. Then, let the companion app extend your desktop application’s business value into the user’s personal dashboard, the new start menu.

What about security?

Windows 8 applications use the same fundamental principles as desktop applications. Security is handled the same – and it’s fundamentally implemented per the specs of the app by your developers. This means security can be as rich or as loose as internal propriety demands. What a companion app doesn’t require is a compromise in data security, quality, or performance.

What about app-to-app communication?

You may have read that apps cannot communicate directly with other apps or desktop apps. This is true. Without loopback, apps can’t talk to local services, just network services. This might be just fine! Since an app can launch a desktop application whenever it wants, communication may not be a big deal. However, loopback lets apps interact with local services. That’s right. The only caveat is that loopback disqualifies an app from the Windows store, but do you care?

What about the Windows Store?

Do you want your line of business app in the Windows Store? Think about this: the Windows Store is public. Unlike the Windows Phone Marketplace which has hidden apps (available only if you know the direct URL) every app in the Windows Store is publicly discoverable. Do you want your line of business app in a public store? Probably not.

How to deploy?

Side-loading is our term for loading a WinRT app from something other than the Windows Store. It is how developers test the applications they are building. And, it is how enterprises can directly load apps. There’s a registry key that disables side-loading. If you read that last sentence backwards, then: there is a registry key that enables side-loading. Through GPO or System Center, apps are just software you push to desktops. More options are coming, too!

Conclusion

A Windows 8 enterprise app is very compelling. New line of business applications can choose for themselves if they are desktop or WinRT apps. But for the hundreds of thousands of existing line of business applications, they can convert or take a strategic first step and create a “companion” application leveraging the benefits of the operating system and new hardware – while keeping the core user experience in the existing desktop application.

One more thing: your desktop application might be beautiful, but it might need some UI TLC. Go and build a compelling, beautiful WinRT companion application – but you might make your desktop application look a little long in the tooth. There’s no harm in a UX update while you have the code open.

Hey! I'm Jerry Nixon, a Microsoft Engineer in Colorado. If you are into development, you are at the right place. I blog, I teach, and speak; should you see me out somewhere, say hi! Thanks for your visit.