title: How well is a low level multithreading network application in C# going to work on Linux?
body: <p>We are going to build a server application in C# with following properties and technologies:</p>
  
  <ul>
  <li>server-client model running on TCP/IP serving up to hundreds of clients at the same time</li>
  <li>multithreaded design with lots of synchronization</li>
  <li>simple local database based on SQLite or similar engine</li>
  <li>public key cryptography and TLS</li>
  </ul>
  
  <p>My question is, whether we can expect that such a server application will work on Linux as well and whether it will perform well similarly to how it will perform on the Windows platform.</p>
  
  <p>We are not aware of the limitations of Mono and that is where my question points to. Can we expect threads and synchro to work well in Mono on Linux? Can we expect TCP networking to work well in Mono on Linux? Database? </p>
  
  <p>What are today's limitations of running your C# app in Mono? Does it just work, or are there problems? Is something even impossible? Or is it necessary to write some parts of the code separately for each platform?</p>
  
  <p>Edit: Note that I am looking for experience of developers who worked with Mono. I'm mostly concerned about threads and synchro operations. I am not looking for facts and experience, not opinions.</p>