@lorne-kates said in Xamarin's contiuing barrel of cross-platform, XML-encoding fut the wuckery:
@masonwheeler said in Xamarin's contiuing barrel of cross-platform, XML-encoding fut the wuckery:
You seem to be conflating ".Net" with "ASP.Net". This is not correct.
It's close enough. If Microsoft is going to confusingly name all their technologies like that, then fuck them when I mix them up.
You should enjoy that Windows Server is not called Windows .Net Server as it was going to be at one point. Pretty much anything with ".Net" in the name is the ".Net" version of it. ASP.Net was preceded by ASP. ADO.Net was preceded by ADO.
Enjoy your ASP.Net Core 2.0 which is newer than .Net 3.5 which actually uses CLR 2.0 which .Net 2.0 used, unless you're replacing it with .Net 4.0 which uses CLR 4.0 because there's no CLR 3.0 or 3.5. If you update to .Net 4.5 or higher you'll still be using CLR 4. I don't know why you would confuse .Net and ASP.Net, given that their version numbers increment in the exact same way, and are released nearly in lock-step with each other. And you absolutely don't want to mix it with ASP.Net Core, which sounds like it's ASP.Net without extensions, but is actually a new version of ASP.Net and has nothing to do with ASP.Net (non-Core), even though ASP.Net Core follows the exact same version numbering of 1.0, 1.1 then 2.0.
Yeah, at one point marketing got involved in the version numbering of .Net and that caused all sorts of problems. The WTF of the .Net versioning. Here is the easy primer:
- 1.0, 1.1 - early versions, don't use
- 2.0 - major upgrade, introduces generics
- 3.0 - ".Net FX" originally, Just added features to 2.0, but marketing thought it was too big of release to just call it a point release, so they called it 3.0. It backfired. Not only did it make it more confusing, administrators, after dealing with 1.1 to 2.0 headaches, often refused to let people use the functionality for several years, even though it uses CLR 2. (this release includes WPF, WCF, an earlier version of workflow, and the deprecated CardSpace)
- 3.5 - This actually did modify the 2.0 runtime (2.0 SP1). Introduced LINQ. Modern times you typically install the latest release of 3.5 and it is often referred to as 2.0/3.0/3.5 since they all share the same runtime core.
- 4.x - these are the modern releases of the .Net framework. Each one supersedes the other, but if your metadata is right should be backwards compatible with the earlier versions of 4, including emulating bugs in some cases.
- .Net Core - This is the full Open Source version of the .Net framework. It was originally going to be called "5.0", but this led to a different confusion because it was not fully compatible with 4.x and, in many cases, removed functionality. .Net Core is cross-platform as well, and is the future, but there is some confusion in the mean time. There is now a compatibility pack to make it much more compatible with code written for 4.0 if you need it.
- .Net Standard - this is the new "standard" API template to be used by the various runtimes (.Net Framework, .Net Core, Mono including Xamarin). Targeting this gives you the most cross-runtime compatible code, but may leave out some features. This is an attempt to mend the sins of the past.
And don't forget when you're setting up your ASP.Net 3.5 project that uses .Net Framework to go into IIS and set the App Pool to target .Net Framework v4.0.30319, because v4.0.30319 is actually .Net Framework 3.5 and higher (all the way up to 4.7.1, which is only for Windows 10, unless you install the extension for Windows 7).
That is actually incorrect. Your 3.5 project should be set to use a 2.0 app pool, for full compatibility. If it works under the 4.0 app pool, that is good. 4.0 is almost completely backwards compatible with 2.0/3.0/3.5.