{"action":"created","issue":{"url":"https://api.github.com/repos/mbraceproject/MBrace.Azure/issues/42","labels_url":"https://api.github.com/repos/mbraceproject/MBrace.Azure/issues/42/labels{/name}","comments_url":"https://api.github.com/repos/mbraceproject/MBrace.Azure/issues/42/comments","events_url":"https://api.github.com/repos/mbraceproject/MBrace.Azure/issues/42/events","html_url":"https://github.com/mbraceproject/MBrace.Azure/issues/42","id":62149889,"number":42,"title":"MBrace.Azure induces too many dependencies on the client-side","user":{"login":"dsyme","id":7204669,"avatar_url":"https://avatars.githubusercontent.com/u/7204669?v=3","gravatar_id":"","url":"https://api.github.com/users/dsyme","html_url":"https://github.com/dsyme","followers_url":"https://api.github.com/users/dsyme/followers","following_url":"https://api.github.com/users/dsyme/following{/other_user}","gists_url":"https://api.github.com/users/dsyme/gists{/gist_id}","starred_url":"https://api.github.com/users/dsyme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dsyme/subscriptions","organizations_url":"https://api.github.com/users/dsyme/orgs","repos_url":"https://api.github.com/users/dsyme/repos","events_url":"https://api.github.com/users/dsyme/events{/privacy}","received_events_url":"https://api.github.com/users/dsyme/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2015-03-16T17:10:59Z","updated_at":"2015-03-17T18:41:12Z","closed_at":null,"body":"As things currently stand, using MBrace.Azure on the client side induces a _lot_ of dependencies, e.g. see #40 for one ramification of this.  \r\n\r\nI know this has been discussed elsewhere, but this will become more and more of a problem as we attempt to locate MBrace client functionality in various real-world settings where MBrace is integrated as part of a bigger solution. In #40, the problem situation was integrating the MBrace client into another Azure cloud service.  \r\n\r\nSimilarly, I also experimented with putting the MBrace client in an Azure website. It worked, but the large set of dependencies makes this inherently risky/difficult for more complex websites and also makes MBrace feel like a heavy technology on the client side - when it shouldn't really feel like this.  This is particularly a shame when most of what you want to do from a client is relatively simple - you want to specify code to run and call \"cluster.CreateProcess\".\r\n\r\nThe homogeneity of MBrace is one of its advantages, but reducing the set of induced client dependencies seems really important.  \r\n\r\nIs there any way we could take a different approach for the MBrace Azure client side and decouple the MBrace.Azure client from most transitive dependencies?  Or indeed decouple the client and server dependency sets altogether (by \"facading\" the MBrace client programming model and ensuring appropriate remapping on deserialization?)\r\n\r\n(Note that to take the decoupling to its logical conclusion, we eventually consider exposing an MBrace server/worker as a REST API that accepts a limited range of inputs including queries - ShowLogs() etc. - and even code in an appropriate pickled format.  But for now I'm just suggesting ways that we can reduce the induced dependency set and reduce the degree of tight coupling).\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/mbraceproject/MBrace.Azure/issues/comments/82517589","html_url":"https://github.com/mbraceproject/MBrace.Azure/issues/42#issuecomment-82517589","issue_url":"https://api.github.com/repos/mbraceproject/MBrace.Azure/issues/42","id":82517589,"user":{"login":"eiriktsarpalis","id":2813363,"avatar_url":"https://avatars.githubusercontent.com/u/2813363?v=3","gravatar_id":"","url":"https://api.github.com/users/eiriktsarpalis","html_url":"https://github.com/eiriktsarpalis","followers_url":"https://api.github.com/users/eiriktsarpalis/followers","following_url":"https://api.github.com/users/eiriktsarpalis/following{/other_user}","gists_url":"https://api.github.com/users/eiriktsarpalis/gists{/gist_id}","starred_url":"https://api.github.com/users/eiriktsarpalis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eiriktsarpalis/subscriptions","organizations_url":"https://api.github.com/users/eiriktsarpalis/orgs","repos_url":"https://api.github.com/users/eiriktsarpalis/repos","events_url":"https://api.github.com/users/eiriktsarpalis/events{/privacy}","received_events_url":"https://api.github.com/users/eiriktsarpalis/received_events","type":"User","site_admin":false},"created_at":"2015-03-17T18:41:12Z","updated_at":"2015-03-17T18:41:12Z","body":"I think we should focus on MBrace.Demos, we shouldn't make new users dig into the MBrace.Azure source code for samples."}}