In my experience, if you don't stray to far away from the core framework, you 
are in very good shape with API support. Stay away from things like Entity 
Framework and WPF (completely unsupported), use things like WCF and server 
components should be done with caution, but LINQ, TPL, or other parts of the 
core framework have very robust and well-tested implementations and you are 
much less likely to encounter issues.

Of course you should test, and particularly load test, across platforms as some 
of the internals work a little differently and bugs can pop up in unexpected 
scenarios.

As far as the runtime version included in various Linux distributions, in many 
cases it is better to package the runtime with your application.  RHEL / CentOS 
have an old mono distribution by way of the EPEL repository and by nature, that 
distribution uses older software versions. This isn't just a mono constraint; 
if you have a python application that relies on python > 2.4 (which is from 
2006), then you need to package your own python to distribute to RHEL / CentOS.

I wouldn't let the OS dictate the runtime you should use if it is simply a 
matter of packaging a newer runtime with your application. The OS can only 
really dictate the shared runtime version.

On Aug 7, 2012, at 7:41 AM, edward.harvey.mono wrote:

>> From: [email protected] [mailto:mono-list-
>> [email protected]] On Behalf Of Stifu
>> 
>> Keep in mind that just because a certain Mono version supports a certain
>> .NET
>> profile, doesn't mean it fully supports everything in that profile. For
>> example, Mono 2.0 supports .NET 2.0 and 3.5, but has many missing 3.5 bits.
>> Even the latest Mono versions do not support all the APIs .NET does. So
>> things are not as simple as deciding which .NET version you want to support.
>> 
>> By the way, check out the Mono wikipedia page:
>> http://en.wikipedia.org/wiki/Mono_%28software%29#History
>> It may give you the overview you're looking for. It says Mono 1.2 supports
>> C# 2.0, but that the APIs are not on par with .NET 2.0 until Mono 2.0.
> 
> Ahh.  I was understanding before, that any given mono version is not 100% 
> compatible with any particular .Net version, but perhaps I wasn't 
> understanding well enough...
> 
> Here's my new perception - The goal is to develop some applications 
> cross-platform compatible (specifically, windows, mac, ubuntu, centos).  It 
> is understood that the application for each platform will be a separate 
> product, we can't just reuse all the code and expect it to work on another 
> platform.    But we'd like to maximize the code reuse.  It's understood, the 
> only way to do this is to start developing on one platform, and obsessively 
> frequently test the code on multiple platforms.  The goal is to minimize the 
> incompatibilities between platforms...
> 
> So I guess the best approach is ... First of all, start with .Net 3.5 on 
> windows.  Expect most of it to work on mac, ubuntu, and centos 6.  But don't 
> hold high hopes for centos 5.  Test obsessively, with every little change.
> 
> Sound about right?
> 
> _______________________________________________
> Mono-list maillist  -  [email protected]
> http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to