Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repo / project restructurings #99

Closed
35 of 40 tasks
zspitz opened this issue Dec 1, 2019 · 1 comment
Closed
35 of 40 tasks

Repo / project restructurings #99

zspitz opened this issue Dec 1, 2019 · 1 comment

Comments

@zspitz
Copy link
Owner

zspitz commented Dec 1, 2019

Before:

ATM it seems that debugger-side dlls written in .NET Core for visualizers are not seen by Visual Studio. We'll have to do this in .NET Framework, and merge using Costura.


During repo restructure:

  • Expression test objects
  • move library into separate repo -> ExpressionTreeToString
    • move Shared into ExpressionTreeToString
    • use test objects library to run tests
    • migrate to SDK project format; NRT
  • visualizer
    • rename current repo, solution, projects to ExpressionTreeVisualizer
    • remove Visualizer.2017; merge Visualizer.Shared and Visualizer.2019 into ExpressionTreeVisualizer
    • migrate to SDK project format (Upgrade to SDK-style project #97); NRT
    • split off debuggee code into separate projects
      • build should go into separate subfolders based on target framework
      • ZIP up all files, preserving this subfolder structure
      • For .NET Framework debuggee, use Costura to merge into a single DLL
      • Check the possibility for other debuggee versions
    • create solution for CI; will build and run tests but not the "playground" projects; modify appveyor.yml
      • create a post-build project in the original solution, not the CI solution; copies the output DLLs to the relevant folders
    • merge library dll using Costura
    • use test objects library to run tests
  • migrate wiki to new repos
    • add changelog, roadmap, solution structure, and contributing pages
  • remove files from old repo; add links to new repos

After:

  • visualizer
    • separate ExpressionTreeControl (displays viewmodel) from VisualizerWindow (manages DataContext using TransferData)
      • break dependency of Package project on Visualizer project; reference shared projects directly
    • MVVM, then Enable visualizer tests to be run by AppVeyor #79 can be done using the test object library
    • deploy viewmodels + views (including serialization models) as Nuget package
      • move all the code to a .NET Core 3.1 project (UI.Core); modifications made to this project
      • add a post-build step to copy all files into UI.Fx targeting .NET Framework
      • ideally, multitarget .NET Framework, .NET Core (.NET Standard?)
    • remove dependency on MultiSelectTreeView
    • create separate build output for VS 2019 -- ZIP file with subfolder structure for multiple frameworks -- and VS 2017 -- ZIP file with single dll
  • Update external links -- RubberDuck, MS docs
    • https://github.com/agileobjects/ReadableExpressions/issues/47

Some more details:

domains:
serialization models
visualizer object source
view models + views
visualizer

visualizer:
serialization models into multitarget debuggee dlls
everything else into NET Framework debugger dll
	reference to some debuggee dll is required, for use of serialization models

wpf control library:
(deploy as nuget package)
serialization models + view models + views
	constructor for view model from actual type (not serialization model)

test projects reference wpf control library
	(it will have a dependency on WPF, use .NET Core 3)
@zspitz
Copy link
Owner Author

zspitz commented May 17, 2020

PR for MS Docs is here.

@zspitz zspitz closed this as completed May 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant