I work in a Microsoft shop. Mostly dictated by the fact that we use MS SQL Server for everything, and because a lot of the code practices started many years ago, and haven’t really been updated. In the past, I’ve learned the basics of Python, Ruby, and some others and have come away feeling strong distaste for the .net world I live in. Things seem so much easier, and more programmer-friendly. That’s not just the Ruby Marketing Mantra talking – it truly is a joy to program in. Aside for lack of syntactical sugar, my biggest gripe is the licensing walls and requirements of “Windows this, IIS that.” I really despise not being able to toss together a quick linux VM for playing around with code, and being able to deploy small, individual tools to my intranet infrastructure without having to upgrade an entire Windows system to do it.

The classic, most frustrating problem I’ve come across is

“Hey I built this awesome web app that is going to help me manage some of my data issues. I want to push it to our internal IIS server. Oh snap, I targeted 4.5, and the max framework on that server is… 3. :( What does it take to upgrade? OH THE ENTIRE WORLD NEEDS TO SHIFT, AND EVERYTHING’S GOING TO BREAK? I guess I’ll just keep running it in debug on my machine as needed :(“

The past two weeks I’ve been on a rad adventure: I flew into Las Vegas for the first time, and then I drove down to Scottsdale, AZ for the DEVIntersection Conference. My .net skills are not great, because I don’t often practice writing code – mostly data collection and database management tasks. Because of this I opted to suck in as much of the lower level .net classes I could. What I found blew my mind.

There is a new Microsoft, and it is good.

The biggest takeaway from the DevIntersection conference was that the new Microsoft is all about developer choice, happiness, and recognizing that the MS way isn’t the only way. They have actually fully open sourced the entire .net framework, and do all of their development in the public. All of the bits and bobs are now modular and interchangeable – if you don’t want a part of the MS .net package, you can roll your own without punching a black hole into your app. You can do that too, if you wish – MS no longer stops you. Integration with common open source 3rd party resource utilities like Bower, Grunt, Gulp, etc. On and on. And, you can do your stuff on platforms that aren’t Windows.

In the next few weeks, I’m going to be writing some posts the detail both my awesome trip, and the amazing things I learned about the changes in C#6, .net 5 / vnext, MS, and other general things I’ve recently learned that make me think “Huh. Neat!”

Some things that are streaming in my mind this morning:

  • Build against the core CLR, and self contain your application – no IIS required!
  • Run that self contained app in OSX or Linux! Natively! Off a USB stick if you want! Not Mono! WAATTTT??????????
  • NuGet packages are soooo easy to work with these days. (Maybe they always were?) I just checked a box and pressed build, and moved a .nuget into a network share – it’s available like any other package. EZPZ!
  • C# 6 String Interpolation is clean and sensible! I’ve always thought the Ruby/Perl way of string interpolation was much more pleasurable than String.Format(). C# is now just as friendly. string s = $"Hello, {world}." <– done.
  • MVC TagHelpers are now cleaner to use for someone who just wants to html it up.
  • VSCode and Omnisharp are boss. And cross-boss, because I can use it on my Mac.

These are just some of the things that come to my mind this morning when I ask myself “What were the most impressive things you saw during the conference?” I’ll write detailed posts as I explore more.