{"action":"opened","issue":{"url":"https://api.github.com/repos/AArnott/pinvoke/issues/71","labels_url":"https://api.github.com/repos/AArnott/pinvoke/issues/71/labels{/name}","comments_url":"https://api.github.com/repos/AArnott/pinvoke/issues/71/comments","events_url":"https://api.github.com/repos/AArnott/pinvoke/issues/71/events","html_url":"https://github.com/AArnott/pinvoke/issues/71","id":118258681,"number":71,"title":"Don't mix helpers and non-helpers","user":{"login":"ffMathy","id":2824010,"avatar_url":"https://avatars.githubusercontent.com/u/2824010?v=3","gravatar_id":"","url":"https://api.github.com/users/ffMathy","html_url":"https://github.com/ffMathy","followers_url":"https://api.github.com/users/ffMathy/followers","following_url":"https://api.github.com/users/ffMathy/following{/other_user}","gists_url":"https://api.github.com/users/ffMathy/gists{/gist_id}","starred_url":"https://api.github.com/users/ffMathy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ffMathy/subscriptions","organizations_url":"https://api.github.com/users/ffMathy/orgs","repos_url":"https://api.github.com/users/ffMathy/repos","events_url":"https://api.github.com/users/ffMathy/events{/privacy}","received_events_url":"https://api.github.com/users/ffMathy/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-22T11:32:50Z","updated_at":"2015-11-22T11:32:50Z","closed_at":null,"body":"I don't think it's a good idea to mix helpers and non-helpers in the same class name. Others have no clear indication of when something is a helper method, and typically beforehand they are either looking for the \"barebone low-level\" native API approach, or a high-level assisted approach to solving a problem.\r\n\r\nI say we change the name of the helper classes to something else or use a specific naming convention for helpers, so that people can clearly tell the difference.\r\n\r\nIdeally, we could even put the helpers in a separate NuGet package. I never want high-level stuff and I think it pollutes my API if they are mixed.\r\n\r\nImagine 3 packages:\r\n- PInvoke.BCrypt\r\n- PInvoke.BCrypt.Mockables (this one could also be included as discussed other places)\r\n- PInvoke.BCrypt.Helpers\r\n\r\nI think that's the right approach and the convention that we see elsewhere."}}