I went to my local .NET user group meeting last night and watched a very exciting presentation by Brian Peek on interfacing hardware with .NET. The presentation focused around the use of Phidgets USB controller boards to read and control various inputs and outputs. Phidgets has the controller boards as well as a whole host of input devices themselves for factors such as RFID scanning, temperature, position/rotation, and light. They also have some small servo motors. To round it all out, they provide APIs for .NET, Visual Basic, VBA, LabView, Java, Delphi, C and C++. The examples Brian showed us looked ridiculously simple to program with the API they provide. It certainly puts a new spin on the various ideas I've had over the years for doing home automation.
The last part of Brian's presentation was about interfacing with the Wiimote from .NET using the WiimoteLib managed library he developed. He put everything together and showed us a simple R/C car controlled by a Phidgets digital i/o board using the Wiimote as the remote control. It was the first time I'd ever seen a .NET user group so enthralled.