
Announcing .NET Core 1.0 - runesoerensen
https://blogs.msdn.microsoft.com/dotnet/2016/06/27/announcing-net-core-1-0/
======
daveguy
FYI, from the announcement. Probably the most important part at the end,
italicized by me. Also note (elsewhere) that licenses are MIT and Apache2:

.NET Core Tools Telemetry

The .NET Core tools include a telemetry feature so that we can collect usage
information about the .NET Core Tools. It’s important that we understand how
the tools are being used so that we can improve them. Part of the reason the
tools are in Preview is that we don’t have enough information on the way that
they will be used. The telemetry is only in the tools and does not affect your
app.

Behavior

The telemetry feature is on by default. The data collected is anonymous in
nature and will be published in an aggregated form for use by both Microsoft
and community engineers under a Creative Commons license.

You can opt-out of the telemetry feature by setting an environment variable
DOTNET_CLI_TELEMETRY_OPTOUT (e.g. export on OS X/Linux, set on Windows) to
true (e.g. “true”, 1). Doing this will stop the collection process from
running.

Data Points

The feature collects the following pieces of data:

The command being used (e.g. “build”, “restore”)

The ExitCode of the command

For test projects, the test runner being used

The timestamp of invocation

The framework used

Whether runtime IDs are present in the “runtimes” node

The CLI version being used

 _The feature will not collect any personal data, such as usernames or emails.
It will not scan your code and not extract any project-level data that can be
considered sensitive, such as name, repo or author (if you set those in your
project.json). We want to know how the tools are used, not what you are using
the tools to build. If you find sensitive data being collected, that’s a bug.
Please file an issue and it will be fixed._

~~~
wvenable
Microsoft is looking to do more data-driven design; this is the reason for all
the telemetry in Windows as well. Raymond Chen pointed out an example where a
button was removed File Explorer (prime real-estate) because the telemetry
showed that hardly anyone ever pressed it.

It's unfortunate they are so tone-deaf about the PR implications in Windows.

~~~
jenscow
Like when they removed Macros from Visual Studio because according to
telemetry only 1% of users used them.

~~~
hatchnyc
I always suspected that there was probably significant overlap between users
of macros and users who opted out of telemetry. Lesson learned: leaving "yes"
checked from now on.

~~~
emn13
Big Brother has trained you well. ;-)

~~~
kbenson
Yep. Don't vote and nobody will care about your (unexpressed) needs when
making decisions.

~~~
BHSPitMonkey
Well, it would be nice if there is a way to vote or express one's needs via
some alternative to having one's usage actively mined for data.

~~~
cfreeman
I think you are truly in a minority if you'd rather take a survey than have
the data collected automatically. There has to be a sane middle ground.

~~~
emn13
Data collected by a neutral third party without conflicting interests pushing
for creative monetization opportunities that's responsible for sufficient
annonymisation/aggregation before releasing the data?

------
computerlab
A couple months ago I installed .NET core on a Ubuntu virtual machine running
on the Windows 10 hypervisor, and was able to get a MVC5 app running using
Visual Studio Code. As someone who really loves Visual Studio (it made me
expect a lot more from my tools) and C# (it made me expect a lot more from my
languages), it was an exciting moment. I actually took a selfie with my
monitor.

