Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support .NET Platform Standard 1.6 (inc. .NET Core 1.0) #531

Closed
khellang opened this issue Aug 26, 2015 · 121 comments
Closed

Support .NET Platform Standard 1.6 (inc. .NET Core 1.0) #531

khellang opened this issue Aug 26, 2015 · 121 comments

Comments

@khellang
Copy link

@khellang khellang commented Aug 26, 2015

I figured it's time to start this discussion 馃槃

Here are some threads for reference:

castleproject/Core#90
nsubstitute/NSubstitute#192
moq/moq4#168

There's a PR pending for .NET Core support in Castle.Core at castleproject/Core#92

@adamralph
Copy link
Contributor

@adamralph adamralph commented Oct 12, 2015

As soon as Castle.Core support the dotnet TFN I'm happy to do this.

@adamralph adamralph removed the 0 - Backlog label Jan 13, 2016
@jeremymeng
Copy link
Collaborator

@jeremymeng jeremymeng commented Feb 6, 2016

Would it be okay to start the work based on https://github.com/castleproject/Core/tree/netcore? Most of the big changes are already in. I am willing to give it a first stab.

@adamralph
Copy link
Contributor

@adamralph adamralph commented Feb 6, 2016

@jeremymeng I think would be fine to grab some custom binary to reference for now, so long as your are prepared to rebase/squash your commits back to something clean (or have someone else do that) when Castle for netcore (or whatever other name is goes by) is on NuGet.

@jchannon
Copy link

@jchannon jchannon commented Apr 29, 2016

Where are we at with this?

@thecodejunkie
Copy link

@thecodejunkie thecodejunkie commented Apr 29, 2016

We have a green build against rc2 now (including tests, i.e all tests that do not require FakeItEasy) NancyFx/Nancy#2418 and would be happy to help transfer knowledge on rc2 changes to help this move along

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Apr 29, 2016

Hey, @jchannon and @thecodejunkie. As you can see, @jeremymeng had kindly been doing some work on this for us, but the core team had all been focusing on FIE 2.0, which I think we're nearly ready to release the second (and final, one hopes) RC for.

We'd be grateful for any insight you have to offer, but I'm not going to be available for the next two weeks, so can't personally do anything. I'll leave it up to @thomaslevesque and @adamralph to coordinate with you.

@jeremymeng
Copy link
Collaborator

@jeremymeng jeremymeng commented Apr 29, 2016

@jchannon @thecodejunkie

There are a couple of work items now

  • Replacement of binary serialization used in FileStorage. So far I haven't had success in using a Json or Xml serializer.

    Update I've change how the serialization is done. Instead of serializing MethodInfo, now fully-qualified type name, method name, and argument types are serialized. In Deserialization, the MethodInfo instance is retrieved again from the type.

  • Seemly incorrect usage of my custom AssemblyLoadContext. It seems that loading from a file would fail due to missing dependencies.

  • Move to RC2

  • integration into build system, etc.

    Update Now it just builds fine using rake when the .NET Core VS tooling is installed.

  • The test BinarySerializationHelper does binary serialization and serialization for arbitrary types. I'm inclining to not support it on .NET Core.

Any helps are welcome 馃槃

@thomaslevesque
Copy link
Member

@thomaslevesque thomaslevesque commented Apr 29, 2016

@jeremymeng, thanks for all your work on this task!

Any helps are welcome 馃槃

Right now I'm focusing on FakeItEasy 2.0.0-rc2, but once it's released, I'll be glad to give you a hand. I know almost nothing about .NET Core, though...

@adamralph
Copy link
Contributor

@adamralph adamralph commented May 11, 2016

Given the recent sweeping changes and volatile nature of .NET Core, I'm not sure it's worth investing any time in this in the near future. I'm leaning towards closing for now, and opening a new issue to support the relevant .NET Standard after RTM.

We appreciate the efforts of @jeremymeng and he is, of course, welcome to carry on with his work on #617 but right now, if we have no intention of supporting .NET core until some later release, I believe this issue is just noise in our backlog.

@thomaslevesque
Copy link
Member

@thomaslevesque thomaslevesque commented May 14, 2016

@adamralph, RC2 is scheduled to be released about now (mid-May), and RTM is scheduled for the end of June. Sounds like "near future" to me 馃槈. This issue is still relevant, so I think we should keep it open.

@adamralph
Copy link
Contributor

@adamralph adamralph commented May 14, 2016

OK, np. Let's leave it open.

@henningst
Copy link

@henningst henningst commented Jul 1, 2016

RTM shipped as planned on June 27th. Do you have any ETA on adding .NET Core support? Moq has published an alpha supporting .NET Core.

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Jul 1, 2016

Thanks for the interest, @henningst. We don't have an ETA as such (given that we all work on FakeItEasy if and when we have spare time to so, it's hard to guess at dates), but rest assured that we do want to support .NET Core. The same chap (@jeremymeng) that's been working on adding .NET support to Castle.Core (which, like Moq, has alphas that currently support the prerelease .NET Core) has been making great strides in helping FakeItEasy support .NET Core. As we're able we'll look at how best to integrate his work.

