Span<T> - byte to int conversions

20180913 update - New post with updated example; enjoy! There has been a recent push for performance improvements in the dotnet framework and as part of that, and any performance improvement work, there has been analysis done around the memory allocations being used for certain operations. I’m probably nearer to novice than expert in this matter however the launch of Span peaked my interest. The main starting point for me was the January 2018 MSDN magazine article by Stephen Toub called C# - All About Span: Exploring a New ....

January 6, 2018 · 3 min

Asp.net MVC Output Caching During Development

During some asp.Net MVC development for a public website recently I have been looking at caching. The content of the site has minimal churn so I looked to use OutputCache. This works fine once it’s been finished and released. However it causes frustrations during development when you want to change something, compile, refresh and nothing happens. One option is to comment out the OutputCache attribute, either on each action or on the specific controller, during development but that seems a bit crazy and isn’t sustainable....

December 13, 2014 · 1 min

Enums in C#; Doing More Than You Thought!

I have been developing for a while now and use Enums on a daily basis (nearly) and was quite happy in my understanding an Enum definition had a set number of values and of those values they could be cast to the related integer value (or another under-lying type) and back again. And then I saw the following piece of code (condensed down for example): System.Net.HttpStatusCode value = (System.Net.HttpStatusCode)429; var result = (429 == (int)value); There is no corresponding value in System....

July 22, 2014 · 2 min

Make your code readable by making it flow with Generics

I’ve seen a couple of examples of code recently which basically have a method which work primarily on a base class but the resultant will always be cast to a concrete implementation. This can make the code a bit clunky as each caller has to cast the resultant to the type it’s expecting. Let me show you want I mean: public abstract class Base { public string Comment { get; set; } } public class Concrete : Base { } public class Update { public static Base AddComment(string message) { // the type created can be determined by some other means eg db call etc....

July 18, 2013 · 2 min

Debugging WCF messages before serialization

Over the past couple of weeks I’ve been doing a lot of work with WCF to do with the messages being sent between client and server and securely signing them. Signing the message isn’t the subject of this post however developing the following technique to see the message before it’s sent did lead me onto the solution for debugging messages being sent between client and server. This post is to show how you can intercept the message, update it once its been serialized into xml (or just look at the xml) but before it’s been sent to the server....

September 27, 2012 · 6 min