[Mono-dev] Mono and vNext, What is microsoft supporting
alex.koeplinger at outlook.com
Sat Oct 25 19:52:59 UTC 2014
Note: the following is based on discussions with David Fowler (one of the MS devs) et.al. in JabbR and other places. I'm not part of MS/vNext team or Xamarin, so I may be totally wrong :)
>> "CoreCLR is intended to be Windows-only too from what I've heard, as it doesn't make much sense for Mono (you can already do side-by-side deployment of Mono)."
> Where have you seen this, do you have a link you can send? This is a major missing piece of the puzzle for me. I've been hoping that with vNext, applications would be truely cross platform, but it seems we are still very much reliant on Mono's class implementations.
> I've read an article that says the CoreCLR ("Cloud Optimized") is to be "Cross Platform". If that is the case, and there are no plans to make a linux compatible version and just use mono, they could easily say the same about the .NET 4.5 class libraries as they are available in mono.
You should keep in mind that CoreCLR is just that - another runtime implementation (they based this off of the old Silverlight runtime which was side-by-side deployable). What they now put on top is the class libraries distributed via NuGet, resulting in this self-contained experience. As I said, it's just one of the options alongside .NET CLR and Mono CLR, like this picture from your article shows: http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-75-metablogapi/7356.image_5F00_70B63F1D.png (the article never says the CoreCLR is cross-platform, just the vNext application itself)
> So either, when Microsoft refer to "Cross platform", they are only referring to applications that rely on no class libraries and only corlib (is that a thing can an application be purely reliant on no class libraries?). Alternatively, they are relying on Mono to create a CoreCLR (I wouldn't be surprised if they've ask for Xamarin's help in doing that).
The end result should be that you can run your app on .NET, CoreCLR and Mono and the app doesn't care. The problem with the web frameworks like MVC etc. up until now was that they were tightly coupled to System.Web, which is not open-source and very difficult to reimplement in Mono (and to be honest likely also lagged behind because Xamarin's focus is on mobile). The new vNext stacks don't rely on System.Web anymore and just use the basic class libraries that are well implemented on Mono too (like corlib, System.Net etc. as they're important to Xamarin). It should be a much much better experience given that Microsoft actively tests the vNext stack on Mono. Now if **your** application code relies on something that isn't implemented on Mono then that's a problem, sure.
> I am aware that you can side-by-side in mono, however, I thought that one of the other big benefits of vNext was the reduction in footprint, specifically around the memory footprint per request. So you can opt-in/out of specific features.
Maybe they'll make this whole CoreCLR/small-footprint - experience available on other OSs as well, but from what I've heard this is targeted at Windows for now.
More information about the Mono-devel-list