ekonbenefits / impromptu-interface

Static interface to dynamic implementation (duck casting). Uses the DLR combined with Reflect.Emit.
Apache License 2.0
655 stars 67 forks source link

Support .NET Core, .NET Standard #20

Closed pmunin closed 6 years ago

pmunin commented 7 years ago

Please support new frameworks .NET Core, .NET Standard

jbtule commented 7 years ago

note for myself: https://github.com/jfrijters/Managed.Reflection

payoff commented 7 years ago

Do you have any plan to release a compatible version?

eric-swann-q2 commented 6 years ago

Hello, @jbtule we would also love to see a port of this to .Net core. Would be happy to contribute some effort as well. Are there any plans to get this moving forward?

jbtule commented 6 years ago

@eric-swann-q2 step one is remove all the deprecated code, silverlight, and get it running under the new msbuild format. I started it yesterday. Then once I have everything testing and working for building for .net 4.0. Then I would appreciate effort to help port to .net standard 2.0.

eric-swann-q2 commented 6 years ago

@jbtule Absolutely, if you have a good part to break off, give me a shout.

jbtule commented 6 years ago

Alright .net standard 2.0 work is under PR #23

It didn't take that much to make it build. However the tests still need to be ported to run under .net framework and .net core. All tests are passing for .net framework, but .net core :man_shrugging: who knows?

jbtule commented 6 years ago

So actually all the tests pass, after I fixed stuff in Dynamitey. So 7.0.1-beta is under prereleases on nuget. The best help now is to try and use it. There maybe syntactic breaking changes from 6.X but all the features should be there.

eric-swann-q2 commented 6 years ago

Hey @jbtule, I ran into an issue in one of our libraries. We were using CoerciveConvert in one location. What is the replacement for that? Just use ActLike? Thanks!

jbtule commented 6 years ago

It's in the Dynamitey library using Dynamitey; ... Dynamic.CoerceConvert

eric-swann-q2 commented 6 years ago

Ah nice...perhaps I can just reference Dynamitey instead.

jbtule commented 6 years ago

If that's all you need yes.

eric-swann-q2 commented 6 years ago

@jbtule What is the difference in behavior between CoerciveConvert and ActLike? They seem to be accomplishing the same thing.

jbtule commented 6 years ago

Ah.

ActLike is interface proxying only. That's all it does, that is what the ImpromtpuInterface library now has been streamlined to only do.

CoerceConvert tries EVERY conversion api on your platform's standard library to try and change your target object to the passed in type (which can be anything, not just an interface). If ImpromptuInterface has been referenced, and runtime CoerceConvert will try search out and try to use ActLike if you pass an interface as your type.

So if you are just doing Interface wrapping, use ActLike, if you are just dynamically converting types, use CoerceConvert if you need both, make sure you have ImpromptuInterface referenced so dynamitey can pick up the extra interface wrapping feature.

eric-swann-q2 commented 6 years ago

Got it, thanks for the info.

konne commented 6 years ago

@jbtule what is you actual plan to release a stable nuget package?

jbtule commented 6 years ago

I've been using it in production for a few months so I was planing on marking everything as stable, and then a mono update caused one of the tests to fail, so i've been wanting to investigate it more, but haven't had time.

jbtule commented 6 years ago

deployed as stable