SYS-CON MEDIA Authors: Liz McMillan, Elizabeth White, Pat Romanski, Yeshim Deniz, Courtney Abud

Related Topics: @CloudExpo

Article

Enterprise Client Strategy, Windows 10 & Beyond

Windows 10, Xamarin & Universal Apps

Enterprise Client Landscape
For several years enterprises were given some easy options when it came to client strategy.

  • Since the exit of mainframe terminals, most enterprises have successfully deployed Microsoft Windows-based desktops as their clients
  • Most enterprises adopted web-based applications, where by the desktop clients helped more in connecting to the applications through the browser and executing them
  • Client Server strategy is still utilized for specific applications like Office Productivity applications, emails and some multimedia-centric applications.

With the above strategies, enterprises never really worried about the programming platform and architecture of client-side applications. During the mainframe era it was all COBOL and server-side architecture and later it was all Java, C# and other multi-tiered architectures. For a brief period some of the 4GL platforms like PowerBuilder, Delphi, VB6, and Oracle Forms played a role in client strategy and they gradually ran out of steam.

Cloud/Client Architecture Opportunities and Challenges
As per Gartner , in the cloud/client architecture, the client is a rich application running on an Internet-connected device, and the server is a set of application services hosted in an increasingly elastically scalable cloud computing platform. The cloud is the control point and system of record and applications can span multiple client devices.

This means multiple factors like,

  • Shifting of preference toward Cloud/Client architecture
  • More demanding end users who wanted rich user experience and high performance
  • Enterprises changing their policies towards BYOD

Pushes the enterprises towards the new model of computing where the Client devices have to be fully thought of and delivered as per the needs of end users.

There are a lot of benefits for enterprises in adopting the Cloud/Client architecture.

Reduction of the Server Footprint
There is always a need for enterprises to reduce their excessive data center footprint and become more optimal. While the cloud platform enables enterprises to adapt to on-demand usage, they continue to process for client needs. The earlier era web frameworks like ASP, JSP, Servlet, etc., have all spent lot of server-side energies taking care of the needs of the clients. However the Cloud/Client strategy shifts much of the processing needs from the server to client. Think of a enterprise which encourages BYOD in their IT strategy, this means enterprises no longer spending their energy for doing some client specific processing which can be better handled in the client itself.

Think of an agent who wanted to provide the best quotes to the customers with the usage of a calculation model that performs a CPU-intensive calculation and come up with a quote, in the earlier era the entire processing is done on the server utilizing the data center resources. However, in the Cloud/Client architecture the model can be pushed to the client with the appropriate metadata and parameters and the entire processing is done from the client without occupying server resources.

Apart from this there are obvious benefits like improving the efficiency of end users, enabling knowledge workers and bringing new business models.

But this approach does comes with several challenges for the enterprises.

No Unified Platform of Desktop & Mobile Devices
Desktop computing will continue to exist in the enterprise and no enterprise can afford to discount them in their future client strategy and till now they did not have a unified approach for both desktop and mobile devices.

No Convergence Between Mobile Devices
It is in the best interest of mobile device original manufacturers to distinguish their device in terms of usability features that will provide them the much needed differentiation in the market. This means in the short term (or probably never) there will be no convergence of user interface features of mobile devices. This makes enterprises worry about a unified strategy among various mobile devices.

Enterprises Cannot Afford Throwaway Code
Enterprise class code has to live long and has to be maintainable over a period. If we look at the history, COBOL lived for more than 40 years and continue to be maintained, Java, PLSQL, VB, SQL,C++ languages do have a long history at least 20+ years and they continue to be used. However, suddenly enterprises have to live with the choice of HTML5 & JavaScript as their programming platform of choice for clients. This may be fine for a few quick enablers and go-to-market applications; however; enterprises needed a solid client platform strategy.

However, all is not bad for enterprises and there are a few directions that enterprises can adopt to come up with a robust client strategy that will not only help them to span devices and also enable the creation of applications that are long living and easy to maintain.

Windows 10 & Universal Apps
Windows 10 is an upoperating system from Microsoft Corporation for servers, desktop PCs, laptops, tablets, phones, and other connected-devices (i.e., Internet of Things). Windows 10 'skips' Windows 9 for its name for various reasons, including it being such a big update that it moves beyond just a single number upgrade.

Microsoft introduced the universal apps model in April, enabling developers to reuse the bulk of their code when porting an app between phones, tablets, PCs, and the Xbox One. As per this universal apps context, develop once for all Windows devices using a unified Windows runtime and VS tools that allow you to both support experiences unique to a device in XAML, HTML, and DirectX, and share the code that supports those experiences across all devices using C++, C#, or JavaScript. When your work is finished you can you can produce the app packages that you will submit to the Windows Store and Windows Phone Store with a single action to get your app out to customers on any Windows device.

As evident from the above post, Microsoft provides the fullest support for developing universal apps using the modern objected-oriented high-level language in the form of C#, which means that the code can be developed using the proven object-oriented methodologies while the resulting application is fully maintainable.

