System.WeakReference internals and side-effects
After discussing the uses of WeakReference, I decided to dig into the internal implementation in .NET a bit more. I thought I’d write a short bit about how the WeakReference class works internally, and some side effects of using this vs. a standard strong reference.
Working with the GC instead of against it – System.WeakReference in .NET
While garbage collection isn’t the thing that sets .NET above development in C++ in my mind, it is a major factor. The garbage collector in .NET is a wonderful thing. It makes development much cleaner, safer, and more enjoyable in general. Not only do you get great developer productivity boons, you also have a level of safety that just makes writing memory intensive code more fun.
The GC in the CLR is fantastic – until it isn’t. As much as I love the garbage collector, it also can have some pretty nasty side effects, notably causing memory leaks that are sometimes difficult to trace and fairly painful to correct.
Visual Studio 2010 Beta
Microsoft just released Visual Studio 2010 Beta to the public at large. Now we just have to wait for the final release…
Just keep repeating: “C# is not Java. C# is not C++.”
Vicente Cartas’s latest blog post on Singleton’s in C# (original post in Spanish) illustrates something very important for learning C# well – there are subtle, but very important differences in C# which are very valuable to learn if you’re coming from a Java or C++ background. This is a classic example – the traditional C++ forms of the Singleton pattern are not appropriate in C#.
C# and .NET make life a lot easier, in a lot of ways… but it’s critical to understand the subtle nuances caused by the abstraction layers .NET provides.
Great news on the parallel front for VS 2010
I just saw Daniel Moth’s latest post on new features in Visual Studio 2010, and I got excited and decided that I had to share.
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.
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.
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.
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…
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.