Seamless computing is one of the buzz words at Microsoft these days. And quite honestly it's what they're good at. In the ideal case if you use Microsoft software for everything: You program in .NET, run it on Windows Server 2003, use SQL Server 2000 for the database and Visual Studio .NET to develop on. On the client you use Windows XP with IE and Outlook. You use sharepoint to centrally store stuff and visual source cafe to do source code control. Beside that you own a Pocket PC and Microsoft Smartphone, which allow you to communicate with your servers. In that case things couldn't be smoother. Everything works just great together, cross platform deployment, debugging and synchronization. I can imagine that many companies choose to go the Microsoft way. But it's a pity you will fully depend on Microsoft. But well, can't get everything, can you?