{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/issues/2274","repository_url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio","labels_url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/issues/2274/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/issues/2274/comments","events_url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/issues/2274/events","html_url":"https://github.com/Microsoft/WindowsTemplateStudio/issues/2274","id":324909388,"number":2274,"title":"X-Plat dev with WTS & Xamarin.Forms","user":{"login":"mrlacey","id":189547,"avatar_url":"https://avatars3.githubusercontent.com/u/189547?v=4","gravatar_id":"","url":"https://api.github.com/users/mrlacey","html_url":"https://github.com/mrlacey","followers_url":"https://api.github.com/users/mrlacey/followers","following_url":"https://api.github.com/users/mrlacey/following{/other_user}","gists_url":"https://api.github.com/users/mrlacey/gists{/gist_id}","starred_url":"https://api.github.com/users/mrlacey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrlacey/subscriptions","organizations_url":"https://api.github.com/users/mrlacey/orgs","repos_url":"https://api.github.com/users/mrlacey/repos","events_url":"https://api.github.com/users/mrlacey/events{/privacy}","received_events_url":"https://api.github.com/users/mrlacey/received_events","type":"User","site_admin":false},"labels":[{"id":716763875,"url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/labels/Xamarin","name":"Xamarin","color":"1d76db","default":false},{"id":611421805,"url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/labels/meta","name":"meta","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/milestones/5","html_url":"https://github.com/Microsoft/WindowsTemplateStudio/milestone/5","labels_url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/milestones/5/labels","id":2453452,"number":5,"title":"Backlog","description":"","creator":{"login":"crutkas","id":1462282,"avatar_url":"https://avatars2.githubusercontent.com/u/1462282?v=4","gravatar_id":"","url":"https://api.github.com/users/crutkas","html_url":"https://github.com/crutkas","followers_url":"https://api.github.com/users/crutkas/followers","following_url":"https://api.github.com/users/crutkas/following{/other_user}","gists_url":"https://api.github.com/users/crutkas/gists{/gist_id}","starred_url":"https://api.github.com/users/crutkas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crutkas/subscriptions","organizations_url":"https://api.github.com/users/crutkas/orgs","repos_url":"https://api.github.com/users/crutkas/repos","events_url":"https://api.github.com/users/crutkas/events{/privacy}","received_events_url":"https://api.github.com/users/crutkas/received_events","type":"User","site_admin":false},"open_issues":87,"closed_issues":24,"state":"open","created_at":"2017-04-12T17:44:07Z","updated_at":"2018-05-21T13:29:48Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2018-05-21T13:06:50Z","updated_at":"2018-05-21T18:26:11Z","closed_at":null,"author_association":"COLLABORATOR","body":"_This is a working item and will be updated. The intention of this issue is to centrally document all that will be involved in adding support for Xamarin.Forms._\r\n\r\n# Xamarin & WTS\r\n\r\nMuch of what is listed here is dependent upon the multi-project support work (#2252) being done for v3.0. The functionality detailed here will be released in a version after 3.0 but the exact timeline for the release of this functionality is yet to be determined.\r\nThe development of new UWP specific functionality will continue in tandem with the work done to support cross-platform (X-Plat) development with Xamarin.Forms (XF).\r\n\r\n\r\n## Overriding principles\r\n\r\n- WTS is a Windows-first tool.\r\n- The aim of adding Xamarin(.Forms) support to WTS is to help developers create first class Windows/UWP apps with supporting mobile apps.\r\n- The aim is not to create a \"Xamain[.Forms] Template Studio\" which produces a single code base that can be compiled for any supported platform.\r\n- What goes into the UWP project for a page/feature will be identical if creating a solution for just UWP or all 3 supported platforms.\r\n\r\n\r\n## Things that will be possible\r\n\r\n- Continue to support creating a UWP only app.\r\n- Create a project/solution that includes a UWP app and an XF project with heads for Android and iOS.\r\n- Take a UWP only app and add XF projects to the solution.\r\n\r\n\r\n## Things that will not be possible\r\n- Delete the UWP app/project from the solution and continue to add (via right-click) to the XF apps.\r\n- XF project develpment in VB.\r\n- Support for XF templates that do not support all three supported platforms.\r\n- Choosing which platforms to include. The options are UWP only, or UWP, iOS, AND Android. Of course, if someone doesn't want the iOS or Android version they don't have to compile it.\r\n-- Deleting unwanted heads is not encouraged.\r\n-- Any additional heads that are manually added will be ignored.\r\n- Adding functionality to the Mobile apps that do not have equivalent functionality in the UWP app.\r\n\r\n\r\n## Creating a new project\r\n\r\n- As per the existing version of WTS, under New Universal Project, allow creation of a UWP only app based on the UWP only templates.\r\n- Under 'Cross Platform' add a new entry that will allow the creation of a new solution containing the projects for creating apps for 3 platforms.\r\n-- This option will only include templates that can be applied to all 3 platforms.\r\n\r\n\r\n## Adding to a previously created project\r\n\r\n- The right-click menu option will only be available from the UWP project.\r\n- If a UWP only project, it will be possible to add X-Plat support. This will add minimally populated XF projects. These new apps will be equivalent to if creating a new project and adding no extra pages & features.\r\n- If adding to a X-Plat project, in addition to adding a page/feature for all 3 projects it will also be possible to add to just the UWP app and this will allow selecting from all UWP templates. (This will mean loading a different set of templates in the wizard.)\r\n\r\n\r\n## Project/Solution structure\r\n\r\n- There will be 5 projects in the solution\r\n-- App.UWP (The UWP app)\r\n-- App.Core (.Net Standard project containing platform agnostic code that is referenced by all other projects)\r\n-- App.XamForms (.Net Standard project with shared XF functionality)\r\n-- App.iOS (XF iOS head)\r\n-- App.Android (XF Android Head)\r\n\r\n\r\n## Questions that need answering BEFORE we build anything\r\n\r\n- [ ] If one of the XF Heads is deleted, what should the warnings/errors be when adding a new page/feature? (Ignore the missing head? prevent adding at all? Show warnings in the summary page?)\r\n- [ ] If take an existing UWP project with some pages and add X-Plat support, how to add XF versions of the existing UWP pages? (Do we just live with lots of warnings in the add summary window? or do something else/more?)\r\n- [ ] What should the right-click menu structure look like for supporting all options?\r\n- [ ] Should the X-Plat/XF templates folder include copies of the corresponding UWP templates? (If not, how are they kept in sync? Do we need any extra tools/scripts/tests to enable or enforce this?)\r\n- [ ] What do we call the no-3rdparty-framework equivalent of 'MVVM Basic' for X-Plat solutions?\r\n- [ ] What do we do if someone wants to add X-Plat support to a UWP only app that was created with CodeBehind or MVVMBasic? (May need different solutions for each.)\r\n\r\n\r\n## Action points\r\n\r\n- [ ] Answer above questions.\r\n- [ ] Review (and document) which exisiting UWP templates could have XF equivalents & prioritize them.\r\n- [ ] Plan (and document) template folder structure.\r\n- [ ] Review (and document) required changes to Wizard and tooling to enable the functionality detailed here.\r\n\r\n\r\n---\r\n\r\n\r\nX-Ref: #312, & [wiki](https://github.com/Microsoft/WindowsTemplateStudio/wiki/Xamarin)\r\n\r\nIf you have concerns, questions, or strong opinions about any of the above, please comment below ASAP."},"comment":{"url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/issues/comments/390740531","html_url":"https://github.com/Microsoft/WindowsTemplateStudio/issues/2274#issuecomment-390740531","issue_url":"https://api.github.com/repos/Microsoft/WindowsTemplateStudio/issues/2274","id":390740531,"user":{"login":"touseefbsb","id":11542189,"avatar_url":"https://avatars2.githubusercontent.com/u/11542189?v=4","gravatar_id":"","url":"https://api.github.com/users/touseefbsb","html_url":"https://github.com/touseefbsb","followers_url":"https://api.github.com/users/touseefbsb/followers","following_url":"https://api.github.com/users/touseefbsb/following{/other_user}","gists_url":"https://api.github.com/users/touseefbsb/gists{/gist_id}","starred_url":"https://api.github.com/users/touseefbsb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/touseefbsb/subscriptions","organizations_url":"https://api.github.com/users/touseefbsb/orgs","repos_url":"https://api.github.com/users/touseefbsb/repos","events_url":"https://api.github.com/users/touseefbsb/events{/privacy}","received_events_url":"https://api.github.com/users/touseefbsb/received_events","type":"User","site_admin":false},"created_at":"2018-05-21T18:26:10Z","updated_at":"2018-05-21T18:26:10Z","author_association":"NONE","body":"apart from ios and android, XF also supports building for linux and macOs ( and web might also be included in future, though still ecperimentl with the ooui framework ) just wanted to put it out there as I think it will help in the decision of solution structure. :)"}}
{"actor":{"display_login":"touseefbsb"}}