{"action":"created","issue":{"url":"https://api.github.com/repos/castleproject/Windsor/issues/394","repository_url":"https://api.github.com/repos/castleproject/Windsor","labels_url":"https://api.github.com/repos/castleproject/Windsor/issues/394/labels{/name}","comments_url":"https://api.github.com/repos/castleproject/Windsor/issues/394/comments","events_url":"https://api.github.com/repos/castleproject/Windsor/issues/394/events","html_url":"https://github.com/castleproject/Windsor/pull/394","id":314437248,"number":394,"title":"ASP.NET Core Facility (now production ready)","user":{"login":"fir3pho3nixx","id":607402,"avatar_url":"https://avatars2.githubusercontent.com/u/607402?v=4","gravatar_id":"","url":"https://api.github.com/users/fir3pho3nixx","html_url":"https://github.com/fir3pho3nixx","followers_url":"https://api.github.com/users/fir3pho3nixx/followers","following_url":"https://api.github.com/users/fir3pho3nixx/following{/other_user}","gists_url":"https://api.github.com/users/fir3pho3nixx/gists{/gist_id}","starred_url":"https://api.github.com/users/fir3pho3nixx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fir3pho3nixx/subscriptions","organizations_url":"https://api.github.com/users/fir3pho3nixx/orgs","repos_url":"https://api.github.com/users/fir3pho3nixx/repos","events_url":"https://api.github.com/users/fir3pho3nixx/events{/privacy}","received_events_url":"https://api.github.com/users/fir3pho3nixx/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-04-15T18:00:11Z","updated_at":"2018-04-25T21:29:27Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/castleproject/Windsor/pulls/394","html_url":"https://github.com/castleproject/Windsor/pull/394","diff_url":"https://github.com/castleproject/Windsor/pull/394.diff","patch_url":"https://github.com/castleproject/Windsor/pull/394.patch"},"body":"This is the final PR for the ASP.NET Core Facility. The previous design did not support the @Inject Razor directive. The problem was a difficult one of timing registrations in the right places and introducing the notion of `Cross Wiring`. \r\n\r\n`Cross wiring` is provided as an extension method to component registration which create's late bound registrations in the IServiceCollection(which are basically factories) that are backed on to a Windsor Container.Resolve. This removes the burden of Castle Windsor users of having to maintain 2 sets of registration logic and moves them toward the Windsor registration API. It also makes things like the @Inject Razor directive work. \r\n\r\n@generik0 and I also checked to make sure that we have fixed all the problems with generics, I think there was a gremlin in the previous implementation. It got magically fixed when I re-wrote the generic implementation with additional unit tests.\r\n\r\nThis code has also endured a significant bashing to make sure it does not have any memory leaks by using the performance tests in this [repo](https://github.com/fir3pho3nixx/Windsor.AspNetCore). I am satisfied that for scoped lifestyles(Controller, ViewComponents, TagHelpers and cross wired @Inject consumers in the view) there are no memory leaks(roughly 300MB foot print) and it serves 250+ requests/second. This is great for anyone using this in docker.\r\n\r\nWe need to start thinking about releasing V5. @jonorossi did you have a timescale in mind?"},"comment":{"url":"https://api.github.com/repos/castleproject/Windsor/issues/comments/384440386","html_url":"https://github.com/castleproject/Windsor/pull/394#issuecomment-384440386","issue_url":"https://api.github.com/repos/castleproject/Windsor/issues/394","id":384440386,"user":{"login":"fir3pho3nixx","id":607402,"avatar_url":"https://avatars2.githubusercontent.com/u/607402?v=4","gravatar_id":"","url":"https://api.github.com/users/fir3pho3nixx","html_url":"https://github.com/fir3pho3nixx","followers_url":"https://api.github.com/users/fir3pho3nixx/followers","following_url":"https://api.github.com/users/fir3pho3nixx/following{/other_user}","gists_url":"https://api.github.com/users/fir3pho3nixx/gists{/gist_id}","starred_url":"https://api.github.com/users/fir3pho3nixx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fir3pho3nixx/subscriptions","organizations_url":"https://api.github.com/users/fir3pho3nixx/orgs","repos_url":"https://api.github.com/users/fir3pho3nixx/repos","events_url":"https://api.github.com/users/fir3pho3nixx/events{/privacy}","received_events_url":"https://api.github.com/users/fir3pho3nixx/received_events","type":"User","site_admin":false},"created_at":"2018-04-25T21:29:27Z","updated_at":"2018-04-25T21:29:27Z","author_association":"CONTRIBUTOR","body":"@generik0 I have a question. I have typically used model binding for converting inputs to controllers. Why do you need an IoC abstraction over this? I am just incredibly curious to know why this is even happening on your end. I have used SOA patterns for enrichment but we usually push this out to the backend. What is happening in your view that you need this abstraction? "}}
{"actor":{"display_login":"fir3pho3nixx"}}