Blog TIL Now Tags Projects About
Post · January 5, 2026

Git Wrapped for 2025

I don't recall pulling up my Git Wrapped before, but I saw someone link theirs today, so I decided to check it out. You can see mine at...

Post · July 23, 2025

Brief intro into JetBrains.Annotations

I'm a longtime fan of JetBrains tooling... I've been using them since at least 2007 (see my first post about TDD where I first mention ReSharper). Today, my...

Post · December 1, 2024

Adding Database Backup Support to Testcontainers

Testcontainers is a relatively new library that can help a lot with working with resources like databases by using containerization. From the website: ...

Post · July 11, 2015

Brief History of (.NET) Threading

I just wrapped up my CodeStock presentation on a Brief History of (.NET) Threading. I attempted to cover the last 10 years of threading in .NET starting from...

Post · May 29, 2014

Digging into the ASP.NET vNext Environment

DISCLAIMER: I'm still digging and learning about the new .NET bits... this blog post is just what I've learned on my own thus far. If I say something...

Post · December 6, 2013

A Look at Converting an Existing Application to Async/Await

Microsoft has made strides in the realm of multithreading in the last few years by introducing things like the Task Parallel Library and now async/await...

Post · August 19, 2011

WCF and service-side Timeouts

Ah, timeouts. At my previous job, I wrote quite a bit of code that dealt with threading. When dealing with threads, asynchronous operations, and performant...

Post · May 31, 2011

Fun with binary!

I know what you're thinking... "did he just say 'binary data'? Like, 1's and 0's?" Well, yes, yes I did. If you're like me, the last time you actively had to...

Post · January 10, 2011

A custom switch statement in C#

I don't usually do blog requests, but then again, I don't usually get blog requests. I've got a few friends that I email back and forth with regarding...

Post · November 30, 2009

Big shoes to fill...

Almost 2 years ago a few guys in the Fort Smith area decided we needed a .NET User Group here. We've fairly consistently had a good 20 to 30 people show up to...

Post · May 23, 2009

Real world walkthrough with WinDbg

Most of the work I currently do (during the day) is with WinForms applications and most of the time, debugging their problems really isn't all that hard....

Post · May 19, 2009

NHibernate Unit Testing... with Fluent NHibernate!

I've been attempting to learn NHibernate lately. One of the big draws for me was the ability to write unit tests that did hit a database, but an in-memory one....

Post · January 26, 2009

Finding the right exception to throw

If you've been writing .NET applications for a while, you're likely aware that you're not supposed to just throw Exception. Instead, if you're dealing with a...

Post · December 5, 2008

Design-Time Data for Expression Blend

This post presents a problem that has been approached by others before, but I thought I'd offer yet another possible solution. But first, let's introduce the...

Post · December 4, 2008

Neat LINQ statement to move newer files from the network

Thought I'd share the below LINQ statement I wrote recently: In this case, the files that are being returned are actually IFileProvider instances, which are...

Post · November 19, 2008

Programmatically adding EventSetters in WPF

I've been doing some WPF work lately. WPF is ridiculously powerful and provides a lot more than WinForms. On the other hand - wow, the learning curve is quite...

Post · May 7, 2008

Reflection by example with Powershell

A coworker swung by a few days ago to ask some questions about using Reflection. I learn really well by example so I decided to use Powershell to show using...

Post · April 24, 2008

Simple tutorial on System.Threading.Mutex for dummies (like me)

