Bill Blogs in C# -- NET

Bill Blogs in C# -- NET

Created: 4/2/2016 4:04:52 PM

Important note: I’m still an independent consultant, Regional Director, and C# MVP. I haven’t officially started at Microsoft. All opinions expressed below are my own, and do not represent any Microsoft statement.

I spent the better part of last week at //build/ in San Francisco. //Build/ is Microsoft’s premier developer event. It’s where they focus on new ideas, new tools, and new visions. This year did not disappoint. If anything, this was one of the best //build/ conferences I’ve been to in many years.

An opening filled with Inspiration

Let’s start with the first day. We were introduced to many of the cutting edge ideas that Microsoft is investing in. The concepts revolved around More Personal Computing and leveraging the power of computers to improve the human condition. I won’t bury the lead. The most inspirational moment of the first day was the video showing the incredible work done by Saqib Shaikh. Go watch it now. I’ll wait.

Did you have enough tissues to get through that? It hits right in the feels, doesn’t it? Saqib was at build, and chatted with quite a few developers during the three days. He is truly inspirational.

All the technology highlighted the first day was very forward looking. Libraries to build bots. Libraries to build cognitive software. Machine Learning. Libraries to work with Cortana. Artificial Intelligence. HoloLens. And, early versions of all the libraries are available in preview form, or will be soon. I kept jotting down ideas that I could start exploring.

The overall message of all these demos and tools is to aim higher: How can we build software that communicates more naturally with humans? How can we build software that learns from the immense stores of data we have at our disposal? How can we create software that learns to get better over time? How can we target different form factors intelligently?

Open, Collaborative Developer Tools

The next major theme, which was covered on both the first and second day keynotes involved developer tools. And, having those tools be more open, more collaborative, and more platform agnostic. We hear about Docker on Linux. Docker on Windows. We heard about running Linux VMs in Azure. We heard about running bash in Windows. (Not in a VM, and not as a heavyweight Windows process, like cygwin, but something in between.) And, bash on Windows should bring full fidelity for any of the tools you use in the bash shell.

And, you’ve probably heard the huge news:  That the Xamarin tools are now free to anyone with a valid Visual Studio license: if you have VS Enterprise, VS Pro, with MSDN subscription or not, and even VS Community, you have access to all that Xamarin provides.

But wait, there’s more.

The Xamarin tools and libraries are also being open sourced. They will be under the .NET Foundation umbrella. The plan is to release them under the MIT license. This is just awesome news for the developer community. Now, with no extra cost, you can develop applications for Windows, iOS, and Android in C#. And at a cost (free) that is in reach of the hobbyist developer.

There were also major announcements about development on Azure, including Azure Functions. Azure Functions are small, lightweight, micro-services. I haven’t explored it completely yet, but I’m really interested in the concepts.

The overriding theme for this is that Windows will be the most productive OS for any developer. Great tools, great libraries, and you can target everything: Linux, iOS, Android, and even Windows. It’s the perfect platform for anyone developing software.

The Future of Languages

My breakout session time was looking at .NET Core, C#, and TypeScript. There’s great news on all fronts.

.NET Core and ASP.NET Core are getting closer and closer to being the same tools, libraries, and command line. The new CLI (coming soon) will use the same or similar commands for any different application type. ASP.NET Applications can target Docker containers. They can run on Liinux. They can run on MacOS. And, the tooling will work with any shell (Powershell, Cmd, bash, and so on) on any developer OS. If you want to learn more, watch this talk by Scott Hanselman and Scott Hunter.

The C# team ( Mads Torgersen and Dustin Campbell) showed an updated view of the plans into C# 7. You can watch that presentation online at Channel 9. If you haven’t looked at C# because you thought it was “Windows only”, check it out. C# (and programs written in C#) run on Windows, MacOS, and Linux. You’ll find C# very competitive with your favorite language. Have fun!

Ander Hejlsberg discussed the Future of TypeScript in another ssession. (Also available on Channel 9. They are tracking toward the 2.0 release of TypeScript. That release will include support for async / await that supports downlevel (ES5) execution environments. Like current browsers. I can’t wait. If you haven’t checked out out TypeScript, watch this talk. Anders spends quite a bit of time talking about how to migrate from JavaScript to TypeScript. He also shows how you can get benefits all along the migration path.

And much much more.

Now that I’m home, I’m watching many of the sessions that I did not see live. You can too. All the sessions, and more, are available on Channel 9 as well. Check out the ones that interest you. There’s more on Azure. There’s more on .NET. There’s more on UWP and PCL development. And much, much more.

Current Projects

I create content for .NET Core. My work appears in the .NET Core documentation site. I'm primarily responsible for the section that will help you learn C#.

All of these projects are Open Source (using the Creative Commons license for content, and the MIT license for code). If you would like to contribute, visit our GitHub Repository. Or, if you have questions, comments, or ideas for improvement, please create an issue for us.

I'm also the president of Humanitarian Toolbox. We build Open Source software that supports Humanitarian Disaster Relief efforts. We'd appreciate any help you can give to our projects. Look at our GitHub home page to see a list of our current projects. See what interests you, and dive in.

Or, if you have a group of volunteers, talk to us about hosting a codeathon event.