Create New Classes from Server Explorer
You can get Visual Studio to create classes for managing (or, at least, observing) computer resources for you. In Server Explorer, under the Management Classes node, you'll find a list of "things you can manage." This includes desktop settings, processes/threads, and printers (!!), among other resource.
Find the item you want, right-mouse click on it, and select "Generate Management Class" to have Visual Studio generate a management class for you.
For instance, right-mouse clicking on My Computer in Server Explorer generates a class called ComputerSystem (in the namespace ROOT.CIMV2) with all sorts of read/write properties for changing settings on your application's host computer. It also includes many read-only properties for checking the computer's state. Several enumerations are included to allow you to write readable code.
There's another way to get Visual Studio to create a class for managing computer resources for you. If you work with Message Queues (or any of the other things listed in Server Explorer), Visual Studio is more than willing to generate a control that you can use from your code to manage that resource.
Just click on the item in Server Explorer and drag it onto a form (or any other design surface). Dragging a Message Queue from Server Explorer gives you a control dedicated to that queue with Receive and Send methods (and a ton of other methods and properties). You can do this with anything listed under the Services node or any of the categories listed under Event Logs.
You can use this feature in a class library, even though classes don't normally have a design surface. In Solution Explorer, right-mouse click on your project and select Add Component, instead of your normal Add Class. That will give you a "class with a design surface" that you can drag Server Explorer resources onto.
Don't go nuts! You can drag some but not all from Server Explorer -- see http://msdn.microsoft.com/en-us/library/84s2c1k0.aspx for a list of what you can and can not drag.
Do you have a Visual Studio tip, you'd like to share? Send it to me at firstname.lastname@example.org.
Posted by Peter Vogel on 04/12/2011 at 1:16 PM