Having gone through various blogs, I am quite confused about the terminology of "multitargeting" or side by side execution.
Some blogs say that, side by side execution means two versions of CLRs in a process. Some others claims that, its like .net 2.0 and .net 3.0 assembly executing side by side. I am extremely disappointed that I am unsure who is right who is wrong.
I also saw in many blogs like Scott Hanselman's blog etc (Which confuses a lot), that, any feature of .NET 4.5 will not work if the target framework is 4.0. I can agree to it. But I cannot agree or understand the fact that, a feature of 4.0 whose bug is fixed in 4.5, will go hidden if I build it using 4.5 and deploy in 4.0. Here I don't understand the term "hidden" and nobody dare to explain what actually it means. It means runtime error ? It means compile time error? It cant be this. It means inconsistent behavior ? Exception ? If this is the case, I wonder why MS has let this type of flexibility in development in VS. Does it serves ANY purpose ? I understand that, the first case is meaningful, but dont understand or agree with second case.
I also saw in Rick/Scott Hanselman's post that, Major changes means, complete upgrade including CLR. Then, I should see 3.0 as major upgrade but its not as it still uses .NET 2.0 CLR. Then why the naming terminology is 3.0.x.x/3.5.x.x ? Like the case in .NET 4.0.30319.x where CLR is also new, so I agree with this. I am surprised who is correct. Either these folks or MSDN as both contradicts their principles (Like MSDN says the formatting as Major.Minor.Build.Revision, and Hanselman or others say, Major means CLR upgrade and while it is not in .NET 3.0)
Ref: http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx
http://msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx
Any thoughts on above two questions?
When you target a framework in an app or library, you're specifying the set of APIs that you'd like to make available to the app or library. You specify the target framework in your project file using a target framework moniker (TFM). An app or library can target a version of . NET Standard. .
NET standard, being a specification, is like an interface. Whenever you add a reference to a . NET standard library, as long as the reference meets the specification definition, then the library doesn't care what type it is. Implementation is separate from specification.
A multi-targeting pack, or MT pack, is a set of reference assemblies that corresponds to a particular . NET Framework platform and version.
NET Core is used to create server applications that run on Windows, Linux and Mac. It does not currently support creating desktop applications with a user interface. Developers can write applications and libraries in VB.NET, C# and F# in both runtimes.
First of all you have to understand difference between the Multitargetting and Side-by-side execution.
Regarding your questions:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With