Is .NET Core compatible with COM? - com

I am trying to understand the implications of starting a project on .NET core. One of the requirement I am facing is to use a .NET library that is leveraging COM.
So is COM supported by .NET core (obviously, assuming the OS is Windows)?
I understand that .NET Core is built for interoperability between different OS. But I was wondering if it is to be expected that there are Windows-specific features that may be included for the windows releases such as COM compatibility.
Thanks for your help.

.NET Core is developed to be cross platform and running also on Linux and Mac. COM is a windows specific thing and will not be supported in .NET Core

Related

is there any way to detect windows environment based function in our project?

In my project i have to create platform independent code. My project(Based on .net framework 4.6.1 which i have convert it into .net core 3.1) was developed long ago and its based on windows environment now we convert it into Linux and Mc environment also. so is there any way to detect all windows specific classes so we can change it for Mc and Linux also or we just read the entire code and find each function and convert it. because its very time taken process to read entire code and change according to requirement so is there any other way to do it?
Check this article Overview of porting from .NET Framework to .NET Core first .
so is there any way to detect all windows specific classes so we can change it for Mc and Linux also or we just read the entire code and find each function and convert it.
.NET Portability Analyzer is a tool that analyzes assemblies and provides a detailed report on .NET APIs that are missing for the applications or libraries to be portable on your specified targeted .
try-convert is the tool that will help in migrating .NET Framework projects to .NET Core.
Run on Linux and Mac platforms
.NET Core is cross-platform and it runs on macOS, Linux, and Windows. .NET Core supports the previously mentioned operating systems as your development workstation. With .NET Core you can target any application type that’s running on any platform. Visual Studio provides an Integrated Development Environment (IDE) for Windows and macOS. You can also use Visual Studio Code, which runs on macOS, Linux, and Windows.
.NET Core vs. .NET Framework for server apps

Accessing the .Net 4.0 Com from .Net 1.1 Project [duplicate]

I have external .net library compiled with .net framework 4 (it's provider moved recently to .net 4)
My code currently runs on .net framework 3.5
How to use that external library in my application ?
Moving whole application to .net 4 needs time and testing, so maybe in a future i will do that, but now, what are the possibilities ?
There are no possibilities, the CLR version that comes with .NET 3.5 cannot load 4.0 assemblies. The metadata format was changed. You have to force your app to use the .NET 4.0 CLR version. Do so by recompiling it with VS2010, targeting 4.0, or by using a .config file that contains the <requestedRuntime> element to ask for "v4.0".
Compatibility for .NET 4.0 is excellent btw.
While you cannot load the .Net DLL directly, you can wrap it in a COM interface, and load that COM interface in your .Net 3.5 process.
See Using a .NET 4 Based DLL From a .NET 2 Based Application
For more background information, Microsoft originally added In-Process Side-by-Side in .Net 4 to better support the scenario where an application loads add-ins via COM, and the add-ins were written with various versions of .Net. The ability to load .Net 4 DLLs in a .Net 3.5 process is just a nice side effect of that.

Using a .NET 4.0 DLL in Unity3d via COM/SxS?

In an attempt to oversimplify my issue, I'll try to keep it short:
I'm using the pro version of Unity, and I have 2 DLLs:
A .NET 3.5 assembly (acting as a COM client)
A .NET 4.0 assembly (with an interface exposed via COM)
The 3.5 uses COM to work with the 4.0. Using the 3.5 assembly in a Windows app works fine, it loads the 4.0 dll using SxS via Type.GetTypeFromCLSID() or Type.GetTypeFromProgID() (which I've confirmed with SxStrace), and can use it's functionality just fine. (The windows app mentions it's dependency on the 4.0 DLL via a manifest, I'm not registering the COM DLL.)
I'm trying to use the .NET 4.0 DLL in Unity. Obviously I can't use it directly, since the current flavor of Mono that Unity uses only supports up to 3.5, thus I created the 3.5 assembly to be my middleman. I'm able to use the 3.5 assembly fine in unity, but either of the Type methods I mentioned before throw NotImplementedException(s), as apparently they aren't supported by Unity (or rather, Mono), so I'm at a loss.
Any ideas?
Although this question was made 1 year ago..sadly the middleman tactic still wont work, it is not possible to use .NET 4.0 dlls within Unity3D since Mono is just not supporting the dependencies.
You could try to remove any 4.0 dependencies from the dll and compile it as 3.5, if that is possible for you.

.net compact framework 2.0 and windows embedded standard

Will the applications written in .net CF 2.0 run on windows embedded standard OS?
Thank you!
It depends. CF assemblies are retargetable, so the full framework (which is what comes on Embedded Standard) can theoretically run them. That said, if the assembly uses any CE-specific stuff (like P/Invoking coreddl.dll) then it's going to fail when it tries those operations.

Developing Azure .Net 4.0 Applications

Presently .Net 4.0 is not supported on Azure.
This thread indicates that you will not be able to use .Net 4.0 with VS 2010 until it is supported in the cloud.
http://social.msdn.microsoft.com
I'd like a way to start developing Azure applications locally utilizing the new features of .Net 4.0. I am fine with not being able to deploy these applications until Azure officially supports it.
From within the VS IDE; I tried replacing .Net 3.5 application references with newer .Net 4.0 references and Visual Studio crashes.
Does anyone have any suggestions?
Thanks,
Paul
An update to this old thread. .Net 4.0 has been supported since Azure SDK 1.2
Some features from .NET 4.0 can be added to your application through other means. For example, the recently-released Reactive Extensions for .NET 3.5 SP1 includes a back ported release of Parallel Extensions. And the Managed Extensibility Framework contains the Lazy class and Tuple struct. As long as you set "Copy Local" to true on any libraries that you add, your application should run (and deploy) successfully.
Obviously, these aren't all the features that are new in .NET 4.0, and not all of them will can be ported back to .NET 3.5 like these can.