Smarter Time-limited Caching

[4/10/2015 3:50:03 PM UPDATE: I updated the definition of the Caches class to support injecting dependencies into ICaches<T> implementations.]

[7/1/2017 2:44:53 PM UPDATE: Here’s a dinky little solution that illustrates the caching solution at work:   ConsoleApp1

Also, I hate reading my old posts. :) ]

In many applications, there is a need to globally cache some information for a certain period of time, and then periodically refresh that data the next time it is called upon.

And more often than not, there are several different types of information that we want to cache using this paradigm.  And wouldn’t it be cool if we could call a single method to reset all of the caches we’re holding on to?

Here’s how I like to make that kind of magic happen…  …Continue reading “Smarter Time-limited Caching” [Smarter Time-limited Caching]

My 20 Minute Software Developer Presentation for 7th Grade Career Day

Earlier this week, I had the pleasure of waxing poetic on all that is software development to four groups of 7th graders at a local elementary school. I figured it’d be a good idea to document the experience for other developers who might find themselves in the same situation one day (turns out, I’m not the first developer to do a career day presentation). …Continue reading “My 20 Minute Software Developer Presentation for 7th Grade Career Day” [My 20 Minute Software Developer Presentation for 7th Grade Career Day]

Software developer “dirty work”

I love love love LOOOOOOOOOOOOOOOVE writing code!

Writing code. I love it.

But writing code alone won’t get you very far in this career. To be a good developer, you have to be good at more than just writing code.

You have to be good at the “dirty work”.

What is software developer dirty work?  …Continue reading “Software developer “dirty work”” [Software developer “dirty work”]

Window Layout Management in Visual Studio 2015

We’ve all been there…  It’s 5pm at work.. You un-dock your laptop from your three 24″ 4k monitors to head home and continue the coding fest from home on your single 17″ CRT monitor that you stole from work ten years ago.

By default, Visual Studio 2013 takes all those windows you had open at work and shoehorns them all to one monitor for your viewing pleasure..  Here’s what my Visual Studio looks like sometimes when I get home: …Continue reading “Window Layout Management in Visual Studio 2015” [Window Layout Management in Visual Studio 2015]

Debugging Lamda Expressions with Visual Studio 2015

Ladies and gentlemen, we have finally reached the holy grail of debugging!

I don’t know whose idea it was not not mention this during today’s Connect(); event, but here’s one new feature of Visual Studio 2015 that, personally, I feel should have made the keynote. …Continue reading “Debugging Lamda Expressions with Visual Studio 2015” [Debugging Lamda Expressions with Visual Studio 2015]

Vim, for the first time, also in Visual Studio

What is this… Vim…? I’m only just now getting to know you… How did I avoid you for so long? How did you not make yourself known to me previously? And when you finally did make yourself known, via the git command line, why did you not tell me you were more than just a pain in the ass?

Why is your logo so ugly? 

A month ago, I found myself being forced into learning the basics of Vim. It’s the default editor when you install git, and it’s frustrating as snot if you go at it with any sort of “this is how it’s done in Windows” expectation.

A month later, I’m more productive than ever in Visual Studio 2013 thanks to VsVim, a “Vim emulation layer for Visual Studio 2010 and above”.

Even when my fingers are fumbling over the keyboard, incorrectly guessing the key combination for some complex vim task, I still feel more efficient than I used to be.

And, more than anything, my hands hurt less.


Connect KendoUI to MVC Web API without ODataController

This is in response to a recent post by Steve Smith (Connect KendoUI AutoComplete to MVC Action).

In his post, Steve stated that using Web API to connect a KendoUI AutoComplete with OData “can present a challenge”.

Yes, ODataControllers definitely present a challenge.. and, I admit.. the first time I tried to get KendoUI to talk to MVC without using an ODataController, I kinda wanted to pull all of my hair out.

But now that I’ve done it a couple dozen times, it’s not so bad.

I’ll walk you through the process now…  …Continue reading “Connect KendoUI to MVC Web API without ODataController” [Connect KendoUI to MVC Web API without ODataController]

VisualStudio 14 stopped working after upgrading to Windows 10 build 9860?

Upon upgrading to Windows 10 build 9860, the latest Visual Studio 14 preview starting showing this error on startup:

The ‘Microsoft.VisualStudio.Editor.Implementation.EditorPackage’ package did not load correctly.


Things didn’t get any better when you try to do anything in the shiny new IDE.. For example, here’s what happens when creating a new C# Console project:

Object of type ‘System.Collections.Generic.List’1[System.Lazy’1+Boxed[Microsoft.VisualSstudio.Text.IExtensionErrorHandler]]’ cannot be converted to type ‘System.Collections.Generic.List’1[System.Lazy’1[Microsoft.Text.IExtensionErrorHandler]]’.


Fortunately, I found that repairing Microsoft Visual Studio Professional 14 CTP in Add/Remove Programs seems to fix the problem.. You will get the following error at the end of the repair procedure, but at least I’m able to use Visual Studio again afterwards:


Aiming for

I recently put in an application to become a Pluralsight author ( I’m hoping they’ll read this and know that I’m very serious about making this happen. I really believe I’m capable of making really great videos for what is already the world’s best resource for developer training.

So, hello Pluralsight application reviewer person! Let’s be friends! :)

update-package… What just happened?

When you run update-package in the package manager console, it is often difficult to determine which packages were actually updated due to all of the output that update -package creates.

I find the easiest way to figure out what happened during the update process is to copy/paste the results into a text editor and run a few regular expressions over the data to shape it into something that makes sense.  …Continue reading “update-package… What just happened?” [update-package… What just happened?]

Scroll Up