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, Andreas _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list