[Mono-dev] Support 2-args Socket ctor added in .NET 4.5

Alexander Köplinger alex.koeplinger at outlook.com
Sat Oct 25 16:58:30 UTC 2014

To answer your ASP.NET vNext questions: 
The "web" in "k web" is a custom command defined in project.json, usually it invokes Microsoft.AspNet.Server.WebListener which builds upon the Windows-only http.sys, it's not intended to be run on other platforms. That's why there are other hosting options, like the new webserver they're writing called Kestrel which builds on top of libuv (like Node.js) and works cross-platform. Many samples also feature a "k kestrel" command which invokes this server (assuming you have libuv 1.0 installed).
By "slimmed down stuff" I think you're referring to the new CoreCLR (which enables side-by-side deployment, class libs inside your app, etc.).
This is only one of the options though, you can also use "standard" .NET (with machine-wide class libs), or likewise Mono to run ASP.NET vNext applications. 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).
So in essence, ASP.NET vNext on Mono just uses the normal class libs - that's why they need those implementations.
-- Alex

Date: Sat, 25 Oct 2014 17:31:30 +0100
From: monoforum at my2cents.co.uk
To: muo at muo.jp
CC: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Support 2-args Socket ctor added in .NET 4.5

Hi Kei,

This looks like a good now (one small coding change I've just added).  Note that I'm not someone who can approve the patch, just an enthusiastic volunteer.

Does this mean that the "k web" commandline for the vNext example site (Music store) works after the patch?  Something I was trying for a while but never got it working.

I was under the impression that to use the slimmed down vNext stuff it had to use everything from their myGet repository, so I'm not sure where the mono class libraries would help with that?  That said, implementing stuff in mono will likely benefit someone at some point, so it's definitely worthwhile.


On 25 October 2014 15:38, Kei Nakazawa <muo at muo.jp> wrote:

I noticed some test code of Kestrel (web server for ASP.NET vNext) fails to compile on Linux hosts.

/kestrel/test/Microsoft.AspNet.Server.KestrelTests/EngineTests.cs(325,34): error CS1729: 'Socket' does not contain a constructor that takes 2 arguments
ref: https://github.com/aspnet/KestrelHttpServer/blob/dev/test/Microsoft.AspNet.Server.KestrelTests/EngineTests.cs#L325

It's because 2 args ctor is a new one introduced in .NET 4.5 and not currently exist on Mono. I found a bugzilla entry mentioning this issue: https://bugzilla.xamarin.com/show_bug.cgi?id=20048 and dug Mono code for finding solutions.

After couple of minutes of investigation, I gave up to write a "clean" dual stack (IPv4/v6) support and wrote a simple proxy ctor:
https://github.com/mono/mono/pull/1364/files (Thanks @martinjt for reviewing my pull-req.)

As I don't see any demands for IPv4/v6 dual stack support around ASP.NET vNext community, I believe hard-coding protocol version to v4 is just enough and better than nothing at least for now (of course, full support of dual stack would be great).

Any comments/feedback are welcomed.

Regards, Kei.


Mono-devel-list mailing list

Mono-devel-list at lists.ximian.com


Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20141025/2deda33a/attachment.html>

More information about the Mono-devel-list mailing list