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! .NET Core is a cross-platform, open source, and modular .NET platform for creating modern web apps, microservices, libraries and console applications.
This release includes the .NET Core runtime, libraries and tools and the ASP.NET Core libraries. We are also releasing Visual Studio and Visual Studio Code extensions that enable you to create .NET Core projects. You can get started at https://dot.net/core. Read the release notes for detailed release information.
It has started. Frightens me a little.
Covering the 3 most popular desktop environments.
Too old for future battles.
now that the .NET Core is officially multi-platform it’ll just be a matter of time before someone creates Sky.NET
… from the inside.
Devs will start using these, and MS will have them hooked. As soon as possible will start reeling them in.
Using proprietary libraries will always leave a sour taste when the owner, in this case MS, will start deviating from the initial promises. Look at the Oracle example with Sun’s software.
Edited 2016-06-28 00:19 UTC
“…Phoronix forums users aren’t impressed…”
It’s not necessarily for the Applers&Linuxers trying to explore Windows. But the other way. This is an orange boat in all the extension.
I know it’s meant to make Linux accessible to people who don’t want to leave their comfortable .NET bubble.
What I’m saying is that just getting it installed on Linuxes and BSDs is a very un-polished effort and, even once that’s done, the non-Windows .NET Core experience has a lot of catching-up to do with what other language ecosystems offer… often as the minimum experience all supported platforms are guaranteed.
Is There business, at that Route? That is the question. Please don’t forget that MS leverage a good portion of Work-ware.
[Of course, polishing of the annoying -from outsiders perspective- would help a lot].
Of late a little light toward MS because they where the first [and maybe the last?] to endorse Markets of Small Actors.
FFS.
FreeBSD isn’t even an officially supported port. You can’t blame them for it not working.
Nah. For the most part .Net will remain a non-issue in non microsoft-centric environments. I.e. anything that is not Windows desktop.
This is meant as a NodeJS competitor. They wanted to get Linux and OSX developers using the ASP.NET core stack to build web apps.
They don’t care about Desktop apps, Microsoft already own this.
And as I said, few organizations or products, not tied to the Windows desktop, care about that stack regardless of what it is used to build.
Thus the whole point of changing the tooling is that they can be more relevant. Because they are losing mind-share.
Most developers think that C# is a solid language but the fact it has been realistically stuck in the Windows world.
Most Senior ASP.NET devs I have met (at least in the UK) are using Macs as their workhorse machine and virtualizing Windows just to run VS (Xamarin Studio is probably worse than VS Code which isn’t a real IDE). Obviously I don’t have any official numbers but is a trend I have noticed.
This is a first stable release. Unfortunately Microsoft have totally screwed up the beta to release candidate transition (they changed namespaces, apis massively between the last beta and RC2). There was genuinely a lot of excitement in the web dev community to be able to use .NET cross platform easily.
Edited 2016-06-30 13:46 UTC
Yes, I’m sure the people who use or depend on windows for web development are very excited about new developments in the .net arena. Almost everybody else couldn’t care less.
It’s Microsoft’s Faustian deal when it comes to development/frameworks; they thrived by the sword (Windows/VisualStudio/Prop APIs), but remove that from the equation and their value proposition falls flat.
Same happened with the SQL Server port to linux. Nobody really gives a shit about it outside the MS echo chamber; The alternatives are already well established and they’re either better performant or have nil-licensing costs.
I’m not implying this tunnel vision is exclusive to MS btw.
Really? If the software is open source which is, then third party developers will develop libraries for it, open source or otherwise, and I see no problem with it.
Let them sell their libraries as long as the core is free, there will be free libraries either that will compete with proprietary libraries.
Hey guys, remember when Internet Explorer 4.0 was ported to HP-UNIX and Solaris? How’d that turn out?…. And remember when Windows NT 4.0 got ported to MIPS, SPARC and PPC? How’d that go??
Remember when they were all open source? Oh wait, they weren’t.
And that is the difference.
I think Java would be a better comparison.
1. It’s backed by a big company that marketed the hell out of it
2. It’s never fitted very well into the POSIX ecosystem
3. It’ll probably only gain mindshare among people who are interested in Linux only to check off some box. (ie. most managers, most game developers, etc.)
I would say it is a big difference between Java and .NET in this case.
Java was developed by Sun from thee beginning, then bought by Oracle.
.NET in this case is made by Microsoft and ported by Microsoft.
For me that is a big difference.
I’m comparing .NET now against Java in the period before Oracle bought Sun. I see little difference.
It is on Github with a permissive license. What more could you possibly want?
Cannot wait for all those high quality .net apps to come to OS X…
Considering the announcement was made at a Red Hat conference, can’t stop wondering if Red Hat is taking the road many others took before and failed.
Perhaps they wanted to do it at the Apple WWDC but Apple didn’t want them crashing in on their party so the RH thing was the next best option.
.NET Core: Aarch32 Aarch64 x86-64
Mono: s390 SPARC PPC x86 x86-64 IA64 Aarch32 Aarch64 Alpha MIPS HPPA
M$ still has some work to do…
Yes, if mono stopped being available for all those other platforms the internet would be outraged, and the news will contain reports that 10’s of people were affected…
🙂
I personally think this release is pretty exciting, i find that for quite a while Microsoft have had the best environment and libraries for web application development, with the only annoyance being that you needed Windows Server to host it. Now that annoyance is gone.
Is anyone seriously running Mono on s390/Alpha/HPPA?
Why…
Probably not worth even worrying about MIPS, SPARC, or PPC for that matter.
I recently moved to Mac OS and I can write my web apps to be cross platform using C#.
Writing web apps that aren’t cross-platform because of the language used is almost uniquely a flaw in Windows-centric technologies and, when it does happen, it tends to be Windows suffering from being the odd one out, API-wise.
The big names in web application development, like Go, Java (eg. via the Spring framework), Python (eg. via Django), Ruby (via Rails), etc. work beautifully on Linux or BSD (where they’re most commonly deployed) and MacOS (where they’re often developed) and Windows support has matured very nicely since 2007/2008 when most of the complaints tend to date from.
They also have a much more polished experience than .NET Core on non-Windows platforms.
Plus, if you’re using Django and your app has a CPU bottleneck somewhere, Cython lets you easily move the hot code into a compiled extension using a modified Python dialect with static type annotations that gets compiled to C.
Heck, Rust’s a rising star and will beat any JITed language at giving a predictable memory footprint, which can be a huge deal when it comes to cost-effectively scaling.
If I needed to develop a portable web app and had the time to learn a new language, I’d learn either Go (golang) if I needed it right now or Rust (rustlang) if I had time to invest in my future.
Both compile to static binaries for easy deployment and both will match or exceed C# for performance and memory footprint to minimize growing pains when a project becomes successful.
I know it’s a little long, but here are a few reasons I’m trying to make time to learn Rust:
1. Community and design philosophy
1a. Great community and the ecosystem is developing beautifully
https://www.rust-lang.org/community.html
https://www.reddit.com/r/rust/
https://www.reddit.com/r/rust_gamedev/
1b. Like Python, Rust has a strong “take innovations from the academic/functional programming world and make them comfortable for everyday programmers” aspect.
1c. Compiler errors designed to be exceptionally helpful, right down to having designed the language with clear errors in mind.
(eg. Part of the reason function/method definitions are exempt from type inference is that making them the unit of explicit ABI definition massively improves the compiler’s ability to give concise errors and helpful suggestions… but, at the same time, closures DO do type inference because it makes it easy and comfortable to write jQuery-style callback APIs which get inlined away for no overhead.)
2. Less work for me, even if it’s somewhat front-loaded
2a. Language-level RAII+ownership for memory management competitive with C and C++ but with memory safety comparable to a JITed language.
2b. A clear distinction between safe/unsafe code so safe abstractions can be built in Rust. (FFI calls are inherently “unsafe” and it’s your job to ensure that invariants are restored before the end of the unsafe block.)
2b. Smart design elements baked into the language and standard library, like “immutable by default (mut, not const)”, “affine types, not NULL/exceptions”, “lock data, not code”, “compiler-checked exhaustive pattern matching”, etc. make writing correct, robust code as easy and comfortable as possible.
(It’s a lot simpler than it sounds. For example, a function which would raise an exception in C# instead returns a Result(T,E) which is a tagged union containing either the return value or an exception. This makes it easy to ensure you’ve specified a handling strategy for every error case, even if it’s just a matter of calling Result.expect(“Cannot recover from error X. Exiting.”) as Rust’s equivalent to things like Perl’s “or die”.
2c. Rust’s combination of type inference and the borrow checker makes the type system powerful enough to enforce correct use of state machines like the HTTP and IMAP protocols at compile time. ( https://insanitybit.github.io/2016/05/30/beyond-memory-safety-with-t… )
(Basically, any method which moves to a new state takes ownership of the object and returns a new one which contains only the methods which are valid for that state. The borrow checker enforces that no references to the old state object remain and type inference makes the type-changing aspect of the state transitions invisible unless you make a mistake.)
2d. Like Go, statically compiled by default for easy deployment (Rust even has a musl-libc compiler target to go one step further and produce truly static binaries and the rustup version manager is currently in the process of learning how to make cross-compilation as simple as one or two commands.)
2e. Cargo, the build system and library package manager hybrid which Just Worksâ„¢ beautifully.
I’ve been writing cross platform C# stuff for years (via mono).
Now it is officially supported by Microsoft and the tooling is now geared for *nix systems.I dunno if I can port a lot of my extremely old VB.NET code.
I don’t care about Go, Rust. I do work a lot with Python these days but I am usually using flask.
There is almost no market in the UK for the languages that you mention (maybe in London but I don’t want to have to work there).
Wow! That’s some fine irony haha