@jeremymeng
Copy link
Collaborator

@jeremymeng jeremymeng commented Jul 1, 2016

People who are interested can download private nupkgs here https://ci.appveyor.com/project/jeremymeng/fakeiteasy/build/artifacts

official pre-release builds on AppVeyor: https://ci.appveyor.com/nuget/FakeItEasy

@adamralph
Copy link
Contributor

@adamralph adamralph commented Jul 2, 2016

Thanks @jeremymeng.

@henningst if you like, you can use @jeremymeng's app veyor build as your "alpha" channel for now.

@henningst
Copy link

@henningst henningst commented Jul 2, 2016

Thanks for the tip! I'll give that a try :)

@adamralph
Copy link
Contributor

@adamralph adamralph commented Oct 19, 2016

How are we affected by the recent revelation that netstandard 1.5 and 1.6 are going to be broken by 2.0?

@khellang
Copy link
Author

@khellang khellang commented Oct 19, 2016

I'm not sure the breaking change is real after all; https://twitter.com/terrajobst/status/786993233913978880

@adamralph
Copy link
Contributor

@adamralph adamralph commented Oct 19, 2016

Thanks @khellang, I missed that. Good to know!

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 15, 2016

Assigned to 3.0.0 milestone.

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 16, 2016

I checked off the integration tests item in The List.

Only specs to go! That's a good incentive to sort out xbehave once and for all.

BTW - I'd be content to push an 3.0 alpha to nuget.org now if we want to unblock NancyFx/Nancy#2612 and then push the first beta once we've got the specs running.

@thomaslevesque
Copy link
Member

@thomaslevesque thomaslevesque commented Nov 16, 2016

I'd be content to push an 3.0 alpha to nuget.org now if we want to unblock NancyFx/Nancy#2612 and then push the first beta once we've got the specs running.

Sounds like a good plan 馃憤

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Nov 16, 2016

Oh, bother. I'd made a beta001. Can make an alpha001.

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 27, 2016

FYI I just pushed xbehave 2.2.0 beta 1 to NuGet, with support for .NET Standard 1.0! https://www.nuget.org/packages/Xbehave/2.2.0-beta0001-build680

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Nov 28, 2016

I'll expect your "hook up the specs" PR when I wake up!

@thomaslevesque
Copy link
Member

@thomaslevesque thomaslevesque commented Nov 28, 2016

I'll expect your "hook up the specs" PR when I wake up!

I'm working on making the specs work on netcoreapp1.0 now. I haven't done much for .NET Core support so far, so I guess it's my last chance 馃槈

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Nov 28, 2016

Haha! I was just having some fun.

Also, welcome to Heck.

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 28, 2016

@thomaslevesque
Copy link
Member

@thomaslevesque thomaslevesque commented Nov 28, 2016

Also, welcome to Heck.

Well, the worst part is the poor VS integration. No Intellisense, no test runner and no debug for netstd 馃槖

The project.json for the test project in xbehave itself might be a good reference. The explicit use of the testutility package should be ignored though, that's for the meta level code which allows scenarios to test scenarios.

Thanks; actually, I copied and edited the project.json from integration tests, and it's working fine. I just have one failing scenario to fix.

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 29, 2016

@thomaslevesque
Copy link
Member

@thomaslevesque thomaslevesque commented Nov 29, 2016

The VS test runner should work. It works for the xbehave solution.

For me it doesn't see any test, not even the net40 ones. Maybe I need to install something else.

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 30, 2016

The List is complete!

Fantastic work all round.

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Nov 30, 2016

Huzzah! Well done, everyone!

image

@adamralph
Copy link
Contributor

@adamralph adamralph commented Nov 30, 2016

@blairconrad
Copy link
Member

@blairconrad blairconrad commented Feb 22, 2017

This issue has been released in FakeItEasy 3.0.0:
https://github.com/FakeItEasy/FakeItEasy/releases/3.0.0

@jeremymeng, @jonorossi, thanks for all your help.
Look for your names in the release notes! 馃弳

@weitzhandler
Copy link

@weitzhandler weitzhandler commented May 23, 2017

Can you please add support for modern Xamarin PCLs (Profile 44), that target only UWP, Droid and iOS?

@blairconrad
Copy link
Member

@blairconrad blairconrad commented May 24, 2017

@weitzhandler, thanks for your interest in FakeItEasy. I'll be the first to admit that I don't understand all the PCLs and whatnot, but I don't think we'll do this.
For starters, FakeItEasy relies on Castle.Core, which would have to support the profile, and it supports only .NETFramework 3.5, .NETFramework 4.0, .NETFramework 4.5, and .NETStandard 1.3. Also, I think the PCLs are the wave of the past, and we're looking forward to the .NET Standard.

My understanding is that the usual course would be to build an app's business logic into a PCL such that supports your target platform as well as .NET 4.0 or 4.5 or similar and then to have the test assemblies target that .NET Framework (or a compatible one). Profile44 supports .NET 4.5.1, so this should be an option for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
10 participants
You can鈥檛 perform that action at this time.