one avr is acting like a USB to serial bridge, it used to be a FTDI device, the other is the main MCU, its programmed with avrgcc and a nice thick layer of user friendly libraries, there is no real reason you could not take the same board and program it in plain C or ASM
arduino also supports darn near every 8 bit atmel mcu though the use of core files, and you can use the arduino as a programmer ... as far as .NET stuff, i have no idea, but the only thing keeping you from making your own for pretty much any microcontroller system is your time and fabrication skills