And much rejoicing in the Microsoft developer nation was had.
I know I was one of those celebrating developers. In fact, I still am. In this article, I am going to try to "curb my enthusiasm" as it were and talk about my thoughts over the new emerging landscape -- dare I call it a new era? -- I feel is upon us as loyal, committed, and bold Microsoft developers. I will do this starting with my impressions of Azure (heads up: I'm the "new guy" here), my impressions of Xamarin, and finally my thoughts of "the missing link" in a truly dominant Microsoft/.NET development force in the marketplace:
a ubiquitous .NET client application development model
Those of you who may or may not know,
I'm actually the Azure newbie of the crew here
and am giving my perspective on all the awesome new capabilities that I am finding with Azure. I am in about a few weeks now
with its new portal
and I have to say that
it has been an absolute dream!
The experience I am having now with Azure is very much like what I had back in the early-to-mid 2000's when I started to explore all of Microsoft's server products: Windows Server, SharePoint, Exchange, Sql Server. You name it, I had the server and a machine dedicated to it on which it was installed. This is even back in the day before Hyper-V and virtual machines; everything was on the metal, baby! Ahhhh... very formative and instilling years, and that same feeling of learning all these new servers and how they work together is exactly what I am feeling now with Azure.
A nice side-lesson in my learning and investigation with all of those servers, is that I also learned very quickly that I am much more of an application developer than a network administrator. It takes
of knowledge and energy to keep all of those servers running smoothly and synchronously in addition to building an application to run on top of them!
Well, now with Azure and its PaaS (
Platform as a Service
) and IaaS (
Infrastructure as a Service
) offerings, I can focus on being that application developer while still having enough knowledge of a domain and its infrastructure to be (a little) dangerous. That is, Microsoft Azure takes care of all the dirty work (read: maintenance) while I can focus on the tasks that are important to me as an application developer via its portal.
Speaking of which, have I said yet just how awesome the Azure portal is?! Well, the Azure portal
! I can manage my
Azure Active Directory
and all the applications that I run on it all from a single, well,
, and I found that it is easy to use and not much -- really nothing to date, knock on wood! -- has gone wrong like I experienced while trying to run these servers on my own metal. Most if not all the administrative hassle of running a network has been removed and I am free to focus on the essentials and what matters to me (building applications).
It truly feels to me that the "old times" are back, but they are done in the new times, bringing a lot of quality and great developer experience with it. Very exciting (new) times, indeed!
Now, this is an Azure blog, but I feel the Xamarin story affects all of Microsoft and
Azure. Why? Well, Azure has done an incredibly commendable job of opening up their services to non-Microsoft technologies, such as
(this is sort of the big technology stack that everyone seems to be gravitating towards at the moment). This is very smart and the right thing to do, and really shows the "new Microsoft" mentality. NodeJS is a great technology and has a burgeoning ecosystem much like what .NET has. What's more, NodeJS allows development in the following scenarios:
Web/Browser-hosted scenarios (that work in tandem with HTML5).
Server-hosted scenarios when using its web server and/or with
I emphasize that last point because that brings us back to Xamarin, which can be considered the .NET equivalent of NodeJS's Cordova. In addition to supporting non-Microsoft technologies like NodeJS, Azure also (of course) supports Microsoft-created technologies like .NET. Xamarin allows us now to take our .NET code and compile it into the target platforms of iOS (
approximately 1 billion devices
) and Android (
approximately 1.7 billion devices
). While these applications are written in .NET and deployed to their respective "native"-hosted stores (Window Store, Apple Store, and Google Play), these applications will require services which are also written in .NET
and hosted on Azure
Now, you might have noticed something about my train of thought here in regards to describing (and comparing) both NodeJS and .NET. Both can be used on the server-hosted scenarios with Azure, and both can be used in native/store-hosted scenarios using Cordova (for NodeJS development) and now Xamarin (for .NET development).
The one area that NodeJS does differ from .NET at present (and can be said
it has a considerable advantage
) is that it can reach the web with ease whereas .NET is still confined to native and server scenarios. With NodeJS, Azure, and Cordova, you enjoy total development synchronicity with NodeJS. Or, to put it in my attempt at pretty pictures (remember, I'm a developer, not a designer!):
[caption id="attachment_541" align="aligncenter" width="667"]
Hosted Scenarios (and Code Reuse) Using NodeJS Development Model[/caption]
: In the above picture I've denoted shared code between all known scenarios in money colors, as shared code (and code reuse) yields less code and correspondingly more cost-effective solutions.)
[caption id="attachment_551" align="aligncenter" width="936"]
Hosted Scenarios (and Code Reuse) Using .NET Development Model[/caption]
Turning Question Marks into Exclamation Marks
All is not lost, however. It does feel that Microsoft is starting to turn the corner under the direction of its new CEO and is turning some serious question marks into some pretty serious exclamation marks. To be honest, I feel better now about Microsoft than I have in years (I am a former
developer so perhaps you feel my pain!).
We now have outstanding server-hosted scenario support in Azure (one of the best groups and technologies in all of Microsoft -- if not
), and we now have great cross-platform native/store-hosted scenario support with the new Xamarin acquisition. That makes two of the three major scenarios that put it on par and competitive with the NodeJS development model.
In case you are wondering how a .NET web could be accomplished with an HTML5-compliant browser, there is a new initiative underway known as
, and the latest up-and-comer,
If you are anything like me, you were looking forward to both
with great interest. But now with these latest developments, you are drooling with rabid anticipation (or wait, is that just
?!). Could a web-enabled .NET be on the horizon to further pair with Azure and Xamarin offerings? Doing so would not only make .NET
competitive with NodeJS but would most certainly usher in a new, accomplished, and cherished era of Microsoft, Azure, and .NET development.
Let's keep our eyes peeled and see if this dreamy possibility is indeed realized. Until then, please feel free to
add your voice to the growing chorus
of developers who wish to see this happen. Also feel free to leave your comments below and let me know what you think of all of this, and how you think Azure can and will benefit from the Xamarin deal. I look forward to hearing from you!