
Announcing .NET Core and ASP.NET 5 RC - dstaheli
http://blogs.msdn.com/b/dotnet/archive/2015/11/18/announcing-net-core-and-asp-net-5-rc.aspx
======
blinkingled
Microsoft is on a roll - they've got command line installable packages of the
.NET execution environment for all 3 platforms - OSX, Linux and Windows!
([http://get.asp.net/OtherDownloads](http://get.asp.net/OtherDownloads))

Can't wait to figure out what you can do with this on Linux. Anyone knows?
Maybe not desktop apps but Web Apps should be doable at this stage?

~~~
runfaster2000
There are two major scenarios that we are targeting on top of Core:

\- ASP.NET 5 web apps and services - see:
[https://github.com/aspnet/home](https://github.com/aspnet/home) \- Native
executables - see:
[https://github.com/dotnet/corert/blob/master/Documentation/i...](https://github.com/dotnet/corert/blob/master/Documentation/intro-
to-corert.md)

What do you think?

Disclosure: .NET Core team member

~~~
mercurial
How about F#? Is it viable through .NET Core on non-Windows platforms?

~~~
runfaster2000
The F# team is working on getting F# working on .NET Core. It's an important
goal for the team.

You can follow their progress:
[https://github.com/Microsoft/visualfsharp/pulls?utf8=&q=is%3...](https://github.com/Microsoft/visualfsharp/pulls?utf8=&q=is%3Apr+CoreCLR+)

~~~
mercurial
Looking forward to it. Thanks for the fast reply.

------
nikon
While looking around I thought it was cool that Microsoft developers are
directly helping popular libraries become compatible with the new .NET Core.

[https://github.com/castleproject/Core/issues/90](https://github.com/castleproject/Core/issues/90)

[https://github.com/nunit/nunit/issues/575](https://github.com/nunit/nunit/issues/575)

------
SideburnsOfDoom
This is also a Release Candidate of the ASP.NET web framework.

 _edit_ Actually, the ASP MVC part has also progressed to RC1 as you can see
here:
[https://github.com/aspnet/Mvc/releases](https://github.com/aspnet/Mvc/releases)

Confusingly, the next release is ASP Version 5 and ASP MVC version 6.

Also important: "supported on Windows, OS X and Linux"

~~~
runfaster2000
MVC is also RC.

See:
[https://github.com/aspnet/Home/releases/tag/v1.0.0-rc1](https://github.com/aspnet/Home/releases/tag/v1.0.0-rc1)

~~~
SideburnsOfDoom
You are right, and I have updated the parent post.

------
yodon
This would be a lot more exciting if it actually worked with IIS but it looks
like they rushed this out, calling it a "release candidate" in order to be
able to say it was out in time for the Connect conference without actually
hitting the kind of bar one expects from a release candidate.

Their github issue pages are full of unresolved issues around problems with
ASP.NET 5 and IIS [0][1][2], and the official docs on publishing ASP.NET 5 to
IIS have a significant and incomplete list of "common errors" people are
encountering [3].

Personally, I'm seeing responses from Kestrel when hitting ASP.NET 5 hosted
pages under IIS, but they are zero-byte error 404 responses which don't help
much. It's all great in Visual Studio but it's a big zero when trying to
actually use it for real. This is not a release candidate. At best it's a 9th
beta.

[0]
[https://github.com/aspnet/IISIntegration/issues/14](https://github.com/aspnet/IISIntegration/issues/14)
[1]
[https://github.com/aspnet/Hosting/issues/466](https://github.com/aspnet/Hosting/issues/466)
[2]
[https://github.com/aspnet/Hosting/issues/364](https://github.com/aspnet/Hosting/issues/364)
[3]
[https://docs.asp.net/en/latest/publishing/iis.html](https://docs.asp.net/en/latest/publishing/iis.html)

~~~
voltagex_
Yeah, I've got a minor issue with the Configuration classes and they were
already talking about RC2 a little while ago [1]. I don't think we can fault
them too much for this - we've all been on those kinds of schedules.

1:
[https://github.com/aspnet/Configuration/issues/335](https://github.com/aspnet/Configuration/issues/335)

~~~
yodon
Following your link led me to discover your
[https://github.com/voltagex/minecraft-
rebridge](https://github.com/voltagex/minecraft-rebridge), which looks very
cool. Would it be difficult to configure the embedded http server to support
persistent TCP connections for lower latency between subsequent requests? (I
think NanoHTTPD supports persistent connections but I've never used it so
don't know what's involved)

~~~
voltagex_
Thanks, get in touch with me so we don't derail the thread. You don't have any
contact details in your profile.

------
hitgeek
Should .Net Core be considered a competitor to Mono? Why would someone use
Mono when they can use a multi-platform .Net RT straight from Microsoft?

~~~
runfaster2000
Not a competitor. We work closely with the Mono team, specifically Miguel. We
are releasing lots of source for them with each .NET Framework release. The
Mono team is adopting large quantities of that source to improve Mono. It's a
collaboration.

Certainly, there are now two .NET choices on Linux. If you ask Miguel, I
suspect he'd recommend .NET Core if you are building a server app.

Disclosure: .NET Core team member

~~~
eatonphil
I got confused when trying to install .NET Core, so sorry if this is a bad
question. It seemed like .NET Core depended on Mono. Does it actually? I can't
remember what exactly seemed like it depended on Mono. Perhaps Nuget? My
memory is fuzzy.

Either way, these two docs [0,1] (not just those particular pages) could
really use some clarifications. I had trouble working my way through either of
them and they seemed to be giving conflicting information at times.

Granted, I have no significant experience with .NET or Mono. I was able to
install Mono once on Ubuntu. But I gave up after trying to install .NET Core
on Ubuntu (and FreeBSD) more recently - a week ago. Sorry, I can't provide
more substantial criticism right now.

I guess the forums[2] would be the best place to bring these issues up in the
future (with more information)?

[0] [http://dotnet.readthedocs.org/en/latest/getting-
started/inst...](http://dotnet.readthedocs.org/en/latest/getting-
started/installing-core-linux.html)

[1] [https://dotnet.github.io/getting-
started/](https://dotnet.github.io/getting-started/)

[2] [http://forums.dotnetfoundation.org/](http://forums.dotnetfoundation.org/)

~~~
Locke1689
What's confusing about [1]?

I'm not on the ASP.NET team, but may be able to provide some general guidance.

~~~
eatonphil
It wasn't necessarily that [0] or [1] was confusing in and of themselves but
that the information seemed to conflict at times. Having multiple sources can
be helpful to establish patterns unless they are saying opposite things. But
again, I cannot point to specifics.

I guess my current question is, can .NET Core be built on FreeBSD without a
Windows machine? It appeared that this, for one, was not the case. This is a
bit of a showstopper.

~~~
voltagex_
[https://github.com/dotnet/coreclr/blob/master/Documentation/...](https://github.com/dotnet/coreclr/blob/master/Documentation/building/freebsd-
instructions.md) \- if that doesn't work, it's a bug.

~~~
eatonphil
So it looks like the answer is yes then. You do need a Windows machine to
build the managed components. So I cannot build (for now) if I do not have a
Windows machine.

I did actually follow this guide, though I still wasn't able to compile. The
build failed before the managed components section. If I have a chance to look
at it again, I'll try to file a bug report or get more help.

~~~
voltagex_
Sigh. It'd be really good if MS would give out some Azure time for open source
work.

------
frik
> MaxPath

Oh, Microsoft finally woke up and supports path longer than 260 chars in
dotNetCore. So, the questions when will Microsoft WinAPI & and the Windows
Shell/Explorer too? Will we probably have for Windows 11...

~~~
purplerabbit
What are the uses for this besides npm < 3.0? I'm super curious, the 260 limit
seems like a huge flaw but in my interweb travels I haven't seen it mentioned
anywhere else

~~~
runfaster2000
We are making .NET Core OS agnostic as a general principle. The 260 char limit
seems like an unwelcome Windows behavior to include in the Linux and OS X
implementation. With that removed, it makes sense to also remove it from
Windows. That was our thinking.

We do hear about this limitations on Windows somewhat frequently in the
context of .NET. This comes from internal Microsoft teams about as much as
anyone else. We were glad to remove this limitation for .NET Core.

Disclosure: .NET Team member

~~~
ghuntley
Here are the two .NET design review meetings where the removal of the MAX_PATH
limitations is discussed:
[https://www.youtube.com/watch?v=lpa2OFauASM](https://www.youtube.com/watch?v=lpa2OFauASM)
and
[https://www.youtube.com/watch?v=vpMqUBIAnLU](https://www.youtube.com/watch?v=vpMqUBIAnLU)

------
speedkills
I hope this means we are a little closer to powershell for OS X and Linux.

~~~
stoolpigeon
I'm pretty happy with bash - what does powershell do that makes you want it
over the shells already available to nix platforms?

I've never used it much and assumed it was an MS attempt to gain something
like what the other shells already had.

~~~
InclinedPlane
Basic man-page style documentation for your own scripts comes practically free
with powershell. Powershell uses named parameters (though technically you're
not forced to do so) with command-line tab-completion. Powershell uses a
standardized verb+noun syntax design which makes it slightly easier to figure
out what commands are what. Powershell uses an object pipeline instead of
plain text.

This is the spirit of unix taken to the next generation. It's an incredibly
useful CLI environment and pipeline which makes it easy to combine small tools
to achieve powerful functionality while also facilitating making scripts by
making them easier to use and easier to write.

For example, let's say I wanted to find every process using more than 100m of
ram. With powershell that's just:

    
    
      get-process | where WorkingSet -gt 100e6
    

Because powershell is object based you gain a lot more potency in the command
pipeline. For example, let's say I wanted to kill all processes that matched a
certain filter. That's as easy as piping the output of get-process through
some filters then into stop-process. Let's say instead I wanted to wait until
all instances of firefox are closed, that's just this:

    
    
      get-process | where path -like '*\firefox.exe' | %{ $_.WaitForExit() }
    

Powershell is far from perfect and it has a few very annoying gotchas here and
there, but so does bash, python, and any other language for that matter.
Powershell is a very powerful language that has benefited from a lot of
rethinking of some of the traditions in command line interfaces that exist
solely because that's how it used to work back in the day despite the reasons
for those choices no longer pertaining in the here and now (teletype
terminals, slow connections, slow everything, etc.).

~~~
alkonaut
A common complaint from people used to bash is that it's verbose. But since
everything is autocompleted _and_ there is support support for short aliases
it's very hard to claim it has to be more verbose than bash. Using long
description funcion names by default, and shorter alias as an option is
clearly the sane design choice.

------
kamac
Great. I was looking forward to a good alternative with decent syntax to PHP,
and now that ASP.NET can run on linux, there's nothing that stops people from
using it over PHP.

Honestly I wonder what reason would one have to choose PHP over ASP.NET for
their apps in a few months / years time.

~~~
mrspeaker
Same reason people choose PHP over Ruby on Rails, Node.js, Compojure, Yesod,
or the billion of other choices available today: because so many small
business have their hosting via super-cheap linux boxes that you only get FTP
access to.

~~~
jakejake
Cheap hosting and PHP do go well together, but when you work at a company that
has a lot of stuff written in one language, and the whole team is experienced
with that same language, there needs to be a legitimate reason to change the
whole technology stack. Because it's "cool" or not is generally not a good
enough reason - unless it gets to the point where it isn't supported anymore,
you can't find employees, the community has dried up, there's nothing new
happening with the language, etc. But PHP, despite the problems it does have,
it suffers from none of those things. So I don't see a mass exodus happening
any time soon.

~~~
jordz
Completely agree. It's very exciting, and extremely cool but in terms of a
business decision for larger technology teams, it will very much be like
node.js, it's a similar thing, runs on cheap linux boxes and can do everything
PHP can but it's taken time for companies to get it in where it "fits"

------
shortstuffsushi
As someone who has avoided Microsoft in the past, I've found myself in a
position to write a few projects lately on the C# .NET platform, and actually
find myself eager to have this available on OS X. I actually enjoyed a lot of
features of Visual Studio specifically (I realize this isn't coming yet), but
the platform itself really just feels pretty nice and natural.

------
BuckRogers
I've been eagerly keeping a close eye on .Net Core. Congratulations to the
teams that have been working on this! It's long overdue and I can assure you
many others are keenly interested in this.

For myself, mainly because as primarily a Python programmer I've been looking
for where to move next with the 2/3 split. I've migrated completely to PyPy4
(which is Python2.7) rather than port/test to CPython3 in the last few years.
It was worth the migration and testing that was involved.

I'm waiting to see if PyPy will announce they are the flag bearers for
Python2. If so, I'll most likely continue using it going forward.

On the other hand we use .Net and Python at work so while most people would
not agree or find .Net Core to be a bit pointless, for me it means I can move
my projects and small business to run on my underpowered VPS, utilizing the
same well-supported tech stack that many enterprises use.

Keeping my head in C# is a good advantage as I'm also interested in Xamarin
and Unity (both professionally and personally). Of course, I'm one who does
not have any particular grudge against Microsoft. I do prefer POSIX based
systems. For my home business and hobby tech stack I'm currently looking at 1)
PyPy4, 2) .NetCore 3) CPython3. While I'm currently running everything on
PyPy4, there's a smaller gap between 1 and 2, and a big liklihood of adoption
gap between 2 and 3.

------
benmorris
Exciting to see the rc released. I've been waiting up until this point to
really dive into a project.

One of the things that will be a huge barrier for me though is the lack of
system.drawing. I've worked in the sign and graphics industry for 8 years and
a lot of software I have written relies on system.drawing. The font rendering
is crucial. It appears the only feasible option is the mono
implementation.(and maybe that is good enough)

Looking ahead I'm curious if there will ever be aa coreclr replacement for
this? It seems Microsoft closed the open issue regarding this.

[https://github.com/dotnet/corefx/issues/2020#event-360344181](https://github.com/dotnet/corefx/issues/2020#event-360344181)

------
sdevlin
Is MVC the default ASP.NET workflow now? Is it the only workflow? Are Web
Forms still supported?

~~~
runfaster2000
MVC is the default for ASP.NET 5, for both apps and services. It runs on both
.NET Core and .NET Framework. Same with SignalR.

WebForms remains supported and new features go into it each release. It is
supported on the .NET Framework.

Disclosure: .NET Core team member

~~~
sdevlin
Thanks!

------
akx
> For the most part, we have transitioned our focus to performance,
> reliability and overal quality.

I giggled at that, I admit.

------
StriverGuy
This is really exciting!

------
ghrifter
For hosting an MVC 5 app is Azure the way to go?

~~~
jongalloway2
It's confusing, but ASP.NET 5 ships with ASP.NET MVC 6. ASP.NET MVC 5 was
released in October, 2013. I'm assuming you meant ASP.NET 5 / ASP.NET MVC 6
since that's what was announced today.

There's a good chance you know this, but since some people reading this thread
might not I figured I'd give some more detail.

It's definitely in Microsoft's interest to make Azure a great place to host
your ASP.NET applications. The team that builds ASP.NET is part of the Azure
group, and that's what pays the bills. (disclaimer: Microsoft employee, Azure
fan)

However, ASP.NET 5 has been built to run great on your own web server. In
addition to IIS on Windows, ASP.NET 5 has a cross platform, open source web
server named Kestrel that runs on Windows, Mac and Linux:
[https://github.com/aspnet/KestrelHttpServer/](https://github.com/aspnet/KestrelHttpServer/)

The team's working really hard to make sure that ASP.NET 5 not only runs cross
platform, but that it works well and runs really fast cross-platform:
[https://github.com/aspnet/benchmarks/blob/master/README.md](https://github.com/aspnet/benchmarks/blob/master/README.md)

------
it_learnses
can we please have a fully functional bash on windows?

------
euroclydon
Sigh. Different release. Different error trying to get the hello world
application running on a mac. One day...

~~~
Locke1689
Did you try [https://dotnet.github.io/getting-
started/](https://dotnet.github.io/getting-started/)?

Can I help with getting it running?

~~~
euroclydon
I did that the other day, on beta8 or whatever. In that case, I could run a
console app. Then I tried the Yeoman setup [1] for a simple website without
auth. It failed to run.

Today, I uninstalled mono, previous dmx stuff, and ran the package linked in
this story. Same result. Yeoman website failed.

It's failing to resolve the fx dependencies.

Also, it's difficult for me to understand if I need mono or not. I have it.

[1] [https://docs.asp.net/en/latest/tutorials/your-first-mac-
aspn...](https://docs.asp.net/en/latest/tutorials/your-first-mac-aspnet.html)

~~~
Locke1689
Ah, sorry, I know nothing about Yeoman -- I'm only familiar with console
applications :)

