Category: Programming
NCache is an open-source, in-memory, distributed cache written in .NET and usable by several different languages and frameworks. A distributed cache pools together memory from one or more servers into a single data store that can be accessed from a consuming application that is typically hosted on another server. The cache can be used to…
Security is an implicit requirement in practically every software application. As a software developer, it is very important to be aware of the security implications of any code that you write, ensuring that you are protecting users and their data. Many applications need to make use of secure random strings for various purposes. One of…
The SecureString class is a .NET type that provides an increased level of security for sensitive in-memory data. Having said that, the security benefits of SecureString have been widely debated. The general consensus is that SecureString can help to increase application security if used properly, however, the inherent advantages are somewhat limited in scope. Despite…
Sometimes when embarking on a software project you may find yourself wishing that you had a lightweight way of achieving Inversion of Control (IoC) via dependency injection. On the other hand, you might not be very familiar with the principle of IoC, but have heard it can be very beneficial and are looking for a…
Software assemblies containing managed code, such as those used by .NET applications can be easily decompiled into readable source code using free decompilation tools. This can present a challenge to application vendors who have a desire to prevent their code from being viewed or changed due to copyright or potential security concerns. For any application…
SQL injection is a common attack vector that remains one of the most prevalent security risks for applications today. One of the reasons SQL injection attacks are so pervasive is the fact that injection vulnerabilities are very easy for attackers to discover and exploit, sometimes with devastating consequences. On the other hand, mitigating SQL injection…
Tuples are a very useful feature of the C# language; they allow more than one value to be grouped and passed back and forth without needing to define additional types. As we’ll discover later in this article, tuples are particularly convenient for returning more than one value from a method, avoiding the need for ugly…
Choosing a strategy for calculating a unique and reliable device identifier can be a frustrating and somewhat more difficult decision than you might initially think. There’s no silver bullet and like many things in the world of programming, pros and cons need to be determined and trade-offs need to be made. In this article, I…
If like me, you are fascinated by science, you’ll possibly know a little bit already about the strange phenomena of quantum mechanics. Concepts like superposition, entanglement, and teleportation are all things that seem like they should be impossible but have been proven time and time again in the lab. Yes, things do behave very strangely…