-
Notifications
You must be signed in to change notification settings - Fork 146
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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for .NET Core #140
Conversation
…s though as it will not be a nice experience to run them. Needs porting to xUnit which supports a dnx based test runner.
MemberType and MemberTypes. More info: https://github.com/dotnet/corefx/issues/4670 Workaround: https://github.com/dotnet/corefx/issues/4670#issuecomment-159665089
TypeDescriptor is not part of .NET Core. It seems PropertyInfo would be sufficient here. Refer to: http://stackoverflow.com/questions/1402239
OK then, it looks like we're heading for a major version number update release! :) First off though - WOW this is a lot of work, and fully appreciated, thank you very, very much... So as there is a lot of stuff there, I'll try to cover it all! Transactions & AppDomain My concern with removing Transactions into a separate package is that because transactions are such a fundamental part of using Neo4j (any DB really!) if we published a version without Tx support, we'd soon add it, and at that point, the Having said that, separating the implementation of the transaction code would be benficial in many cases - in particular I'm thinking with reference to implementing the new My gut feeling is that it's probably worth re-doing the Tx code, and abstracting it so the REST and Bolt clients can manage it in the way they each need to, but with the user seeing no code difference. i.e. I'd like to see something like Obviously the Downside to not using Tests Sure, I'm happy with Nuget & Build scripts Agreed Code Review Bang indeed! Squishing Feel free to squish if you want, I like to keep the history, but as it's your pull, you can do what you want, I wouldn't make you squish :) ApplicationException It's on my todo list to replace all instances of TypeDescriptor I seem to recall that whilst I was looking into this as well :/ |
@cskardon great, got answers to most of the questions and we can get going.
To be perfectly honest, I thought the same 😄 but didn't understand what it was being done with the transaction APIs. However, from what you said, I can understand that Transactions were just wrapping the HTTP calls to send info in chucks and commit them at the end, am I understanding this correct? Am I also correct assuming that this is the bit where registers the transaction support? https://github.com/tugberkugurlu/Neo4jClient/blob/c560f231aa64ac27fb1c0b71a4d089f7dd5772b8/Neo4jClient/GraphClient.cs#L159 |
Yes and validating that the assumptions which are being made under tests are also valid under .NET Core execution (which would be dnxcore50). However, as an initial start, |
Yes, I believe that is the point where the Tx stuff is handled... It does wrap the calls to the Tx endpoint, but also does things like 'keep-alive' and manages interaction with the MSDTC, but as we know that's not in core. |
Just had a chance to come back to this.
First time I have ever heard of it, not sounds super fancy but not sure what it does 😄 Is it an important feature?
I guess this would be most logical next step, right? |
Yes, my general thoughts are, once this is done the codebase will need to be a new version, and breaking the tx stuff into a simpler model might be better in the long run. |
Hey @tugberkugurlu - Quick question - probably down to my lack of knowledge surrounding dnx etc - why are the Cheers! |
@cskardon |
Cool so again, please excuse my ignorance, how do I open it in visual studio? -----Original Message----- @cskardon csproj files are no longer needed in new project structure. It now works in a "include by default" manner for the files under the project folder. You still have xproj but that's just to satisfy the needs to VS which is not required. |
@cskardon you can still have a Also, you can directly open a project.json file as a project in VS. When you do this, it auto generates a small xproj file which just has some msbuild stuff, not files references.
|
Ahh cool, it's all new to me! :) On 14 March 2016 at 13:03, Tugberk Ugurlu [email protected] wrote:
|
I'm just going to close this for now, as well - you know! |
Fixes #135. First attempt to be able to distribute Neo4jClient for
dotnet5.4
. Got most of the transition handled but there are quite a few things to do:net45
(means full desktop .net framework + mono).AppDomain
API is not part of .NET core. However, it's only being used inTransactionPromotableSinglePhaseNotification
. This would be resolved if the above proposed solution is viable.Neo4jClient.Tests
project uses a few libraries which doesn't support DNX based test runners and .NET Core. For now, we may get away with only running the tests underdnx451
but I propose to strip out NUnit and replace it withxunit
whcih supports .NET Core. We may want to replace everything with suitable .NET core alternatives and make the tests run underdnxcore50
.dnu pack
.A few things to be aware of:
ApplicationException
. This seems to be gone and I replaced all of these withException
.TypeDescriptor
seems to be gone. I replaced it with Type.GetProperties. Should be OK but there is a slight change in the behaviour I guess. Needs to be looked at.How to Build
dnvm
.dnvm install 1.0.0-rc1-update1
cd
intoNeo4jClient
dnu restore
anddnu build
.A few References