Creating a Dockerfile

I will break down and explain what is inside a basic default Dockerfile for an ASP.NET Core application that will be containerized. I took the Dockerfile sample from here: I will put comments with a "#" sign with my explanations. The image "microsoft/aspnetcore-build:2.0" information and location can be found here:  is basically like GitHub, but for Docker images.  You cannot store Docker images in a regular GitHub (or similar) repo, they have a special format they are stored in and therefore require something like Docker Hub or Azure Container Registry. You will require some container knowledge to understand below. Also note, below is a multi-stage build Dockerfile. For full documentation on those see here: ####

Electron JS, Visual Studio Code, and SQL Operations Studio

Electron JS is a really cool framework that you can use to build  cross platform desktop apps using only HTML, CSS, and JavaScript!!! Assuming you have the ability to build and test out the different platforms, it's very easy to deploy cross-platform.  Node.js is used for the backend runtime and the frontend is supported with Chromium.  This framework was created by, and is currently maintained by, GitHub.  There are a lot of well-known apps made from Electron, and you may be using them and not know it... keep reading to see.. There are some kickstarter guides to using it here: Visual Studio Code Visual Studio is generally liked and widely used with .NET developers, however there are a lot of complaints from both .NET and non .NET folk about it'


Dapper I helped work on a side project to help introduce new people to Azure here (basically how to take a web app + API app + SQL DB and get it into the cloud): I am interested in Dapper because it's a very fast, lightweight micro-ORM.  It makes life a lot easier for coding.  While it doesn't have the extensive features of Entity Framework, it's quick and easy to learn and to implement. I wanted to show you all the difference in a file using ADO.NET, then I converted the full file to use Dapper. Both of these are working, if you want to download the project linked above you can try out each and run them through the debugger to see how they work. Also you can get Dapper here: ADO.NET version  using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Web; using ToDoListDataAPI.Models; using System.Configuration; usin

Bare minimum Git Bash

The purpose of this guide is to serve as a reference for basic functions that you can do using Git that you will need as a developer on a team. You can install Git here (it will come with Git Bash): Git has an awesome 15-minute tutorial here: Clone down a project git clone <project URL> // Example git clone Commit, check for new changes from repo, then push your committed changes // Stage and commit your changes git add . git commit -m "add comments here for your changeset" // Check for changes in server git fetch // Pull changes from server, may need to resolve merge conflicts at this point git pull // Push your committed changes to server git push Create a new branch and swap to the new branch git checkout -b <branchname> // Example git checkout -b WI123-build-mobile-QR-scanner Swap branches git checkout &l

C# 7.2 New Features

Version 7.2 is the second release introducing several new features. This release requires Visual Studio 2017 15.5 or later. The new features are... Readonly references In addition to ref and out keywords, C# 7.2 add the in keyword. It is used to specify that the method is receiving a value type by reference but it is not allowed to modify it. This is enforced by the compiler. This can increase performance as strings or structs can be passed by ref. void Test() { var msg = "Error message"; Log(in msg); } private void Log(in string msg) { Console.WriteLine($"{DateTime.Now}: {msg}"); } Another addition is the ref readonly modifier, it can be used to return a read only reference to an object. This can be used to return a static instance and be sure that it won't be modified. private static object staticObject = new object(); public static ref readonly object StaticObject => ref staticObject; Two other additions are the readonly and ref st

Unity vs. Unreal Engine

Programming language choice(s): C#, JavaScript Cost : Free, if you make no money and do it for fun, however missing some feature that the Plus or Pro version has. To get Plus version, it will cost you $35/month for each person on the team. You have to take this option if you make $100,000+ revenue on your game, but less than $200,000. To get Pro version, it will cost you $125/month for each person on the team.  You will also be forced to choose this option if you make $200,000+  revenue on your game. This can forces you to try to predict ahead of time if you plan on making money off your game and how badly you really need those Pro features.  See the list of Plus and Pro features here: Strong points: Can create 2D or 3D games Excels in 2D or mobile games Can easily publish one game onto all platforms Insanely good asset store, you don't need to do any  Visual Studio integration (Unity comes packaged up with Visual Stu

Free & Paid Resources for Getting Started in IT

For those who are new to technology, it can be hard to find what resources exist.  I will put two asteriks** next to the ones I recommend most. But, most of all.. you need to build things! Build things, then put them up on GitHub. Build things alone, build things with friends, but once you get the basics down... go build things.  Free courses for beginners: CodinGame  - fun free way to start learning to code. Partially free, pay to get more, for beginners:  Code Academy ** - interactive learning programming, you have a goal to complete you try to write the correct code to complete the goal.  Then you move on to the next goal and it takes you through the series with hands on coding. Large catalog of in depth courses on HTML, CSS, JavaScript, Python, Java, SQL, Ruby, Bash/Shell... Code School  - same as above. Has a wide range of langugages from Ruby, PHP, Python, Git, iOS stuff, JavaScript, HTML/CSS... Treehouse - same as above, but focuses mostly on web development. Free