title: Is a console user interface in .net possible?
body: <p>I am wondering whether there are libraries in .NET that make it easy to write console user interfaces. For instance, imagine a WinForms application, where the user can:</p>
  
  <ul>
  <li>Navigate the menus</li>
  <li>Respond to dialogs</li>
  </ul>
  
  <p>And the application in return displays several lines of text.</p>
  
  <p>It can be shown, that the GUI in such an application can be mapped to the respective CUI without any problem.</p>
  
  <p>So, if one has to stick to console, then are there any .NET tools to let write such CUI easily?</p>
  
  <p><strong>EDIT1</strong></p>
  
  <p>Let me define a constraint, which should help folks to grasp the idea of CUI. Imagine a machine, to which you can open a remote console, but not RDS. So, running a GUI application remotely on that machine is out of the question, because it will be unable to open any window. However, it is possible to have a remote console, leaving us with two possible flavors of CUI:</p>
  
  <ul>
  <li>Character based graphics, like old supermarket terminals</li>
  <li>Completely text based.</li>
  </ul>
  
  <p>The first options allows to place characters at arbitrary positions on the console window. ncurses is the low level library for *nix systems that allows to do such things. A CUI created in such a way can be pretty expressive and convenient, but for the sake of our discussion let me rule this option out as well, because a remote console is unlikely to support the ability to move around the console window.</p>
  
  <p>So, this leaves us with the text based CUI, the one created by means of <code>printf</code> and scanf only (and the likes).</p>
  
  <p><strong>EDIT2</strong></p>
  
  <p>Another clarification: I mention Windows Forms in the question as an example of simple User Interface, which has nothing special that could not be translated to text based console UI. This is only to illustrate that simple GUI elements like menus and modal dialogues can be modeled in console without resorting to windows.</p>