Hello, my name is Nate Hitze. I am a full-stack .NET developer using C# and I enjoy learning new things. Here is where I share the things that I have learned.

Navigation

How I Stay Current

For software engineering in general, it is incredibly important to stay current with industry standards, best practices, and new technologies. Keeping up with the wealth of information available is no easy task, but it is possible. I am going to describe the various ways I keep up to date on developments in the .NET world. I'm going to try to loosely order by how valuable I view the medium. Podcasts I would rate podcasts as one…

Common ASP.NET MVC Misconceptions

Developers that are new to both C# and ASP.NET MVC tend to develop misconceptions about the language based on the examples they have seen. In this post, I will try to clear up some of the misconceptions. Anonymous Objects The HtmlHelper provided in C# allows arbitrary attributes to be added via a parameter to the functions the helper provides. Here is an example: @Html.TextBoxFor(model => model.PropertyName, new { @class = "form-control" }) The anonymous object…

Implementing a Code Analyzer in an Existing C# Project

Visual Studio 2015 brought the ability for developers to write code analyzers that can highlight errors and provide code fixes through NuGet. This means that IntelliSense in Visual Studio can be extended just by installing a NuGet package. One primary use case for this is writing code analyzers that can help developers use your libraries. Most samples show how to create a new library to house your analyzers, but why not bundle your analyzer with your…

Introduction to C# for Programmers

This is an introduction to C# for programmers, so I will assume that you already have experience in object-oriented programming. There will not be a lot of depth on the topics discussed, and I will not cover C# syntax. I instead choose to cover as many topics as possible without making this post too long. Look out for links to other blog posts or resources that can give further explanation. C# and .NET Background Although not…

Introduction to C# Properties

Properties allow you to create class members that look and feel like a simple variable, but operate through getter and setter methods. To see how helpful properties are, let's look at a code sample that does not use them. public class Demo { private int _number; public int GetNumber() { if (_number < 0) { return 0; } return _number; } public void SetNumber(int value) { if (value > 100) { _number = 100; } else { _number = value; } } } public class Program { public static int…