I’m summarizing my views and important aspects from Microsoft Build, in special AI and ML, IoT, Windows 10 Apps, and .NET Core.
Artificial Intelligence (AI), Machine Learning (ML), Internet of Things (IoT), the one big world-computer (Microsoft Azure), Microsoft 365 are coming together and are needed in collaboration.
AI and ML
Artificial Intelligence (AI) has a big focus at Microsoft Build – but with an ethical mindset:
“Ask not what computers can do, but what computers should do”, Satya Nadella, Microsoft Build 2018
AI and Machine Learning (ML) is everywhere. Probably you’ve already used the Design Ideas feature from Powerpoint. This functionality is offered by Intelligent Services – backed using AI. In case you’ve issues with grammar writing documents, Word can help with auto-correct that is enhanced to support grammar based on the context – using AI. AI is also used within Visual Studio: Visual Studio IntelliCode. IntelliCode learned from 2000 projects on GitHub to give good recommendations with assisted IntelliSense on statement completion based on the context you’re working in. More things are planned – e.g. IntelliCode can create an .editorconfig file based on the current styles and formatting, can do a first-level code review, can find bugs in the code… What can we think about?
Internet of Things (IoT) is another major topic, and of course it can be combined with AI and ML. At Microsoft Build attending IoT sessions the teXXmo IoT Button Starter Kit was distributed. I already have several ideas using this button.
Microsoft cooperates qith Qualcomm and the Vision AI Developer Kit.
Alexa and Cortana interact with each other with obvious scenarios.
A surprise was the Project Kinect for Azure – with an advanced Time of Flight (ToF) sensor, RGB camera, 360-degree mic array, and an accelerometer with a small form factor that allows building it into devices of various sizes,
The Azure IoT Edge Runtime platform is becoming open source.
Windows 10 Apps
To enhance existing Windows Forms and WPF applications, we had the desktop bridge. This was easy to start with (create a Windows Application Packaging Project with Visual Studio), but soon it was becoming harder. For example, adding using Windows Runtime APIs was not straightforward, and communication between new UWP XAML UI elements and the WPF part of the application required Application Services. Now, this is becoming a lot easier!
- UWP controls can be used directly within WPF and Windows Forms applications using XAML Islands. This interop scenario can be compared to the interop we had with Windows Forms and WPF. Now legacy applications can be easily ehanced with new features, e.g. Ink – including compiled data binding.
- The UWP controls will be available as a NuGet package which allows using new controls in previouses Windows 10 releases.
- The next generation of APPX for installation packages is now named MSIX to show a direct migration path from MSI. WPF and Windows Forms developers can now see this is the way to proceed – and it’s also possible to use this on Windows 7!
- New versions of WPF and Windows Forms will be based on .NET Core 3.0! This doesn’t mean, these technologies will be available on Linux. What does it help? We get new .NET Core features with WPF, and can have machine-global and application-local installations, SDK-based csproj files, apps can be bundled with the .NET Core App Bundler to a single executable…
- Windows 10 Fluent Design is continuously enhanced. What’s special important with some desktop applications is that the default density is changed to allow more content in the page – and also offer compact sizing which allows even more content – and still works with touch. Density, depth, motion, color, and interaction is enhanced.
- The Android or iOS phones become to a second screen of the desktop – or the desktop becomes a second screen of the phone. With the My Phone app on the desktop, you can send SMS using the nearby phone. Data is not transferred across the cloud.
- Using Activities, where you left off on your phone, you can continue on the desktop, and the other way around. This was already introduced at last years build, but now it’s more complete. I’m already using the Microsoft Launcher on my Android phone – and this makes (in special as earlier Windows Phone user) life easier.
- Activies make use of Microsoft Graph. Microsoft Graph is essential and offers a lot more functionality compared to last year, also Graph Notifications – to notify a user only once; dismissed notifications on the phone do not show up again on the desktop.
- Windows Sets allow to combine multiple tasks from the user, e.g. working with an Excel sheet, using several Word documents, and opening some Web pages. Apps can get automatic improvements from sets, but also enhance the experience for the user.
.NET Core Everywhere
.NET Core 2.1 is enhanced with
* Global Tools
* HttpClient Performance
* Windows Compatibility Pack
EF Core 2.1 supports
* Lazy Loading
* Value Conversions
* Query Types
* Data Seeding
ASP.NET Core 2.1 gives
* HTTPS by default
* Razor UI as a library
* ASP.NET Core SignalR
Microsoft Azure also offers SignalR in a serverless variant: Azure SignalR Service Preview
.NET Core 2.1 can be used for IoT!
* Raspberry PI 2+, here also containers can be used
* Azure IoT Hub supports .NET Core
* Samsung Tizen 4.0
I’ve already mentioned features based on .NET Core 3.0 earlier!
Download the Release Candidate for .NET Core 2.1 RC
With so many technologies we are just at the start. I’m seeing endless possibilities, but we should not forget “Ask not what computers can do, but what computers should do!”
With AI, ML, IoT, Windows 10, Visual Studio… it’s great to be a developer!
…and Notepad supports Linux line endings!
Next I need to try out a lot of the stuff I’ve written here – including some things not mentioned. Subscribe to my blog to read more in the coming months!