Asp – Is it possible to run ASP.NET MVC 1.0 web apps on Mono 2.4.x

apacheasp.net-mvclinuxmono

I have searched various online resources and found conflicting information about the possibility of ASP.NET MVC 1.0 web apps running against the latest build of Mono (2.4.x). According to the Mono site, ASP.NET 2.0 is supported. According to Microsoft, ASP.NET MVC 1.0 requires the 3.5 version of the framework. From what I've read, ASP.NET 3.5 makes use of the 2.0 framework under the hood.

Has anyone got an ASP.NET MVC 1.0 web app running on Linux with Apache using mod_mono ?

Thanks

Best Answer

Yes, though you'll want to update the latest bugfix release for best compatibility. Note that Mono 2.4.2.3 actually includes the real ASP.NET MVC library, which was open-sourced by Microsoft under the MS-PL license.

The relationship between .NET and Mono version numbers is very complicated, as there is no direct mapping between .NET versions and features that Mono has implemented. .NET versions aren't exactly straightforward either, as 3.0 was simply additional assemblies added to the 2.0 framework, and similarly, 3.5 is additions to the 2.0SP1 framework - and the 3.5 assemblies do not depend on the 3.0 ones.

Mono features are driven by demand, using data collected using the Mono Migration Analyser.

For example, Mono has supported core .NET 2.0 features like generics since 2005 or so, but only with Mono 2.0 were the Windows Forms 2.0 and ASP.NET 2.0 components considered feature-complete - except for Web Parts, which will likely never be implemented due to low demand. And there are a couple of very Windows-specific features, like System.Management, which will also likely never be implemented as they simply cannot be mapped to non-Windows systems. Apart from such caveats, 2.0 support is now very complete.

Mono 2.0 also included full C# 3, LINQ-to-objects and LINQ-to-XML support, which are features from the .NET 3.5 framework. With Mono 2.4, the ASP.NET 3.5 features are essentially feature complete, and the only major missing 3.5 feature is LINQ-to-SQL, which should be in Mono 2.6. However, there's still no support for the .NET 3.0 assemblies - WCF, WPF, WF. WCF is being worked on but there are no plans for WPF at this time - some degree of WPF compatibility is provided via Moonlight, the Silverlight implementation.