Thanks for the quick reply. I also should have asked what happens with this design when my beloved Netduino is booting up. are all the pins held high? Or do they wait for some code over the SPI.
Grant
Since the pins are completely owned by the '595s, the Netduino behavior has nothing to do with that.
The '595 outputs could be in any state at power-on, because there's no logic setting them. There's a RESET pin but it acts on the first stage of the register, and has no effect on the output latch. You should "give" a positive edge to the STCP pin (12) to take the first stage status to the output latch.
Fortunately, the Netduino behavior comes as help on that, because it pulls any I/Os high, thus even the STCP.
It remains a problem: how to place a RESET (pin 10) at power-up.
You could ensure that by placing a small capacitor (e.g. 10-100nF) between the RESET pin and ground. You should add also a resistor (e.g. 10k) between the same RESET pin and the '595 positive supply.
That keeps the RESET pin low a bit longer than the rest of the circuit, so that the stages should be cleared.
BTW, if you want my viewpoint, I'd avoid relying on these quirky behaviors, either of the Netduino, as well as the '595. Instead, use the /OE pin (13) to enable the outputs only when your app really wants it. At power-on that pin should be pulled high (e.g. by any Netduino output), so that *ALL* the '595 outputs are Hi-Z (i.e. floating). At this point, you may place pull-ups, pull-downs, or whatever else you need, in whole safety.
No strange behaviors, full customizable, very elegant.
Cheers
Biggest fault of Netduino? It runs by electricity.