After publishing the How To Get Free Disk Space And Other WMI Stuff (.NET) article, I learned two new things. One is about a better way to get free disk space and the other is about a better and easier way to use WMI in general. This is what is good about blogging, you share your knowledge and then learn from others.

 

Better Method For Getting Free Disk Space

Karl Agius left the following comment:

“I agree that WMI is extremely powerful, and that it lets you get to details that are not otherwise available in managed code. In this case though, the free drive space can be derived through the AvailableFreeSpace method in DriveInfo. What are the arguments for using WMI instead of this?

Great article, by the way :D That WMI object browser looks handy … sure beats trawling through MSDN looking for stuff ;) Thanks!”


Continue Reading...

I guess that most of you have already heard about Anders Hejlsberg introduction to the future of C#, taken place at PDC 2008. One of the core features introduced in C# 4.0 is called Dynamic Lookup which allows a unified approach to invoking things dynamically. Currently, when you call object methods or properties, the compiler checks that they exist and raises an error if they do not. With dynamic lookup, you can call any method or property, and they are not checked until runtime. C# 4.0 is extending towards the dynamic languages. Having an object, you do not need to worry about whether it comes from COM, Python, JavaScript or reflection, you just apply operations to it and leave it to the runtime to figure out what exactly those operations mean.


Continue Reading...

I am currently working on a SaveAs feature to some special file formats, those files are very very big. Before actually saving the file, I need to compute its anticipated size and compare it with the free disk space to see if there is enough storage for that operation. After searching a bit about how to get the free disk space, I came across the solution which uses the System.Management namespace. This namespace provides access to a rich set of management information about the system, devices, and applications instrumented to the WMI infrastructure. But, what the hell is WMI?

wmi

WMI is Windows Management Instrumentation and is part of the Windows operating system that provides management information and control. WMI provides extensive instrumentation to accomplish almost any management task and help us obtain information about our system. Applications and services can query for interesting management information such as how much free space is left on the disk, what is the current CPU utilization, which database a certain application is connected to, and much more, using classes from the System.Management namespace. Here is the MSDN page about the Windows Management Instrumentation.

Let me show you how to query the free disk space using WMI:


Continue Reading...

Author: Justin Bezanson

Have you been told that using those fancy JavaScript navigation menus is bad for your search rankings or that you will lose some visitors that have JavaScript turned off? This is a decision that all web developers face at one time or another. Do you use the cool looking menu which may help clean up large menus or do you cater to the largest audience possible? That can be a tough choice sometimes. Well, now there is no need to choose. In this article I will show you how to create a drop down navigation menu that is XHTML 1.0 Strict, CSS valid, opens external links in a new window, and is JavaScript free.

Keeping Backwards Compatibility In Mind

To keep things in perspective, in order to be 100% XHTML 1.0 Strict and support older, non-compliant browsers, a small amount of JavaScript is required. If you do not wish to support IE6 or older and don’t mind switching to a XHTML 1.0 Transitional doctype then this can be accomplished with 100% pure CSS and no JavaScript…


Continue Reading...

small_flagsUntil a couple of years ago, most software applications were released in English. Unfortunately for us the developers, nowadays, many customers require that that the product they purchased, will be localized to a specific language (other than English). I know, for instance, that there is a European law which requires healthcare products to be localized to the European market (starting from 2009 or 2010). Because this article is about how to localize your application using string tables, I recommend you to first read about a free tool which helps you extract hard coded strings to string tables. Don’t go any further before you also read about how to generate public properties for string tables, you must read it.

Setting up a String Table

I assume that you already have some user interface which needs to be localized, I will demonstrate this process with…


Continue Reading...

namingCollision

Are you familiar with the following C# compilation error: “CS0104: ClassA is an ambiguous reference between Namespace1.ClassA and Namespace2.ClassA“? It happens when your program contains using directives for two namespaces and your code references a name that appears in both namespaces.

Lets work with a concrete example:


Continue Reading...

Author: Justin Bezanson

Overview

If you have ever looked at JavaScript as more than just a language for validation and “neat” effects then you know that, despite it’s seemingly simple design, it is a very powerful and complex language. All the frameworks and effects libraries that are being written, like jQuery and ExtJS, are a testament to this fact. Some of the frameworks give you tools for an object oriented (OO) approach to JavaScript. Being a C# programmer I pretty much only code in a OO manner and that just naturally translates into the JavaScript I write.

In this article we are going to take an introductory look at how OO JavaScript works. I am going to assume you are familiar with Object Oriented Programming (OOP) concepts such as encapsulation, inheritance, and polymorphism. If you aren’t familiar with these concepts or would like to refresh your memory you can take a look here. If this sounds like it might be complicated, don’t worry, it really isn’t and I’ll give you lots of example code to show you. Here we go.

Creating a class

The first thing we are going to look at is how to…


Continue Reading...

If you are a .NET developer, you should probably know the .NET Reflector which is a great tool for viewing, navigating and searching through the class hierarchies of .NET assemblies (even if you don’t have the code for them). I am using this tool a lot but here is something I only recently discovered: one can export an assembly and let the Reflector generate its source code. The output of this process is a directory with a project file and all of the source files.

Lets deep dive into this process. The first thing to do is to drag the assembly you’re interested in into the Reflector. I want to show my case on the XHTML sitemap validation tool dll, which can be downloaded from our Freebies page. The next step is to right click on this assembly and choose the Export menu option:

exportreflector


Continue Reading...

Sometimes we need to know the width of a given string in pixels, do you know how to compute it? Before writing some long code, please notice that the .NET framework class library provides such a method. When Googling about this issue, we find the Graphics.MeasureString Method, here is how to use it:

Graphics graphics = this.CreateGraphics();
SizeF textSize = graphics.MeasureString("How long am I?", this.Font);

Nice isn’t it? Well, there is one little problem here, how is the Graphics object created? The written code is a Windows Forms code, so the this is the Form itself. You can’t create the Graphics object by simply allocating it because…


Continue Reading...

Although Dev102 is a blog about software tips, web and technology reviews, I want to introduce you something which is a little bit out of context. Most people, know and use Microsoft Outlook as their email application and are spending too much time searching for conversations, attachments, and other important information in their inbox. A company names Xobni introduce us a free Outlook plugin which offers a new way to organize and search the Outlook email.

image


Continue Reading...