Since a few months I work with non-Microsoft technologies and operating systems. I work with Linux, Puppet, Docker (lightweight Linux containers), Apache, Nginx, Node.js and other. So far, it is fun and I’ve learned a lot. This week I saw a lot of news and buzz around OWIN and Katana project. It seems that OWIN …
Author Archives: mslavchev
Software Razzie Awards
This is not a new idea. Every now and then someone suggests it. Apparently I hear about it more often than, say, 5 years ago. Sure, today software is more spread than 5 years ago but somehow I don’t think this is the only reason. I guess the main reason for people dissatisfaction is that …
Software agents from the past
Nowadays, we are all familiar with Siri, Google Now and TellMe but are these intelligent personal assistants something new? Probably you remember Clippy or Rover that Microsoft introduced in the late 1990s and early 2000s. Or probably you remember the intelligent personal assistants for Mac OS or OS/2. Today, I would like to remind you …
Dispose Pattern
There are a lot of blog posts and articles about the proper IDisposable implementation, so why writing another one? I guess I am writing it because the topic is quite subjective as there are many different scenarios for IDisposable usage. I am not going to explore all the details about IDisposable implementation. I would recommend …
Introduction to CLR metadata
If you are a .NET developer then you’ve probably heard or read about CLR metadata. In this blog post I will try to give you a pragmatic view of what CLR metadata is and how to work with it. You are going to learn how to use unmanaged metadata API from C# code. I will …
Analyzing crash dumps with ClrMD
Microsoft recently released the first beta version of Microsoft.Diagnostics.Runtime component. Lee Culver describes ClrMD as follows: ClrMD is a set of advanced APIs for programmatically inspecting a crash dump of a .NET program much in the same way as the SOS Debugging Extensions (SOS). It allows you to write automated crash analysis for your applications …
Parsing “Unsafe” Method Signatures
If you’ve ever used JustMock then you should be familiar with code fragments like this one: public interface IFoo { byte Bar(int i, string s, long l); } var foo = Mock.Create<IFoo>(); Mock.Arrange(() => foo.Bar(123, “test”, 321)).Returns(5); The interesting thing in this code is in the Arrange method. Its signature is as follows: public static …
JustMock Design Choices
JustMock is a small product. It is around 10,000 lines of code. Despite its small size there are a lot of decisions that were made and many others that have to be made. In this post I would like to shed some light on our decision making process and I’ll try to answer the question …
NUI or GUI or … not
Today there are a lot of devices (smartphones, tablets, handheld game consoles, etc.) with support for gestural interface. We often call such interfaces natural user interfaces (NUI). These interfaces are in contrast with the traditional graphical user interfaces (GUI). In this post I am going to share my thoughts and experience with NUI. Every software …
Thoughts on C# Compiler
In 2010 I wrote the blog post Fun with pointers in C#. Back then, I thought it was fun. Today, I am not so sure. Lets take a look at the following code fragment: using System; namespace ClassLibrary1 { public class Class1 { unsafe public void Method1(ref object* obj) { Console.WriteLine(obj->ToString()); } } } If …