Re: [Mono-list] .Net versions ... compatibility history

2012-08-07 Thread edward . harvey . mono
 From: mono-list-boun...@lists.ximian.com [mailto:mono-list-
 boun...@lists.ximian.com] 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  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-07 Thread Stifu
Sounds good. Even better if the tests are automated, so you can just run them
on each OS (using NUnit and/or other test frameworks).

Note that the application doesn't have to be a separate product for each OS.
It depends on your app.
Just check first that you're not planning to use big .NET APIs that are not
supported in Mono. Another idea if you want to be safer and minimize
possible surprises: develop with Mono, then test with .NET. Again, whether
this is a good idea or not depends on your app.


edward.harvey.mono wrote
 
 From: mono-list-bounces@.ximian [mailto:mono-list-
 bounces@.ximian] 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  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 




--
View this message in context: 
http://mono.1490590.n4.nabble.com/Net-versions-compatibility-history-tp4650745p4650786.html
Sent from the Mono - General mailing list archive at Nabble.com.
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-07 Thread Dave Curylo
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: mono-list-boun...@lists.ximian.com [mailto:mono-list-
 boun...@lists.ximian.com] 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  -  Mono-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-list

___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-07 Thread Stifu
For the record: Entity Framework has been open sourced, and Mono will
probably support it soon.


Dave Curylo wrote
 
 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: mono-list-bounces@.ximian [mailto:mono-list-
 bounces@.ximian] 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  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 
 ___
 Mono-list maillist  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 




--
View this message in context: 
http://mono.1490590.n4.nabble.com/Net-versions-compatibility-history-tp4650745p4650789.html
Sent from the Mono - General mailing list archive at Nabble.com.
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-07 Thread Gabriel Ibanez
It would be the definive way to have an attractive option to non mono coders.


/Gabriel

-Original Message-
From: Stifu st...@free.fr
Date: Tue, 7 Aug 2012 15:02:32 
To: mono-list@lists.ximian.com
Subject: Re: [Mono-list] .Net versions ... compatibility history


For the record: Entity Framework has been open sourced, and Mono will
probably support it soon.


Dave Curylo wrote
 
 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: mono-list-bounces@.ximian [mailto:mono-list-
 bounces@.ximian] 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  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 
 ___
 Mono-list maillist  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 




--
View this message in context: 
http://mono.1490590.n4.nabble.com/Net-versions-compatibility-history-tp4650745p4650789.html
Sent from the Mono - General mailing list archive at Nabble.com.
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-06 Thread edward . harvey . mono
 From: mono-list-boun...@lists.ximian.com [mailto:mono-list-
 boun...@lists.ximian.com] On Behalf Of Stifu
 
 I don't know of documentation for this, but Mono 2.4 is old, and I wouldn't
 bother trying to support anything older. 

If we wish to develop  distribute a server product using mono...  It would be 
good to support rhel 5  6, as well as the various ubuntu LTS.  Right now, 
ubuntu LTS all seem to have mono 2.10, which is good.  But ... But centos 5 
(epel5) has mono 1.2.4, and centos 6 (epel6) has mono 2.4.3.

Maybe we'll just have to drop centos5 as a supported platform, but if you are a 
business distributing a product, telling your customers that you can only 
support the very latest OS, it makes it difficult for the customers to accept 
your product...  Just ask any sysadmin who supports apple products.  ;-)  The 
day a new OS is released, the old OS is unsupported, so you as a company are 
forced to immediately drop what you're doing and test the new OS, as if the mac 
product release cycle is the only important thing in your life.   ;-)

Anyway... I know mono 1.2.4 is old.  But what version of .Net is it compatible 
with?

We may decide we're able to develop everything we need to develop, using that 
version...  Or we may just drop support for centos5.  I can't envision us 
saying we'll support ubuntu only and not redhat...  Which means we're already 
limited to a maximum .Net 3.5.

Thanks again...

___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-06 Thread 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.


