In an interview I did with Soma Somasegar, Microsoft corporate vice president for the developer division, I asked him what his embrace of cross-platform technology meant for Windows. His reply, in effect, was that Microsoft wanted people to have a fantastic experience on Windows, and because the company doesn’t own Linux, it will have to work with those communities to do that.

(Related: Microsoft is the new Sun Microsystems)

To its credit, Microsoft is working with companies like Xamarin on its cross-platform capabilities in the mobile space, and has reached out to the Linux community to ensure its software will run on those servers just like it runs on Windows servers.

But this is where Microsoft needs to be careful. With its all-in approach to the cloud, it risks losing customers that want to retain their local servers, or forces them into infrastructure changes.

I understand that by de-emphasizing Windows, Microsoft will need to recoup that revenue, and its path is through hosting and software subscriptions, which are not as lucrative as old-fashioned server and software licensing. Also, by going cross-platform, Microsoft loses the one thing that guaranteed those revenue streams: Windows.

Now, Microsoft has to compete with Google for business software, and Amazon for cloud infrastructure and Platform-as-a-Service capabilities, and Apple on the device front—all coupled with business moving away from desktops and allowing workers to “bring their own” tablets and smartphones. This is undoubtedly a scary new world for the company.

Say you’re a Microsoft customer who has loyally purchased servers and software, has spent money and person-hours building custom applications critical to your business, and created a secure environment to run it all. Now you’re told you need to go to the cloud, where your custom applications might not perform as they do on your servers. You’re told you need to trust Microsoft on security, even as almost every large “trust me” IT company has been hacked and looted.

You’re told that you can keep your servers, but all the cool new features will be delivered to cloud customers way before you get them, potentially costing you a competitive advantage. Or, you can spend money to retool with Linux boxes, but as Somasegar pointed out, Microsoft doesn’t control Linux and can’t guarantee the user experience will be the same.

So, isn’t this just another form of lock-in? You’re left with no good choices—or at least none that allow you to do what you want to do. You’re basically forced into the cloud. And since your applications are likely built in C# or C++ and use other Microsoft technologies to house your code or store your data, you’re really locked in to the Microsoft cloud. Those applications that won’t run the same way? Those customizations that can’t be ported to the cloud? You’ll just have to make modifications and live with it. I see no other route.

Your hope is that Microsoft can deliver on its promises. So far, it looks like it’s making the right moves and saying the right things. Let’s see if it can deliver on that promise. The chances of that happening are certainly better with a technically-savvy CEO guiding the ship.