IDisposable Part 5 – Using IDisposable Classes in C#

For part 5 of my series on IDisposable, I want to focus on using IDisposable objects.  We’ve seen many of the ways and reasons you might create an IDisposable class.  Now, we’ll use the classes we’ve created.

Read more

IDisposable Part 4 – Factored Types

For part 4 of my series on IDisposable, I wanted to mention one other place where this interface should be used – Factored Types.

Read more

IDisposable Part 3 – Encapsulating an IDisposable class

For part 3 of my series on IDisposable, I’m going to focus on ownership of other IDisposable resources.  In this series, we’re going to build on our LicenseAGenerator class from Part 2, encapsulating inside of a class which will use it repeatedly.

Read more

ASP.NET MVC

A couple of days ago I went to the Bellingham .NET Users Group event for April.  Jonathan Carter, the technical evangelist for ASP.NET MVC did the talk for the evening, and I must say, it was quite interesting.

Now, personally, I am not a “web guy.”  I do nearly all of my development on the desktop, and most of my experience with web development has been using the LAMP stack, mostly via PHP.  I do try to keep current on what’s out there, and play with a few technologies as they become commonplace, but my day to day programming is still C++ and C# on the desktop.

That being said, I was pleasantly surprised with ASP.NET MVC.  The routing mechanism that’s core to the framework is very elegant.  It does seem obvious to me that Microsoft is borrowing ideas from the Ruby on Rails folks with this – it’s a pretty far departure from the previous means of developing using ASP.NET.

In particular, I love the separation of concerns and the testability.  I definitely think it’s worth checking out…

You know you’ve found a bad C# API when…

I’ve been evaluating a certain, unnamed 3rd party vendor.  They have a programming library API for integrating their product into OEM solutions.

I purposefully don’t want to point fingers, or name specific names, but this API is one of the worst C# API’s I’ve ever seen.  I don’t understand why they even bother providing a C# API and samples…

Read more

My company is a hiring UI Developer!

C Tech Development Corporation is hiring a UI developer.  C Tech rarely hires new developers, since we try to maintain a stable, long term relationship with our employees, so this is a unique opportunity.  Anybody with strong user experience skills, and a .NET development background, please feel free to check it out.

IDisposable Part 2 – Subclass from an IDisposable class

For part 2 of my series on IDisposable, I’m going to focus on subclassing from our IDisposable resource.  We will build on our LicenseGenerator class from Part 1, extending it with some additional functionality.

When subclassing from an IDisposable resource, there are two possibilities for requirements in handling IDisposable correctly.  If we are not introducing any other unmanaged or managed resources that need to be disposed, we can handle this very simply.

Read more

IDisposable Part 1 – Releasing Unmanaged Resources

IDisposable, what is it, why is it needed?  In this part of our series on IDisposable, we’re going to focus on the initial, and primary use case of IDisposable – wrapping unmanaged resources…

Read more

IDisposable – The oft misunderstood and misused interface

During my time following Stack Overflow, one of the most common misconceptions I’ve run across has been confusion in the understanding of IDisposable.

For example, the author of this post confused IDisposable with a way to explicitly free memory.  This question is related to the way using works, how and when to use the using statement.  Here a poster was asking about trying to force the GC to collect earlier…

There are many blog posts and articles online which do an excellent introduction to IDisposable, but most focus on just one aspect of this interface.  In my view, it is too complex of a subject to be tackled in a single article.  To that end, I’m going to break this into a series, each post describing one aspect of using IDisposable in detail.  Hopefully, this will be a way to clear up many of the misconceptions of explicit resource handling in C# and .NET.

Read more

« Previous Page