On Wednesday, May 10, 2017, developers from around the world converged in Seattle to whet their whistles and learn all the latest development goodies Microsoft has to offer.
Into the Cosmos
Perhaps the most significant announcement from Microsoft today is a new Azure database platform they call Cosmos DB. As the Cosmos DB page states, it is a globally distributed, elastic, schema-agnostic database with millisecond data retrieval response times.
In the keynote demonstration, Microsoft showed demonstrations that highlight many of the features you see in the image below. In particular, they showed a massive database running across multiple regions, although they did not have any of the data in Asian countries.
Distributing your data to more regions is as simple as opening the Azure regions map and picking new locations to put the database. Azure automatically deploys the data to the new regions for you, which I guess is the elastic part of Cosmos DB.
Since Cosmos DB is schema agnostic, it supports a wide variety of APIs, such as DocumentDB SQL, MongoDB, Azure Tables, and Gremlin. Cosmos DB seems to be Microsoft's replacement for DocumentDB and appears to be their big bet.
You only pay for what you use on Cosmos DB, and it would appear Microsoft provides throttles so you can avoid overcharges or ramp up your use to handle demand.
It seems Microsoft is trying to do away with making developers worry about indexing by simply indexing everything. From the website:
With Cosmos DB, you do not have to manage schemas and indexes, deal with schema versioning, or worry about application downtime while migrating schemas.
Those are big words, and Microsoft is backing it up with service levels on availability and data retrieval time. I am not aware of any cloud provider that is going quite to that level with their SLAs, so it will be interesting to see how this progresses.
Serverless computing is all the rage right now, so if you don't know what it is, check out Angela Karl's article. Without going into too much detail, serverless computing is a way to rethink your app by creating event-driven microservices and orchestrating them in a workflow. Serverless computing also includes pay-for-what-you-use-when-you-use-it services like database storage, file storage, and much more. Whether you use Microsoft Azure or Amazon AWS, you will likely pay very little money when writing your app and only start paying when customers access it.
Database and storage have been around for a long time, but microservices are fairly new to the game. Microsoft's answer to creating microservices is Azure Functions and Logic Apps. Azure Functions are small apps that perform a function based on an event. Logic Apps allow you to create what is equivalent to a workflow where you orchestrate these functions. I am trying out functions for my app right now and will post an article and video that shows how to use them.
The big new announcement today is a preview of Azure Function Tools for Visual Studio. Developers have been eagerly awaiting this functionality because it was a preview in Visual Studio 2015 and then disappeared in Visual Studio 2017.
If you want to download and try the Azure Function Tools for Visual Studio, you will have to install Visual Studio Preview, which is akin to Microsoft's Windows 10 Insider program.
Machine learning and AI
Microsoft is releasing a Garage project (sort of a public testing lab) for PowerPoint translation. Watch this site as Microsoft releases more information. The idea is that you can present a PowerPoint deck and if someone watches your presentation on their phone, they can see the translation from your language to watcher's native language.
Microsoft also announced new tools that will allow you to upload sample images to a library in Azure. After you do that, the system will learn those images. The example used at the keynote was to upload a bunch of sample pictures to train the system. Once trained, they used their phone to take a picture of a plant and machine learning successfully identified it.
Visual Studio for Mac is GA
Microsoft's big play is to be a developer for every platform. To that end, Microsoft released a preview of Visual Studio for Mac, but it is now out of preview and in GA (general availability). I did try this out and will say it is an impressive product. However, it is focused on device development, not native Mac development--but for those of you who are in camp Mac, I am sure that is to come in the future.
Photo Credits: Microsoft