[Mono-list] ".NET 3.0" misnomer
andreas.faerber at web.de
Mon Aug 14 09:22:08 EDT 2006
> 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
> My suggestion is to stay on the safe side and use Mono implemented
> 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.
More information about the Mono-list