Closed FraserGreenroyd closed 6 months ago
@BHoMBot check project-compliance
@BHoMBot fix project file ref. 21569055403
@BHoMBot check project-compliance
@BHoMBot check versioning @BHoMBot check installer @BHoMBot check core @BHoMBot check copyright-compliance @BHoMBot check project-compliance
@BHoMBot check compliance @BHoMBot check core
@BHoMBot check copyright-compliance @BHoMBot check project-compliance
@BHoMBot check core
@BHoMBot check ready-to-merge
NOTE: Depends on
https://github.com/BHoM/BHoM/pull/1598 https://github.com/BHoM/BHoM_UI/pull/480
Issues addressed by this PR
Fixes https://github.com/BHoM/BHoMAnalytics_Toolkit/issues/73
BHoM_UI has not been upgraded toNetStandard2.0
because many of the GUI components are not compatible. The BHoM_UI project is typically only depended upon by the other UIs (Grasshopper, Excel, etc.) which are also notNetStandard2.0
compliant. However, BHoMAnalytics_Toolkit, and others, depend on the UI_oM and UI_Engine, and particularly as @adecler continues prototyping up our zero code tools, they requireNetStandard2.0
DLLs, and the issue as described in https://github.com/BHoM/BHoMAnalytics_Toolkit/issues/73 is basically the Analytics Toolkit is unhappy because the UI elements it depends on are inNetFramework
rather thanNetStandard
.Thus, UI_oM and UI_Engine have been upgraded toNetStandard2.0
while BHoM_UI has been left onNetFramework
but given some tweaks to support it.I have then added the alternative configuration forZeroCodeTool
which will be used when building the Nugets to exclude the BHoM_UI project when it builds for Nugets.To test this, compile this PR and then compile a UI of your choice (Grasshopper, Excel, etc.) to ensure it is built on top of this PR, and then play around with the UI. Try and use the search menus and stuff which rely on theNetFramework
elements more to ensure they aren't broken.While all of the above is still true and valid, testing revealed too many issues owing to the need for the UIs to remain within the
NetFramework
era of the runtime frameworks. Therefore, upgrading the oM and Engine did not work as intended and caused issues when using the UIs.So instead I went back to the original toolkit - BHoMAnalytics_Toolkit - and questioned why it was depending on BHoM_UI in the first place. It turns out, it's entirely for the interface
IInitialisationSettings
so that BHoMAnalytics could have their own settings object to be handled on initialisation. As great as that is, a dependency on UI_oM for just that seems overkill, especially as BHoMAnaltyics_Toolkit is not a UI itself, nor does it have a UI, and thus could arguably not depend on BHoM_UI for its work.Thus, this solution - move the interface it needs from here up to the core BHoM repository within the base oM (BHoM). This makes sense from my perspective as while initialisation settings are nice to use from a UI, they are not only needed from a UI context, so having them in the core makes more sense to be more accessible for contexts outside the UI.