The ability to develop apps for any device was a game-changing decision by Microsoft. Let’s take a look at where it started and what shift Microsoft has made now that we are developing on all sorts of platforms besides Windows.
Windows once ruled the world
Microsoft has always recognised the importance of engaging with developers and making it easy for them to create applications. The original Windows Software Development Kit (SDK) was free and it was easy to develop and deploy applications that were guaranteed to work on any Windows-based PC.
Consequently, developers went ahead and developed countless applications for Windows and the result was that there were applications for just about everything from accounts packages to word processors, to planning tools. As a result, Windows was a massive success.
Things really have changed
Of course, today Windows is no longer the only viable operating system. The PC is no longer the only device.
We have PCs, laptops, Macs, tablets, smartphones, games consoles and even internet devices such as a controller for a heating system. We have Linux, Mac OS, Android and of course Windows. Worse still some of these platforms even use different programming languages (C, C#, Objective C, Java, etc).
So where does this leave the poor software developer?
The game-changer – developing apps on any device
Microsoft has a new game-changing strategy: To provide support for platforms other than Windows for developers using Microsoft development tools, languages and software libraries.
A number of initiatives make this possible:
1. ASP.NET 5 and .NET Core 5:
.NET Core 5 is a new small footprint version of the .NET framework and associated run-time that supports Windows, Linux and Mac.
ASP.NET 5 has been completely rebuilt to be based on .NET Core 5 and independent of Windows.
The result is that developers can now develop Web Apps using C#, and MVC and deploy to Windows Mac and Linux using the same code base.
2. Xamarin
Xamarin allows developers to create applications using Microsoft development tools and languages such as Visual Studio and C# and deploy them to IOS, Android and Windows tablet and mobile devices.
Xamarin provides a framework called Xamarin.Forms that developers use to create cross-platform applications. It encapsulates mobile interfaces and ports them in a device in an independent way. Not all devices are equal and so Xamarin allows device-specific native code to be used where required, so functionality is never limited. Xamarin also provides a cloud-based test facility that supports automated testing of Apps on thousands of different devices types.
There is no better way to build cross-platform mobile applications.
3. Windows 10 and the Universal Application Platform (UAP)
Windows 10 is the new small footprint O/S that forms the basis of all future Windows versions. The same core is used for:
- Windows on PC
- Windows Mobile
- Xbox
- Surface
- Hololens (the new see-through holographic computer)
- Internet Devices such as the Raspberry Pi.
Applications are developed against .NET Core but are not limited by it. It is recognised that not all devices are equal and if the application is targeting desktop users then it needs additional desktop UI components such as XAML, if it’s web-related then it needs ASP.NET and so on.
Windows 10 and UAP finally provided a common development platform for multiple Windows-based devices.
The future is bright for Microsoft application developers
Developing applications in Visual Studio and C# is no longer constrained to Windows. Developers can develop once and deploy to a whole range of devices. We are after all in a multi-device world, and Microsoft has come to terms with that and moved the game forward once again.
Ballard Chalmers software development services
Ballard Chalmers has a wealth of experience in implementing advanced .NET, SQL Server, SharePoint Server and BizTalk Server software development solutions (take a look at our case studies).
With a strong background in integration, business processes and data management requirements, we design and develop custom Microsoft-based solutions for organisations across market sectors, as well as extending and integrating existing systems such as CRM, ERP, Financial, business process and data management applications. We are flexible enough to deliver full project implementations or to support internal teams with specialist skills. I invite you to contact me for an informal technical review and discussion for your business.