This is the ASP.NET Core 2.0 MVC Framework that will run on the .NET Core 2.0 runtime. This is not the .NET Core 2.0 runtime.
The .NET Core 2.0 runtime is still in preview for the next month or so. Microsoft released the library specification for .NET Core 2.0, called .NET Standard 2.0 and published all of the GA 2.0 versions of their libraries, such as this one, on Friday August 11. Library maintainers have the next month or so to publish updates to get ready for the .NET Core 2.0 GA release.
.Net standard isn't really the same as Ruby or Python specs, not that it isn't welcome but you can't just brush the complexity under the carpet like that.
Also, you have the version number confusion, for example .Net Core 2.0 vs .Net 2.0, one was released 12 years ago, the other in a month. It's all as clear as mud.
> .Net standard isn't really the same as Ruby or Python specs, not that it isn't welcome but you can't just brush the complexity under the carpet like that.
That's exactly what it is, actually. It has several versions, so does a lot of language like Java or C++. If it has more complexity than that, I would welcome you to give concrete exemple of what it contains that isn't in other language's specs.
> Also, you have the version number confusion, for example .Net Core 2.0 vs .Net 2.0, one was released 12 years ago, the other in a month. It's all as clear as mud.
While I agree it may not be clear on the first look, anyone investing more than 2 minutes in .Net understands the difference and is never confused again.
".Net" (this name alone) is the legacy name of what is now called the ".Net Framework", the original and still current implementation of the plateform aimed to run on windows only; what you refer to ".Net 2.0" is ".Net Framework 2.0", and is now always referenced by that name.
".Net Core" is another implementation, one that is aimed at being portable and running on other OSes too.
The table on .Net Standard page makes this very clear, you can see the revisions of the standard on the X axis, and all the implementation on the Y axis, .Net Framework and .Net Core being two different implementation: https://docs.microsoft.com/en-us/dotnet/standard/net-standar...
Again, I am not saying the name are very well chosen or super clear to someone who glances at it once every 5 years, but anyone actually interested in .Net needs about 3 minutes to clear that up and never have to ask any question about that again.
Unfortunately, glancing at .NET once every 5 years is what about 90% of the devs around here do (including me). Hence the perennial "WTF is up with the name/version?" sub-thread...
I also like it a lot, since the alpha version made available to selected MCPs.
In what concerns enterprise world, Java and .NET are here to stay.
If you have any doubts regarding .NET, just check BUILD 2017 talks and all Microsoft blogs regarding UWP, .NET is used everywhere, even if the lower level layers are a mix of C and C++.
Even the Windows UI blog is using only C# for all cool UI effects being introduced with Fluent Design.
I'm in the UK so smaller pool unfortunately. And salaries certainly aren't as good as the US! Seems to be a fair amount of C# in city of London/finance etc and fair contracting rates there though.
It really depends on the market. I got out of .Net/MS stuff because that kind of work was bottom-of-the-barrel compared to what I could get by re-investing in my Linux/OSS skills.
In some other places .Net has all the best paying jobs.
> .Net standard isn't really the same as Ruby or Python specs, not that it isn't welcome but you can't just brush the complexity under the carpet like that.
That's exactly what it is, actually. It has several versions, so does a lot of language like Java or C++. If it has more complexity than that, I would welcome you to give concrete exemple of what it contains that isn't in other language's specs.
.NET Standard does neither specify a programming language, there is for example the C# specification for that, nor the runtime environment, where there is the Common Language Infrastructure (CLI) specification with specifications for the Common Type System (CTS), Virtual Execution System (VES), Common Intermediate Language (CIL), and a few other things like meta data formats. The CLI specification also contains a specification for basic class libraries, among them the Base Class Library (BCL). I am not really sure about the exact way .NET Standard and the class library specifications in the CLI specification interact, but .NET Standard essentially defines sets of APIs that must be available in the class library of a conforming implementations.
heh. good on Satya Nadella. stopped using ms stuff more than a decade ago when we went linux for all production machines. from mouth to desktop he has started making microsoft and the good work they do relevent again. - hadnt realised they'd actually released so much linux compatible stuff.
Throw Visual Studio Code in and you can both develop and deploy/run your entire web app on linux using Microsoft tools now, tools that are actually good and pleasant to use.
Predict that fifteen years ago on slashdot and you would probably be "-42 ridiculous" back then.
I guess this was meant to be a gripe about .NET Core vs .NET Standard - but this release isn't about either, it's ASP.NET Core, the web framework. There is no clarification needed in this case.
Actually this is not the ASP.NET Core 2.0 MVC Framework, it is the ASP.NET Core 2.0 framework and MVC is another smaller framework which you can plug into ASP.NET Core 2.0, but don't have to (and many choose not to).
From the NuGet page, it looks like it actually runs on anything that implements .NET Standard 2.0, including .NET Core 2.0 and (hopefully in the future) the full framework.
Congratulations to the team and contributors. My favourite news has to be all the internal perf improvements; can't wait to start using it in my own work, and discover what else is new.
Can anyone compare this to other backend frameworks like Django and Rails?
Are non-Windows operating systems well supported as development platforms? I did some quick searches and the standard Visual Studio popped out a lot inside documentation, doesn't seem like a good sign.
How would you compare it to Elixir and Phoenix?
It works perfectly fine on non Windows environments from our experience. I am running myself several production apps in Linux containers in Kubernetes in the Google Cloud and it works like a charm. Also from a dev point of view I know many devs who work from a Mac with Visual Studio Code and they love it.
Just to add, you don't need to use Visual Studio anything, you could work in VIM/Emacs on Linux and never leave the terminal, and do full stack .net core development if you wanted to.
I find you can use vim/emacs when working with interpreted environments like python. when using java or .NET the stack gets much bigger and advanced intellisense becomes a bigger advantage.
Personal experience: if youre beginning a foray into strongly-typed large stacks like java/.net be prepared to trade in your minimal vim/emacs as an IDE for something heavier duty such as visualstudio/intellij.
If your're like me and burned vim mnemonics into your brain its not terrible, there are plugins which make the editor sort of behave vim-style (but little to no plugin support and vimscript is out the window)
Im sorry to say it but vim/omnisharp is nowhere close to usable in a professional setting (based on my attempts about 8 months back). Its like eclim. Compared to an out-of-box installation of visual studio (even without resharper) I'm spending way more time fighting with my tools than I can afford. I fear this vim-omnisharp effort on a fundamental level will never be worthwhile except for the most trivial of .NET projects.
EDIT: vs-code is a FOSS project, For .NET I think this is a much better direction.
Its different from Django. Asp.net core focuses on being modular, whereas django focuses on providing conventions to aide in development. I develop with both on mac using VS code.
I still prefer django over it because the community provides so much additonal value. But MS seems motivated to get core tonthat1 level.
It’s been a while since I used Django or rails, but asp.net has the same feature set. Asp.net is more modular than I remember the other frameworks being but that has probably changed in the last few years.
With .net core development is supported on macOS and Linux as well as windows with visual studio code. I develop on macOS myself.
If you’re not familiar with asp.net it’ll be a bit confusing. There are now two versions - asp.net which is windows only and asp.net core which is cross platform. Also there has been a lot of flux in .net core so older tutorials are often wrong.
Compared to Visual Studio + ReSharper, Visual Studio for Mac is quite a step back (putting it mildly). I've high hopes for Rider (cross-platform JetBrains IDE for .NET that was just released), though I haven't tried it yet.
I've been using Rider and it's been pretty good. This shouldn't be a surprise. Remember that JetBrains started with ReSharper. This is basically their home turf.
That said, third party IDEs can always be expected to be slightly behind the first party stuff. But in this case I think it's worth it and might actually be a good litmus test for adopting the next releases.
The main problem for me a while ago were memory leaks in mod_mono. Everything was running mostly fine for the first week or so, then mod_mono was starting to eat more and more memory. A weekly restart would solve the problem, but I hope this is resolved now. I'm afraid under a higher workload this would bring the server to its knees.
A lot of documentation that specifically talked about Visual Studio and not any other (more platform agnostic) tooling is probably what made them say it was a bad sign.
I've been working with dotnet core the past couple months. It takes a lot of Googling to find useful answers still. The documentation is not particularly comprehensive and it is true that the docs are frequently images of "How to use visual studio to do this" which is never useful for vscode users. I'm actually starting to understand why StackOverflow is such a commonly used resource because of it (in python land I almost never need to defer to stack overflow).
That said, still enjoying the ecosystem, but docs-wise it's kind of a mess. I was thinking I'd start compiling a few cheat sheets for things like EF...
This page for example is just totally busted:
Its not "officially" released, and has no announcement. This is a link to the version in the package manager so everything can be tested and 3rd party libraries which depend on it can update and be ready for the offical release.
One benefit is that library maintainers have the next month or so to update their libraries to target .NET Standard 2.0. If the library specification and the runtime were released at the same time, there would be no third party (non-Microsoft) libraries ready for it on day 1.
If its called asp.net 7 people would think its backward compatible. And since almost everything was rebuild from scratch, WebForms doesn't exists, WCF also, most important namespace System.Web is gone, it wouldn't be fair to version it with 7. MVC API looks the same, but that's about it, everything else underneath is new. MS went long way to "emulate" old MVC and WebAPI, for easier porting of old apps.
It's not compatible with the stuff that I always found a bit backwards. Good. The amount of time I threw out of the window as a junior developer thinking WebForms was difficult because I didn't really understand it well enough yet is horrible. I hate WebForms.
.NET runtime breaks with general versioning in that every version is backwards compatible; it follows closer to the Windows versioning where every version of Windows is generally backwards compatible with every prior version.
In theory it is not ASP.NET 7 because Microsoft refuses to say that ASP.NET Core supersedes ASP.NET, even though in practice this is exactly what they are doing. So in theory there could be an actual ASP.NET 7 in the future which would be different to ASP.NET Core, but my guess is that in practice this will never happen.
ASP.NET Core 1.0 was referred to as ASP.NET 5 for months and months before too many complaints about backwards compatibility breaks forced the hand and renamed it.
You do realise that Core is a complete rewrite of .net, which is platform independent? (Edit: Designed from the ground up to be 100% platform independent)
To start Core from 1.0 is (as such) entirely appropriate considering the scope of the project.
I struggle now knowing what to google when I need to solve a problem! I (stupidly, probably) started the current app I'm working on with the RC and I've gotten totally muddled by the different versions. It doesn't help that things changed so rapidly in those early versions that you had to know exactly which version to search for or the info you found would be totally inapplicable.
It's great stuff though, I'm glad I went with it even if it's given me some headaches along the way!
there's quite a few things they hit the reset on and manage a few things with different version numbers that are all currently on very similar versions. I read a post a while back they know its a problem and plan to improve it. But I don't know.... microsoft seems to have trouble with linear versions!
In my experience lazy loading is terrible for application and query performance. The first thing we've done at several companies on many projects is immediately disable lazy loading.
How is the tooling these days? I played with .NET Core a while ago (before the move away from project.json and just after the move to the dotnet command line tool rather than dnx/dnvm/etc.). I found the documentation for the tooling to be confusing, sparse, and often contradictory. Have things improved? How much manual XML munging is required with the new csproj format, assuming one isn't using Visual Studio and is developing on Mac/Linux?
it took me a lot of trial and error, but I was able to get a pretty nice asp net core dev env working with the dotnet cli, and vs code. so its possible, but not always easy.
documentation is still confusing and contradictory, but a little less sparse.
I use the dotnet cli for everything, and rarely need to manually edit the csproj. Even when I do, the csproj is very simple straightforward xml, nothing like the old version.
I use node/npm/gulp tool chain for build pipelines. I set up npm wrappers for the dotnet cli, "npm run build", "npm run test", "npm run start", which I like.
my favorite thing is that I can reasonably work on c# projects without full Visual Studio and solutions.
Our company is running .NET core in production. I code in Ubuntu. Co-worker on windows and another on a mac. All running VS Code. no difference on any of the OS
I'm working on an app where the server side code is all .NET, and has never even been cloned to a windows computer. I'm not sure if it would even run on window,s because that's not been something we've valued while writing it.
The code has been written in vim, atom, vs code, and jetbrain rider. You definitely do not have to live in a windows world to work with .NET.
This is kinda what I was alluding to. I don't think it's quite ready for primetime. That said, I wouldn't be against seeing it in, say, Fedora's bleeding edge repos.
Is Mono ready for the prime time? Because it's most certainly already in Debian. It's just that MS doesn't give a shit about adoption on the "cancer" platform. They'd much rather we all wore the Windows ball and chain.
PPA is specifically designed for packages that are potentially not stable. And you can find dozens of garbage packages in Debian repo without even trying all that hard.
Why's that? IMHO, its finally some good usable .net. Full fx was ok in 2005, but today Core is the proper framework. Sure, tooling is still half broken (only if you try to do some crazy thing), there's small API surface in Core 1.1, but I have few apps in prod already, and development is good and easy, no major issues or showstoppers.
Yep; couple this with MS publishing how to roll out micro service builds based on Docket, you see Microsoft fully embracing the state of the art of programming. More importantly, they are making these techniques and patterns available and accessible to us developers.
care to explain why ? this whole project had me interested again in the .net platform ( although i ended up not jumping ship because i thought the platform wasn't mature enough)
Honest question: why in this day and age would anyone choose to develop web based applications using a microsoft technology? Given their history ("Embrace, Extend, Extinguish") and the additional cost for software licensing, should you want to deploy on a Microsoft platform, what advantage does this have over any other stack?
.NET Core is open-source and runs on Linux. C# is a fantastic language, .NET is a great framework.
I'd give you a more developed answer but I don't feel like this is a developed question. Everyone has their reasons for using what they use. To act like .NET is instantly useless because of who contributes the most to the product is unreasonable.
TBH, I didn't think I'd ever use Microsoft stuff again after moving to a macbook for developing and deploying on Linux. However, the underwhelming macbook hardware of late drove me to purchase a surface book, which I now love. Then, developed a fairly complex python web app that requires anaconda and a GPU based server. One thing led to another, and this week I deployed a python flask/gevent server web app on windows server 2016 using IIS as a reverse proxy. It turns out IIS and windows server is actually great to work with. I'm quite pleased with it all and not a big deal to license a copy of windows server, it is a pleasure to work with. In the future, looking forward to making my next web app with Visual Studio, C# language and .net core framework.
I develop applications using TypeScript because it is (a) superior to native JavaScript, (b) open source, (c) has a very clear exit strategy in the unlikely event that Microsoft does something stupid with it.
The .NET Core 2.0 runtime is still in preview for the next month or so. Microsoft released the library specification for .NET Core 2.0, called .NET Standard 2.0 and published all of the GA 2.0 versions of their libraries, such as this one, on Friday August 11. Library maintainers have the next month or so to publish updates to get ready for the .NET Core 2.0 GA release.