I had the incredible opportunity to attend BUILD 2016 this year. Actually EBSCO sent four of us and we learned a lot! There were so many good keynotes and sessions. The great part is even if you couldn’t attend in person, every keynote/session was live streamed on Channel9 and now all the recordings are available.
I would suggest you watch both Keynotes at the very least and then search the catalog of sessions to find topics/technologies that interest you.
The real value of attending BUILD in person is talking to other attendees about their experiences and meeting Microsoft employees who work on the products we use everyday. I have accumulated a stack of business cards covering all the technology, frameworks and tools we use. So now when we have a problem or question I can go directly to the product team to get assistance. We have done this several times with great success.
In addition, meeting some of the thought leaders and royalty in our industry was really neat. This trip I met Jeffrey Snover (father of PowerShell), Carl Franklin and Richard Campbell (DotNetRocks Podcast hosts) and my man Donovan Brown (King of DevOps).
All of these guys are really down to earth and pushing the boundaries of their fields. I was very impressed.
Highlights for ASP.NET Web Developers
There were tons of great announcements at BUILD but I will focus on the announcements and learnings that will effect what my team and I do at EBSCO. Most of my day job is centered around internal web apps which bring value to our business. In most cases we can’t be on the bleeding edge (although I’m trying) but we at least try to stay up-to-date with supported technologies. Its not always sexy but we get things done and are building great software.
I think enterprise and small business ASP.NET developers make up a large percentage of the “dark matter” developer population. I used to be one but realized other developers could benefit from our success and failures so I started this blog. So I hope this curated overview will be helpful to many of you.
.NET Team Reorg
I attended the .NET Overview session by the “lesser Scotts”, only to find that Scott Hunter is leaving Scott Hanselman behind as he takes a new role managing all of .NET. Maybe Hanselman’s new title should be “Scott the Least” now (just kidding, love you Scott).
I think this is a really big deal. The ASP.NET team in many ways led the wide-spread shift to open source for Microsoft starting with MVC. They had the most engagement with the community out of any team at Microsoft in my opinion and really pushed the envelope for improving each new version of ASP.NET. I have really high expectations for the changes coming to .NET. It was clear to see some of the great new features in this session and the direction they are headed with their module and cross-platform approach.
There were several really good sessions on ASP.NET:
ASP.NET Core is cross-platform so it will run on Linux and Mac as well as Windows. ASP.NET Core covers a subset of the full .NET Framework today and they are continuing to add further compatibilities going forward based on customer feedback. They are working in the open on GitHub so go tell them what you want to see.
ASP.NET Core is completely modular. Gone are the days of one project template with everything in it and dependencies all over the place. You decide what you want and the rest is waiting for you if you ever need it.
ASP.NET Core is fast, REALLY FAST. In some tests they have made it more than 20x faster. The team is comparing it against the fastest web servers in the world, are currently within the top 5 and they aren’t done yet. Checkout their benchmarks GitHub page for more details.
They have also updated Razor to support HTML attribute based programming called Tag Helpers. When compared against the old HTML Helpers its clear to see this is a big improvement. It actually looks like HTML with Tag Helpers as opposed to C# littered within an HTML page.
Extending OFFice 365
Microsoft is committed to DevOps in a big way, not just for deploying .NET or Windows app either. Donovan Brown was in the day 2 keynote and also had a session showing off Release Management. This is a completely new product within VSTS and TFS which can handle the entire release pipeline including Continuous Integration and Continuous Delivery/Deployment if you like. Donovan has said many times Microsoft wants to support customers and allow them to use the “best of bread” products. This means they are no longer taking a Microsoft-only or even a Microsoft-first (in some cases) approach to DevOps. Donovan points out that the initial screen for adding a build/deploy tasks doesn’t even show any Microsoft tasks:
I had previously reviewed VSTS RM (Review- VSTS Release Management vNext) and decided it was ‘t quite ready for our use cases at work. After discussing my concerns with the VST/TFS ALM teams in the expo hall, I’m happy to report they are working on all my concerns. They couldn’t provide any timelines yet but if they are working on them now I would have to assume we should see some or all of these features sooner than later.
We also reviewed the VSTS Work Item tracking functionality and Kanban boards nearly two years ago and at that time they just weren’t powerful enough to compete with other products. This is another area of VSTS/TFS that has had massive improvements as well. At this point I believe VSTS could replace our current work item management solution and Kanaban tools.
There are just over a page of sessions regarding DevOps on Channel 9. They have all been excellent and I highly recommend you watch them if you are interested in DevOps.
Overall, Microsoft is moving really fast in the DevOps space. At this point they are still playing catchup a bit but I fully expect them to be a leader in this space by the end of the calendar year.
Virtual Machines were a game changer for infrastructure density and management. Likewise containers will be big improvement for application hosting and dependency segregation.
I’ve said many times “Windows containers will be a game changer for .NET developers” and this conference has only reinforced that opinion in my mind. When reviewing the DevOps landscape, the most advanced organizations are typically working in a Linux environment. Most of the popular DevOps tools were built using and for the Linux environment. Linux is small, light and modular. Traditional Windows, has not been small, light or modular. This is one of the biggest pain points for development teams trying to achieve Continuous Delivery on Windows. Specifically dynamic provisioning of a Windows Server is VERY painful when compared to Linux. Windows Containers drastically reduce this pain. The provisioning of a container host is still painful but is needed far less often than the creation of a new container on the host. Hosts can be provisioned ahead of time and ready for containers based on expected needs.
Setting the Stage- The Application Platform in Windows Server 2016 was a great overview of Containers, Docker and Windows Containers. I highly recommend this session for anyone who deploys .NET code.
This session also reviews Nano Server (a new version of Windows Server) which goes a long way in improving the pains of a Windows host. It is much smaller with fewer running services and a much smaller surface area of attack vectors. AD join is still a pain point but the Windows container team are at least allowing container to be configured with different AD credentials (without domain join) than the host in the next preview release of Windows Server 2016. I hope they take a larger view of AD and figure out how to fix it before the next BUILD conference.
MICROSOFT Loves Linux
To round out a view of the new Microsoft, we end with what many consider to be less likely than hell freezing over. The biggest news at BUILD was Linux bash in Windows by running Ubuntu as a native process. It is not an emulator or running in virtualization these are real binaries that run fast. Behind the scenes it is mapping sys calls between a kernel-less version of Ubuntu to the Windows Subsystem for Linux. This will allow developers running Windows to run all kinds of Linux software/services on their Windows machine without that additional complexity of setting up a local virtual machine to support this. There are many tools and software that either do not run on Windows or the if they do, the installer is flaky or complex. Gone are the days of choosing either Windows or another platform. Nearly all developers use some mix of platforms. So the Windows team wants to support that and make it easier for developers to work with.
Even before BUILD Microsoft had announced plans to support and work more closely with Linux tools/companies:
- Announcing SQL Server on Linux – The Official Microsoft Blog
- Red Hat and Microsoft- United to offer Red Hat on Azure
- SSH OpenSSH Windows PowerShell Blog
- PowerShell DSC for Linux is now available! Windows
Red Hat did have a big presence at BUILD as well in several sessions and in the expo hall. They even announced free licenses of Red Hat Enterprise Linux for developers. Did you ever think that Red Hat’s relationship with Microsoft would result in Red Hat offering their for profit version of Linux for free to developers? In other words, Microsoft had to convince Red Hat to give software away for free.
Microsoft promised a more engaging and deeper BUILD than previous years and I think they delivered in a big way. I’ve never been more excited to be a developer using the Microsoft stack. Its a new world and many outsiders will be leery of Microsoft for a long time. I challenge you to learn about these new technologies/announcements and share them with others who wouldn’t typically see them.