I'm very excited to be here in Seattle, Washington to attend the Microsoft Build 2017 conference! It's an honor to be amongst the geekiest of the geeks in the Microsoft community and to be able to absorb a ton of knowledge over the next few days. I'll be posting daily recaps of all the cool stuff I see during the week. I'll also be posting on twitter and instagram throughout the days.
Today's keynote kicked off the Microsoft Build 2017 conference. It was filled with an overview of the future and vision of Microsoft and its services, as well as amazing tech demos. Here are some of the announcements and demos that caught my eye; this is by no means an all-inclusive list, just pieces that I found particularly interesting.
Mobile and Cloud-first is of the past. Now it's about creating an intelligent cloud that extends even further through its edge and the various pieces of your infrastructure that it touches. New announcements of the IoT Edge and Azure Service Fabric and Stack show Microsoft's commitment to having Azure not just being your go-to in the cloud, but for anything that is internet connected (even if only connected on occasion). As a developer, that's fantastic news as I can write-once-run-everywhere with my application's infrastructure.
As always, there were many announcements in regards to the Azure Portal. My top two favorite are the inclusion of a new built-in CLI in the Azure Portal with access to the Azure CLI, as well as an official mobile application for iOS and Android (now I can scale those sites from the comfort of my mobile device). Major kudos to Microsoft for making the Azure Portal something I actually enjoy using.
The heading says it all; happy to see Microsoft being truly committed to the cross-platform development community. I'm personally a bit of a Mac fanboy (I'm not afraid to admit it), so I love all this new tooling that is being brought to all of my operating systems. I installed it as soon as I could and I can't wait to play with it.
There have been many times where I've had to migrate a database up to Azure only to struggle with getting the data up in an efficient way. It's awesome to see more tools coming to the rescue with these common, and often quite difficult, tasks. While this appears to be limited to an Azure-to-LAN network connection, this is still a huge step in the right direction.
I actually spend a lot of time working with WordPress sites, and something that has always been a bit of a pain is that Azure never had a native MySQL database. Sure, you could use the marketplace and have a ClearDB instance spun up for you, but now you're dealing with a third-party that doesn't have quite the same reliability that you'd expect from a Microsoft-native solution. I'll be migrating any and all of my WordPress sites ASAP.
DocumentDB… rebranded! Well, maybe it's a bit more than that. This is an ultra-scaleable, multi-model and multi-API database with many performance and scaling configurations. I'm very excited to see where this goes, as I've recently grown quite fond of DocumentDB.
To help achieve the fully connected world, Microsoft is greatly pushing containers. Visual Studio 2017 has been updated with super easy-to-use container support, as has Visual Studio Team Services to build and release your microservices and other applications into containers across Azure (whether that's in app services or service fabric).
Honestly, one of the things that's kept me away from digging into Azure Functions is the confusion on how it would be implemented in a CI/CD pipeline. As of today, that's no longer a question. Combining the ease of creating Functions, the new CI/CD features, and the concept of the Intelligent Edge, I see this being used more frequently in the future to augment the traditional web stacks.
This stuff is so cool. The advances being made in this space is mind blowing. Voice, photo, video, and conversational recognition is very impressive. There's just too much to discuss for a short summary, so check out the official Microsoft Portal for Cognitive Services to learn more.
These were just the few things that stuck out to me. There was a lot more packed into today's keynote, so be sure to check out Channel 9 to watch the keynote, as well as the Microsoft News Center for press releases and write-ups of more of today's announcements.
Here are quick recaps of the sessions I attended today. There were so many amazing sessions; it was very difficult to choose which to attend!
.NET Standard 2.0 is the contract to rule them all. Microsoft is staying committed to building a set of standard APIs that can be used across all of their services, from web to desktop applications. Adding in the .NET Standard library simply adds a contract that your application will run within those specifications. For more information on everything .NET (Standard and Core), check out the new cool domain dot-dot-net.
New feature of Visual Studio 2017 were also introduced as well, including many of the new code editing tools, debugging features, and testing tools. It's great to see more powerful tools be introduced into Visual Studio natively instead of having to rely on third-party tools, though I will say it'll be hard to give up my ReSharper addiction.
And finally, Azure publish function from both Visual Studio 2017 and Visual Studio for Mac were demonstrated. Again, excellent work from Microsoft for having such dedication across multiple platforms. I can't wait for the day where I can truly switch between macOS and Windows for .NET development; we're almost there!
There was one comment that really made an impression on me in this session; it was something along the lines of "containers, and the infrastructure they abstract, are the next logical step in software development; similar to how object-oriented programming revolutionized the way we think about code, containers will do the same with infrastructure". This is such a huge deal, and it feels like we're at the tipping point where more-and-more developers will be utilizing the power of containers.
As the old expression goes, "good fences make good neighbors", and the same is very true for containers. By building proper walls around our applications, we can contain and isolate them into their respective units so that they all "play nicely" with each other. The Azure Container Service will be a fantastic asset in helping manage and orchestrate those walls in the cloud by providing a standard wrapper around the various container technologies to host them as a platform.
One of the difficult things with adopting a new technology is convincing yourself that there is going to be some form of long term support. This concern can be amplified when that new technology is being rapidly developed and quickly changed.
.NET has grown and changed a lot over the past years. With the shift to open source and the rapid development of the .NET Core (and Standard) platforms, it is becoming more important to pay attention to which versions of .NET you should be using in your development cycle. I really like the analogy made to steak doneness on which version you should be using:
As mentioned in the keynote, one of the newest Azure features is the ability to migrate data from your on-prem databases up to both SQL Azure Database (PaaS) and SQL Server running in an Azure Virtual Machine (IaaS). It was very impressive to see how easy it is to setup a new database migration service (assuming you already have the Azure-to-LAN network setup) to move data from your server into the cloud.
Additionally, the Azure Data Migration Assistant received some nice updates focused around helping you fix your blocking database schema issues. This includes code suggestions as well as feature parity suggestions (e.g. suggesting Elastic Database Queries instead of external server references in your SQL).
This was a short, but very informative, session on some of the cools things you can do with Visual Studio Code. Instead of listing out the top 10 mentioned in this presentation, check out this GitHub repository suggested by Wade Anderson that contains a full list.
After my first day at my first-ever Build conference, I'm exhausted! There was just so much to take in both in the announcements made in the morning keynote as well as the information being shared in the many awesome sessions. I can't wait to see what day two brings!