Build has now come to a close, and some exciting new things were shown. It definitely feels like a new Microsoft when compared to a few years ago. A lot more open and including in everything that they do.
Azure is clearly something that they want to push, but they don’t do it by locking you in. Instead they are trying to be the best alternative out there. You can even run a lot of what they have created elsewhere if that makes more sense for your needs.
One of the interesting parts of the key note on day two were how Microsoft are trying to provide a more seamless experience when switching between devices(no matter the brand). By using cloud powered clipboard and resume on other device(by leveraging Cortana).
We also got to see more standardizations to enable the same code to run on multiple environments. Both in the form of XAML and .Net Core 2.0.
Whatever you write, everyone should have access to it. And as part of that, we also got to see the accessibility efforts. Accessibility is something that a lot of teams have a tendency to forget, so it’s nice that Microsoft gives us a friendly nudge.
Code whatever, wherever!
Want to code for linux? That’s fine, you can do that in Visual Studio, run the code in ubuntu on windows(or one of the many other dists running on top of linux subsystem for windows) while keeping the full debugging capability provided by Visual Studio.
Running on OSX? No worries, there is a proper Visual Studio for OSX now. At the moment it’s different code bases, but they are sharing some of the core, such as roslyn.
iOS as a .Net dev? You can deploy your Xamarin app directly from windows now.
Not a fan of the .Net languages but are secretly in love with Visual Studio? More language support than ever, although only lightweight support for a lot of them(no, not IronX, but the actual languages).
You like web? Improved support for all things web. They’ll even list your Progressive web app in the store and give it a special listing in Bing.
Visual Studio 2017 itself got quite a few neat little updates, like inline unit test status with continuously running unit tests and PR process integration.
The easiest way to keep up to date on what is going on in the world of C# is to head over to Language feature status. But I still recommend that you head over to channel9 and check the session out as soon as it’s uploaded. It was a lighthearted and upbeat session, bound to put a smile on your face as you learn about what’s there and what’s coming.
One of my personal favorite language features is currently in the works for C#8, namely Nullable reference type. (That is, if you want them nullable in C#8, you mark them with ? just like a value type)
With this we can force the null handling up to the consumer of an interface instead of throwing null reference exceptions during runtime. Should reduce some of the possible runtime issues.
Some possibilities for C#8 that isn’t on that page yet were
- Async enumerable (think improved language support for observables)
- Extend everything! (extension methods for operators etc)
- Records: public class Foo(int Bar, string Baz); Didn’t make it into 7, perhaps 8?
The language is still being actively developed with no sign of slowing down. So don’t forget to read up a bit on it every now and then.
All in all, I’m pretty happy with this years build. We got to see the direction that Microsoft is taking and I personally feel like it’s a good one. What was your takeaway from this years build?