What happens in a .Net 4 app when referencing .net 2 assemblies? - .net-2.0

I have an application I want to upgrade to .NET 4, but I have a couple 3rd party assemblies that reference the .NET 2 BCL.
I seem to remember reading something that says they should play nice, but I can't find any documentation on the subject. ( I think my question posed to Google is just too broad, with not enough .Net 4 material out there yet )
Can anyone help me find documentation on what will happen in this case?

If I'm reading Scott Guthrie's post, Multi-Targeting Support (VS 2010 and .NET 4 Series), correctly then that will work fine.
Of Interest?: .NET 4.0 project reference 2.0 assembly

The .NET Framework 4 works side by side with older Framework versions. Applications that are based on earlier versions of the Framework will continue to run on the version targeted by default.
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7

I wanted to reference StructureMap in one of my class libraries. Orginally it was created by VS2010 to use the .NET 4 client profile. Turns out, I had to changed this to the full .NET 4 framework, otherwise structuremap would not be recognized.

Related

System.Reactive for WPF .NET 6

I'm trying to target .NET 6 for my WPF app, but because I'm using RX.net, the highest I can go is net5.0-windows10.0.19041. One example is that ObserveOnDispatcher() is not available when I'm targeting net6.0-windows, which my app makes heavy use of.
Does anybody know either A) when a .NET 6 version of RX.NET will be released, or B) any workarounds for ObserveOnDispatcher() or ObserveOn(DispatcherScheduler.Current.Dispatcher) on .NET 6?
Thanks
A relatively painless way I found was to simply add the ReactiveUI.WPF package to my WPF projects. This allowed me to advance to net6.0-windows, and also to use DispatcherScheduler. I am not using anything from ReactiveUI library, so this is technically a hack, but took 5 minutes of my time and added only a few hundred kilobytes added to the shipped binaries, so it was worth it for me to be able to move on from previously being held back on net5.0-windows10.0.19041 because of RX.
If I had more time and skill I would dig into how the ReactiveUI.WPF source code achieved this desired effect, and apply this to my own source code... maybe someone has a more elegant, non-hack solution.
This will be fixed in v5.1
https://github.com/dotnet/reactive/pull/1660
You could try the nightly builds as per the readme.
https://github.com/dotnet/reactive#get-nightly-builds

Sitemap does not appear to work on .Net Core

SiteMapPath .Net component works fine on .Net environment. But it seems not on .Net Core.
For e.g., if the https://www.c-sharpcorner.com/UploadFile/2f59d0/implementing-sitemap-in-Asp-Net/ is developed choosing .Net Core, the breadcrumps as expected do not show up.
But I couldn't find any official doc from Microsoft on that. Does any one know.
Thank you.

Upgrading Entity Framework

I have a Data Access Layer solution built in Visual Studio 2010. It uses Entity Data Model (.edmx files) to create object models of the data.
It is built with .Net 3.5 framework so I assume this is also version 3.5 of Entity Framework?
We use a number of TVFs to return datasets and unfortunately EF 3.5 does not provide access to TVFs. So we have has to build tsql views that call those TVFs.
Is it possible to upgrade this solution to EF 6 and use TVFs? What are the steps involved?
Microsoft has release a guide to do. You find it here:
https://msdn.microsoft.com/en-us/data/upgradeef6.aspx
It involves getting the latest assemblies and do some modifications in order to run. It seems upgrading from an older version is a little harder than from a new version.

How best to support multiple versions of .net in the same library

I am creating a .net library in Visual Studio 2015 with the following aims:-
Support for .net 2, 3.5, 4 and 4.5+
PCL Support (.net 4.5+)
No extra dependencies apart from Json.net
Ideally the .net 4.5+ version of the library would make use of async, and include methods that return Task etc
Now there seems to be many different ways of supporting what I want to do, especially with the Visual Studio 2015/project.json release but what is a good approach starting from scratch today?
My library is relatively simple, so as much as I want to re-use code I don't want to compromise the .net 4.5 version.
What would be a sensible project structure, that would mean I could take advantage of the latest .net framework, but still build in support for older frameworks.
With Beta8 of the WebDev tooling you are able to also target net2, net35, net40, net45, ...
Your library differences you might use #ifdef flags in your code to hide certain methods in certain builds.

What happened to Lazy<T> support in Autofac?

In beta builds of Autofac 2.1 there was support for automatic resolution of Lazy<T> as described in Nicholas Blumhardt's Lazing Around with Autofac blog post.
The code still seems to be in the source on Google Code, but I can't find LazyDependencyModule in any of the .NET 4.0 binaries I've looked at. Has it moved somewhere else?
How do I use Autofac's automatic Lazy<T> resolution with the latest Autofac builds?
You don't need to register LazyDependencyModule yourself in the production Autofac 2 builds. It is a part of the default container, so just register T and Lazy<T> will be provided.
Make sure you're not accidentally using a .NET 3.5 binary, too :)
Nick