Category Archives: Technical

My WCF Diary

As I’m starting to ramp up on WCF (Windows Communication Foundation, formerly code-named Indigo), I was thinking it might be an interesting idea to post some of the interesting artifacts I find along the way. It might be useful for … Continue reading

Posted in Technical | 1 Comment

Celebrating the Vista Launch

I had made peace with the decision to keep running Windows XP on my laptop. Because it was my primary work machine, I was going to stick with what was tried and true. Good ol’ XP hadn’t let me down, … Continue reading

Posted in Technical | Leave a comment

Wanna Get That Book?

Wanna Get That Book? Last year when Visual Studio
2005 and version 2 of the .Net Framework were released,
I read a blog post by Chris Sells stating that he had finally
completed the final drat of his book on Windows Forms
2.0, but that it would be another 4 months before the book
would be in print. Many other authors would produce a
final version of their book based on beta software, and
then post errata based on changes to the final product.
Sometimes those would be small changes, sometimes
big. To avoid those potential pitfalls, Chris decided to wait
for the final release of .Net 2 before Continue reading

Posted in Technical | Leave a comment

Tony's Simple Events Helper

Ah, it’s been a looooong while since I posted something to my technical blog. After having “gone dark” for the last few months, I am finally emerging from my self-imposed seclusion and putting up something you might find useful. A … Continue reading

Posted in Technical | Leave a comment

Value Types in Depth

Value Types in Depth Last time I told you about how the CLR treats reference types, and I gave a brief
description of how each instance of a reference type on the garbage collected heap carries and 8 byte
object header, which includes a type handle pointing to an undocumented, opaque data structure called
CORINFO_CLASS_STRUCT. The main purpose of the type handle is to enable fast type casting and virtual
method dispatch. This time, I’m going to take a close look at how the CLR treats value types and how they’re
designed to be as lightweight as possible by sacrificing some of the features sported by reference types. First
I’d like to recap the Continue reading

Posted in Technical | Leave a comment

Reference Types in Depth

Reference Types in Depth A few years back I read a book written by Don Box called Essential .Net, Volume
1: The Common Language Runtime, but at the time I really didn’t have the kind of grounding needed to fully
grasp all the concepts and explanations. However, I recently re-read the book, after having acquired a more
solid understanding of the design and architecture of .Net, based on reading authors like Andrew Troelsen,
Juval Lowy and Jeffrey Richter, upon which I based a course on .Net fundamentals which I taught to a group
of about 30 developers at Disney. I have to say that Don’s book, written with Continue reading

Posted in Technical | Leave a comment

.Net 2.0+ Essential Reading

.Net 2.0 Essential Reading People keep asking me to recommend a good book for learning C# or
understanding the .Net Framework. But in general there are two problems with programming books: a) There
are far too many out there (making it hard to ferret out the good ones). b) Most of them are too long and
verbose (resulting in a lot of wasted time poring over each one to find what you need to know). What I
decided to do is put together a list of what I consider the very best books related to C# and the .Net Platform.
If you’re like me, you’ve got a few other things to do Continue reading

Posted in Technical | 1 Comment

Calling Invoke on a Delegate

Calling Invoke on a Delegate In C# version 1.x you could not call Invoke directly on a delegate instance.
Doing so would generate a compiler error. class MyApp { delegate void MyDelegate(); static void
TargetMethod(){} static void Main(string[] args) { MyDelegate del = new MyDelegate(TargetMethod); // Illegal
in C# 1.x — generates a CS1533 compiler error del.Invoke(); } } The way to invoke a delegate was to use the
delegate like calling a method directly. // In C# 1.x you must invoke a delegate like this del(); Not everyone
liked having to do it this way. (Don Box was critical of this requirement in his book, Essential Continue reading

Posted in Technical | Leave a comment

Life and Times of Anders Hejlsberg

Life and Times of Anders Hejlsberg I think THE person at the top of the technical heroes list
has got to be Anders Hejlsberg. That sentence might seem so obvious it’s not worth stating.
True, he is the chief designer and architect of the C# language. But that’s not really why I
place him at the top of the list. He is the ultimate software legend (even outshining members of
Microsoft’s now defunct “software legends” program). But I suppose, if I had to capture what
makes him so great, the word that would come to mind is “wisdom.” I just ran across a fabulous
hour-long retrospective interview of Anders on Channel 9: Continue reading

Posted in Technical | Leave a comment

Code Snippets Gone Wild

Code Snippets Gone Wild One of my favorite new features in Visual Studio 2005 is the code snippets
technology. Let’s face it. One of the reasons some of us (the names will not be given in order to protect the
guilty), used fields instead of properties in our classes because we just didn’t want to type those extra lines of
code. I used to use a product called Code Rush with Visual Studio 2003, but it seemed like a lot to learn and
sort of seem to get in the way at times. Visual Studio 2005 comes with a neat feature called “code snippets,”
which fills in a section of code for you and Continue reading

Posted in Technical | Leave a comment