It was still a little rough: the "getting started" instructions ONLY worked on
Ubuntu 14.x and not Ubuntu 16.x, and my PR to the documentation pointing this
out was nixed. (I notice they've since added a disclaimer:
[https://docs.asp.net/en/1.0.0-rc1/getting-
started/installing...](https://docs.asp.net/en/1.0.0-rc1/getting-
started/installing-on-linux.html#installing-on-ubuntu-14-04)). I really hope
to someday be able to build projects with React and a .NET core WebApi and be
confident that my teammates will be able to get the project running on their
macbooks without kms.

~~~
MagicWishMonkey
I wish MS would release a stripped down version of VS for OSX/Linux, but I
know it probably won't happen.

~~~
Chlorus
Does this count? [https://www.visualstudio.com/en-us/products/code-
vs.aspx](https://www.visualstudio.com/en-us/products/code-vs.aspx)

~~~
MagicWishMonkey
I've played with VS Code a bit, it's a pretty cool tool for small scale
scripting, but it's not really a replacement for a full fledged IDE.

Hopefully Jetbrains will release their cross platform C# IDE sometime soon. I
would prefer Visual Studio, but I don't think that's going to happen (at least
not anytime soon).

~~~
vgbm
From my experience, Rider is pretty stable and usable. Have you tried it out
at all? [https://www.jetbrains.com/rider/](https://www.jetbrains.com/rider/)

~~~
MagicWishMonkey
Oh, didn't realize you could request early access. I'll check it out, thanks.

------
enricosada
F# doesnt work ootb with sdk preview2. Work ok with preview1 of SDK
(win/ubuntu/osx/docker), but preview2 has a bug, the fix is in progress ( ref
[https://github.com/dotnet/netcorecli-
fsc/issues/12](https://github.com/dotnet/netcorecli-fsc/issues/12) ) and will
be published a nuget package with fix soon.

~~~
acangiano
You reported the issue 11 days ago. I'm surprised they just announced it with
such a basic use case being broken. It doesn't bode well for F# as a first
class citizen in their ecosystem.

~~~
MichaelGG
F# is not a first class citizen. They pay it lip service because it's a far
more advanced language and makes MS look like they're on the cutting edge.
Plus the team that made it is responsible for dragging the CLR into the modern
era (or into the 60s) by bringing generics. And showing off important features
on .NET such as quoted code, async workflows, F# interactive. But a simple
look at tooling and language announcements shows that the F# team is very
underfunded.

~~~
snaky
> The results of the 2016 Stack Overflow Developer Survey are in! F# came out
> as the single most highly paid tech worldwide and is amongst the third top
> paying techs in the US

[https://fsharp.tv/gazettes/f-the-most-highly-paid-tech-
world...](https://fsharp.tv/gazettes/f-the-most-highly-paid-tech-worldwide-
in-2016/)

~~~
MichaelGG
Yes and it's clear from what the F# team has said that the hope they have for
the future of the language is that the community will invest.

That's fine, but let's not think that this will produce tooling anywhere
nearly as refined as C#'s stuff. Take F# interactive v the C# one. F# has like
a decade lead. Yet the C# interactive editor is smooth, polished, even has VS
project integration, something the F# team had thought of doing many years
ago.

Non F#-team members[1] have said that internal politics are the issue here. To
the point where some books were ... edited ... to paint C# in a better light,
relatively. MS's marketing reflects this. My guess is they're too proud to
admit their flagship language from their high-profile hire was shown up by
what was a research project. And that the CLR's arguably biggest tech
advantage over the JVM (generics) was also only done through the intense
efforts of MSR; that MS Corp was against it.

It's sad, because MS is in a position to really elevate the world's
programming consciousness/ability by _really_ promoting F#, yet it's still a
novelty for, as MS has said "scientific and engineering" applications. Yet,
apart from tooling/legacy, F# handles every case C# does in a better way. At
worst, it's C# with lighter syntax.

Oh well. At least it's there, works, and has some level of support. Only
reason I consider using .NET these days.

1: The F# folks are amazingly polite and I've never heard them even hint at a
complaint about MS.

~~~
snaky
The finance industry where F# shines is willing to invest, I suppose. OCaml
e.g. is backed by Jane Street and F# is even simpler in that regard because
the hardest part is efficient runtime which is for F# is .NET - already done
well by MS. But what some corp willing to invest in tooling for F# could do
while MSVS is closed source and is not most transparent IDE in the world to
say the least wrt plugins.

> too proud to admit their flagship language from their high-profile hire

That's acute while we know that high-profile hire's past victories (Turbo
Pascal, Object Pascal, Delphi) were never about the _language_ , but about
_incredibly_ polished IDE, compiler, libraries and runtime.

> yet it's still a novelty for, as MS has said "scientific and engineering"
> applications

MS marketing wisdom is overrated, to say the very least. Look at Tablet PC.
Windows XP Tablet PC Edition released in 2001. Ink APIs are all way through
Windows SDK since back then. And they never realized that stylus thing is
something more than just a 'uhm, you can draw a kitten, maybe?'. At least they
never articulate anything more than that in any promotion campaign. And now
Apple released iPad Pro and will eat the TabletPC-Covertable-Surface market.

------
gldev
After so many years microsoft finally presenting their tools in a more moden
way. Never been a huge fan of .NET but i can't deny is a great tool hopefully
people try it out on more platforms.

~~~
whatever_dude
I still can't shake the feeling that their naming is just confusing. I still
am not sure what exactly is .NET and what's not.

~~~
bigtones
.Net is 14 years old now - if you don't know what it is by now you're probably
not ever going to know. It's a cross platform runtime and a group of
programming languages that run on it, just like Java.

~~~
chinhodado
The general idea of .NET as a platform is easy to understand. The naming of
.NET Core, .NET Framework, ASP.NET, etc. and the difference between them is
not.

~~~
oblio
.NET Framework = the whole shebang, the full runtime including Windows-only
bits.

.NET Core = portable subset of .NET Framework. Therefore not entirely
compatible with .NET Framework.

ASP.NET Core = portable rewrite of ASP.NET. AFAIK not fully compatible with
previous versions.

~~~
cobalt
iirc asp.net core does not contain the web framework part, just the server
stuff

------
SoapSeller
It's fascinating how Microsoft's marketing moved from ".Net - One platform
with multiple languages" to "This is .Net - here some samples in C#"(without
mentioning C# by name anywhere in the page).

I think that .Net would be much better if they had this kind of focus in dev
side from the start.

*Hides from the f# mafia.

~~~
Pharylon
Can you make a mafia with only three people?

~~~
aweb
Funny, I saw far more than 3 F# presenters at NDC Oslo a few weeks ago..

------
atrudeau
If I'm an experienced Python developer who develops a lot of websites and APIs
using Django or Flask and SQLAlchemy, is there any reason to try this stuff?
C# is a great language, but what about the libraries? What replaces Flask?
What replaces SQLAlchemy? How do I deploy? Looking for some practical reasons
to invest time on this if Windows development is not in my roadmap.

~~~
oblio
Well, besides libraries, performance.

.NET supports proper multithreading (no GIL) and it is also much faster than
CPython.

If IronPython gets ported to .NET Core (maybe it already has, I don't know),
then you'd get those benefits for free.

~~~
sremani
In the public repos, there no substantial new work taking place with
IronPython.

~~~
cbHXBY1D
If there was enough interest you could get the Microsoft Python team to
support IronPython. There's been talk of a renewed effort.

[1]
[https://blogs.msdn.microsoft.com/pythonengineering/](https://blogs.msdn.microsoft.com/pythonengineering/)

------
AndreyErmakov
Documentation as a PDF (constantly updated):

[https://readthedocs.com/projects/aspnet-
aspnet/downloads/pdf...](https://readthedocs.com/projects/aspnet-
aspnet/downloads/pdf/latest/)

It's really just a copy of their informational web site content with articles
by different authors, but still very conveniently combined into a single PDF
useful for printing etc.

~~~
krylon
Thank you!

I have been looking for something like this!

------
runesoerensen
Release notes: [https://github.com/dotnet/core/blob/master/release-
notes/1.0...](https://github.com/dotnet/core/blob/master/release-
notes/1.0/1.0.0.md)

------
eperfa
I might be missing something here, but does this mean that .NET Framework and
.NET Core have diverged, and you need to take extra steps to keep code
compatible with both?

 _The major differences between .NET Core and the .NET Framework:_ [...] _APIs
— .NET Core contains many of the same, but fewer, APIs as the .NET Framework,
and with a different factoring (assembly names are different; type shape
differs in key cases). These differences currently typically require changes
to port source to .NET Core._

While I understand the motivation, this at first sight looks like something
that will be with us for a long time, and could make life more difficult
especially for library authors, who need to potentially target both
'platforms'.

[ _Disclaimer:_ haven't used .NET technologies for a very long time and might
be horribly wrong here]

~~~
taspeotis
There are new platform targets that cover the common functionality. Support in
NuGet is a bit nascent though.

[https://github.com/dotnet/corefx/blob/master/Documentation/a...](https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-
platform-standard.md)

------
mantenpanther
I've mixed feelings about this release, because it seems a bit early to me.
Some fundamentals will change soon (project.json replacement) and I am still
not able to get debugging to work in VS Code on OSX. The whole situation in
the .NET Core space was very confusing for the last months and this trend
seems to continue. This is sad, because I'd love to code in C# on any platform
and that things would just work as advertised on the website.

Edit: Debugging works now for me, after the .NET Core Debugger was
automatically installed in the background!

~~~
dimgl
It's still extremely buggy. Very difficult to get a .NET MVC app up and
running (they're not using the term WebAPI anymore).

~~~
mattmanser
I also think they've made a terrible decision, the first-class support for DI
is a bad direction which has made many simple concepts like config settings
into absolute farces that take 5 lines of code.

It's code "purity" over usability. It's putting the core dev team's principles
over their customers actual need, completely violating KISS, DRY and YAGNI.

DI really is our generation's factories. I'm already seeing projects written
by people who don't understand it making utter nightmare spagetti code, worse
than any code I've ever seen.

It's nasty scaffolding code which is a symptom of limitations of the language,
definitely not code anyone should ever actually be wasting time writing.

Instead of recognising it's a flash in the pan, the core team have embraced it
and are trying to force it down everyone's necks, and a lot programmers simply
don't get it and are making an utter mess instead.

~~~
romanovcode
>and a lot programmers simply don't get it and are making an utter mess
instead.

Then maybe those programmers should go back to JS ES5?

------
hackaflocka
Is there a primer somewhere that explains simply what the difference and
dependence is between .NET (core, foundation), ASP.NET (core, foundation),
Xamarin, Visual Studio (in all it's different flavors including VS.NET etc.)
and Visual Studio Code?

I tried Wikipedia, and Microsoft's own homepages for each, and am even more
confused.

I'm a hierarchical thinker, and a hierarchical tree explaining the above would
be very very helpful.

Disclaimer: I haven't downloaded any of these yet. I usually don't until I've
understood something.

Bonus question: If I want to develop websites and electron apps using: HTML,
CSS, Javascript and PHP, what's the minimum set of technologies (or whatever
it is that Microsoft is calling them these days) I will need?

~~~
oblio
Dotnet Foundation = NGO that manages various legal and org things for .NET.
Think FSF for GNU.

.NET Core = cross platform software development platform. Includes a VM,
compiler, tons of libraries.

ASP.NET Core = HTTP server + server side .NET libraries.

There is no ASP.NET Foundation, it's all part of the Dotnet Foundation.

Xamarin = .NET libraries for mobile development. Wraps Android/iOS native
libraries.

Visual Studio = native Windows IDE for .NET and other languages.

Visual Studio Code = portable, Electron/HTML 5 IDE for Javascript/Typescript
and other languages.

You probably want Visual Studio Code for HTML/PHP. But you should check out
.NET Core, it can replace PHP.

By the way, if it works, it works, but I find it better to research and do at
the same time. Downloading only after you've understood the org chart seems a
bit too radical for me :)

~~~
hackaflocka
Thanks. Very helpful. Last 2 Qs: is Framework different from Core? And how
does Windows Presentation Foundation fit in all this?

~~~
oblio
.NET Framework is the old .NET Framework. It's basically the entire shebang,
tied to Windows: VM, class libraries, etc.

.NET Core is as the name says, just the "core" of the .NET Framework, the part
that's cross platform. However, I'm not sure that at this point the code's
common, I believe at least a part of it has been reimplemented. I think that
in the future .NET Framework will be based on .NET Core. Therefore .NET
Framework will be .NET Core + Windows specific bits.

WPF is the fancy name for a .NET UI toolkit for Windows, basically. Think of
it as a Windows-only GTK.

~~~
hackaflocka
Thanks. That clarified everything. Sad that one can't find this simplified
info on Wikipedia or on the Microsoft website.

------
mrweasel
Does Microsoft have some diagram or something that shows how all the .NET
things fit together (on Linux)?

The C# development I've done was... fine, but that was seven years ago and
it's like Java in the sense that it's an amazingly complex thing to grasp and
keep up with. Understanding how everything is layered is pretty complicated at
this point.

~~~
soundoflight
I could be wrong, but I think this is what you are looking for.
[http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx](http://www.hanselman.com/blog/AnUpdateOnASPNETCore10RC2.aspx)

~~~
mrweasel
Thanks, that sort of helps. It's still a little confusing though. Branding and
naming isn't something Microsoft is awesome at.

~~~
oblio
What's your current stack? Maybe we can compare and contrast the two stacks.

------
montyedwards
I don't see mention of FreeBSD anywhere in the .NET Core 1.0 announcements --
has official support for FreeBSD dropped or been postponed?

~~~
Voloskaya
* FreeBSD is listed on CoreCLR GitHub repo ([https://github.com/dotnet/coreclr](https://github.com/dotnet/coreclr)). See current build status here: [http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/...](http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/release_freebsd/)

* Also, see doc here (last updated in feb though): [https://github.com/dotnet/coreclr/blob/master/Documentation/...](https://github.com/dotnet/coreclr/blob/master/Documentation/building/freebsd-instructions.md)

* Laslty, FreeBSD arrived on azure last week, so it would be quite surprising if support was dropped.

~~~
montyedwards
I understand, but none of those links are the .NET Core 1.0 release
announcements.

And the download page for .NET Core 1.0 doesn't mention FreeBSD at
[https://www.microsoft.com/net/download#core](https://www.microsoft.com/net/download#core)

------
BinaryIdiot
Interesting name choice considering they have already had a .Net 1.0. I mean I
get it, I understand why they chose to make this more of a 1.0 release but for
those already in the .Net ecosystem it seems a little confusing to me.

~~~
recursive
Excuse me if this was already obvious, but the word "core" designates a new
product line, starting from 1.0. Obviously, it's informed heavily from the old
.net framework, but it's not backwards compatible with it.

~~~
lmickh
This is just a personal view, but my first instinct when I read about product
"CoolApp" and "CoolApp Core" would be to assume core is a subset of the first.
Not a new and re-engineered product line.

I could see why others might see .Net Core as a parallel product as opposed to
a new one.

------
jadbox
I'd LOVE to see some Linux web/micro benchmarks... particularly against Java,
Go, Node, Python.

~~~
igouy
_fwiw_

against Java --

[http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...](http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=csharpcore&lang2=java)

against Node.js --

[http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...](http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=csharpcore&lang2=node)

against Python --

[http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...](http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=csharpcore&lang2=python3)

~~~
arthursilva
I find the binary-tree benchmark specially disturbing, it looks like the .NET
Core GC/escape-analysis has some catching up to do.

~~~
igouy
The multi core difference?

Check the cpu secs and cpu load; check the source code.

~~~
arthursilva
Oh I should have checked that first. Thanks.

------
jsingleton
Good news! Now time for all the library and framework authors to add support
for .NET Core. I know a lot of people were waiting for RTM before starting
this, considering the massive changes between RC1 and RC2.

I've started a support matrix project at
[https://anclafs.com](https://anclafs.com). Feel free to file an issue or send
a PR on GitHub.

~~~
dewiz
You're missing akka.net there

~~~
jsingleton
Thanks! I have a big list of things to add but I'll check this is on there and
add it if they are planning (or have already added) support for Core. It
started as things I had talked about in my recent book.

~~~
jsingleton
Added, closing
[https://github.com/jpsingleton/ANCLAFS/issues/4](https://github.com/jpsingleton/ANCLAFS/issues/4),
thanks!

------
donatj
I'm receiving

> “dotnet-dev-osx-x64.1.0.0-preview2-003121.pkg” can’t be opened because it is
> from an unidentified developer."

I know full well how to get around this, but it makes me suspicious of what
I've downloaded. Would Microsoft have truly missed this?

~~~
jsingleton
It is annoying. The preview MSIs are signed but the preview PKGs are not. The
last release was so maybe it just takes some time?

BTW you can ctrl-click/right-click the installer package and select open to
get the option to run it without fully disabling gatekeeper.

[[https://github.com/dotnet/cli/issues/3434](https://github.com/dotnet/cli/issues/3434)]

~~~
leecow
Hey folks, sorry for the inconvenience around PKG signing. We're working on it
right now and should have things updated soon.

Lee [.NET PM]

------
ieverdream
Giant leap forward represented by Microsoft!! Happened right there when I
heard of Microsoft released SQL Server running on Linux...

------
nitinreddy88
They should have named it as xNET :) pronunce it as cross platfrom NET - dot
net framework which works on all platforms

------
yread
Any ideas how to do GUI development with .NET Core? Is there a version of
Xamarin? Are there plans to port Windows.Forms, WPF? There is this massive
thread about it [http://forums.dotnetfoundation.org/t/cross-platform-
wpf/421/...](http://forums.dotnetfoundation.org/t/cross-platform-wpf/421/90)

and an issue here
[https://github.com/dotnet/corefx/issues/5766](https://github.com/dotnet/corefx/issues/5766)

~~~
tbennet
You can have a Web UI in desktop app. Just run the app with embedded kestrel
web server and make all UI in HTML. And it will look pretty good an all
platforms.

CatLight is one of the apps that do that -
[https://catlight.io](https://catlight.io)

~~~
voltagex_
That's Electron, .NET Core (?) and Squirrel, all working together. Looks
pretty cool, just pity the people on <20 megabit connections - these apps are
getting pretty big.

------
AndreyErmakov
A bit unrelated, but I'm hoping to hear something soon about the future
licensing model for the upcoming SQL Server on Linux. Do we get a free version
without DB size / CPU / RAM limitations (but perhaps with some other
restrictions) that smaller companies and startups can use in production?

I'm planning to run my future ASP.NET MVC projects on Linux and very much
would like to know if a better SQL Server Express / Community Edition is
coming or do I need to move to PostgreSQL (which I have already started
looking into).

~~~
insulanian
Why limit yourself with Express/ Community if you can get full featured RDBMS
with Postgres?

~~~
dragonwriter
For a developer favoring .NET, the degree of .NET integration with SQL Server
might be a compelling advantage for applications where the limitations of the
relevant SQL Server tier weren't a problem.

------
mwcampbell
What's the current status of the CoreRT runtime [1], the one designed for AOT
compilation? Can it be used for non-trivial programs yet?

[1]: [https://github.com/dotnet/corert](https://github.com/dotnet/corert)

------
jsingleton
Live stream of the release at Red Hat DevNation:
[https://channel9.msdn.com/Events/Linux/DevNation-2016](https://channel9.msdn.com/Events/Linux/DevNation-2016)

Starts at 0930 local.

------
dogma1138
I was really hoping for ARM support at least as far as RasPi goes for 1.0.

But still very good news I personally love .Net it's nice to be able to use it
cross platform without having to work specifically around mono.

~~~
oblio
From what I see Samsung has been contributing on that front. They said in the
announcement that Samsung has joined the Dotnet Foundation.

~~~
dogma1138
Yeah, the only problem with Samsung is that they most likely going to make
builds for the Exynos based SOC which isn't that wide spread. The ARM
ecosystem is quite fragmented and depending on how you build your software
it's not as portable as one would assume.

It's also not clear which instruction sets they are going to be aiming for
Exynos started with ARMv7 + all the stuff that Samsung added to it, but the
newer ships are ARMv8. The Raspberry Pi still uses ARMv6, 7 and 8 depending on
the exact model with the newer RasPi compute, and Zero models still running
the old BCM2835 ARMv6 CPU's.

So I'm hoping for a more or less clean stock ARMv7 and ARMv8 builds for the
.NET core coming out sooner rather than later, I also hope they'll release the
X86 version to more platforms than Windows since running it on something like
an Intel Edison which comes with a 32bit ATOM CPU will be quite cool.

.NET is quite powerful and for my taste it's considerably better than Node.JS
(I don't like Javascript, this isn't some technical observation just personal
preference) but I do like C# and F# quite a bit and having the ability to run
the same code across multiple platforms makes me excited for IOT/Embedded
devices again especially considering that I don't have to work through some of
the headaches that come with Mono (some pun indented).

~~~
oblio
Well, I imagine that if someone offers support for those platforms they won't
say no. But they'd probably also need for stuff such as the CI chain.

------
mikevm
What is the licensing like if you're a vendor and you want to ship software
based on .NET Core on your own hardware appliances? Can you redistribute the
runtime, or do you have to pay?

~~~
oblio
MIT and Apache, apparently.

~~~
carussell
The source is MIT and Apache, but that doesn't mean the binaries you get from
MS are redistributable.

For anyone asking this question and not getting a sufficient answer, the safe
route would be "build from source, then distribute that".

------
bad_user
I don't understand, why does the package name for Linux say preview2?

    
    
        apt-get install dotnet-dev-1.0.0-preview2-003121
    

Isn't this the final release?

~~~
jsingleton
The preview refers to the tooling (CLI, VS etc.)
[[https://github.com/aspnet/home/wiki/roadmap#schedule](https://github.com/aspnet/home/wiki/roadmap#schedule)]

------
RomanPushkin
Do we officially have better-than-Java on all platforms now?

~~~
PopsiclePete
Yeah but so what. If the "best" language always won, why isn't the entire
world running on Haskell and Rust or whatever? Java's eco-system is ginormous
and it's deeply entrenched as _the_ "corporate stack" in non-MS shops, with
more than 15 years of history.

I'm afraid this is just too late to make a big dent. C# is nicer than Java,
but not _that_ much nicer to warrant switching over or rewriting your stuff in
a very immature eco-system.

Maybe they're hoping to capture some of that elusive start-up market- and
mind-share? That one is already pretty hostile towards MS...

Either way, this is a _good_ thing, I just wish they had done this in 2005 or
so.

~~~
runT1ME
On top of that, Scala is a much nicer language than C#. I moved from being a
C# developer to Scala and couldn't be happier. Best thing about C# is Visual
Studio (IDEs are weaker in Scala land) but a bigger ecosystem and more
powerful language make it for it imo.

~~~
aphextron
Could you sell me on Scala over C#?

~~~
runT1ME
Pattern Matching, Destructing, and ADTs are amazing. Inference is much better
and not just for local variables.

for comprehension is the equivalent of LINQ syntax which is nice, very
powerful when working with asynchronous calls.

Higher Kinded Types combined with implicit parameters are the two aces in the
hole that make it an asbolute definitive win when heads up against C#. When I
had to switch back to C# in my last job (some projects were scala, some C#)
this was what I missed the omst. Combining the two gives you the 'type class
pattern', which is pretty much the first time i've actually seen composition
and code sharing just work without the cruft of an 'OO' like framework.

[http://www.cakesolutions.net/teamblogs/demystifying-
implicit...](http://www.cakesolutions.net/teamblogs/demystifying-implicits-
and-typeclasses-in-scala)

------
ngrilly
A few years ago, I wouldn't have thought I would write this, but it looks like
Microsoft is definitely changing, for the best!

Two questions:

\- Does .NET Core offers something similar to Go goroutines or Erlang
"lightweight" processes?

\- And something similar to gofmt?

~~~
jdmichal
I don't know of any green threads in .NET -- at least, not built in. However,
.NET does have a built-in thread pooling / task execution service. You
generally interface via `System.Threading.Tasks.Task`[0], which has static
`Run` functions, or use the `Factory` property to get the underlying
`TaskFactory` for more fun. Since the executors are pooled, the creation costs
will be amortized over your program's lifetime.

Then there's `async`/`await`[1], which is built on top of tasks.

[0] [https://msdn.microsoft.com/en-
us/library/system.threading.ta...](https://msdn.microsoft.com/en-
us/library/system.threading.tasks.task%28v=vs.110%29.aspx)

[1] [https://msdn.microsoft.com/en-
us/library/mt674882.aspx](https://msdn.microsoft.com/en-
us/library/mt674882.aspx)

~~~
int_19h
I remember that a long time ago, .NET threading was implemented in such a way
that it should, in theory, support Win32 fibers. It's why all the low-level
.NET APIs don't use the OS thread IDs, but instead have their own IDs, and
require explicit mapping.

I believe that it was abandoned as a supported scenario a while ago, though.
But you can still see artifacts of that in the docs, e.g.:

[https://msdn.microsoft.com/en-
us/library/system.threading.th...](https://msdn.microsoft.com/en-
us/library/system.threading.thread.managedthreadid\(v=vs.110\).aspx)

"The value of the ManagedThreadId property does not vary over time, even if
unmanaged code that hosts the common language runtime implements the thread as
a fiber."

------
knocte
I was expecting they would fix the Uri class on Unix
([https://github.com/dotnet/corefx/issues/1745](https://github.com/dotnet/corefx/issues/1745))
before releasing 1.0 :( Now I fear their backwards compatibility policies will
prevent to fix it later. So much for crossplatformness...

~~~
tacos
Way too many compatibility issues unaddressed by that PR to have a hope of
getting anything changed there. Also it looks like what you (?) are trying to
do could easily be solved with the Path.* and Directory.* path manipulation
functions. No need to put a million apps at risk when you can wrap your call
to Uri() with a three line helper.

~~~
knocte
3line helper? _facepalm_...

~~~
triangleman
Care to enlighten us?

------
jderick
Does this represent some kind of change for .NET? Why is it called 1.0?

~~~
judah
It's the first version of .NET that's cross-platform, it's the first version
of .NET that's totally open source, and it's the first version of .NET that
can build self-contained apps (no need to have .NET Framework installed to run
.NET Core 1.0 apps). See the release notes[0] for more info.

It's called "core", because it doesn't contain the Windows desktop UI
toolkits, like Windows Forms and Windows Presentation Foundation (WPF), and
excludes some other Windows-specific functionality.

Additionally, this is the first version of .NET in which apps can be totally
self-contained. Previously, you'd need to install the .NET Framework on your
machine to run .NET apps. That is no longer a requirement in .NET Core 1.0.

So, it's a pretty huge release. And really the first time in decades that MS
has built it's premier dev stack with multiple OS support.

[0]: [https://github.com/dotnet/core/blob/master/release-
notes/1.0...](https://github.com/dotnet/core/blob/master/release-
notes/1.0/1.0.0.md)

~~~
osullivj
Interesting. I'm guessing it doesn't support COM interop?

~~~
ramenmeal
If you need COM interop, you don't need cross platform compatibility. You can
just use the full .Net framework.

~~~
rbanffy
I remember working with COM on MacOS 8... And it supported remote objects, so,
it'd be, in theory, possible to self inflict that pain.

~~~
lotsoflumens
I experience a physical revulsion just thinking about all the wasted years I
spent with COM and DCOM.

------
smcl
Damn, I wanted to learn more so clicked Learn -> Get started with .NET Core
and ... 404

Not the best start :-/

[https://docs.microsoft.com/en-
us/dotnet/core/index](https://docs.microsoft.com/en-us/dotnet/core/index)

~~~
lenkite
Thats [https://docs.microsoft.com/en-
us/dotnet/articles/core/index](https://docs.microsoft.com/en-
us/dotnet/articles/core/index)

~~~
smcl
Cool, thanks. Well the link on the page is somehow still not displaying this.

~~~
leecow
Sorry about that! Link should be fixed up shortly.

Lee [.NET PM]

~~~
smcl
Thanks for sorting this. I'm a little embarrassed I complained on HN instead
of raising an issue on GitHub or something :)

------
youdontknowtho
This is great news! I know that some of the devs from MS visit this site. Good
work guys!

------
swalsh
Does anyone know if the changes planned to project.json are included in this?

~~~
romanovcode
No, they are not.

------
cpeth
At my shop we have been using ASP Core since RC1 and have been quite happy
with it. The tooling feels a lot like Node.js in a way, much different from
any previous .NET development. It's awesome to have C# be deployable as docker
containers on Linux hosts.

My biggest gripe so far has been that Nuget doesn't have a way to search only
for libraries that are Core compatible.

If you are San Diego area and interested in working on Core, we are hiring.
Inquire at christian.peth(at)millenniumhealth.com

------
socialist_coder
I am interested in hosting a .NET web app on linux, so I read the docs:
[https://docs.asp.net/en/latest/publishing/linuxproduction.ht...](https://docs.asp.net/en/latest/publishing/linuxproduction.html)

Is there any advantage to running a reverse proxy (nginx) if you already have
Cloudfront in front of your cluster, doing the https & gzip work? And, if your
web app serves literally 0 static content?

~~~
aphextron
>And, if your web app serves literally 0 static content?

Even real time dashboards have _some_ cacheable content. I would still want to
use something like Varnish/NGINX in between.

~~~
socialist_coder
Mobile backend, every call hits the db

------
interdrift
The dawn of a new era!

------
uluyol
Does this still use mono's jit and GC on mac and linux? Last I checked mono's
GC is conservative and the jit isn't as good as the .NET one.

~~~
mellinoe
It does not; it uses the same JIT and GC as the Windows version of .NET Core,
and the code is also shared with the (full) .NET Framework that ships inside
Windows.

Actually, this has always been the case for .NET Core, but you may be thinking
of our older preview versions which gave you the option to run your app
entirely on mono.

(I work on .NET at Microsoft)

------
jsingleton
There is another blog post here:
[https://blogs.msdn.microsoft.com/webdev/2016/06/27/announcin...](https://blogs.msdn.microsoft.com/webdev/2016/06/27/announcing-
asp-net-core-1-0/) (they have 2 blogs, one for ASP.NET and one for .NET)

The stream on Channel 9 is about to start.

------
mcs_
sudo apt-get install dotnet-dev-1.0.0-preview2-003121 ... some second later...

>> This software may collect information about you and your use of the
software, and send that to Microsoft.

Edit: Please visit [http://aka.ms/dotnet-cli-eula](http://aka.ms/dotnet-cli-
eula) for more information.

The link is a 404 on GitHub

~~~
shanselman
Fixing now...

~~~
shanselman
Fixed.

------
jasselin
What happened to the so called promised "dynamic compilation"? There was
supposed to be a great improvement in compilation times...which is still quite
long on the default sample.

I don't feel like Microsoft has improved enough for me to make the switch from
.NET 4.x.

~~~
tracker1
As someone who's mostly moved off of windows, the ability to build/target
docker (linux) and dev on osx (already using vs code for node) is pretty
compelling.

------
hiram112
Microsoft is about 5 years too late with this.

I'm sure their MVC stack is fine, but this isn't a problem needing a solution
in 2016. There are dozens are frameworks in your favorite language that can
deal with taking HTTP requests, grabbing data from a backend, and spitting it
out as JSON. They all run fine on Linux servers, are easy to develop on Mac.

C# is a nice language too, but I'd need a compelling reason to jump from Java
/ Scala over to .Net. And JetBrains puts out products just as good as Visual
Studio for every major language.

The one thing that might make me consider this would be MS implementing the
actual valuable part of .Net to Linux, Mac, and others: the desktop GUI libs
and Visual Studio GUI tools.

Of course this will never happen since the MS dev tools team is beholden to
the Office and OS departments.

Instead, I imagine .Net core will not gain much traction.

------
dblooman
Any tutorial on how to build a .Net core web application specifically on
Linux. There seems to be a lot to wade through docs wise with a lot of it
still talking Windows.

------
merb
I still don't understand what's a .NET project now, how to define one? what to
checkin? is it still project.json? Or do we need another tool?

------
dimgl
Is some information missing from the article? I'm eager to use this but it's
not showing me how to set up my `tasks.json` file.

------
dreamsofdragons
Is this the release of .Net Core and ASP.Net Core, or is this just the .Net
Core?

~~~
runesoerensen
First line of the blog post: _We are excited to announce the release of .NET
Core 1.0, ASP.NET Core 1.0 and Entity Framework 1.0, available on Windows, OS
X and Linux!_

~~~
dreamsofdragons
Interesting, I could swear that the first time I clicked the link it went to a
product page. I never saw the blog post.

~~~
runesoerensen
You're right, the link was updated after the announcement post was made public
(was [https://www.microsoft.com/net/](https://www.microsoft.com/net/)) :)

------
Scuds
I'd like to be able to write AWS lambda methods in .Net core.

------
donpdonp
Am I the only one annoyed with the post title of "NET" and not ".NET"?

~~~
pduk
Possibly removed automatically by Hacker News

