{"action":"created","issue":{"url":"https://api.github.com/repos/ilyalukyanov/Lightning.NET/issues/48","labels_url":"https://api.github.com/repos/ilyalukyanov/Lightning.NET/issues/48/labels{/name}","comments_url":"https://api.github.com/repos/ilyalukyanov/Lightning.NET/issues/48/comments","events_url":"https://api.github.com/repos/ilyalukyanov/Lightning.NET/issues/48/events","html_url":"https://github.com/ilyalukyanov/Lightning.NET/issues/48","id":82547298,"number":48,"title":"Update for new dnx runtimes","user":{"login":"CoreyKaylor","id":121507,"avatar_url":"https://avatars.githubusercontent.com/u/121507?v=3","gravatar_id":"","url":"https://api.github.com/users/CoreyKaylor","html_url":"https://github.com/CoreyKaylor","followers_url":"https://api.github.com/users/CoreyKaylor/followers","following_url":"https://api.github.com/users/CoreyKaylor/following{/other_user}","gists_url":"https://api.github.com/users/CoreyKaylor/gists{/gist_id}","starred_url":"https://api.github.com/users/CoreyKaylor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CoreyKaylor/subscriptions","organizations_url":"https://api.github.com/users/CoreyKaylor/orgs","repos_url":"https://api.github.com/users/CoreyKaylor/repos","events_url":"https://api.github.com/users/CoreyKaylor/events{/privacy}","received_events_url":"https://api.github.com/users/CoreyKaylor/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-05-29T19:06:33Z","updated_at":"2015-05-31T01:32:08Z","closed_at":null,"body":"After a long hiatus of inactivity it's finally a priority for me to get this working for our needs again. I would like to get it all running on dnx and have an idea of what it will take to get there.\r\n\r\nDnx does have a new project system that simplifies the project structure, but would require change. It would allow us to target \"dnxcore50\", \"dnx451\", \"net45\", \"net40\" very easily though.\r\n\r\nThe dnx runtime doesn't guarantee the same behavior that mono does regarding alternate file extension searching for DllImport, but there is another approach to dynamically assign delegates to the function pointers in the native libs. This is how the new kestrel web server is doing things under the covers.\r\n\r\nThe good news is that the entire nuget experience is significantly improved on dnx and it can remove a lot of the complexities being dealt with today through the rakefile, ripple, etc.\r\n\r\nI'm also thinking that the payoff in the end of embedding the submodule for lmdb isn't making it much easier for as often as things seem to be updated. I'm wondering if including the dll, dylib, etc. (the way you had it to begin with) is going to be easier in the long run to simplify the approachability of the project.\r\n\r\nAlso, I can setup a travis-ci, and appveyor CI build to verify Windows and Linux behavior is working. I might also suggest that each CI produces a nuget and publishes to a myget feed. Then there is a very easy step to publish to the public nuget feeds on demand from myget.\r\n\r\nAnything sound unreasonable?"},"comment":{"url":"https://api.github.com/repos/ilyalukyanov/Lightning.NET/issues/comments/107106268","html_url":"https://github.com/ilyalukyanov/Lightning.NET/issues/48#issuecomment-107106268","issue_url":"https://api.github.com/repos/ilyalukyanov/Lightning.NET/issues/48","id":107106268,"user":{"login":"CoreyKaylor","id":121507,"avatar_url":"https://avatars.githubusercontent.com/u/121507?v=3","gravatar_id":"","url":"https://api.github.com/users/CoreyKaylor","html_url":"https://github.com/CoreyKaylor","followers_url":"https://api.github.com/users/CoreyKaylor/followers","following_url":"https://api.github.com/users/CoreyKaylor/following{/other_user}","gists_url":"https://api.github.com/users/CoreyKaylor/gists{/gist_id}","starred_url":"https://api.github.com/users/CoreyKaylor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CoreyKaylor/subscriptions","organizations_url":"https://api.github.com/users/CoreyKaylor/orgs","repos_url":"https://api.github.com/users/CoreyKaylor/repos","events_url":"https://api.github.com/users/CoreyKaylor/events{/privacy}","received_events_url":"https://api.github.com/users/CoreyKaylor/received_events","type":"User","site_admin":false},"created_at":"2015-05-31T01:32:08Z","updated_at":"2015-05-31T01:32:08Z","body":"Not quite ready to test yet, but my guess is that LoadLibrary will be required because there are no appdomain's + directories *currently* to assume the application runs from. Everything is compiled and run from memory. The approach Kestrel uses is to infer the native dir from the Kestrel nuget path which can be derived through an interface called ILibraryManager.\r\n\r\nI'm holding off on any strong opinions until the DllImport xplat story is flushed out for dnx.\r\n\r\nI agree with regard to Linux native libs. The Kestrel project actually includes all but the linux lib and I think it would be easy enough to accomplish the same. Ideally anybody that uses the project should just be able to pull down the nuget and have it run without having to learn how to compile, or copy dll's around.\r\n\r\nOn a separate note. I've got a lot of the project structure converted over and tests passing again. It's a bit brute force so I'll take some time to clean it up before I push the branch public. I had to switch the test project over to Xunit because it's the only test lib right now that works on dnx.\r\n\r\nI'm not too concerned with the specifics, just that we agree it's something we should support. It's likely this will live in a branch for a bit until targets stop moving. It's easy enough to publish pre-release nugets to the myget feed from a branch."}}