Nuget is a package manager for the Microsoft platform. It runs within Visual Studio. To use it, open Visual Studio and go to Tools->NuGet Package Manager: Select Manage NuGet Packages for Solution and you will be able to see what is already installed and if there are any updates available. You can also install new packages. To update, select Updates, select the package to update and click Update: You can also use … Continue reading NuGet

Installing and Using ILSpy

ILSpy is an assembly browser and decompiler. Here we will go through installing and using ILSpy. First, download the binaries from the ILSpy website: This will download a ZIP file. Extract the file: Run the ISpy.exe: Click to open a file: Here I have selected an exe compiled from code I previously wrote. You can see we can now see the decompiled code within ILSpy:  

Installing Visual Studio Web Essentials

Visual Studio Web Essentials is a VS extension by Mads Kristensen that assists with the development of CSS, HTML, JavaScript, TypeScript and CoffeeScript. To install Visual Studio Web Essentials, go to and select Download. We will install on Visual Studio 2015: Select the version to install:   This will download a VSIX file. Open it: Click to install: You will see: Once installed, open Visual Studio: Go to Tools->Options: Select Web Essentials. … Continue reading Installing Visual Studio Web Essentials

Dependency Inversion Principle

Dependency Inversion Principle (DIP) is a software development principle that reduces coupling between code. Robert C Martin explains DIP: High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. Consider if you have an object that calls another object. The higher level object is dependent on the lower level object; making changes to the lower level object … Continue reading Dependency Inversion Principle

Don’t Repeat Yourself

Don’t Repeat Yourself (DRY) is a software development principle that prevents waste through the repetition of code. When code is designed and developed, it should be abstract. As a result of abstraction, the code is easier to maintain and extend. Smarter code leads to less code waste, which leads to better software. Imagine if you find a bug in one part of your code, and the bug is repeated in … Continue reading Don’t Repeat Yourself

Separation of Concerns

Separations of Concerns (Soc) is a design principle in software development. The idea is to separate code based on the function and logic. A typical example is the separation of code that performs business logic, and the code that displays this to the user. This code should exist independently; if a developer were to write code that performed both these functions together, it would be a violation of the principle. … Continue reading Separation of Concerns

Building Better Software – Best Practices

When building software, several things can be done to minimize errors, prevent future code from breaking, and adding to scalability. Ideally, your practices include some of the following. TEST DRIVEN DEVELOPMENT Test Driven Development, or TDD, is the practice of writing unit tests for a new feature before writing the actual code. You essentially write the unit test case, run it so it fails, then write the code to make … Continue reading Building Better Software – Best Practices