edward.harvey.mono wrote
 
 From: mono-list-bounces@.ximian [mailto:mono-list-
 bounces@.ximian] On Behalf Of Stifu
 
 I don't know of documentation for this, but Mono 2.4 is old, and I
 wouldn't
 bother trying to support anything older. 
 
 If we wish to develop  distribute a server product using mono...  It
 would be good to support rhel 5  6, as well as the various ubuntu LTS. 
 Right now, ubuntu LTS all seem to have mono 2.10, which is good.  But ...
 But centos 5 (epel5) has mono 1.2.4, and centos 6 (epel6) has mono 2.4.3.
 
 Maybe we'll just have to drop centos5 as a supported platform, but if you
 are a business distributing a product, telling your customers that you can
 only support the very latest OS, it makes it difficult for the customers
 to accept your product...  Just ask any sysadmin who supports apple
 products.  ;-)  The day a new OS is released, the old OS is unsupported,
 so you as a company are forced to immediately drop what you're doing and
 test the new OS, as if the mac product release cycle is the only important
 thing in your life.   ;-)
 
 Anyway... I know mono 1.2.4 is old.  But what version of .Net is it
 compatible with?
 
 We may decide we're able to develop everything we need to develop, using
 that version...  Or we may just drop support for centos5.  I can't
 envision us saying we'll support ubuntu only and not redhat...  Which
 means we're already limited to a maximum .Net 3.5.
 
 Thanks again...
 
 ___
 Mono-list maillist  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 




--
View this message in context: 
http://mono.1490590.n4.nabble.com/Net-versions-compatibility-history-tp4650745p4650765.html
Sent from the Mono - General mailing list archive at Nabble.com.
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-05 Thread Stifu
Mono 2.4.x is compatible with .NET from 1.0 to 3.5.
With Mono 2.8, the .NET 1.x profile was dropped, and the 4.0 one was added.


edward.harvey.mono wrote
 
 I see on the compatibility page, that the current release is 2.10.8, and
 it is compatible with .Net 4.0.
 
 But what about older versions?  The current mono distributed with amazon
 linux is 2.4.3.1-4...  Is it also compatible with .Net 4.0?  Or perhaps
 something older?  I'm basically looking for the history of the
 Compatibility page.
 
 Thanks...
 
 ___
 Mono-list maillist  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 




--
View this message in context: 
http://mono.1490590.n4.nabble.com/Net-versions-compatibility-history-tp4650745p4650747.html
Sent from the Mono - General mailing list archive at Nabble.com.
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-05 Thread edward . harvey . mono
 From: mono-list-boun...@lists.ximian.com [mailto:mono-list-
 boun...@lists.ximian.com] On Behalf Of Stifu
 
 Mono 2.4.x is compatible with .NET from 1.0 to 3.5.
 With Mono 2.8, the .NET 1.x profile was dropped, and the 4.0 one was
 added.

Thank you.  But I expect we'll want to know which platforms our application 
will run on, and we'll want to be designing with these considerations in mind...

Is this documented somewhere?  What if I want to find this answer for ubuntu, 
or an older version of redhat, or fedora, etc...?

I am guessing, somewhere in the source code, there's a readme that says 
compatible with .Net version ___  And I can certainly go fetch all the 
different versions of source code and create an index...  But I'm guessing 
there's a summary already written somewhere, or an easier way to do it, right?

Thanks again...

___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] .Net versions ... compatibility history

2012-08-05 Thread Stifu
I don't know of documentation for this, but Mono 2.4 is old, and I wouldn't
bother trying to support anything older. Besides, it'd be a pain to test
compatibility with so many frameworks, many bugs got fixed since then, etc.
Mono developers and users tend to use recent versions of the framework. Just
ask your users to upgrade if necessary. Otherwise, your development costs
will skyrocket, and your development team will be frustrated. :)

Anyway, from what you're saying, it sounds like you'd like to go for either
the 2.0 or 3.5 profile.


edward.harvey.mono wrote
 
 From: mono-list-bounces@.ximian [mailto:mono-list-
 bounces@.ximian] On Behalf Of Stifu
 
 Mono 2.4.x is compatible with .NET from 1.0 to 3.5.
 With Mono 2.8, the .NET 1.x profile was dropped, and the 4.0 one was
 added.
 
 Thank you.  But I expect we'll want to know which platforms our
 application will run on, and we'll want to be designing with these
 considerations in mind...
 
 Is this documented somewhere?  What if I want to find this answer for
 ubuntu, or an older version of redhat, or fedora, etc...?
 
 I am guessing, somewhere in the source code, there's a readme that says
 compatible with .Net version ___  And I can certainly go fetch all the
 different versions of source code and create an index...  But I'm guessing
 there's a summary already written somewhere, or an easier way to do it,
 right?
 
 Thanks again...
 
 ___
 Mono-list maillist  -  Mono-list@.ximian
 http://lists.ximian.com/mailman/listinfo/mono-list
 



--
View this message in context: 
http://mono.1490590.n4.nabble.com/Net-versions-compatibility-history-tp4650745p4650757.html
Sent from the Mono - General mailing list archive at Nabble.com.
___
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list