#MKEDOTNET 2017 was a blast!

This past Saturday I attended MKE DOT NET for the third time. MKE DOT NET is a .NET developer conference based in the Milwaukee area. The previous two years the conference was held in a hotel in Pewaukee. This year, they changed things up a bit and hosted it at Potowatomi Casino near downtown Milwaukee. Getting there was a bit difficult because there were a lot of closed off streets, but once I got there it was really nice.

Keynote Speaker: Maria Naggaga

Lots of people are interested in developing in .NET, but the main complaint was that it’s too difficult to learn. Maria presented some up and coming options to make .NET easier to learn for people who are currently developing in other frameworks and languages, like Python or Ruby for example.

First, she listed off some recommended code school sites. This was helpful for me because I’ve been trying to get my brother into coding with .NET and C#. Sites included Free Code Camp, Code School, Treehouse, and Javascript.com. Next, she showed an upcoming version of docs.microsoft.com, which will include everything in the current Docs site, but added a Run button for every code snippet. That part wowed me; I know one of the big annoyances with developers learning .NET was having to install Visual Studio to do any coding, so this goes around that. Great job MSFT!

After the keynote, I attended several sessions. I will list out the sessions which I got the most out of below:

Hardening Your ASP.NET Core Applications – Brice Williams and Robert Hansen

This session went over securing ASP.NET Core applications. Brice and Bob showed how to enforce HTTPS on a site at the global level or controller level. Additionally, they went through some common security risks, such as Cross Site Scripting (XSS) and Cross Site Request Forgery ( CSRF), and how to counteract those in your application. One cool thing I learned was that Javascript UI frameworks like React or Angular will do the HTML encoding for you as a way to protect against CSRF. The most important point made was to not create a security system yourself; it is extremely difficult and there’s probably a system available that someone else made that would work for you.

Cool SQL Server Features Every Developer Should Know About – David Berry

This presentation went over some new features in SQL Server 2016:

  1. Temporal tables – Every time a row is changed, SSMS keeps a snapshot of the old row values. This allows us to see what the value in a column was at any given date and time. The history table is created and maintained automatically by SQL Server, removing the need for us to write triggers.
  2. JSON Support – Allows you to store JSON data in a VARCHAR() data type. There are some new functions that go along with this, such as JSON_VALUE to get a value from a JSON object,  and JSON_QUERY to pull out an entire array or object.

David also showed Windowing Functions, which was actually released with SQL Server 2008 and later. “Group By on steroids”, Windowing Functions can partition and aggregate data by different criteria in the same statement. One example was the RANK() function, which can find the highest value, partitioning over various columns, and provide a rank for each row. I really need to look into these functions more…

Building Reusable UI Components in ASP.NET Core MVC – Scott Addie

.vbhtml files exist. It’s true. That wasn’t the point of this talk though. Scott showed us a brand new feature in ASP.NET Core V1 called Tag Helpers. Using this feature you can express server-side processing via HTML elements. An example would be:

<hand player="John">

Hand is the class, Player is a property of Hand. Tag Helpers are really cool for a few reasons:

  1. They offer great IntelliSense support.
  2. They eliminate context switching between HTML and C# that you would get with Razor.
  3. They were designed with testing in mind.

One other cool thing I learned is the C# nameof() feature, which can  be used to avoid hard coding class name strings. Usage: i.e. nameof(MyClass) would output “MyClass” as a string.

Conclusion

This event keeps getting better every year. Particlarly, the SQL Server Features and UI Components sessions amazed me! I learned a lot of cool things in this conference, and made note of a lot of things to look into so that I can learn more. Thanks Centare for hosting another great MKE DOT NET!

Advertisements

MKE DOT NET Conference Summary

This past Saturday I attended a new Milwaukee developer conference, simply called MKE DOT NET. Taking place in Brookfield, WI, this was a very large conference that covered a variety of techniques and skillsets, from developers in the Milwaukee area.

I checked in around 8:15. The guest speaker, Uncle Bob Martin, made a great speech about how developers directly impact the fate of the world (for better or for worse) and laid out a great set of rules called the Programmer’s Oath. Some of my favorites were:

  • Don’t write harmful code – don’t cross the ethics line, no matter what.
  • The code I produce will always be my best work.
  • I will provide with each release, quick, sure and repeatable proof that each element of the code works.
  • I will produce estimates that are honest in both magnitude and precision.
  • I will never stop learning and improving my craft.

After the introduction, we broke out into conferences. There were a lot of interesting ones that I had to miss due to time conflicts. I’ll describe a few of the more memorable ones here.

It’s More than Feature Toggles: Continuous Delivery – Dan Piessens

This one went over, among other things, feature toggles and how they are useful. It’s basically a mechanism to switch between features or configurations at run-time. Dan showed that by using a controller action along with app settings, there is less risk with something wrong happening if someone flips a bunch of app settings on or off.

Creating a Real Time Strategy with Unity – Dan Sagmiller

The next conference I attended was developing games with Unity. I found this course particularly interested since I am a gamer, and have looked around in Unity before. The presenter showed the basics of creating a bare-bones RTS (Real time Strategy game) in Unity. I was able to pick up these basics for when I eventually create something in Unity myself.

Azure App Services – Michael Weinand

I’ve always been a fan of Azure, so some of the presentation was review, but there have been some changes  to the Azure portal, as well the services. There are two new types of apps – Logic Apps and API Apps. Logic apps connects data across different platforms (kind of like middleware). API apps are used for RESTful hosting. The Azure Mobile Services is now just called “Mobile Apps”. The new portal is okay, though I kind of preferred version 1. Otherwise Azure does pretty much the same thing it used to do.

Overall, this was a great conference, where I met tons of developers from different companies. I would recommend it and will probably be going next year as long as it continues!