Click here to Skip to main content
15,880,972 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Kevin Marois5-Mar-20 10:18
professionalKevin Marois5-Mar-20 10:18 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
TMags6-Mar-20 1:00
TMags6-Mar-20 1:00 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
whyaskwhy6-Mar-20 3:54
whyaskwhy6-Mar-20 3:54 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
darktrick5446-Mar-20 5:28
darktrick5446-Mar-20 5:28 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Sander Rossel5-Mar-20 21:43
professionalSander Rossel5-Mar-20 21:43 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Thornik6-Mar-20 0:44
Thornik6-Mar-20 0:44 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Steve Naidamast6-Mar-20 5:44
professionalSteve Naidamast6-Mar-20 5:44 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Davyd McColl6-Mar-20 2:38
Davyd McColl6-Mar-20 2:38 
TL;DR:
Core, mainly for performance (start-up time is vastly reduced, Kestrel handles http requests really, really fast), but also for future-proofing, and, ironically enough (because others have stated !Core for the same reason): so other devs can deal with it.

For the more patient / bored: strap yourself in! Some of this is opinion, but it's opinion backed by experience, so there's that...

If you're still pumping out webforms, well, good for you (and good luck with unit tests -- the best strategy I had there was to move all my logic out into another assembly and have every webform callback call into that, so at least I could provide code with some level of testing over which I had confidence), but the truth is that all the new kids won't be writing webforms. So by yelling them off your lawn, you may secure your job and just cause pain for your company down the line. You're also wasting CPU cycles and bandwidth, making your sites only really work properly on low-traffic LANs where massive postbacks and slow page-loading aren't a problem.

Ugh, WebForms and the giant postback state. Should make any web dev shudder.

ASP.NET core also has a more sane startup routine than classic MVC, with the whole pipelined approach baked in from the get-go (yes, you can do filters in ASP.NET MVC !Core to approximate a lot of this, but it's way less elegant or simple). This will be familiar if you're hiring any Node devs who have dealt with Express -- so again, future-proofing your app against being trashed because no-one can work on it.

In addition, ASP.NET core is a breeze to get running on a Linux host (good luck with WebForms; I guess you can go with mod_mono and Apache, but really, why would you want to when Kestrel is fast, light and doesn't require all of Apache and that setup?). Running individual asp.net core apps and using something like nginx for reverse-proxying means you can isolate apps completely from one another and perform fine-grained control such as rate limiting above the application level.

Linux hosting is cheaper than Windows hosting, as well as arguably more performant (when comparing similar hardware, of course) and harder to crack than a Windows server. And doesn't perform performance-crippling updates during peak hours of traffic on that machine :/ (happened recently on our machines, and we can only block off 12 hours of the day as "peak hours", when we really need about 15; unless there's some hidden config I'm missing (probably am)).

I don't hate Windows -- I feel that the platform should be a choice that's made in spite of the application technology, not because of it. Choose Windows if it suits your org / budget / whatever. Choose Linux for the same reason(s).

And to respond to a few of the other comments here:
[1] C# != .NET.
C# features are supplied by Roslyn performing compile-time magic. Which is why you can get these features from any reasonable modern msbuild (read: 15.3+, iirc) and a nuget package: the deprecated Microsoft.Net.Compilers or the newer Microsoft.Net.Compilers.Toolset. If you target an older runtime (eg dotnet core 2.1) with a newer compiler (eg out of the dotnet core sdk 3.1 or via one of the aforementioned packages), your language features compile just fine. Roslyn is rather nifty /2c

[2] I'm not particularly fond of default interface implementations (aka traits, or, as the peeps in the js world have called them for ages: mixins). I think the feature will cause the confusion that was originally intended to be by-stepped by not allowing multiple inheritence (which made me sad when I came to .net from c++, but I got over it).
I'm waiting for the crash-and-burn stories to arrive. Or perhaps they won't, and we've all learned not to do multiple inheritence from a bazillion useful abstract bases? Poke tongue | ;-P

[3] DNC 3.1 is LTS (contains fixes and performance enhancements over 3.0 -- and a feature removal too!) so that 3.0 can be shelved and people can upgrade long-running linux boxes without having to chase dotnet 5.0 when that drops (allegedly at the end of the year). Some sysadmins are quite cautious and would prefer to wait for new tech to break on other people's machines first.

And, of course, the caveats (which make any answer boil down to "it depends"):
1. Are you sure that your deploy target has dotnet core? If not, can you install it? Some cranky admins will only give you an old box and refuse to install new tech.
2. Do you have to use some legacy nuget package (or, gasp checked-in-to-your-repo assembly!) for non-trivial or required functionality? If you have to, at some point, rely on using a Framework-based assembly, your options just got a lot slimmer.
If you say that getting the money is the most important thing
You will spend your life completely wasting your time
You will be doing things you don't like doing
In order to go on living
That is, to go on doing things you don't like doing

Which is stupid.

GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Vaso Elias9-Mar-20 3:20
Vaso Elias9-Mar-20 3:20 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
MSBassSinger6-Mar-20 8:27
professionalMSBassSinger6-Mar-20 8:27 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
#realJSOP7-Mar-20 0:28
mve#realJSOP7-Mar-20 0:28 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Davyd McColl7-Mar-20 19:07
Davyd McColl7-Mar-20 19:07 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
#realJSOP9-Mar-20 1:02
mve#realJSOP9-Mar-20 1:02 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
Davyd McColl9-Mar-20 2:26
Davyd McColl9-Mar-20 2:26 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
#realJSOP10-Mar-20 13:51
mve#realJSOP10-Mar-20 13:51 
GeneralRe: ASP.NET MVC 5 vs ASP.NET Core MVC Pin
captonmike9-Mar-20 8:39
captonmike9-Mar-20 8:39 
GeneralThought of the Day Pin
OriginalGriff5-Mar-20 4:43
mveOriginalGriff5-Mar-20 4:43 
GeneralRe: Thought of the Day Pin
Daniel Pfeffer5-Mar-20 4:54
professionalDaniel Pfeffer5-Mar-20 4:54 
GeneralRe: Thought of the Day Pin
lopatir5-Mar-20 5:06
lopatir5-Mar-20 5:06 
GeneralRe: Thought of the Day Pin
littleGreenDude5-Mar-20 5:22
littleGreenDude5-Mar-20 5:22 
GeneralRe: Thought of the Day Pin
W Balboos, GHB5-Mar-20 5:38
W Balboos, GHB5-Mar-20 5:38 
GeneralRe: Thought of the Day Pin
Gary Wheeler5-Mar-20 5:48
Gary Wheeler5-Mar-20 5:48 
GeneralRe: Thought of the Day Pin
PIEBALDconsult5-Mar-20 9:35
mvePIEBALDconsult5-Mar-20 9:35 
GeneralRe: Thought of the Day Pin
DRHuff5-Mar-20 10:05
DRHuff5-Mar-20 10:05 
GeneralRe: Thought of the Day Pin
Mike Hankey5-Mar-20 11:45
mveMike Hankey5-Mar-20 11:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.