Home > Cloud > Microsoft cross-platform offerings

Microsoft cross-platform offerings

Run-time Cross-platform

The natural focus of a .NET developer is typically narrowed to a runtime built on the top of the CLR. However, there are different programmable runtimes supported by Windows outside of the .NET platform.   Among all of the choices of platforms – JavaScript is most recognized, supported and adopted by developers.  Below is an ECMA world diagram for the ECMAScript

ecma-cloud

JavaScript is supported by every browser, OS or mobile device, creating a perfect candidate for Cross platform development.  Client side JavaScript libraries, such as AngularJS, React.js and Express.js, have earned recognition within IT Industry, and should be a part of the mix for any .NET Web Application development. MEAN (MongoDB, Express, Angular, Node) is an end-to-end JavaScript based call stack and is one of the most popular cross-platform development choices.

Hosting Cross-platform

Microsoft and Java are have been pursuing interoperable hosting platform for more than a decade.  Java community offers multiple JVM languages such as Java, Scala, Clojure and JVM oriented application servers – Jboss, WebLogic, WebSphere.  Microsoft hosting platform is built on top of CLR and provides COM+, IIS, NT Services and self hosting.  It also supports any .NET language such as C#, VB.NET, IronPython, ClojureCLR and others.
Lately there are a couple of other developments that require community attention – Microsoft Docker support and HttpPlatformHandler for IIS hosting.
HttpHendlers and HttpModules are classic reliable IIS hosting extensions mechanism. HttpPlatformHandler is a module that allows to redirect HTTP traffic to any HTTP listener such as Tomcat, Ruby or Kestrel without losing IIS comprehensive process run-time and security management.  It has been used by Microsoft Azure cloud services and now is offered as a separate install for IIS 8.
Docker is an emerging technology that has a potential to impact all aspects of SDLC.  Docker architecture allows to package business logic, runtime and configuration aspects and to ship it as a single image to the docker registry for future consumption by any runtime.  Microsoft offering in this space would be Windows Container Server, Nano Server (No UI scriptable Windows Server with CLI, REST, WinRT, PowerShell DSC access).  .NET community would definitely need to catch up with understanding of the Docker infrastructure, PowerShell DSC, SSH, YAML manifest format and docker related Windows Server architecture.
 
Windows Cross-Platform

Microsoft OS system is going through a dramatic change in order to remove legacy code, legacy architecture and over 30 years of dependencies.  During those years Microsoft OS was supporting multiple kernels such as Windows, Windows Server, Xbox and others which have proved difficult to manage and secure.

Windows Platform Convergence

With the Windows 10 and Windows Server 2016 Microsoft is in the process of completing a convergence to a much cleaner model which in a lot of sense looks like a Linux Distributions.  The Core OS will be hosting a kernel and will be a part of any Windows Distribution Client, Server, Mobile, Tablet and Xbox.

As a result, applications written with the scope of CoreOS will be able to run on any Windows device without changes.  Such applications are branded as a UniversalUniversal Application has to be considered as the platform of choice for any smart/rich/thick desktop application as well as tablet or mobile client.

W10-MultiDevice.png

 

.NET Cross-Platform

.NET platform is an abstraction layer on a top of the Windows, goes through the significant re-write. While .NET 4.6 is the new fully featured Window .NET implementation of the CLR, Microsoft has also put full commercial backing of the  Mono-Linux CLR implementation.  It has also introduced CoreCLR which is a subset of the CLR capable to run cross-platform (Windows, Linux, Mac OS). Both Mono and CoreCLR are open sourced.  However Mono focuses explicitly on the maturity of the Linux implementation,  while CoreCLR on the portability.

NetPlatform

.NET community should react to the current Microsoft and Industry trends and start to extend Windows oriented skills set to the unfamiliar territories such as Linux and dnx/dnvm. Selecting CoreCLR libraries and tools will make the applications portable across multiple platforms and devices, creating a significant return on investment.  ASP.NET 5, MVC 6, EF 7 and Kestrel web server are a complete re-write of corresponding technologies using only CoreCLR subset of the .NET 4.6.

Windows10PlatformAndTool
 
Cloud Cross-Platform

A Cloud Cross-Platform concept is known as PaaS – Platform as a Service. The idea behind PaaS is the abstraction from the technical aspects of the hardware and OS and focuses on the service offering only. Below is a diagram showing PaaS scope in comparison:

SeparationOfResponsibilities

A good example which highlights PaaS mindset  is an implementation of asynchronous message interchange  scenario between B2B or EAI applications.  This enterprise pattern usually requires a reliable queue with duplicate message detection and poising messages routing.   Azure’s “Service Bus” queue and AWS’s “SQS” provide such services as well as REST or AMQP channels to access them.  Artifacts such as hardware, OS, runtime are irrelevant.  Moreover,  protocol abstruction like REST over HTTP or AMQP allows to switch from one cloud to another without the lost of the functionality

Advertisements
Categories: Cloud Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: