Introduction
This article is intended as a summary of MS Build – Day 1, from my point of view. It focuses on key technical takeaways. For example, which technology should you watch out for? Which technology might become obsolete in 2 years? It is not meant the capture small /incremental process improvements, cool flashy things, excitement or hype. It is mainly to serve as a starting point to research a topic that interests you, if you did not have time to attend MS Build (or watch the videos, which I am sure will be published for everyone soon).
All this information is based on the notes I took when watching online MS Build event. Because every developer can set up their own path, it might be different from other developer’s experiences (because they chose to watch other videos). Which is why I think it is useful to document, even if multiple developers attempt to document the same information (and you see other similar articles popping up in google search). There is minimal formatting to make it readable, but otherwise it is often a one sentence summary with external link if you want to research the topic further.
Notes
Starting with the tools for everyday use, that can make your developer’s life a little bit easier.
Microsoft finally has a cool Terminal app to compete with Linux users.
PowerToys is a set of applications for power users. They are all open source. My favorite one is PowerToys Run, which allows you to run things without seeing the start menu, which can be too invasive at times (from the context switch perspective).
It turns out that Microsoft acquired NPM, and even though it happened two months ago, it got me by surprise.
Code spaces allows you to set up a complete coding environment inside your browser within a few seconds (in reality, about 20 seconds), but that’s not bad at all, compared to 1-2 days for local setup which might or might not work - we’ve all been there.
Keeps local settings (via cloud sync) and allows running a debug configuration on localhost:port
in another browser tab, which would be converted to a different link, but it “magically” works. Try it here.
Live share allows another participant to see all VS code windows, and even have two sets of cursors, which is something I wanted to have for a long time. Instead of constantly grabbing the cursor from each other, you can now have your own. Select some code while another person selects another piece of code – nice!
Scott Hanselman showed a process training an AI model on a sample video, and the training was performed on a tablet. It took less than 30 seconds. However, it is not your usual portable device with low specs for watching videos. It is actually a Surface Book 3, releasing on May 21 (in two days from now).
You can get a version shown in the Build demo for roughly 3400 USD, it includes a 15 inch screen, an i7 processor, 32GB of memory, 2TB of SSD, and presumably GTX 16xx with 6GB of video memory (not shown in spec, but Scott showed that working in Task Manager). Such spec can compete with desktop solutions without a problem and can really shine when demoing your application on the go.
Regarding popularity of MS Teams vs Slack, I was surprised to hear that Slack was around 12.5M active daily users (the highest number I could find via google, a month old or so), but Teams is already at 75M, and the reason for such popularity (in my opinion) is deep integration into other workflows, such as PR review, Jira, Outlook etc, via what looks like a native app inside of Teams. So you never have to leave Teams interface to do communication, which is great for productivity. What often happens in my day is having network issues with one service, or having to reset password, which does not work and prevents me from completing the workflow. There is always that integration problem when there are too many moving parts. It is great that Teams will finally be able to solve it.
Side note - MS teams runs on Azure, scales to millions of cores with usage spikes.
Modern web architecture seems to be moving towards hosting a static web site + serverless functions running in the cloud. No server, no idle costs (10-50 dollars a month). Instead, you only pay for actual usage of your back end, which would likely end up 1000 times cheaper.
From what I got from the presentation, you can set this up in Azure via few clicks using the Static web app
template, which presumably has CDN feature enabled, so all your content is instantly available in a distributed cloud all over the world. This must be a new template; I do not remember seeing it before. When I evaluated different options for this blog, Azure was on the list, but it took me long to configure and build time was between 5-6 minutes. Locally it takes < 5 seconds. Azure might have improved on that since.
With this Static web app
template, you can continue to use Angular and React for front end portion (and Blazor Webassembly, when it comes out), just switch your Java or .NET server back end to serverless.
For database, it looks like the way to go is noSQL and specifically CosmosDB, the Azure cloud solution. Although I am not sure it should be called noSQL, since there were a few SQL queries being executed against it, perhaps it’s a hybrid to allow transition for old systems / developers.
For testing web APIs, there is this HTTP REPL command line tool, which allows you to use file system semantics to traverse and call local APIs (list APIs, get into the API like a folder and call get by just typing “get” and pressing enter). Minimal learning curve, great stuff. Now I do not have to install Postman for simple things.
Power Apps Studio is a tool that allows rapid prototyping to create a somewhat working app prototype in hours rather than months, which works on mobile, show it to stake holders and see if they like it. What is cool about it is that it’s what they call a low code / no code solution. Instead of coding, you get things done via drag and drop, and setting properties. Basically, what a Windows developer would do 10 years ago with the IDE toolbox (dragging onto the form all those text boxes, combo boxes and so on), except tailored for most common business workflows of today (showing list of items, buttons, calling AI models etc).
When you built your app, deploying to phone takes a few seconds via Teams share (from Azure).
Azure Synapse Link is part of Azure Analytics platform. You can already use Power BI to create a KPI dashboard, for example. With Azure Synapse Link you can create a data warehouse feed from real data (which only lags by a few seconds from live data), have an AI model infer some metrics from it, and show all this on a dashboard. All of this would typically require a team of developers working for a few months, but here the presenter did it in minutes, from start to finish.
Microsoft is really pushing their Teams integration feature and showed a few typical use cases, which were actually very interesting. In spirit of “never leaving Teams UI” what if students could see their records right there in Teams, or medical institutions could see patient records. Great ideas, I certainly would prefer to avoid alt tabbing to various windows to see portions of info as I am doing today. From what I understood from the demo, these custom apps/integrations will even have the same style as Teams, so even less context switch when working with them.
Another pain point with apps in general is that your organization does not trust the developer and so you are locked out of using it. With Teams, Microsoft is setting up a certification workflow to improve trustworthiness. I am thinking there will be various badges on the app page where you would see certification status, and IT admins could whitelist apps with certain status, so then employees could freely download and install them as needed.
Project Cortex organizes all unstructured data in the enterprise and presents it in useful form (built on top of Microsoft Graph). When you join a company, have you been though the pain of learning the jargon that everyone except you understands? Not anymore. With Cortex, company could enable highlight of important keywords in Outlook, you click on those and it collects all resources on that topic, to quickly get you up to speed. Quicker and less painful onboarding, no digging for documentation only to find some outdated article. And likely more. All without human involvement – you do not need to designate those keywords, the AI neural network behind Cortex will classify and categorize the information automatically, always up to date.
Not related to MS Build directly, but they showcased an application for live streaming called VEGAS Stream. It supports integration into Microsoft Teams and other tools. You can show live chat feed from Teams, for example, in your live stream, so that others could see which questions you are answering. Live streaming is so popular these days and people may find this option useful for getting started.
Fluid framework is a platform to improve your usual workflows involving Microsoft Office with emphasis on collaboration. What if you could see emails inside an Excel spreadsheet? Or lay out your emails in cards view? Basically, if your standard email view is not enough to enable productivity, Fluid lets you build your own on top of existing Office 365 applications.
WebView2 is a component that embeds a web app into a native app. You can embed multiple web apps on the same screen. The idea is to avoid writing the same code multiple times for different platforms (Windows, web). Since version 2 it’s based on Edge Chromium and so it can even run on Windows 7.
I will dedicate a separate article to “C# 9 with Mads Torgersen” demo, which is very exciting for C# and .NET fans, but probably too specific for the general audience of this article.