{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/winforms/issues/1890","repository_url":"https://api.github.com/repos/dotnet/winforms","labels_url":"https://api.github.com/repos/dotnet/winforms/issues/1890/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/winforms/issues/1890/comments","events_url":"https://api.github.com/repos/dotnet/winforms/issues/1890/events","html_url":"https://github.com/dotnet/winforms/issues/1890","id":493007105,"node_id":"MDU6SXNzdWU0OTMwMDcxMDU=","number":1890,"title":"Should we try to shrink the size of our assemblies?","user":{"login":"zsd4yr","id":10677481,"node_id":"MDQ6VXNlcjEwNjc3NDgx","avatar_url":"https://avatars2.githubusercontent.com/u/10677481?v=4","gravatar_id":"","url":"https://api.github.com/users/zsd4yr","html_url":"https://github.com/zsd4yr","followers_url":"https://api.github.com/users/zsd4yr/followers","following_url":"https://api.github.com/users/zsd4yr/following{/other_user}","gists_url":"https://api.github.com/users/zsd4yr/gists{/gist_id}","starred_url":"https://api.github.com/users/zsd4yr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zsd4yr/subscriptions","organizations_url":"https://api.github.com/users/zsd4yr/orgs","repos_url":"https://api.github.com/users/zsd4yr/repos","events_url":"https://api.github.com/users/zsd4yr/events{/privacy}","received_events_url":"https://api.github.com/users/zsd4yr/received_events","type":"User","site_admin":false},"labels":[{"id":1126390185,"node_id":"MDU6TGFiZWwxMTI2MzkwMTg1","url":"https://api.github.com/repos/dotnet/winforms/labels/design-discussion","name":"design-discussion","color":"f7b7ee","default":false},{"id":1096513447,"node_id":"MDU6TGFiZWwxMDk2NTEzNDQ3","url":"https://api.github.com/repos/dotnet/winforms/labels/question","name":"question","color":"200dff","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2019-09-12T20:14:42Z","updated_at":"2019-09-13T14:44:42Z","closed_at":null,"author_association":"MEMBER","body":"Some important driving questions:\r\n1. what kinds of customers want us to shrink our assemblies?\r\n2. why do they want smaller assemblies? \r\n3. do customers care about small reductions in size or do they want larger reductions?\r\n\r\nSome top-level options:\r\n1. run a tool which removes \"dead\" code. This may be difficult considering\r\n    * some code may only be exercised by the designer and thus may appear dead\r\n    * the linker may not understand all the ways code and non-code jell together\r\n2. run a tool at linking-time to removed types from the assemblies which are not used (same issues as with 1)\r\n3. make more assemblies\r\n    * this would involve making the system.windows.forms assembly a facade and finding smart / clever types to move to other assemblies, such as system.windows.forms.datagridview\r\n    * this would make it so that if apps only need certain types, they can use more specific project references, reducing the size of their application at runtime\r\n4. comment out unused types (same issues as 1 and 2 while also being manual and prone to developer-error)\r\n\r\nAny additional thoughts?\r\nAny customer out there particularly invested in / desirous of this?"},"comment":{"url":"https://api.github.com/repos/dotnet/winforms/issues/comments/531265595","html_url":"https://github.com/dotnet/winforms/issues/1890#issuecomment-531265595","issue_url":"https://api.github.com/repos/dotnet/winforms/issues/1890","id":531265595,"node_id":"MDEyOklzc3VlQ29tbWVudDUzMTI2NTU5NQ==","user":{"login":"stephentoub","id":2642209,"node_id":"MDQ6VXNlcjI2NDIyMDk=","avatar_url":"https://avatars0.githubusercontent.com/u/2642209?v=4","gravatar_id":"","url":"https://api.github.com/users/stephentoub","html_url":"https://github.com/stephentoub","followers_url":"https://api.github.com/users/stephentoub/followers","following_url":"https://api.github.com/users/stephentoub/following{/other_user}","gists_url":"https://api.github.com/users/stephentoub/gists{/gist_id}","starred_url":"https://api.github.com/users/stephentoub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephentoub/subscriptions","organizations_url":"https://api.github.com/users/stephentoub/orgs","repos_url":"https://api.github.com/users/stephentoub/repos","events_url":"https://api.github.com/users/stephentoub/events{/privacy}","received_events_url":"https://api.github.com/users/stephentoub/received_events","type":"User","site_admin":false},"created_at":"2019-09-13T14:44:42Z","updated_at":"2019-09-13T14:44:42Z","author_association":"MEMBER","body":"We already do both (1) and (2) in coreclr and corefx, using ILLink as part of the build.  Then PublishTrimmed can also be used when creating a self-contained executable to aggressively trim unused functionality (even from framework binaries) when creating the self-contained app.\r\ncc: @jeffschwMSFT "}}
{"actor":{"display_login":"stephentoub"}}