Re: [Mono-list] .Net versions ... compatibility history
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
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
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
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
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
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
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
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
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
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