After all, let me mention that many people think that .net executes a kind of scripting / interpreted code, and thus it's much slower than native c++ or c code. This is simply not true because .net runs the same byte (machine) code as c++ executable. The only difference is that .net uses JIT...
Well, the question was rather about ATS, thus I assume this gentleman is not going to write a low level engine like QuickFIX, which is indeed an excellent piece of code, but rather a high level automated trading system, right?
Hmm, what about managed c++ in .net ? You can use it if you want to speed up any critical part of the framework. Also, you can call unmanaged code (be it assembler or plain c) under .net. Any problems here?
Vasilii