PWA & Blazor – The future for web development?

PWA Logo

Over the 18 months, the team at CSE have been furthering the development of our software skills and have invested time in some emerging technologies that we see as having a significant influence in future software development. The most notable of these is the maturing web framework that is Progressive Web Applications (PWA) and the implementation of this framework through Microsoft Blazor. We have seen Rich Internet Application frameworks developed in the past.  Frameworks such as Microsoft Silverlight and Adobe Flash, which ran compiled code within a browser sandbox, have come and gone. Unlike these proprietary solutions, PWA applications are built using open, standardized web technologies. The potential of this is being seen in increasing support of the technology in modern, popular browsers, e.g. Google Chrome, Apple Safari and Microsoft Edge.

The ability to install PWA web applications on your device has made it possible for modern web sites to be even more like standalone applications, removing the clutter by stripping the browser elements like the chrome and menus from the user interface.

twitter iOS Native App (left) vs PWA App (right)

Being platform-agnostic also means that as developers we don’t need to build different applications for iOS, Android and desktop. There is no need for them to be published through the mobile app stores and be dependant upon them to deliver the latest update. It can also result in a significant reduction in the storage footprint on the device compared to a native app.

Sounds great, but who is actually building PWAs? There are actually a surprising number of large software companies already delivering PWA applications, like Google’s Meet, Microsoft’s Outlook for Web, twitterSpotify and Zoom.

Blazor Logo

For us, as a Microsoft development house, the advantage that Blazor brings is the opportunity to build mobile software solutions that can draw on the benefits of a PWA, using the development languages we have been using for years (C# and HTML), with minimal need to write client-side code in JavaScript. Ask any .NET developer, and the thing they hate most is programming in JavaScript. This is because, unlike C#, the language is not strongly typed, so the opportunity for programming errors is that much greater. Prior to this, we had adopted TypeScript to achieve this when building client-side elements of our web applications. 

Another complementary technology that we have adopted is the Indexed Database API (IndexedDB). This JavaScript API complements the offline capability that a PWA solution facilitates by providing a more comprehensive alternative to web storage. Like PWA, it works in standards-compliant browsers. This enables us to build more sophisticated, data-rich, web-based applications that gracefully handle working while being connected to and disconnected from the internet.

Car Checker sample by Steve Sanderson is a sample project demonstrating how these technologies can be combined to deliver a business solution. He shows how to build an application for a Car Rental company to report any damage, mileage and fuel remaining when the car is returned by the customer. The application can be installed so that it behaves like a native application (Windows 10, Mac, iOS and Android) and the user can retrieve or enter data regardless of whether the device is on or offline. Watch the on-demand walk-through for this on Channel 9 below.

Channel 9 Car Checker sample walk-through.

Having recently developed a real-world solution for one of our clients using this technology, we certainly see this as an emerging web application technology which has legs!

Latest Tweets