Tom's primary focus this past decade has been with .Net based development in C# and Visual Basic, and most recently, Android app development. He has extensive experience with server side “back-end” software, including systems integration, data mining and a fair amount with various forms of network communication. Although he wouldn't consider himself particularly artistic, he enjoys UI design and taking care to make sure things work correctly, not just look good. His primary UI work has been with Windows Forms but has also done some ASP.Net work, and created a fairly complex Silverlight / WCF front-end. Earlier in his career he spent many years coding in C and later in Java for Unix, writing software such as Xenix network drivers; a hierarchical database manager; diverse-product integration software and a windowed multi-process UI environment, called FLiP, for text-based monitors (prior to the popularity of Windows and Mac).  He started out by teaching himself BASIC on a TRS-80 and then earned his Associates Degree in Data Processing in 1981. His education since then has been in the trenches, learning what he need as he needs it. On the personal side he likes camping, hiking, photography, music (performance) and is a licensed amateur radio operator.

Locking a Block of Code With an Integer

,
June 27, 2016 / No Comment

I was talking with a developer recently who was convinced that you could use a static integer variable to lock a block of code merely by casting it to an object, like this

First it must be noted that an integer cannot be used by itself in a lock statement because it is a value type. But when you […]
Read more

AUTHOR: CATEGORY: .Net, Blog, C#

Making Sense of AssemblyVersion Numbers

,
March 15, 2016 / No Comment

The components of a Microsoft DLL or EXE version number are Major, Minor, Build and Revision. According to Microsoft, the components are used by convention as follows:
Major: Assemblies with the same name but different major versions are not interchangeable. A higher version number might indicate a major rewrite of a product where backward compatibility cannot be assumed.
Minor: If […]
Read more

AUTHOR: CATEGORY: .Net, Blog

Display a Custom Tooltip at the Mouse Position on a Large WPF Control

,
December 16, 2015 / No Comment

In my work for an electric utility, we have a WPF based map control used to show the location of power lines, along with other devices such as transformers and points of service. We wanted to show a tooltip when a user clicks on one of the power lines to identify what is called the “feeder”, which essentially defines the […]
Read more

AUTHOR: CATEGORY: .Net, Blog, C#

When to Use and Not Use var in C#

,
July 9, 2015 / No Comment

Many languages, particularly scripting languages, have a loosely typed variable type named var. In these languages, var can hold any type of data. If you place a number into a var then it will be interpreted as a number whenever possible. If you enter text it will be interpreted as a string, etc. ‘var’s can even hold various objects and […]
Read more

AUTHOR: CATEGORY: Blog, Uncategorized

Suspend and Resume in Visual Studio using TFS

,
April 22, 2015 / No Comment

In order to keep our release builds as bug-proof as possible, our development team expects that code reviews are to be completed before checking in the code changes. This presents a problem with Pending Changes in Visual Studio. Let’s say I modify a few files for a particular user story or bug. After I submit the code review, and depending […]
Read more

AUTHOR: CATEGORY: Blog