i’m not expert but this is what I’ve gleaned over the past several years:
.net is a framework for Windows that pre-implements lots of stuff that is generally tedious for high-level coding. (hardware input/output, rendering, base classes for shapes, drawing, textboxes, standardized window-borders etc etc etc)
Mono is a cross-platform framework that closely mimics .net … I don’t know about VB, but C# compiles rather nicely on linux simply by compiling against the Mono libraries instead of .net libraries (and using a Mono compiler). There are a few things to beware of: no p-invoke, use crossplatform constants/macros for directory separators, etc.
A mono-built binary should run natively on linux or mac (or windows) if they have the mono libraries installed*. No need for wine.
Wine works on a deeper level than either .net or Mono; it is an operating-system interoperability layer that simulates windows on linux. But a program that’s built directly with Mono will perform better than a program that’s built against .net and run in Wine.
That is, programs that were built against .net (for Windows) should run on Wine (in linux). but you might not like it …**
Mono and .net do not run together, it’s one or the other.
Programs built with Mono do not need Wine. but i get yer point, just sayin all this for general perview …
all That said… i can only imagine what a bother it would be if Surazal wished to rework NIT for usage on linux systems: the expected file and directory structures are… different, as in very different,
* not sure about that, it might be possible to use static linking, resulting in a standalone executable.
** do NOT try that with NIT – at least not without consulting @Surazal first.
note: I made my decision to stick w/ Windows a long time ago (no regrets!). But if i had even a single Linux machine I’d be writing for Mono instead of .NET
… obviously, i guess