xyzzer / WinRTXamlToolkit

WinRT XAML Toolkit
Other
281 stars 67 forks source link

Windows 10 support #2

Closed xyzzer closed 8 years ago

xyzzer commented 8 years ago

There are a few aspects of supporting Windows 10

  1. Make sure the version of the toolkit targeting 8.1 apps still works on PCs and phones running Windows 10 and update the nuget packages if necessary.
  2. Add support for Windows 10 UWP/UAP apps.
    1. Gradual port. Since UWP apps are a bit different in the sense that a single app should support both PC and phone and in the future also other platforms - while it is still possible to have separate projects for phone and PC - it makes sense that new projects are created to support the new paradigm and while most of the helper classes and extensions should port easily - the XAML code and the new sample app will need to be gradually adapted to support the old controls in refreshed form. It also makes practical sense since a lot of the platform resources have changed for Windows 10 and some XAML might not compile anymore.
    2. Maintaining support for apps targeting 8.1. Since the hope is that most 8.1 machines should get updated to 10 really quickly and also due to my limited free time - my plan is to create an archived branch with a version targeting 8.1 and clean up the solution and projects to only support 10 unless I hear a lot of negative comments about that idea. The benefit is quicker load and build times for the solution and so a quicker turnaround on any issues for the UWP version of the toolkit. The drawback is that the 8.1 version will likely not see (m)any updates and they will need to be done in a separate branch. Any issues filed for 8.1 I might first or only fix in the UWP version. If I were to maintain support for 8.1 in the main solution - I probably wouldn't get much work done since I'd have to dig into complicated file linking, shared projects with more dependencies and I couldn't make partial releases until I was done with most of the work. All that while having a huge solution that would take a lot of time every time I'd try to load it or build it, shaving significant amounts of the time that could be devoted to porting all the code, fixing bugs or adding new features.
    3. Projects organization. Currently the toolkit has one core library/project and a few separate ones that depend on the core library - that's the chart controls, debugging helpers, the calendar control and the gauge control. I could leave that as is or clean it up a bit as I'm upgrading to UWP.
      1. I'm thinking the chart control should be kept separate from the main toolkit and I might remove the dependency on the core toolkit. The reason is this is a big library in itself and seems to be one of the most popular ones, so perhaps if people need it but don't need the core toolkit - it would make it more light weight for use in production projects.
      2. As for the other controls - I'm thinking of either jamming them all together with the others in the core library or move all controls from the core library and the other projects into a separate toolkit controls library, so that people who just want the helpers and extensions can grab just the core library
  3. Priorities.
    1. Port the core library without the controls to UWP
    2. Port one of the samples projects to UWP to be able to test the changes
    3. Port the chart control to UWP
    4. Port other controls
    5. NuGet packages for the UWP libraries
    6. Port the debugging library
gotdibbs commented 8 years ago

Hey there, I'm working on a Windows 10 project which is looking to use your controls.

I've already got both the core and controls libraries building with Windows 10 as the target, the rest of the build errors for the solution seem to come from SharpDX not being up to date for Windows 10 yet.

xyzzer commented 8 years ago

Cool, do you want to send a pull request?

gotdibbs commented 8 years ago

@xyzzer Sure thing! Since the entire solution doesn't build still, would you like it against a new branch or just against master? Did you want me to put any effort into splitting out the Controls project into its own disparate solution?

xyzzer commented 8 years ago

Never mind, I did my first step of porting it. The controls I tried (including charts and calendar) seem to work on PC (smoke test result). https://github.com/xyzzer/WinRTXamlToolkit/tree/Win81_To_UWP Still need to get debugging tools running, make sure it works on phone and make the UI more responsive and adaptive.

xyzzer commented 8 years ago

NuGets for UWP version of the toolkit pushed. Please test and let me know how that works.

http://nuget.org/packages/winrtxamltoolkit.uwp http://nuget.org/packages/winrtxamltoolkit.debugging.uwp http://nuget.org/packages/winrtxamltoolkit.Controls.Calendar.uwp http://nuget.org/packages/winrtxamltoolkit.Controls.DataVisualization.uwp http://nuget.org/packages/winrtxamltoolkit.Controls.Gauge.UWP.uwp