[Mono-list] ".NET 3.0" misnomer

Andreas Färber andreas.faerber at web.de
Mon Aug 14 09:22:08 EDT 2006

Hi Miguel,

> If you need cross platform APIs, then do not use any APIs that are not
> implemented by Mono.  It is that simple.
> As with any other open source project, if you need something that  
> is not
> implemented by it, and you absolutely must have it, you can always
> implement it.  Either yourself, or a third party, but you can  
> implement
> it.
> My suggestion is to stay on the safe side and use Mono implemented  
> APIs,
> and even the Mono stack.

Picking this out of its context, you are forgetting one thing: APIs  
usually evolve around two principles - add features and simplify  
tasks. The latter is the reason why I am not sticking with .NET 1.1  
and waiting for .NET 2.0 support to be declared complete - C#  
generics make writing some of my libraries dramatically faster, and  
that boost in productivity was one of the reasons I started  
using .NET instead of C++/COM in the first place. Now I don't need  
the neat Avalon graphics stuff and especially not XML based UIs but I  
did hear rumors WPF would provide support for navigational apps -  
whereas currently I need to write and maintain my own "Inductive UI"  
framework based on System.Windows.Forms.

Restricting yourself to a common set of APIs is a pain really; I  
wanted WS-BaseNotification so in addition to the required SOAP  
message exchanges I had to write my own TCP based and WS-Addressing  
compatible SOAP stack, functionality provided on Windows by  
Microsoft's WSE and probably Indigo/WCF but to my knowledge not on  
Mono. So such a decision for cross-platform software does not always  
come easy or without a price to pay.

Having more ready-to-use cross-platform libraries that fit such  
niches would help to that aspect (e.g. few really need a clone of an  
everchanging WSE but people might need some of the features  
independent of the API). Might it be possible to host something like  
http://www.apple.com/downloads/macosx/ to assist developers in  
finding existing cross-platform or Mono-specific libraries? For  
example, have a category Graphics or Charts and list ZedGraph and  
NPlot there and make it easily locatable on the site - as a marketing  
effect this would show to people new to Mono that there are in fact  
lots of compatible libraries around, and for the existing developers  
it could avoid some lengthy googling for specific things.

Mentioning that we could/should add missing features ourselves, I  
might try that for System.IO.UnmanagedMemoryStream (which appeared to  
be missing in 1.1.16?), writing a new C# class is pretty  
straightforward and does not require knowledge of previous code, but  
messing around with the runtime definitely is not as easy.

Nontheless, it's still unparalleled cool that I can seemlessly  
run .NET based apps on Windows, Linux, Mac OS X and Solaris at all! I  
didn't imagine this when I started .NET coding in 2002.

Best regards,


More information about the Mono-list mailing list