Live from Visual Studio Live 2016

posted: February 18, 2016 | author: Mark Millman

Visual Studio Live! 2016

Visual Studio: Everywhere for Everyone and Everything

That’s what I’m calling it: Visual Studio and SQL Server on Linux and Cross-Platform development for Windows, Linux, iOS, and Android platforms. I use Eclipse, NetBeans, JDeveloper, and Visual Studio and hands-down, no question about it, nothing compares to Visual Studio.  VS is brilliant, too bad it only worked on and for Windows; but not anymore.

Reality

  • Linux is and will remain the major platform for large scale web deployments
  • The mobile (phone and tablet) world is and will continue to dominate information technology and is dominated by Android and iOS
  • Java continues to dominate the Internet of Things and the IOT will grow to be more important than mobile.
  • Developers of Modern Applications generally fall into one of two camps: Object Oriented Programmers (.NET in this case) and Web Developers (HTML / JavaScript)

Solution

Give people what they want where they want it.  Aggressively support Linux, iOS, and Android deployments and situate Visual Studio to be the premier Cross-Platform development environment.

Visual Studio

Visual Studio embraces both server and client (.NET and HTML/JS) web developer communities. 

Visual Studio Code is supported on Linux and Mac OS.  VS Code is written in Typescript.

Typescript is a free open source programming language created and maintained by Microsoft.  Typescript is a strict superset of JavaScript adding static typing and Object Oriented constructs.  Typescript transcompiles into JavaScript and any existing JavaScript program is a valid Typescript program.  Typescript is a first class Visual Studio language based on ECMAScript commitments to support class-based programming.  AngularJS 2.0 is built on Typescript.

Mobile Development

Microsoft has announced that they are acquiring Xamarin, the premier Cross-Platform Mobile development platform.  Xamarin allows developers to program in C# which it transcompiles into the native language of the target system.  C# developers can create single-source-code applications that can be deployed to iOS, Android or Windows phones.  The major barrier to Xamarin today is the cost: $1000 per year per programmer per platform.  All speakers assumed that this cost factor would disappear.  Most also assumed that Xamarin technology would be eventually built directly into Visual Studio.

Xamarin is the primary developer of Mono, the open source cross-platform .NET initiative.  The Xamarin acquisition is further evidence of Microsoft’s intention to be the premier development ecosystem for all major platforms.  More information will be available at the forthcoming Build Conference, March 29 – April 1.

While Xamarin supports the needs of the .NET web developer community, Microsoft also supports Cordova for a more HTML/JS approach to web development.  Xamarin provides a .NET coding framework that delivers near native results; but it requires some unique code for each platform.  Cordova uses HTML/JS (Typescript) to deliver a consistent look and feel with 100% common source code.

SQL Server

Microsoft has announced that SQL Server will run on Linux in 2017.  More information will be available at Build 2016.

Universal Windows Platform (UWP)

I can remember the seismic shift back in 2000 when Microsoft released the first .NET betas.  It took a while for .NET to displace COM and C++ but it was inevitable.  .NET and C# were a response to Java which Microsoft arguably one-upped but didn’t displace.  Still no one (well almost no one) thinks in terms of COM any more.  Now, 15 or so years later another shift is on the horizon: Universal Windows Platform (UWP). 

https://github.com/Microsoft/Windows-universal-samples

The big message of UWP is that applications should not be desktop, web, or mobile applications; they should just have desktop, web, and mobile presentation layers. 

Developing with Universal Windows Platform you create a single application that automatically presents itself based on the device specifics.  An example of this is effective scale, which takes into account not only screen pixel size, but also physical size and device family viewing distance.  Thus your 3K cell phone screen will have an effective scale of 640 x 480 because otherwise your buttons would be too small.

Supported Device Families include: Desktop, Xbox, Surface Hub, Phone, HoloLens, and Internet of Things (IoT) devices such as the Raspberry PI.  You can download Windows 10 for your $35 Raspberry PI today at https://dev.windows.com/en-us/iot.  The strategic thrust is to create applications that are immediately available for a wide variety of deployments.  Microsoft is betting that the ability to write once and deploy many places will further position Visual Studio and Microsoft as the premier development ecosystem.

The gotcha is that UWP assumes a Windows 10 target.  With the acquisition of Xamarin one might guess that this would be extended to iOS and Android targets too; but that might depend on those operating systems supporting some core concepts, such as Device Families and Effective Scale.  But the major difficulty is that UWP applications will not run on Windows 8.1, let alone Windows 7, Vista or XP.

These changes won’t affect us immediately, we still have to support a client community that demands support of IE8 and applications that will run on Windows 8, 7 & XP; but Windows 10 adoption is significantly greater than any earlier Windows release and Microsoft’s decision to push Windows 10 updates may change all that sooner than we might think.  At least that is what Microsoft believes and wants us to believe.  Naysayers beware though, the COM community was equally cynical.

Azure

Microsoft would clearly like us to shut down our own data centers and to rent time and space on Azure.  I can see how this might make sense for many organizations but after sitting through a number of Azure presentations I had significantly mixed feelings.  Azure puts a slightly different spin on some .NET and SQL Server details and it looks like it might be difficult, although not impossible, to write code that didn’t include Azure dependencies.  If not at a lower level, then certainly within the deployment and container framework.  I was expecting a simpler argument in favor of Azure, but I didn’t see it.

Presentations

 

Visual Studio Live Is very much a hands on event put on by the people who publish MSDN magazine and most of the presenters are also regular contributors.  There was an absolute minimum of marketing beyond identifying who the presenters’ companies were and what they did.  It is a developer to developer event that starts out Monday morning with big picture concepts and ends up on Friday with day long coding sessions.  Every session I attended was worthwhile; something that one can rarely say about week long events.