(Warning - this post is both a rant against the Mutex as well as a guide for its usage. Also, don't blindly copy code, only the bottom code snippet works. :-)...

Post · February 5, 2008

Don't you wish Path.Combine supported multiple arguments out of the box?

I've found myself wishing that I could pass in more than two arguments to Path.Combine. That is, something like this: As it is, Path.Combine only accepts two...

Post · January 17, 2008

The \_NT_SYMBOL_PATH settings with the .NET Framework reference source

I couldn't find this information anywhere (yet), so I thought I'd share this. If you're already using the NTSYMBOLPATH setting to download symbols from...

Post · December 6, 2007

No multi-line lambdas in VB 2008

In case you've been under a rock recently, Visual Studio 2008 was released recently which supports a lot of functional capabilities like lambda expressions....

Post · November 14, 2007

Successful first baby steps with Test Driven Development

I'm close to finishing up some work on one of my first true TDD projects and it has gone great for the most part. It did take a long time to get started...

Post · October 26, 2007

The new version of Rhino.Mocks is awesome!

Ayende is the man. Seriously. Today, he released Rhino Mocks 3.3 to great fanfare. If there wasn't great fanfare, there should be. My favorite new feature -...

Post · September 28, 2007

Weirdness with process names on Win2K

One of the banes of my existence (okay, not that bad but fun to say) is supporting Windows 2000 at work. Yes, there are still Win2K machines out there - not...

Post · September 11, 2007

.NET Roadshow 2007

I'm off to .NET Roadshow 2007 in Dallas! The speakers are Juval Löwy, Michèle Leroux Bustamante, and Brian Noyes. My hope is we'll be doing some...

Post · August 30, 2007

An unexpected benefit from COM objects in managed code

I was messing around with some unit tests this week and I came across an unexpected benefit while working on code that worked with a COM object. When you add a...

Post · August 22, 2007

A simple lesson using type converters

I found myself writing the following code this evening: Don't ever write code like this. Read the documentation which explicitly says that "you should never...

Post · August 21, 2007

Iron Everything

I was looking through programming.reddit.com today and discovered that IronLisp now has a website on Codeplex. I haven't coded in LISP since college, but it...

Post · August 7, 2007

System.Windows.Forms.WebBrowser and Selenium

I work with the WebBrowser control that was introduced in .NET 2.0 (as well as the ActiveX browser it is based on) a lot at work. As a result, I've come to...

Post · August 2, 2007

Blocked threads and transparent proxies

Given this: What is the difference between this class and this class? Both classes have a field named something that is a reference to an HTTP remoting proxy...

Post · May 1, 2007

New security model with Silverlight?

I just finished reading this post from the BCLTeam blog on the Silverlight 1.1 Alpha release that was announced at MIX07. It sounds like there is a new...

Post · March 27, 2007

XmlSerializer and "why is my application kicking off the C# compiler?"

Lately, I've been working on performance enhancements to one of the projects at work. Our users had all mentioned that the application's startup time was...

Post · February 12, 2007

Problems with the WebBrowser control and IDocHostUIHandler

Lately, I've been doing some work with the WebBrowser control (new in the 2.0 framework). It really does offer a lot of benefits over directly using the...

Post · January 16, 2007

Possible solution to problems when remoting between .NET 1.1 and 2.0

We're in the process of migrating to .NET 2.0 at work and one of the the things we've encountered is a problem with remoting between .NET 1.1 and 2.0...

Post · December 11, 2006

What does NaN look like?

I'll tell you what it looks like. It looks like -1.#IND. That's what it looks like. At least if the code is using the Double.NaN constant. I sure didn't know...

Post · September 25, 2006

The New and Improved Method for getting the title/caption from an image

Last month (almost two months ago!), I posted on how to programmatically get the caption for an image in C#. I haven't posted much more on the subject lately,...

Post · September 7, 2006

Notes on the BrowsableAttribute

When you're creating a GUI control in Visual Studio, your public properties will be displayed in the Property Grid and you can customize this by using...

Post · August 31, 2006

VS Properties Extender and Hawkeye

Back in January, Gaston Milano posted a sort of wishlist for the next version of Visual Studio. One of the features he wanted was the ability to filter...

Post · August 25, 2006

Infinities Loop - A great ASP.NET resource

I wanted to put out a quick post to say thanks to Dave Reed and his Infinities Loop blog. He recently moved his blog from blogger.com to weblogs.asp.net, which...

Post · August 22, 2006

Create a thumbnail or resize an image in .NET!

(After yesterday's post on getting metadata from images in .NET, I've decided to continue to post some of the information I find regarding working with images...

Post · August 22, 2006

Designer class not being used by designer

In one of my projects at work, I ran into a situation where Visual Studio 2005 didn't recognize my designer files (i.e. MainForm.Designer.vb) so all of the...

Post · August 21, 2006

Getting the caption of an image programmatically

So, this is a little off-topic compared to some of the other posts I have done lately, but it was something new to me and I thought I'd share it for...

Post · July 20, 2006

Fun with DesignMode (and why it wasn't Visual Studio's fault)

Like many other users of Visual Studio 2005, I've occasionally received the WSoD (White Screen of Death) while using the designer. And like a typical user, I...

Post · July 5, 2006

NDoc 2005

Just a short note, but for those who have been waiting for a version of NDoc that supports .NET 2.0 assemblies, there is a separate project out on SourceForge...

Post · June 30, 2006

BindingList - data binding the way you would expect in .NET 2.0!

If anyone out there knew about the BindingList before today, I sure wish one of you would have told me. Now I know, if you had known I was looking for...

Post · June 27, 2006

A little bit about ManualResetEvent

I'm not sure how often people run into situations where the ManualResetEvent is needed, but I have a few times. System.Threading.ManualResetEvent provides an...

Post · June 15, 2006

Partial class recommendation

We were working with partial classes recently at work and we came up with a best practice usage for naming them, at lease for our needs, and I thought I would...

Post · June 6, 2006

Outlook 2007 and Trusted Access

As many of you are aware, if you attempt to access your Outlook data using some of the Outlook Interop assemblies, you'll be seeing a security dialog informing...

Post · June 6, 2006

XPath Helper

I don't have much experience with XPath expressions. This was further illustrated to me recently when I was attempting to use XPath to programmatically parse...

Post · May 11, 2006

Finding the appropriate exception to throw...

Prompted primarily by Karl Sequin's excellent "Understanding and Using Exceptions" post, I was recently attempting to clean up some of the generic exceptions...

Post · April 21, 2006

"Object does not match target type." and ISupportInitialize

Continuing in the tradition of posts on Visual Studio WSoD's, I ran into another one today that gave me this error: "Object does not match target type."...

Post · April 14, 2006

Checking for visual style support

I had some code that I was porting from .NET 1.1 to .NET 2.0 today. The code I had was checking the version of comctl32.dll to see if it was version 6 or...

Post · April 14, 2006

"The designer loader did not provide a root component but has not indicated why."

Ever seen this error in Visual Studio 2005? I've seen it all too often and it is really annoying. However, I did find a possible fix today. I was working in a...

Post · April 13, 2006

A few interesting things about the BackgroundWorker in .NET 2.0

I stumbled across this post by Mike Woodring today. Apparently, the UserState property from the BackgroundWorker isn't accessible from the RunWorkerCompleted...

Post · April 11, 2006

Extending MSBuild with custom tasks

MSBuild is a great tool. If you're not familiar with it, it is Microsoft's new build engine which was released with .NET 2.0. Visual Studio 2005 uses it behind...

Post · March 31, 2006

Opening files that don't have associated programs

Recently, I was adding the ability to open files from an application at work. Luckily, I had run into this situation before, so I knew that you could run a...

Post · March 24, 2006

Can we say disk crash?

Yesterday, after I had been at work for about an hour, Outlook started giving me some weird errors (something about cyclic redundancy checks). I googled the...

Post · March 24, 2006

Who cares about predicates without closures?

I've been using the System.Collections.Generic namespace an awful lot lately. I really like it, too. I use the List<T collection all the time. It is so much...

Post · March 22, 2006

New release of FileHelpers

I've blogged about FileHelpers before. I like it a lot. Since then, Marcos has added even more great features to it including support for .NET 2.0 Generics and...

Post · March 22, 2006

What in the world is Event Validation???

I remember the first time I ran into an ASP.NET error talking about event validation (specifically while playing with CommunityServer). The solution I...

Post · March 16, 2006

65% of my time in Garbage Collection?!?

A few days ago, I was working in Visual Studio 2005 and I was getting awful performance out of it. I decided to pull up Process Explorer to see if I could...

Post · March 8, 2006

More on the FlowLayoutPanel

I've blogged about the FlowLayoutPanel in the past. It is a highly useful control in certain circumstances, but it doesn't behave as expected a lot of the...

Post · March 6, 2006

Working with Extended MAPI from .NET

Lately, I've been doing some work with integrating some of my managed applications with Outlook. There are a lot of code examples and articles out there on...

Post · March 6, 2006

Setting a focus on load

This may not be new for everyone, but I just learned it today. In webpages, to set focus to a control after a page has loaded, you handle the body's onload...

Post · March 2, 2006

Generic Fun!

Thanks to a post from Jeff Atwood, I discovered the blog of Francesco Belana. He's the author of some great books including Programming Visual Basic.NET, which...

Post · March 1, 2006

Thread-safe GUIs in .NET 2.0

Roy Osherove posts today about different ways to accomplish thread-safe GUIs using .NET 2.0... and C#. Since we're primarily using VB.NET at work, we don't get...

Post · January 24, 2006

Some notes on the FlowLayoutPanel

I've been experimenting with the FlowLayoutPanel. There are a few catches to using it that can cause some confusion. In my case, the confusion came from...

Post · January 20, 2006

FtpWebRequest/FtpWebResponse Errors

I discovered today that the new FtpWebRequest/FtpWebResponse classes might not be the best options for connecting to FTP servers, at least unless you're in...

Post · January 20, 2006

.NET 2.0 and COM Interoperability Gotcha

Here is a little gotcha with some changes to the way that .NET 2.0 handles COM interoperability. You probably won't run into this problem unless you're...

Post · January 5, 2006

FileHelpers

By way of Larkware, I came across the FileHelpers library written by Marcos Meli. It looks like a great solution for dealing with delimited or fixed length...

Post · January 5, 2006

The FileHelpers library ROCKS!

My post earlier today referred to the FileHelpers library by Marcos Meli. Wow, do I wish I had known about this earlier. This thing is great! With a few easy...

Post · January 4, 2006

"Tools.InstallCommunityControls" is not valid...

I ran into that error today while attempting to install Infragistics NetAdvantage 2005. I'm not exactly sure about why the error occurred, but I was able to...

Post · January 3, 2006

Designer and property fun!

I ran into a strange situation this afternoon with visual inheritance and threading. I've created a master form for my area at work so that we can have a...