Extending to Other Devices Using Xamarin
While the above concept of universal apps will help enterprises have a single code base in C# across desktops, Windows phones and other Windows devices, what about non-Microsoft mobile platforms especially the Apple iOS and Android platforms. We have a good solution in the form of Xamarin. With Xamarin, you write your apps entirely in C#, sharing the same code on iOS, Android, Windows, Mac and more. Xamarin apps are built with standard, native user interface controls. Apps not only look the way the end user expects, they behave that way too. Xamarin apps leverage platform-specific hardware acceleration, and are compiled for native performance. Use the same language, APIs and data structures to share an average of 75% of app code across all mobile development platforms. Build user interfaces with Xamarin.Forms and share nearly 100%.

Xamarin.Forms allows you to build native user interfaces for iOS, Android and Windows Phone using 100% shared C#. Xamarin.Forms includes more than 40 controls and layouts, which are mapped to native controls at runtime.

By adopting Windows 10, Universal Apps and Xamarin, an enterprise can follow a unified client strategy based on objected-oriented, strong typed programming language C# while writing applications across devices in a single code base. This approach should be worthwhile for enterprises considering the long-term maintenance needs than adopting the weekly typed language or other interpreted scripting frameworks.

Extending to the Back End as a Service Platform
The above discussions can help enterprises position C# as a unified language and platform for developing universal applications; however, as per the Cloud/Client strategy each client application requires a cloud service to augment it. There are always multiple choices for enterprises to develop server-side services. But there also enterprises have a few choices to enable a unified platform across all tiers.

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework. Here also C# is the language of choice when it comes to developing Back end services.

Summary
Enterprises are moving toward cloud/client computing; however there are lot of choices in terms of JavaScript frameworks, HTML5 and other options. Enterprises would be better off in adopting a unified client strategy which is built on a high level object oriented language like C# and hence the above mentioned strategy of using Windows 10 based universal apps and extending them Xamarin will be of interest to enterprises.

More Stories By Srinivasan Sundara Rajan

Highly passionate about utilizing Digital Technologies to enable next generation enterprise. Believes in enterprise transformation through the Natives (Cloud Native & Mobile Native).

Latest Stories
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
Serverless Architecture is the new paradigm shift in cloud application development. It has potential to take the fundamental benefit of cloud platform leverage to another level. "Focus on your application code, not the infrastructure" All the leading cloud platform provide services to implement Serverless architecture : AWS Lambda, Azure Functions, Google Cloud Functions, IBM Openwhisk, Oracle Fn Project.
As you know, enterprise IT conversation over the past year have often centered upon the open-source Kubernetes container orchestration system. In fact, Kubernetes has emerged as the key technology -- and even primary platform -- of cloud migrations for a wide variety of organizations. Kubernetes is critical to forward-looking enterprises that continue to push their IT infrastructures toward maximum functionality, scalability, and flexibility.
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
AI and machine learning disruption for Enterprises started happening in the areas such as IT operations management (ITOPs) and Cloud management and SaaS apps. In 2019 CIOs will see disruptive solutions for Cloud & Devops, AI/ML driven IT Ops and Cloud Ops. Customers want AI-driven multi-cloud operations for monitoring, detection, prevention of disruptions. Disruptions cause revenue loss, unhappy users, impacts brand reputation etc.
In 2014, Amazon announced a new form of compute called Lambda. We didn't know it at the time, but this represented a fundamental shift in what we expect from cloud computing. Now, all of the major cloud computing vendors want to take part in this disruptive technology. In his session at 20th Cloud Expo, John Jelinek IV, a web developer at Linux Academy, will discuss why major players like AWS, Microsoft Azure, IBM Bluemix, and Google Cloud Platform are all trying to sidestep VMs and containers...
Serverless applications increase developer productivity and time to market, by freeing engineers from spending time on infrastructure provisioning, configuration and management. Serverless also simplifies Operations and reduces cost - as the Kubernetes container infrastructure required to run these applications is automatically spun up and scaled precisely with the workload, to optimally handle all runtime requests. Recent advances in open source technology now allow organizations to run Serv...
Serverless Computing or Functions as a Service (FaaS) is gaining momentum. Amazon is fueling the innovation by expanding Lambda to edge devices and content distribution network. IBM, Microsoft, and Google have their own FaaS offerings in the public cloud. There are over half-a-dozen open source serverless projects that are getting the attention of developers.
The benefits of automated cloud deployments for speed, reliability and security are undeniable. The cornerstone of this approach, immutable deployment, promotes the idea of continuously rolling safe, stable images instead of trying to keep up with managing a fixed pool of virtual or physical machines. In this talk, we'll explore the immutable infrastructure pattern and how to use continuous deployment and continuous integration (CI/CD) process to build and manage server images for any platform....
If you are part of the cloud development community, you certainly know about “serverless computing,” almost a misnomer. Because it implies there are no servers which is untrue. However the servers are hidden from the developers. This model eliminates operational complexity and increases developer productivity. We came from monolithic computing to client-server to services to microservices to the serverless model. In other words, our systems have slowly “dissolved” from monolithic to function-...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
Atmosera delivers modern cloud services that maximize the advantages of cloud-based infrastructures. Offering private, hybrid, and public cloud solutions, Atmosera works closely with customers to engineer, deploy, and operate cloud architectures with advanced services that deliver strategic business outcomes. Atmosera's expertise simplifies the process of cloud transformation and our 20+ years of experience managing complex IT environments provides our customers with the confidence and trust tha...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...