Defensive Programming – Let Type Checking Work for You

Since I have been a speaker and a teacher, I have always stressed the importance of practicing proper object-oriented programming (OOP) techniques. If you don’t practice OOP, no matter what language you are using, I guarantee you will end up with a “house of cards” and they all eventually fall. The first “pillar” of OOP … Continue reading Defensive Programming – Let Type Checking Work for You

Performance: SortedDictionary vs Dictionary

Recently when I was analyzing a clients code base for performance, I found that they were using the collection SortedDictionary in many places in their projects. After looking on how they are using this collection type, I discovered that they really only needed  the collection sorted once. So I figured, that if would be better … Continue reading Performance: SortedDictionary vs Dictionary

Make Encapsulation Easy with dotNetTips.Utility

Encapsulation is the first pillar of Object Oriented Programming (OOP), yet most code that I see does not implement encapsulation correctly or not all. Like I say in many of my conference sessions "If you do not implement encapsulation, you aren't doing OOP!" I also say "Bad data in, bad data out!". Several years ago, … Continue reading Make Encapsulation Easy with dotNetTips.Utility

Properly Implementing the Singleton Pattern

One of the popular coding patterns is called Singleton. I use it currently in my dotNetTips Dev Utility for the configuration object. The pattern is defined: In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one object. This is useful when exactly one object is … Continue reading Properly Implementing the Singleton Pattern

Getting Unit Tests Created with IntelliTest Working On VSTS

While evaluating Visual Studio Test Services to build, test and deploy our projects for the company I work for, ran into an issue with running unit tests created with IntelliTests. Simply, the test project would not build due to the PEX engine DLL's not being installed on the images VSTS uses. I contacted support and … Continue reading Getting Unit Tests Created with IntelliTest Working On VSTS

.NET Framework => Core: LINQ AsParallel

In the .NET Framework, if we wanted to process a loop on multiple cores, we simply added AsParallell to the end of the collection as seen below: var files = new List(); foreach (var directory in directories.AsParallel()) {   if (directory.Exists)   {     var foundFiles = directory.EnumerateFiles(searchPattern, searchOption);   lock (files)   {   … Continue reading .NET Framework => Core: LINQ AsParallel

.NET Framework => Core: Getting The App Data Folder

This is the first in my series of blog posts that will describe major changes to coding if you are trying to convert from the .NET Framework to .NET Core. First up, getting the folder the app should use to save data. In the .NET Framework it was really easy by doing the following: public … Continue reading .NET Framework => Core: Getting The App Data Folder