May 31
Frequently asked questions, some assembly required.
This multi-part article answers common questions about assemblies–the basic building blocks of .NET applications. Some developers may never need to understand assemblies. But if you create shared components, use DLLs or deliver a suite of applications, then it’s essential to understand what .NET assemblies are and how they work.
Read the rest of this entry »
May 30
When you attempt to add an assembly reference to a Visual Studio project, the Add Reference dialog appears with a list of registered global assemblies in the .NET tab:
Add Your Assembly to Visual Studio
Unfortunately, adding your assembly to the Global Assembly Cache (GAC) does NOT make it automatically appear in the Visual Studio list of installed assemblies; you must add your assembly manually as follows:
Read the rest of this entry »
May 29
Sometimes you need to know which version of an assembly was loaded by your .NET application. The following code snippet makes it easy:
Read the rest of this entry »
May 22
Playing the default Windows sounds from C# used to require InteropServices and system calls. Fortunately, .NET 2.0 includes a new System.Media namespace with three classes that simplify playing system sounds and audio files:
Read the rest of this entry »
May 20
One of the things I miss about C++ is the #define keyword that allows you to create an abbreviated alias for a long type name. Fortunately, C# provides a way to alias a long namespace or class name while retaining full type-checking.
To alias a namespace or class name, use the using directive to define the alias as shown in the sample code below. Then you can use the alias anywhere you would normally use the class name or namespace. The scope of a using directive is limited to the file in which it appears.
Read the rest of this entry »
May 16
Developers for the Microsoft .NET platform are blessed to have three high-quality .NET magazines available to them: CoDe Component Developer Magazine, MSDN Magazine, and Visual Studio Magazine.
Why would a tech savvy software developer want to read a paper magazine when so much information is available online? Well, some of us “old timers” still appreciate the fresh smell and slick feel of a high-gloss monthly. Also, magazine articles are often produced by professional writers who explain subjects in greater clarity and detail than one may find on the Web. And there are times when a developer may not be connected, such as when riding the train, sitting in a meeting, or eating lunch.
Read the rest of this entry »
May 08
If you use images in a .NET application, chances are you will find it more convenient to embed those images as resources in your project, rather than leaving them as separate files and trying to locate and load the images from disk when the application runs.
Read the rest of this entry »
May 02
The DoDragDrop method on a control is synchronous. This means that when you call DoDragDrop to start a drag operation, the program will not return and execute the rest of your handler code until the user 1) drops the data she is dragging, or 2) cancels the drag operation. This is one of those little facts that you need to file away in your brain, as it could have a profound effect on your drag & drop logic.
Read the rest of this entry »