_N_O_P_E_•

As someone who's not currently working on ASP projects, can we have a recap of the current available versions?

I'm a bit lost here.

Does this only affect developers using the standard .NET framework?

4
Shadowvines•

currently netcore 1.1 is release and netcore 2.0 preview was released. some people switched to the preview right away only to discover that the new netcore doesnt work with .net desktop (WinForms and WPF) and Mono (Xamarin Mobile stuff). There was no announcement saying this wouldn't be supported so people are questioning whether this is a preview thing or its truly going to be unsupported. Then there is netstandard current highest version is 1.7 and 2.0 was just released for preview. NetStandard class libraries are meant to support both native and web so there is a side question on whether applications which need native and mono now need to be .net 4.6.2 and packages need to be converted to netstandard. for some people trying to convert to 4.6.2(or 4.7 which was recently announced) might not be possible. basically everyone doesn't know whats going on and communication from the ASP.net team has been poor. Then there is windows universal just throwing this in cause its neat and runs on a raspberry pi.

7
tvdang7•

As a newbie to .net at my first job I am getting super confused . classic asp, asp.net webforms, asp.net MVC, asp.net core.

3
LuckyHedgehog•

Classic asp is extinct, webforms is basically extinct. Mvc is standard and core is bleeding edge

9
tvdang7•

Yes I got the idea now after almost a year but if you can imagine learning the different flavors of .net all at one time can be quite discouraging.

6
ModernTenshi04•

Just out of curiosity, are you fully new to programming, as in your first job you mentioned is literally your first job as a programmer?

2
jewdai•

Classic ASP - essentially PHP like user hits URL and there is a file associated with that page that runs.

Asp. Webforms - originally intended to be GUI based drag and drop way to develop websites using XML like tags. Has a view page and a code behind that executes to manipulate stuff on the view. Now is generally used to refer to the tempting style used (ASPX over Razor).

.NET MVC - the "ruby on rails" of .NET. Create .NET websites using strong folder and file naming conventions. Strong separation of concerns between view and controller. Eliminate usage of state between client server (allows better scaling). View is focused on just rendering content. "web forms" (ASPX) is one templating, Razor is the preferred templating style. Razor is more HTML-like, less verbose, does not have editor as pages are more hand coded. This is considered the current industry best practice to use. Avoid using Web Forms.

.NET Core - .NET originally was intended for windows based operating system. .NET core is not quite the full .NET but is intended to allow you to write applications for any operating system using a .net language (namely C#...F# and others to hopefully come in the future) .NET core is still in it's infancy, many developers avoid it unless they really want to work in C# and cannot afford the windows licensing. It's considered bleeding edge and need a bit more time for it to mature. (it's about 2yrs old at this point AFAIK and they are already through 2 '.NET Standards') use for hobby, small or low risk projects.

7
romeozor•

Ask your seniors for a short overview. I think the most straight forward would be to look at some code structure because they are distinct enough to give you a foothold.

You probably don't have to worry about stuff prior to MVC unless the company has a lot of legacy web apps to maintain, but even then, worst case is probably webforms.

If you understand MVC (which is not hard at all), core will fall into place easily.

3
z500•

Just gonna cut in to say you probably do have to worry about Webforms

3
ModernTenshi04•

Could depend on the company. Sadly in the last month I've been moved to a team that's maintaining a legacy webforms app. I'll occasionally be pulled off when the business has new requirements/needs/wants for the Web API for their mobile apps, but until then I'm helping with backlog issues for this crappy webforms app.

2
tvdang7•

Yes we have stuff ranging for all.

1
wavefunctionp•

Those are all frameworks, most of which are considered legacy. There's been some shuffling over the last couple of years while figuring out the best way to organize the newer stuff.

Hanselman covers an overview of the hows and whys here:

https://www.youtube.com/watch?v=tPIQoV1YS8g

Explaining how standard, core, and xamarin and even the death of the json configuration.

1
[deleted]•

[deleted]

1
tragicshark•

It looks like (someone correct me):

  • A subset of the ASP.NET Core libraries are switching to target netcoreapp2.x directly instead of netstandard2.x except that you must use these to run an ASP.NET Core web app so for the common use case all Core 2.x web apps must target .NET Core 2.x.
  • .NET Core 2.x will attempt to load dlls that are compiled against the full framework and let you use them as long as they don't actually use types/methods in the desktop framework BCL which are unavailable in Core (then you get a type load exception?).
  • The preferred way to move forward with legacy code is to migrate the parts you can and leave the stuff you cannot but change it so that you can call it from an out of process model.
4
badlife•

That's my read. In short, you will need to switch to .NET Core to run ASP.NET Core starting with v2.0.

3
VGPowerlord•

I always thought it was weird that ASP.NET Core supported .NET Framework as an option to begin with.

Apparently Microsoft meant for this to be a transitional thing and forgot to tell everyone?

3

Its pretty confusing and I really don't feel like reading through all those comments.

In thought I was only going to wait for .Net Standard 2, but now I'm wondering if I will just continue to target the full framework as much as possible.

1
AngularBeginner•

That's what this is about. If you use ASP.NET Core, then you won't be able to use the full .NET framework with version 2.0. You need to stay at version 1.x of ASP.NET Core, or switch to .NET Core (and not the full .NET framework).

2
forlasanto•

Ah. This is a concise distillation of that text wall in the link. Thanks for that.

I see now why devs are popping their corks. The pushback needs to be against the 3rd party library providers who really have no excuse in most cases for not releasing .Net Core versions of their products. The writing is on the wall, after all, and has been for two years now. In bright, glowing neon.

1
grauenwolf•

The pushback needs to be against the 3rd party library providers who really have no excuse in most cases for not releasing .Net Core versions

No, far from it. The majority of the complaints are about Microsoft libraries that are not or will not be ported to .NET Core.

6
AngularBeginner•

The pushback needs to be against the 3rd party library providers who really have no excuse in most cases for not releasing .Net Core versions of their products.

3rd party? Plenty of libraries from Microsoft are not even ported to .NET Core.

3
JTenerife•

LDAP (System.DirectoryServices) is an example for Microsoft libs. But in this case they seem to bring it with .NET Core 2.

Scott Hanselman: https://github.com/aspnet/Home/issues/2022

AD – Totally, this is a gap IF you want to call LDAP directly. You can certainly auth against Windows Auth NOW. We plan to have specifically the DirectoryServices namespace for Core 2.0 around summer timeframe

1

3rd party library providers who really have no excuse in most cases for not releasing .Net Core versions of their products.

I assume its simply a question of effort versus return.

If there had been 2 years of stability instead of churn, we might see more of them.

For each person/team its different, but it seems like each time I feel like its getting close to a stability point where I would start to target core (or a .Net Standard) by default, there is some strange kerfuffle. We have a couple projects in Core, but we treat them like a different platform that just happens to use C# instead of php.

0
VGPowerlord•

This. You don't need to target .NET Core explicitly, targeting .NET Standard is a better choice as .NET Standard 1.6 should work on .NET Framework 4.6 and newer as well.

1
ben_a_adams•

Anything .NET Standard is unaffected as that can happily run on .NET Core 2.0.

There is some stuff in .NET Framework that is yet not part of .NET Standard; and doesn't run on .NET Core, which is where the issue is for some people that use them (e.g. System.Drawing, System.DirectoryServices)

1
felheartx•

What does that mean for creating and debugging asp core 2.0 applications on the desktop?

1